首页 > 其他分享 >AppsFlyer SDK 接入( Android )

AppsFlyer SDK 接入( Android )

时间:2023-02-13 18:45:01浏览次数:69  
标签:Log 添加 AppsFlyer TAG Android com public SDK

第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:

如果是 AF SDK v6.8.0 之前, 同时 target API 33( Android 13 ), 就需要手动添加以下权限

从 AF SDK v6.8.0 开始, SDK 自动添加 AD_ID 权限, 但是子模块需要手动添加以下声明到 manifest 文件中,避免把 AD_ID 权限合并到子应用中,否则 Google Play 不予通过.

第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);

标签:Log,添加,AppsFlyer,TAG,Android,com,public,SDK
From: https://www.cnblogs.com/lesten/p/17117348.html

相关文章

  • 2023-02-13 Android studio打包apk到手机上(模拟器也一样)运行时闪退
    环境:Rn项目apk,win10,android手机,as版本为4.2.2。======================================================================================================这是由chatG......
  • 【Oculus Interaction SDK】(八)特殊的 UI(曲面效果 & 手指点击)
    前言这篇文章是【OculusInteractionSDK】系列的一部分,如果发现有对不上的对方,可以回去翻看我之前发布的文章,或在评论区留言。如果文章的内容已经不适用于新版本了,也可以......
  • 2023-02-13 【Android studio内存不足】 Out of memory: Java heap space. Configure
    我的as版本:4.2.2测试环境:Android要修改as内存,需要修改两个地方:1、打开as,找到帮助==>更改内存设置==>最大堆大小,把2048修改成你想要的值,我是改成了8192,就是8g内存,接着重......
  • Android_Handler
    [CallBack]JAVA回调函数简单讲解CallBackJava-回调函数 [Handler]Java中Handler的标准使用方式 Handler全解Handler源码分析-Java层 ......
  • Android Studio各种bug
    AndroidStudio3.2版本,新建工程后,出现了如下bug:       暂时解决办法如下:点击OpenFile后,会打开app文件,原始的依赖文件如下:   将“33.”删除,修......
  • android开发kotlin顶级函数和拓展函数的实现原理
    android开发kotlin顶级函数和拓展函数的实现原理//我们编写的源代码在MainActivity.kt下面,如下:funtopTest(){print("123")}funMainActivity.extTest(){pr......
  • 第 21 章 使用 Java 编写 Android 应用
    21.1Android的历史......................................35721.2编写Android应用.................................35821.2.1组织Android项目..................
  • Android学习1
    1、Log日志    如果Logcat里的日志类型选的是Debug(Log.d),那么它和它前面的(Log.i,Log.w,Log.e)日志信息都会被显示,其他类型以此类推 2、......
  • Android-Service详解
    前言Service是长期运行在后台的应用程序组件。Service 是和应用程序在同一个进程中,所以应用程序关掉了,Service也会关掉。可以理解为Service是不能直接处理耗时操作的......
  • android ndk生成第三方库的so方法(ndk-build,Application.mk,Android.mk)
    PS:要转载请注明出处,本人版权所有。PS:这个只是基于《我自己》的理解,如果和你的原则及想法相冲突,请谅解,勿喷。前置说明  本文作为本人csdnblog的主站的备份。(BlogID......