安卓卸载追踪 - Android Uninstall Tracking

AppsFlyer的卸载追踪功能能够帮助您获取某一应用的卸载数据,并对应至带来该安装的媒体平台。通过该指标,您可以对投入到相应的媒体平台中的广告预算或相关策略进行调整,以获取最高价值的用户。

前提

  • 一个含有AppsFlyer SDK的安卓应用;
  • GCM/Firebase Project 服务器密钥(如下描述)。

注意

  • 如果使用Firebase Messaging功能追踪卸载需要使用安卓SDK版本4.7.0或更高;
  • 如果您使用的是之前的SDK版本(4.3.8以上),可以使用GCM。
  • 如果您使用多InstanceIDListener服务,您可以创建您自己的监听器并把token传给AppsFlyer API,如下面所示。

 

如何启用AppsFlyer卸载追踪

请根据以下步骤来启用卸载追踪。

不使用GCM/Firebase Messaging的应用

如果你的应用并不使用谷歌的推送通知服务(GCM/Firebase),那么请参考以下说明:

  • 获取您的Firebase Project 服务器密钥(如果您还没有该信息,请创建一个Firebase project,并按照Firebase的说明获取该密钥)
  • 将获取到的服务器密钥填写在AppsFlyer的控制面板上;
  • 配置Firebase Messaging到您的应用上;
  • 将以下代码根据描述加入你的应用中;
    • Firebase Dependency加入到应用的uild.gradle文件中,如下所示:

dependencies {
 // ...
    compile 'com.google.firebase:firebase-messaging:10.0.1'
 // ...
}

 

  • 把以下代码加入应用的AndroidManifest.xml 文件中application标签里:
<application

 <!-- ... -->  

        <service

            android:name="com.appsflyer.FirebaseInstanceIdListener">

            <intent-filter>

                <action

  android:name="com.google.firebase.INSTANCE_ID_EVENT"/>

            </intent-filter>

        </service>

 <!-- ... -->

 </application>

 

使用Firebase Messaging功能的应用

如果你已经在应用中配置了Firebase Messaging,请参照下面的说明:

  • 获取您的Firebase project的服务器密钥;
  • 将获取到的服务器密钥填写在AppsFlyer控制面板上;
  • 将以下代码根据描述加入你的应用中:
    • InstanceIDListener 服务中的onTokenRefresh方法(a class extending com.google.android.gms.iid.InstanceIDListenerService),调用我们的API,如下面的例子:

 

import com.appsflyer.AppsFlyerLib;

import com.google.firebase.iid.FirebaseInstanceId;

import com.google.firebase.iid.FirebaseInstanceIdService;



public class MyInstanceIdService extends FirebaseInstanceIdService {



    @Override

    public void onTokenRefresh() {

    super.onTokenRefresh();

 

         // Get updated InstanceID token.

         FirebaseInstanceId instance = FirebaseInstanceId.getInstance();

         String refreshedToken;

         if (instance != null) {

             refreshedToken = instance.getToken();

 // ...

             sendTokenToMyBackend(refreshedToken); // example for general use case

 // ...

             AppsFlyerLib.getInstance().updateServerUninstallToken(getApplicationContext(), refreshedToken); // ADD THIS LINE HERE

         }

    }

}

 

使用Google Cloud Messaging(GCM)的应用

如果你的应用使用GCM,请根据下面的提示操作:

  • 获取您的GCM project密钥;
  • 将获取到的服务器密钥填写在AppsFlyer控制面板上;
  • 将以下代码根据描述加入你的应用中:
    • MainActivityonCreate方法中,将你的project中的SenderID(Project Number)传给AppsFlyer的SDK,如下面案例所示:
@Override

protected void onCreate(Bundle savedInstanceState) {

 // ...

     String senderId = "Your-Sender-ID"; // A.K.A Project Number;

     AppsFlyerLib.getInstance().enableUninstallTracking(senderId); // ADD THIS LINE HERE

 // ...

     AppsFlyerLib.getInstance().startTracking(getApplication(), "YOUR_DEV_KEY");

 // ...

}

 

  • InstanceIDListener 服务中的onTokenRefresh方法((a class extending com.google.android.gms.iid.InstanceIDListenerService))里,调用我们的API,如下面的例子:

 

import android.util.Log;

