目录

Analytics Kit手工转换指导书

转换前须知

Analytics Kit SDK简介

华为分析服务预置大量分析模型,可帮助您清晰地了解用户的行为方式,从而实现用户、产品、内容的深度洞察,让您实现基于数据驱动的运营,可以就应用营销和产品优化制定明智的决策。

Analytics Kit采集端侧数据,用于支持Analytics功能:

数据模型对比

Google Analytics SDK封装了不同种类的事件匹配类型方便您使用,例如:屏幕视图,事件,社交,电子商务等。您在设置事件的操作类型后通过track()上报事件。

Analytics Kit SDK是基于事件分析数据模型,所有事件均使用事件名称和事件参数进行分类。分析数据模型采用了Event-Param-User模型来记录数据,通过不同的参数对事件进行描述,同时对用户的特征也进行了描述。

[h2]事件映射参考

Google Analytics Product Action

HUAWEI Analytics Kit Event

ACTION_ADD

ADDPRODUCT2CART

ACTION_CHECKOUT

STARTCHECKOUT

ACTION_CHECKOUT_OPTION

UPDATECHECKOUTOPTION

ACTION_CLICK

VIEWCONTENT

ACTION_DETAIL

VIEWPRODUCT

ACTION_PURCHASE

COMPLETEPURCHASE

ACTION_REFUND

REFUNDORDER

ACTION_REMOVE

DELPRODUCTFROMCART

ACTION_VIEW

CREATEORDER

[h2]事件属性映射参考

Google Analytics Property

HUAWEI Analytics Kit Property

category

CATEGORY

product_id

PRODUCTID

name

PRODUCTNAME

price

PRICE

quantity

QUANTITY

query

KEYWORDS

shipping

SHIPPING

tax

TAXFEE

order_id

TRANSACTIONID

currency

CURRNAME

couponCode

VOUCHER

如果事件名称(属性)不在上述映射关系中,则可以自定义事件名称,然后通过onEvent()上报。预置事件模型对应的属性参数请参见预置事件。

API对比

Google Analytics SDK与Analytics Kit SDK主要的API对比,具体API使用详情请参见API参考。

Google Analytics SDK

HUAWEI Analytics Kit SDK

说明

getInstance(Context context)

getInstance(Context context)

获取Instance单例。

enableAutoActivityReports(Application application)

setAnalyticsEnabled(boolean isEnabled)

是否打开打点采集能力。关闭后将不再记录任何数据。

send(Map<String, String> params)

onEvent(String eventId, Bundle params)

记录自定义事件。

enableAutoActivityTracking(boolean enabled)

NA

HMS Core Analytics SDK自动上报Activity页面事件。

HitBuilders.ScreenViewBuilder()

pageStart(String pageName, String pageClassOverride)

pageEnd(String pageName)

自定义页面开始和结束事件采集。

迁移步骤

[h2]集成SDK

集成SDK步骤请参见集成HMS Core SDK。

[h2]初始化

配置导入成功后,在第一个Activity的onCreate中初始化Analytics Kit,获得HiAnalyticsInstance实例。若agconnect-services.json文件不正确,则无法进行打点。

获取HiAnalyticsInstance实例后就可以调用onEvent打点数据了。

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    HiAnalyticsTools.enableLog(); 
    HiAnalyticsInstance instance = HiAnalytics.getInstance(this); 
    Bundle bundle = new Bundle();
    bundle.putString(CATEGORY, "screen");
    bundle.putString(PRODUCTNAME, "screen name");
    instance.onEvent(VIEWPRODUCT, bundle);
}

[h2]数据模型迁移

根据事件映射参考与事件属性映射参考的事件模型映射参考表,将Google Analytics SDK定义的事件转换为Analytics Kit SDK中对应的预制模型。相关事件模型参数请参见预置事件。

以下是Google Analytics SDK打点用户购买商品事件迁移到Analytics Kit SDK示例。

Context context = this;
// Google Analytics SDK打点用户购买商品事件
HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder();
builder.setProductAction(
    new ProductAction(ProductAction.ACTION_PURCHASE)
        .setTransactionId("TT-1234")
        .setTransactionRevenue(3.14)
        .setTransactionCouponCode("EXTRA100"))
    .addProduct(new Product().setId("PID-4321").setName("Water Monkeys!"));
Tracker tracker = new Tracker(); // 获取Tracker
tracker.send(builder.build());
// Analytics Kit SDK打点用户购买商品事件
Bundle purchaseBundle = new Bundle();
purchaseBundle.putString(TRANSACTIONID, "TT-1234");
purchaseBundle.putDouble(REVENUE, 3.14);
purchaseBundle.putString(VOUCHER, "EXTRA100");
HiAnalyticsInstance instance = HiAnalytics.getInstance(context);
instance.onEvent(COMPLETEPURCHASE, purchaseBundle );

[h2]注意事项

AppMeasurementReceiver

AppMeasurementReceiver()和onReceive(Context context, Intent intent)方法修改参考。

已经使用Convertor工具进行了转换。

修改前:

import org.xms.g.measurement.AppMeasurementReceiver;
…
@Override
public void onReceive(Context context, Intent intent) {
    …
    AppMeasurementReceiver receiver = new AppMeasurementReceiver();
    receiver.onReceive(context, intent);
    …
}

修改后:

import com.google.android.gms.measurement.AppMeasurementReceiver;
…
@Override
public void onReceive(Context context, Intent intent) {
    …
    AppMeasurementReceiver receiver;
    if (!org.xms.g.utils.GlobalEnvSetting.isHms()) {
        receiver = new AppMeasurementReceiver ();
        receiver.onReceive(context, intent);
    }
    …
}

AppMeasurementInstallReferrerReceiver

AppMeasurementInstallReferrerReceiver()和onReceive(Context context, Intent intent)方法修改参考。

已经使用Convertor工具进行了转换。

修改前:

import org.xms.g.measurement.AppMeasurementInstallReferrerReceiver;
…
@Override
public void onReceive(Context context, Intent intent) {
    …
    AppMeasurementInstallReferrerReceiver receiver = new AppMeasurementInstallReferrerReceiver();
    receiver.onReceive(context, intent);
    …
}

修改后:

import com.google.android.gms.measurement.AppMeasurementInstallReferrerReceiver;
…
@Override
public void onReceive(Context context, Intent intent) {
    …
    AppMeasurementInstallReferrerReceiver receiver;
    if (!org.xms.g.utils.GlobalEnvSetting.isHms()) {
        receiver = new AppMeasurementInstallReferrerReceiver();
        receiver.onReceive(context, intent);
    }
    …
}

setCurrentScreen(Activity, String, String)

HMS Core Analytics SDK默认会自动采集Activity页面事件,不需要手动埋点;非Activity的页面事件采集建议使用pageStart(String pageName, String pageClassOverride)和pageEnd(String pageName)接口。

[h2]Add HMS API

[h2]To HMS API