Amplitude 연동 관련

Amplitude SDK와 Airbridge SDK 둘다 사용하여 이벤트 수집중이고, Airbridge에서 Amplitude Integration (V2)로 데이터를 연동중입니다. 하지만 Device 매칭이 제대로 되지 않아 데이터 분석에 어려움이 있습니다. 어떻게 해야하나요?

이는 Amplitude SDK와 Airbridge SDK가 사용하는 Device ID가 달라서 그렇습니다.(Amplitude Device ID는 기본 Random Generated, Airbridge Device ID는 결정 로직 참고) 이 경우 Amplitude Device ID를 Fetching하여 Airbridge에 User Alias에 amplitude_device_id로 넣어줘야합니다. 해당 작업이 완료되면, Airbridge x Amplitude Integration을 통해 Amplitude로 이벤트 데이터를 전송 시에 해당 Alias 값을 Airbridge Device ID 보다 우선하여 Amplitude의 Device ID로 전송하게 됩니다.

특히 Amplitude JS SDK 및 React Native SDK를 사용하는 경우, Google과 Apple 정책상의 이유로 ADID를 수집하지 못하기 때문에 반드시 본 설정을 완료해주셔야 합니다.

❗️

해당 설정은 Amplitude V2(HTTP API) 연동 시에만 적용 가능합니다.

V1(Amplitude Attribution API) 연동에서는 유저 매칭을 위해 IDFA/IDFV(iOS) 및 GAID(Android)와 같은 ADID만을 사용할 수 있기 때문에, Amplitude Device ID를 유저 매칭에 사용할 수 없습니다.

1. Amplitude Device ID Fetching 하기

2. Airbridge User Alias에 넣기

이하 샘플 코드입니다.

airbridge.init({
    ...
    user: {
        alias: {
            amplitude_device_id: Amplitude.getInstance().getDeviceId(),
        },
    },
    ...
});
Airbridge.getCurrentUser().setAlias("amplitude_device_id", Amplitude.getInstance().getDeviceId());
[AirBridge.state addUserAliasWithKey:@"amplitude_device_id" value:Amplitude.instance.deviceId];
Airbridge.state.updateUser({
    alias: {
        amplitude_device_id: Amplitude.getInstance().getDeviceId(),
    },
});

위와 같이 넣어주시면 아래의 우선순위로 HTTP API V2를 통해 amplitude_device_id를 전달하게 됩니다.

  1. user.alias.amplitude_device_id
  2. device.deviceUUID (App)
  3. browser.clientID (Web)