2025. 4. 1. 10:20ㆍ데이터분석&마케팅/Appsflyer
안녕하세요~ totally 개발자입니다.
먼저 기존 포스팅을 진행하셔야 하며, 이 포스팅에서는 플러터에 Appsflyer를 설치하는 방법을 소개합니다.
https://totally-developer.tistory.com/192
[001] Appsflyer - Flutter(플러터) 연동하기 1
안녕하세요 totally 개발자입니다. 이번 포스팅에서는 Appsflyer 마케팅 도구를 가지고 Flutter에 연동하는 방법에 대해 소개하도록 하겠습니다. Step 1: Appsflyer 웹사이트에 들어가신 후 회원가입을 진
totally-developer.tistory.com
Step 1: 먼저 pubspec.yaml 파일에 appsflyer_sdk 패키지를 설치합니다. (현재 기준 최신 버전)
Step 2: 그 다음 android > app > src > main 폴더에 res 폴더를 생성하시고 그 안에 xml 폴더를 생성하고 xml 폴더 내에 custom_backup_rules.xml 파일을 생성합니다. 이것을 추가하는 이유는 보통 flutterSecureStorage 같은 패키지를 써서 데이터를 저장하게 될 때 fullBackupContent가 true로 켜져 있게 되면 안드로이드 환경에서 앱이 평소에 잘 실행되다가 갑자기 어느 순간 스플래시 화면에서 계속 멈추는 것을 보게 되는 경우가 있는데 이것을 false로 끄게 되면 그 문제는 해결할 수 있습니다. 하지만 Appsflyer를 설치하면 AndroidManifest.xml에서 설정한 android:allowBackup과 android:fullBackupContent가 override(재정의)되므로 별도의 backup_rule xml 파일을 만들어서 flutterSecureStorage 같은 패키지 적용을 막아주는 용도로 확인하시면 됩니다.
Step 3: 만약 FlutterSecureStorage 패키지를 사용하시는 경우라면 아래처럼 입력하시면 됩니다. 만약 이와 같은 저장 패키지를 사용하지 않으시면 Step 2와 Step 3는 생략하시면 됩니다.
Step 4: android > app > src > main > AndroidManifest.xml 파일을 열어서 아래 3줄을 추가해줍니다. Step 2에서 언급한 것과 같이 appsflyer가 이 android:allowBackup과 android:fullBackupContent를 override(재정의)하게 되어 8번째 줄의 tools:replace가 필요합니다. ios는 별도 세팅이 필요 없는 것으로 확인됩니다. 먼저 AndroidManifest.xml 파일 첫 줄에 xmlns:tools="http://schemas.android.com/tools"> 이 부분을 넣어주셔야 합니다. 이 부분이 없으면 오류 표시 됩니다.
Step 5: main.dart 파일을 열어서 아래 빨간색 부분을 import 해줍니다.
Step 6: Firebase.initializeApp 뒷 부분에 아래 코드를 넣으시면 됩니다. afDevKey는 아래 스크린샷 참고해서 복사하시면 되며 appId는 ios의 앱 ID(숫자로 이루어짐)를 넣으시면 됩니다.
//! 앱스플라이어 Appsflyer 초기화
AppsFlyerOptions appsFlyerOptions = AppsFlyerOptions(
afDevKey: "Appsflyer에서 확인",
appId: "ios의 앱 ID",
showDebug: kDebugMode,
timeToWaitForATTUserAuthorization: 50, // for iOS 4.5
disableAdvertisingIdentifier: false,
disableCollectASA: false,
manualStart: true,
);
AppsflyerSdk appsflyerSdk = AppsflyerSdk(appsFlyerOptions);
await appsflyerSdk.initSdk(
registerConversionDataCallback: true,
registerOnAppOpenAttributionCallback: true,
registerOnDeepLinkingCallback: true,
);
appsflyerSdk.startSDK(
onSuccess: () {
debugPrint("AppsFlyer SDK initialized successfully.");
},
onError: (int errorCode, String errorMessage) {
debugPrint("Error initializing AppsFlyer SDK: Code $errorCode - $errorMessage");
},
);
afDevKey는 아래에서 복사하시면 됩니다.
Step 7: 에뮬레이터가 아닌 실 기기로 실행하셔서 아래 문구가 잘 나타나는지 확인하시면 됩니다. (ios는 디버그 콘솔이 아닌 XCode 콘솔에서 확인될 수도 있는 점 참고)
Step 8: 최소 몇 시간 또는 그 다음 날 Appsflyer에 해당 데이터가 반영됩니다.
'데이터분석&마케팅 > Appsflyer' 카테고리의 다른 글
[001] Appsflyer - Flutter(플러터) 연동하기 1 (1) | 2024.03.16 |
---|