Flutter SDK 시작하기

Adjust Flutter SDK는 Flutter 앱에서 어트리뷰션, 이벤트 등의 트래킹을 가능하게 합니다. 본 페이지의 단계에 따라 Adjust SDK 설정을 완료하시기 바랍니다. 이에 대한 예시는 GitHub에서 확인하실 수 있습니다.

중요:
Adjust SDK는 iOS 9 이상 버전과 Android API level 9 (Gingerbread) 이상을 지원합니다.

1. 프로젝트에 SDK 추가

Flutter 앱에서Adjust Flutter SDK를 시작하려면 우선 프로젝트에 Adjust Flutter SDK를 추가해야 합니다.

Flutter 프로젝트에 Adjust SDK를 가져오기 하려면 다음을 수행하시기 바랍니다.

  1. 다음을 pubspec.yaml 파일에 추가합니다:
dependencies:
  adjust_sdk: ^4.38.0
  1. 프로젝트로 이동하여 다음 명령을 실행합니다. pubspec.yaml 파일을 수정하면 Visual Studio가 자동으로 이 명령어를 실행합니다.
flutter packages get

2. Android 기기 설정

Google Play Services 추가

Google Play Store를 타겟팅하는 앱은 기기를 식별하기 위해 반드시 Google Advertising ID (gps_adid)를 사용해야 합니다. 이를 위해 build.gradle 파일의 dependencies 섹션에 다음의 디펜던시를 추가합니다.

implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1'
참고:
Adjust SDK는 `play-services-ads-identifier` 디펜던시 버전의 구애를 받지 않습니다. 따라서 Google Play Services 라이브러리의 모든 버전을 사용할 수 있습니다.

권한 추가

Adjust SDK는 다음의 권한을 필요로합니다. AndroidManifest.xml 파일이 아직 존재하지 않는다면 추가하시기 바랍니다.

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

Adjust SDK 4.32.0 및 이상 버전에는 com.google.android.gms.AD_ID 권한이 기본값으로 포함됩니다. 앱이 COPPA 준수 대상이거나 Google Play Store를 타겟하지 않는 경우, remove 을 추가하여 이 권한을 제거할 수 있습니다.

<uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/>

자세한 내용은 Google의 AdvertisingIdClient.info 문서를 참조하시기 바랍니다.

Proguard 설정

Proguard를 사용하는 경우, 다음의 규칙을 커스텀 Proguard 파일에 추가하시기 바랍니다.

-keep public class com.adjust.sdk.** { *; }
-keep class com.google.android.gms.common.ConnectionResult {
    int SUCCESS;
}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient {
    com.google.android.gms.ads.identifier.AdvertisingIdClient$Info getAdvertisingIdInfo(android.content.Context);
}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$Info {
    java.lang.String getId();
    boolean isLimitAdTrackingEnabled();
}
-keep public class com.android.installreferrer.** { *; }

Google Play Store에 앱을 게시하지 않는 경우, 다음의 규칙을 Proguard 파일에 추가하시기 바랍니다.

-keep public class com.adjust.sdk.** { *; }

설치 리퍼러 설정

설치 리퍼러는 소스에 앱 설치를 어트리뷰션할 수 있는 고유 식별자입니다. Adjust SDK는 어트리뷰션 수행을 위해 이 정보를 필요로 합니다. 3가지 방법을 통해 설치 리퍼러 정보를 수집할 수 있습니다:

  • Google Play Referrer API 사용.
  • 브로드캐스트 리시버로 INSTALL_REFERRER 인텐트를 수신합니다.
  • Huawei Referrer API 사용(Huawei 기기에만 해당).
중요:
Google은 Google Play Services의 리퍼러 정보를 전달하는 데 사용되는 INSTALL_REFERRER 인텐트 메서드를 지원하지 않습니다. 현재 이 메서드를 사용한다면 Google Play Referrer API로 전환하시기 바랍니다.

Google Play Referrer API

INSTALL_REFERRER 인텐트

Huawei 리퍼러 API

Meta 리퍼러 연동

3. iOS 프레임워크 추가

Adjust SDK는 특정 iOS 프레임워크가 앱에 포함된 경우 추가적인 정보를 얻을 수 있습니다. 이러한 프레임워크는 특정 SDK 기능을 활성화하지만, SDK가 작동하기 위해 반드시 필요한 것은 아닙니다. Project Settings > Build Phases > Link Binary With Libraries 에서 프레임워크를 추가한 뒤 이를 'optional'로 지정할 수 있습니다.

