옵트아웃 (Opt-Out Tracking)

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

📘

Flutter SDK는 Android SDK, iOS SDK를 기반으로 동작합니다.

초기화 시 설정

import "package:hackle/hackle.dart";

HackleConfig config = HackleConfigBuilder()
    .optOutTracking(true)
    .build();

await HackleApp.initialize(YOUR_APP_SDK_KEY, hackleConfig: config);

런타임 옵트아웃 제어

await HackleApp.setOptOutTracking(true);
await HackleApp.setOptOutTracking(false);
bool isOptOut = await HackleApp.isOptOutTracking();

영속성 관리

⚠️

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

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

import 'package:shared_preferences/shared_preferences.dart';
import 'package:hackle/hackle.dart';

Future<void> saveOptOutState(bool optOut) async {
    final prefs = await SharedPreferences.getInstance();
    await prefs.setBool('hackle_opt_out', optOut);
    await HackleApp.setOptOutTracking(optOut);
}

Future<HackleConfig> getOptOutConfig() async {
    final prefs = await SharedPreferences.getInstance();
    final optOut = prefs.getBool('hackle_opt_out') ?? false;
    return HackleConfigBuilder()
        .optOutTracking(optOut)
        .build();
}

final config = await getOptOutConfig();
await HackleApp.initialize(YOUR_APP_SDK_KEY, hackleConfig: config);