Android AppsFlyer接入

7,612 阅读2分钟

小知识,大挑战!本文正在参与「程序员必备小知识」创作活动

概述

AppsFlyer Android SDK为Android应用提供安装和事件记录功能。该SDK可以与Java / Kotlin一起使用。

将SDK嵌入到您的应用中以记录:

  • 应用安装
  • 用户互动(例如,会话和应用内事件)

AppsFlyer:Android-SDK集成

SDK与Android平台的兼容性

  • 1、Android 4.0以上
  • 2、非移动Android平台,例如智能电视,包括亚马逊的Fire TV
  • 3、Android应用程式的店外市场,例如Amazon和Baidu

将SDK添加到项目

1、使用Gradle(推荐)添加SDK

  • Module-level /app/build.gradle before dependencies:
repositories { 
    mavenCentral()
}
  • 添加最新版本的AppsFlyerSDK作为依赖项
dependencies {
    implementation 'com.appsflyer:af-android-sdk:6.3.2'
}

2、手动添加SDK

com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE

所需权限

将以下权限添加到AndroidManifest.xml:

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

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

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<receiver
    android:name="com.appsflyer.SingleInstallBroadcastReceiver"
    android:exported="true">
    <intent-filter>
        <action android:name="com.android.vending.INSTALL_REFERRER" />
    </intent-filter>
</receiver>

实施并初始化SDK

1、要获取你的开发密钥

  • 转到应用的信息中心。

  • 在某个应用的右上角,点击。。。选择配置单击应用配制。

  • 你的开发密钥就找到了。

同一个账号下不管多少个应用开发密钥仅有一个(以包名区分应用)。

2、初始化SDK

import com.appsflyer.AppsFlyerConversionListener;
import com.appsflyer.AppsFlyerLib;
/**
  * 创建人:SCC
  * 功能描述:AppsFlyer接入
  */
public class MyApp extends Application {
    private static MyApp singleton;

    @Override
    public void onCreate() {
        super.onCreate();
        AppsFlyerConversionListener conversionListener = new AppsFlyerConversionListener() {
            @Override
            public void onConversionDataSuccess(Map<String, Object> conversionData) {
                for (String attrName : conversionData.keySet()) {
                    MLog.e("attribute: " + attrName + " = " + conversionData.get(attrName));
                }
            }
            @Override
            public void onConversionDataFail(String errorMessage) {
                MLog.e( "error getting conversion data: " + errorMessage);
            }
            @Override
            public void onAppOpenAttribution(Map<String, String> conversionData) {
                for (String attrName : conversionData.keySet()) {
                    MLog.e("attribute: " + attrName + " = " + conversionData.get(attrName));
                }
            }
            @Override
            public void onAttributionFailure(String errorMessage) {
                MLog.e("error onAttributionFailure : " + errorMessage);
            }
        };
        AppsFlyerLib.getInstance().init("你的开发密钥", conversionListener, getApplicationContext());
        AppsFlyerLib.getInstance().start(this);
    }
}

添加应用,直接上图

设置应用信息

  • Google Play
    • 已上架
    • 待批准/未发布
  • 第三方商店

Google 填包名没什么好讲的。

第三方商店

这个渠道名称,你设置AndroidMainfest.xml的时候要保持一致

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.scc.demo">
    ...
    <application>
       ...
      <meta-data
            android:name="CHANNEL"
            android:value="shanghai" />
    </application>

</manifest>

设置时区和币种

这就接入完了。怎么测试后面开整。iOS同理,直接上手就完了。

话不多说:注册链接送给你:hq1.appsflyer.com/auth/login