옵트아웃 (Opt-Out Tracking)

옵트아웃이 활성화되면 SDK는 모든 이벤트 전송을 중단합니다.

초기화 시 설정

val config = HackleConfig.builder()
    .optOutTracking(true)
    .build()

Hackle.initialize(applicationContext, YOUR_APP_SDK_KEY, config) {
    // SDK ready to use.
}
HackleConfig config = HackleConfig.builder()
    .optOutTracking(true)
    .build();

HackleApp.initializeApp(getApplicationContext(), YOUR_APP_SDK_KEY, config, () -> {
    // SDK ready to use.
});

런타임 옵트아웃 제어

Hackle.setOptOutTracking(true)
Hackle.setOptOutTracking(false)
val isOptOut = Hackle.isOptOutTracking
hackleApp.setOptOutTracking(true);
hackleApp.setOptOutTracking(false);
boolean isOptOut = hackleApp.isOptOutTracking();

영속성 관리

⚠️

런타임에 변경된 옵트아웃 상태는 앱 재시작 시 초기화 Config에 설정된 값으로 리셋됩니다.

앱 재시작 후에도 상태를 유지하려면 직접 저장 및 복원 로직을 구현해야 합니다.

fun saveOptOutState(context: Context, optOut: Boolean) {
    context.getSharedPreferences("hackle_prefs", Context.MODE_PRIVATE)
        .edit()
        .putBoolean("hackle_opt_out", optOut)
        .apply()
    Hackle.setOptOutTracking(optOut)
}

fun getOptOutConfig(context: Context): HackleConfig {
    val optOut = context.getSharedPreferences("hackle_prefs", Context.MODE_PRIVATE)
        .getBoolean("hackle_opt_out", false)
    return HackleConfig.builder()
        .optOutTracking(optOut)
        .build()
}
void saveOptOutState(Context context, boolean optOut) {
    context.getSharedPreferences("hackle_prefs", Context.MODE_PRIVATE)
        .edit()
        .putBoolean("hackle_opt_out", optOut)
        .apply();
    hackleApp.setOptOutTracking(optOut);
}

HackleConfig getOptOutConfig(Context context) {
    boolean optOut = context.getSharedPreferences("hackle_prefs", Context.MODE_PRIVATE)
        .getBoolean("hackle_opt_out", false);
    return HackleConfig.builder()
        .optOutTracking(optOut)
        .build();
}