帮助产品上报自定义行为事件。
如果游戏需要接入统计功能,需要额外导入GamesabaAnalysis的Sdk,并且按照步骤接入。
配置FireBase,下载
1.添加、配置应用到Firebase(控制台)(由产品人员进行配置)
2.下载 google-services.json
文件, 复制到项目的模块文件夹(通常是 app/
),请执行此操作。
Gradle集成
在SDK文件下的 附件/libs
目录下存以下的文件:
gamesamba-analytics-sdk-3.3.8.aar(GameSamba 统计SDK)
将以上这个aar文件导入到主工程libs
目录下
配置主工程的 build.gradle
在主工程的 build.gradle 文件中 dependencies下,添加依赖即可。
dependencies {
...
// 统计功能SDK (必需)
compile(name: 'gamesamba-analytics-sdk-3.3.8', ext: 'aar')
// Appsflyer模块
compile 'com.appsflyer:af-android-sdk:4.8.14@aar'
compile 'com.android.installreferrer:installreferrer:1.0'
// Google FireBase模块
compile 'com.google.firebase:firebase-core:16.0.4'
compile 'com.google.firebase:firebase-messaging:17.3.3'
}
Note: 如果你使用 Gradle 3.0.0 或者更高版本
, 务必使用 implementation
关键字替代 compile
如下:
dependencies {
...
// 统计功能SDK (必需)
implementation(name: 'gamesamba-analytics-sdk-3.3.8', ext: 'aar')
// Appsflyer模块
implementation 'com.appsflyer:af-android-sdk:4.8.14@aar'
implementation 'com.android.installreferrer:installreferrer:1.0'
// Google FireBase模块
implementation 'com.google.firebase:firebase-core:16.0.4'
implementation 'com.google.firebase:firebase-messaging:17.3.3'
}
在 build.gradle 文件底部添加FireBase插件:
dependencies {
...
}
//添加FireBase插件到底部
apply plugin: 'com.google.gms.google-services'
权限和组件
在 AndroidManifest.xml
中加入以下配置:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="您的应用包名">
...
<application
...>
...
<!--Appsflyer Key,接入统计SDK需要-->
<meta-data
android:name="com.ngames.analytics.AppsflyerKey"
android:value="@string/appsflyer_key" />
<!--Google统计,发送者ID,接入统计SDK需要,AF卸载事件也需要-->
<meta-data
android:name="com.ngames.analytics.GoogleSenderId"
android:value="@string/google_sender_id" />
<!--货币代码,例如: USD(美元),接入统计SDK需要-->
<meta-data
android:name="com.ngames.analytics.CurrencyCode"
android:value="@string/currency_code" />
<!--统计APP ID,接入统计SDK需要-->
<meta-data
android:name="com.ngames.analytics.AppId"
android:value="@string/analytics_app_id" />
<!-- Appsflyer广播接收器 -->
<receiver
android:name="com.appsflyer.MultipleInstallBroadcastReceiver"
android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
<!-- Appsflyer 追踪卸载服务-->
<service
android:name="com.appsflyer.FirebaseInstanceIdListener">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
</application>
</manifest>
在 res/values
中配置string.xml
, 配置如下 :
<!--统计模块-->
<!--统计APP ID,注:ngame平台:前缀‘ngames-xxx’;gamesamba平台:前缀‘gamesamba-xxx’-->
<string name="analytics_app_id">gamesamba-{app_id}</string>
<!--Appflyer的KEY,请将 appsflyer_key 替换为自己的Appflyer的KEY-->
<string name="appsflyer_key">appsflyer_key</string>
<!--货币代码,例如: USD(美元)-->
<string name="currency_code">USD</string>
<!--统计模块,谷歌卸载,发送者ID-->
<string name="google_sender_id">google_sender_id</string>
接入统计必须配置以上配置:
1.统计AppId配置
(1)analytics_app_id
注:ngame平台:前缀‘ngames-xxx’;gamesamba平台:前缀‘gamesamba-xxx’
2.Appsflyer配置:
(1)appsflyer_key
3.货币代码:
(1)currency_code
4.统计模块,谷歌卸载,发送者ID
(1)google_sender_id
这部分的KEY由产品提供:
混淆配置
如果你的apk最终会经过代码混淆,请在proguard配置文件中额外再加入以下代码:
-dontwarn com.android.installreferrer
-keep class com.appsflyer.** { *; }
-dontwarn com.appsflyer.**
-keep public class com.google.firebase.iid.FirebaseInstanceId {
public *;
}
初始化
(1)Application
在项目中的Application#onCreate初始化
//是否是调试模式
private boolean isDebug = false;
...
@Override
protected void onCreate() {
super.onCreate();
...
//初始化统计SDK
NgamesAnalyticsSdk.init(this, isDebug);
}
API原型
/**
* 初始化
* @param application
* @param isDebug 调试模式
*/
public static void init(Application application, boolean isDebug)
参数
Application application :应用的 Application
如果接入统计功能,第一步必须在 Application 初始化
(2)Activity
在主Activity#onCreate初始化
private NgamesAnalyticsSdk ngamesAnalyticsSdk;
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
//初始化Ngames统计SDK
ngamesAnalyticsSdk = NgamesAnalyticsSdk.getInstance(this);
}
API原型
/**
* 初始化SDK
* @param activity 当前Activity
* @return NgamesAnalyticsSdk
*/
public static NgamesAnalyticsSdk getInstance(Activity activity)
参数
Activity activity :当前Activity
记录统计事件
API介绍
记录统计事件
API原型
/**
* 记录统计事件
* @param eventName 事件名称,注意:应用内事件名称长度不得超过 45 个字符
* @param eventValues 记录内容(字典)
*/
public void recordEvent(String eventName, HashMap eventValues)
示例
//记录事件
HashMap<String, Float> map = new HashMap<>();
map.put("goods_id", 1);
map.put("goods_count", 10);
ngamesAnalyticsSdk.recordEvent("purchase", map);
记录购买事件
API介绍
追踪购买事件
API原型
/**
* 追踪购买事件
* @param itemId 商品ID
* @param itemType 商品类型
* @param revenue 收入
* @param currencyCode 货币单位(ISO 4217 代码),例如"USD","HKD","CNY","TWD"等,更多参考https://www.xe.com/iso4217.php
* @param serverID 服务器ID
*/
public void recordPurchaseEvent(String itemId, String itemType, float revenue, String currencyCode, String serverID)
示例
String itemId = "good1";//商品ID
String itemType = "good";//商品类型
float revenue = 2.99f;//商品价格
String currencyCode = "USD";//货币单位
String serverID = "1";//服务器ID
ngamesAnalyticsSdk.recordPurchaseEvent(itemId, itemType, revenue, currencyCode, serverID);
记录谷歌统计事件
API介绍
记录谷歌统计事件
API原型
/**
* 记录GoogleAnalysis事件
* @param eventName 事件名称
* @param params 事件统计参数
*/
public void recordGAEvent(String eventName, Map<String, String> params)
示例
//记录事件:Google Analytics
String eventName = "level";
Map<String, String> params = new HashMap<>();
params.put("up", "1");
ngamesAnalyticsSdk.recordGAEvent(eventName, params);
设置用户ID
API介绍
设置用户ID,便于统计平台统计
API原型
/**
* 设置客户用户ID
* 可以帮助您交叉引用自己的独有 ID 以及 AppsFlyer 的独有 ID 和其他设备的 ID。该 ID 与回传 IP 一同出现在 AppsFlyer CSV 报告中,用于与您的内部 ID 交叉引用。
* @param userId 用户ID
*/
public void setUserId(String userId)
示例
//设置用户ID
ngamesAnalyticsSdk.setUserId("100");
记录AF卸载事件
需要配置对应的(参考 本页开始的配置):
AndroidManifest.xml
中meta-data
的com.ngames.analytics.GoogleSenderId
AndroidManifest.xml
中service
的 com.appsflyer.FirebaseInstanceIdListener
res/values
中配置string.xml
的 google_sender_id