프레임워크설명참고 사항
AdSupport.frameworkSDK가 IDFA 값과 (iOS 14 이전의 경우) LAT 정보에 액세스하기 위해 필요.앱이 "Kids" 카테고리를 타겟팅하는 경우에는 이 프레임워크를 실행할 필요 없음.
AdServices.framework본 프레임워크는 Apple Search Ads 어트리뷰션을 위해 필요합니다.
StoreKit.frameworkSKAdNetwork 프레임워크에 액세스하고, Adjust SDK가 iOS 14 및 이후 버전에서 통신을 자동으로 처리하기 위해 필요.
AppTrackingTransparency.frameworkiOS 14 및 이후 버전에서 SDK가 유저의 트래킹 동의를 래핑하고 유저의 동의 응답에 액세스하기 위해 필요.앱이 "Kids" 카테고리를 타겟팅하는 경우에는 이 프레임워크를 실행할 필요 없음.

4. Adjust SDK 초기화

Flutter 앱에서 최대한 빨리 Adjust SDK를 초기화하시기 바랍니다. 이를 위해 앱 토큰 및 앱을 실행하고자 하는 환경과 함께 config 객체를 초기화하시기 바랍니다.

중요:
테스트 시에는 반드시 환경이 AdjustEnvironment.sandbox 로 설정되어야 합니다. 앱을 앱 스토어에 제출하기 전에 이를 AdjustEnvironment.production 로 변경합니다.
AdjustConfig config = new AdjustConfig('{YourAppToken}', AdjustEnvironment.sandbox);
Adjust.start(config);

5. 세션 트래킹 설정

SDK가 세션 정보를 Adjust 백엔드로 전달할 수 있도록 세션 트래킹을 설정해야 합니다.

참고:
iOS 기기에 대한 세션 트래킹은 기본 설정으로 지원됩니다.

Android 기기에 대한 세션 트래킹을 설정하려면, 앱이 포그라운드(foreground) 상태에서 실행 중인 경우 Adjust.onResume() 메서드를 호출하고, 앱이 포그라운드 상태에서 실행되지 않는 경우에는 Adjust.onPause() 메서드를 호출하시기 바랍니다. 해당 사항은 글로벌 설정 또는 위젯 별 설정이 가능합니다.

class AdjustExampleApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      title: 'Adjust Flutter Example App',
      home: new MainScreen(),
    );
  }
}

class MainScreen extends StatefulWidget {
  @override
  State createState() => new MainScreenState();
}

class MainScreenState extends State<mainscreen> with WidgetsBindingObserver {
  @override
  initState() {
    super.initState();
    WidgetsBinding.instance.addObserver(this);
    initPlatformState(); // <-- Initialise SDK in here.
  }

  @override
  void dispose() {
    WidgetsBinding.instance.removeObserver(this);
    super.dispose();
  }

  @override
  void didChangeAppLifecycleState(AppLifecycleState state) {
    switch (state) {
      case AppLifecycleState.inactive:
        break;
      case AppLifecycleState.resumed:
        Adjust.onResume();
        break;
      case AppLifecycleState.paused:
        Adjust.onPause();
        break;
      case AppLifecycleState.suspending:
        break;
    }
  }
}

6. 앱 빌드

잘하셨습니다! 이제 Flutter 앱을 빌드하고 실행할 수 있습니다. 로깅을 활성화하여 문제가 있는지 확인합니다. 로그를 검토하여 Install tracked 메시지를 확인합니다.

Adjust SDK를 통해 유저 어트리뷰션을 시작할 수 있습니다.

7. Adjust SDK 서명 추가

Adjust SDK 서명을 사용해 Adjust SDK가 전송한 모든 커뮤니케이션에 서명을 추가할 수 있습니다. Adjust 서버는 이를 기반으로 유효하지 않은 설치 활동을 감지 및 차단할 수 있습니다.

Adjust SDK 서명을 사용하려면 담당 테크니컬 어카운트 매니저 또는 support@adjust.com에 문의하시기 바랍니다.

8. 연동 테스트

Adjust SDK는 연동 테스트와 문제 해결 툴을 제공합니다. 다음과 같이 설정을 테스트하시기 바랍니다.

:
문제 발생 시, 모든 상세 내용과 로그를 support@adjust.com 에 보내시기 바랍니다.

Google Play Services 연동 테스트