AppsFlyer SDK 接入( Android )
第1步:声明存储库
在Project项目目录的build.gradle文件中,声明mavenCentral存储库:
    // ...
    repositories {
       mavenCentral()
    }
    /// ...> 
第2步:添加依赖项
在Application的build.gradle文件中,添加最新的Android SDK包:
  dependencies {
      // Get the latest version from https://mvnrepository.com/artifact/com.appsflyer/af-android-sdk
      implementation 'com.appsflyer:af-android-sdk:6.9.0' 
  }
第3步: 设置所需权限
   将以下权限添加到AndroidManifest.xml:
   <uses-permission android:name="android.permission.INTERNET" />
   <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
   如果是 AF SDK v6.8.0 之前, 同时 target API 33( Android 13 ), 就需要手动添加以下权限
   <uses-permission android:name="com.google.android.gms.permission.AD_ID" />
   从 AF SDK v6.8.0 开始, SDK 自动添加 AD_ID 权限, 但是子模块需要手动添加以下声明到 manifest 文件中,避免把 AD_ID 权限合并到子应用中,否则 Google Play 不予通过.
   <uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/>
第4步: 添加 依赖库
  dependencies {
      // ...
      implementation "com.android.installreferrer:installreferrer:2.2"
      // 其中 针对 小米手机 还需要添加, 华为和 三星 从 SDK v6.1.1 不再需要添加额外的依赖项
      implementation "com.miui.referrer:homereferrer:1.0.0.6"
  }
第 5 步: ProGuard规则
 -keep class com.appsflyer.** { *; }
 -keep public class com.android.installreferrer.** { *; }
 // 其中 针对 小米
 -keep public class com.miui.referrer.** {*;}
详情参考: https://zh.dev.appsflyer.com/hc/docs/install-android-sdk
对接SDK
步骤1:导入AppsFlyerLib
在您的全局应用类中,导入AppsFlyerLib:
import com.appsflyer.AppsFlyerLib;
步骤2:初始化SDK
在全局应用onCreate中调用init,参数(argument)如下:
AppsFlyerConversionListener conversionListener =  new AppsFlyerConversionListener() {
    @Override
    public void onConversionDataSuccess(Map<String, Object> conversionDataMap) {
      for (String attrName : conversionDataMap.keySet()){
          Log.d(TAG, "Conversion attribute: " + attrName + " = " + conversionDataMap.get(attrName));
      }
    String status = Objects.requireNonNull(conversionDataMap.get("af_status")).toString();
    if(status.equals("Non-organic")){
      if( Objects.requireNonNull(conversionDataMap.get("is_first_launch")).toString().equals("true")){
        Log.d(TAG,"Conversion: First Launch");
      } else {
        Log.d(TAG,"Conversion: Not First Launch");
      }
    } else {
      Log.d(TAG, "Conversion: This is an organic install.");
    }                    
    Map<String, Object> conversionData = conversionDataMap;
  }
  @Override
  public void onConversionDataFail(String errorMessage) {
      Log.d(TAG, "error getting conversion data: " + errorMessage);
  }
  @Override
  public void onAppOpenAttribution(Map<String, String> attributionData) {
      Log.d(TAG, "onAppOpenAttribution: This is fake call.");
  }
  @Override
  public void onAttributionFailure(String errorMessage) {
      Log.d(TAG, "error onAttributionFailure : " + errorMessage);
  }  
};
AppsFlyerLib.getInstance().init(<AF_DEV_KEY>, conversionListener, this);
步骤3: 启动Android SDK
在应用的onCreate 方法中,调用init后,调用start并将应用的情景作为第一个参数传递给它:
AppsFlyerLib.getInstance().start(this);
                    
                
                
            
        
浙公网安备 33010602011771号