HUAWEI Ads Kit获取转化跟踪参数(AIDL方式),华为推快递服务push kitHUAWEI Ads Kit获取转化跟踪参数(AIDL方式)使用场景广告主App开发者也可直接调用广告服务(HUAWEI Ads Kit)的AIDL接口获取华为设备上的转化跟踪参数,这种集成方式不需要集成任何华为SDK。AIDL......
使用场景
广告主App开发者也可直接调用广告服务(HUAWEI Ads Kit)的AIDL接口获取华为设备上的转化跟踪参数,这种集成方式不需要集成任何华为SDK。AIDL接口获取到的转化跟踪参数与同一台设备上SDK接口获取到的转化跟踪参数相同。
调用流程
开发步骤
1.创建接口IPPSChannelInfoService的AIDL文件,放置在com.huawei.android.hms.ppskit包路径下,如下图:
2.将以下内容复制到AIDL文件中。
package com.huawei.android.hms.ppskit;
/**重要:请不要修改此AIDL文件的方法顺序*/
interface IPPSChannelInfoService{
String getChannelInfo();
}
3.创建一个类,实现Android原生的ServiceConnection接口。
a.实现ServiceConnection的onServiceConnected方法。
b.调用Android原生的IPPSChannelInfoService.Stub.asInterface方法获取IPPSChannelInfoService。
c.调用getChannelInfo方法获取转化跟踪参数。
private static final String TAG = InstallReferrerAidlActivity;
private final class InstallReferrerServiceConnection implements ServiceConnection {
private InstallReferrerServiceConnection() {
}
@Override
public void onServiceConnected(ComponentName componentName, IBinder iBinder) {
Log.i(TAG, onServiceConnected);
IPPSChannelInfoService service = IPPSChannelInfoService.Stub.asInterface(iBinder);
if (null != service) {
try {
String json = service.getChannelInfo();
parseChannelJson(json);
} catch (RemoteException e) {
Log.e(TAG, getChannelInfo Exception);
} finally {
getApplicationContext().unbindService(this);
}
}
}
@Override
public void onServiceDisconnected(ComponentName componentName) {
Log.i(TAG, onServiceDisconnected);
}
}
}
4.连接转化跟踪参数的AIDL服务。
private boolean bindService() {
// 创建一个InstallReferrerServiceConnection实例
InstallReferrerServiceConnection serviceConnection = new InstallReferrerServiceConnection();
// 创建一个Intent,Action是“com.huawei.android.hms.CHANNELSERVICE”
Intent intent = new Intent(com.huawei.android.hms.CHANNELSERVICE);
// 设置Intent的包名为”com.huawei.hwid”
intent.setPackage(com.huawei.hwid);
// 调用bindService连接转化跟踪参数的AIDL服务
boolean result = bindService(intent,serviceConnection,Context.BINDAUTOCREATE);
Log.i(TAG, bindService result: + result);
return result;
}
5.解析返回的JSON格式写转化跟踪参数。
private ReferrerDetails parseChannelJson(String channelJson) {
Log.i(TAG, parseChannelJson: + channelJson);
// 将JSON格式写转化跟踪参数
try {
JSONObject jsonObject = new JSONObject(channelJson);
// 跟踪参数
String channelInfo = jsonObject.optString(channelInfo);
// 安装时间戳
long installTimestamp = jsonObject.optLong(installTimestamp, 0);
// 点击时间戳
long clickTimestamp = jsonObject.optLong(clickTimestamp, 0);
ReferrerDetails referrerDetails = new ReferrerDetails(channelInfo, clickTimestamp, installTimestamp);
updateReferrerDetails(referrerDetails);
return referrerDetails;
} catch (JSONException e) {
Log.e(TAG, );
}
return null;
}
private void updateReferrerDetails(final String installReferrer, final long clickTimestamp,final long installTimestamp) {
Log.i(TAG, installReferrer: + installReferrer + , clickTimestamp: + clickTimestamp + , installTimestamp: + installTimestamp);
}
特别声明:以上文章内容仅代表作者本人观点,不代表ESG跨境电商观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与ESG跨境电商联系。
二维码加载中...
使用微信扫一扫登录
使用账号密码登录
平台顾问
微信扫一扫
马上联系在线顾问
小程序
ESG跨境小程序
手机入驻更便捷
返回顶部