흰오목눈이야 개발하자

[Flutter] Amplitude 이벤트 App set ID 문제 해결 본문

Flutter

[Flutter] Amplitude 이벤트 App set ID 문제 해결

흰오목눈이 2023. 8. 3. 20:23

문제


Flutter Amplitude SDK를 구현했다. 테스트용 로그(예. Logger)는 확인이 가능해 이벤트를 성공적으로 보낸다고 생각했는데 실제 Amplitude 도구에서는 이벤트 송신이 안되었다.

- 테스트 대상 OS : Android

- Amplitude SDK (Flutter) 공식 사이트 : https://www.docs.developers.amplitude.com/data/sdks/flutter/

 

원인


안드로이드의 경우 App set ID가 필수였다. 사용자의 개인 정보를 보호하기 위한 대안으로 설정한 것으로 이를 설정하지 않으면 Amplitude 이벤트를 송신할 수 없다.

App set ID is a unique identifier for each app install on a device. App set ID is reset by the user manually when they uninstall the app, or after 13 months of not opening the app. Google designed this as a privacy-friendly alternative to Ad ID for users who want to opt out of stronger analytics.
: App set ID는 기기에 설치된 각 앱의 고유 식별자입니다. App set ID는 사용자가 앱을 제거하거나 13개월 동안 앱을 열지 않으면 수동으로 재설정됩니다. 구글은 이를 강력한 분석에서 벗어나려는 사용자를 위해 Ad ID의 개인 정보 보호를 위한 대안으로 설계했습니다.

- 참고: https://www.docs.developers.amplitude.com/data/sdks/android/#app-set-id

 

Android SDK (Maintenance) - Amplitude Developer Center

The Amplitude Android SDK installation and quick start guide.

www.docs.developers.amplitude.com

 

해결


1. 안드로이드 build.gradle 파일에 play-services-appset 종속성을  추가한다.

dependencies {
    implementation 'com.google.android.gms:play-services-appset:16.0.2'
}

2. App Set ID를 Amplitude 인스턴스에 설정한다.

(amplitude_instance).useAppSetIdForDeviceId();

 

예) 전체 코드

import 'package:amplitude_flutter/amplitude.dart';
import 'package:amplitude_flutter/identify.dart';

class YourClass {
  Future<void> exampleForAmplitude() async {
    // Create the instance
    final Amplitude analytics = Amplitude.getInstance(instanceName: "project");

    // Initialize SDK
    analytics.init(widget.apiKey);

    // App Set ID
    analytics.useAppSetIdForDeviceId();

    // Log an event
    analytics.logEvent('MyApp startup', eventProperties: {
      'friend_num': 10,
      'is_heavy_user': true
    });
  }
}

3. Amplitude 유저 검색란에서 실시간으로 이벤트가 송신되는지 확인한다.