import com.appsflyer.AppsFlyerLib;

import com.google.android.gms.gcm.GoogleCloudMessaging;

import com.google.android.gms.iid.InstanceID;

import com.google.android.gms.iid.InstanceIDListenerService;



public class MyInstanceIdService extends InstanceIDListenerService {



    @Override

    public void onTokenRefresh() {

        super.onTokenRefresh();

 

        // Get updated InstanceID token.

        String senderId = "Your-Sender-ID"; // A.K.A Project Number;

        InstanceID instance = InstanceID.getInstance(getApplicationContext());

        try {

            String refreshedToken = instance.getToken(senderId, GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);

            if (refreshedToken != null) {

                AppsFlyerLib.getInstance().updateServerUninstallToken(getApplicationContext(), refreshedToken); // ADD THIS LINE HERE

            }

        } catch (Throwable e) {

            Log.e("MyInstanceIdService", "onTokenRefresh: Couldn't get the refreshed token.", e);

        }

    }

}

获取Firebase/GCM 服务器密钥

 

  1. 创建一个Firebase安卓应用项目,或将你的项目从Google Developer Console里转移过来;想了解更多信息,请参考该链接:

https://firebase.google.com/docs/notifications/android/console-audience#add_firebase_to_your_app

  1. 打开Firebase Console : https://console.firebase.google.com.
  2. 在Firebase Console页面,找到Project Settings(在页面左侧窗格点击在overview旁边的cogwheel);
  3. 在Cloud Messaging标签中, 找到GCM Project Number (Sender ID) 和 Server Key(请查看以下截图):
  • Sever Key  Firebase Messaging使用
  • Legacy Server key – GCM使用

https://support.appsflyer.com/hc/en-us/article_attachments/207033103/firebase.png

  1. 复制Sever key。
  • deprecated Google Developer Console来获取这些值

https://console.developers.google.com/apis/credentials.

AppsFlyer后台上输入Server Key

  1. 在AppsFlyer后台打开应用的控制面板;
  2. 在左侧选择App Settings;

  1. Firebase Server Key输入你刚刚获取的Server Key(GCM或Firebase Messaging都可使用该输入框)

 

在应用上配置Firebase-Messaging

 

当你已经在Firebase Console上创建project,你应该已经下载了你的project的JSON文件:google-services.json, 而且已经直接保存在application模块

  • 如果你还没有这个文件,你可以从Firebase Console的Project Settings里直接下载; 

然后你必须在project里添加Firebase-Messaging dependencies为了添加这个,你需要先在root级别build.gradle文件添加rules来包括google-service插件。

buildscript {

    // ...

    dependencies {

        // ...

        classpath 'com.google.gms:google-services:3.0.0' // ADD THIS LINE HERE

    }

}

之后,在你的module Gradle文件(通常是app/build.gradle),在文件的底部添加apply plugin line来启动Gradle plugin,然后在dependencies 模块中添加dependency

 

apply plugin: 'com.android.application'



android {

  // ...

}



dependencies {

  // ...

  compile 'com.google.firebase:firebase-messaging:10.0.1' // ADD THIS LINE AT THE BOTTOM OF THIS BLOCK

}



apply plugin: 'com.google.gms.google-services' // ADD THIS LINE AT THE BOTTOM OF THIS FILE



如果你收到了“Could not find..”的错误提示,确认你在Android SDK Manager中有最新版本的Google Repository。

SDK添加时相应变动

请查看AppsFlyer SDK对接文档-安卓中追踪应用卸载部分点击此处

 

AppsFlyer控制面板中查看卸载数据

卸载数据会在主控制面板的Aggregated Performance 表格中显示。

2016415日之后的卸载信息可被追踪到。

卸载信息每24小时更新一次。

声明:

GoogleAppsFlyer监测下载的方法不同,因此Google Play报告中的卸载数据与AppsFlyer的数据也不同。  

  • 该功能需要SDK版本为4.3或更高。
  • 自然安装的卸载追踪需要版本4.3.5
  • Google Cloud Messaging (GCM)支持安卓版本2.3或更高。
  • Pre-Android 4.0.4需要设备中有Google账号。 

了解更多信息,点击此处

这篇文章有帮助吗?
0 人中有 0 人觉得有帮助
还有其它问题?提交请求
由 Zendesk 提供技术支持