옵트아웃 (Opt-Out Tracking)

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

📘

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

초기화 시 설정

import { createInstance, HackleProvider } from "@hackler/react-native-sdk";

const config = {
    optOutTracking: true
};

const hackleClient = createInstance("YOUR_APP_SDK_KEY", config);

const App = () => {
  return (
    <HackleProvider hackleClient={hackleClient}>
      <YourApp />
    </HackleProvider>
  );
};

런타임 옵트아웃 제어

hackleClient.setOptOutTracking(true);
hackleClient.setOptOutTracking(false);
const isOptOut = await hackleClient.isOptOutTracking();

영속성 관리

⚠️

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

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

import AsyncStorage from '@react-native-async-storage/async-storage';

async function saveOptOutState(optOut) {
    await AsyncStorage.setItem("hackle_opt_out", JSON.stringify(optOut));
    hackleClient.setOptOutTracking(optOut);
}

async function getOptOutConfig() {
    const value = await AsyncStorage.getItem("hackle_opt_out");
    const optOut = value ? JSON.parse(value) : false;
    return {
        optOutTracking: optOut
    };
}

const config = await getOptOutConfig();
const hackleClient = createInstance("YOUR_APP_SDK_KEY", config);