HUAWEI Ads廣告服務(wù)(轉(zhuǎn)化跟蹤參數(shù))(二),基于位置的huaweiads干什么用的HUAWEI Ads廣告服務(wù)(轉(zhuǎn)化跟蹤參數(shù))(二)4.集成轉(zhuǎn)化跟蹤參數(shù)開放能力(SDK方式)SDK方式是指通過HUAWEI Ads Kit提供的SDK接入開放能力,接入方式簡單,推薦使用此方式。1、集成SDK步驟1 配置HUAWE......
4.集成轉(zhuǎn)化跟蹤參數(shù)開放能力(SDK方式)
SDK方式是指通過HUAWEI Ads Kit提供的SDK接入開放能力,接入方式簡單,推薦使用此方式。
1、集成SDK
步驟1 配置HUAWEI Ads SDK的Maven倉地址。
打開Android Studio項目級build.gradle文件,在allprojectsrepositories里面配置SDK的Maven倉地址。
allprojects {
repositories {
google()
jcenter()
maven { url https://developer.huawei.com/repo/ }
}
}
步驟2 配置依賴
打開子工程app下的build.gradle文件,在dependencies新增SDK的依賴,并將{version}替換為最新HUAWEI Ads SDK版本號,參見版本更新說明。
dependencies {
implementation com.huawei.hms:adsinstallreferrer:{version}
}
步驟3 同步修改的文件
步驟4 配置混淆腳本(必選)
app/proguardrules.pro
keep class com.huawei.hms.ads.**{*;}
keep interface com.huawei.hms.ads.**{*;}
2、創(chuàng)建轉(zhuǎn)化跟蹤參數(shù)狀態(tài)監(jiān)聽器
實現(xiàn)InstallReferrerStateListener監(jiān)聽器接口的兩個方法onInstallReferrerSetupFinished和onInstallReferrerServiceDisconnected,代碼示例如下:
private InstallReferrerStateListener installReferrerStateListener = new InstallReferrerStateListener() {
@Override
public void onInstallReferrerSetupFinished(int responseCode) {
switch (responseCode) {
case InstallReferrerClient.InstallReferrerResponse.OK:
Log.i(TAG, connect ads kit ok);
get();
break;
case InstallReferrerClient.InstallReferrerResponse.FEATURENOTSUPPORTED:
Log.i(TAG, FEATURENOTSUPPORTED);
break;
case InstallReferrerClient.InstallReferrerResponse.SERVICEUNAVAILABLE:
Log.i(TAG, SERVICEUNAVAILABLE);
break;
default:
Log.i(TAG, responseCode: + responseCode);
break;
}
}
@Override
public void onInstallReferrerServiceDisconnected() {
Log.i(TAG, onInstallReferrerServiceDisconnected);
}
};
在連接成功的回調(diào)中調(diào)用getInstallReferrer方法獲取轉(zhuǎn)化跟蹤參數(shù)。
InstallReferrerSdkUtil.java
private void get() {
if (null != mReferrerClient) {
try {
ReferrerDetails referrerDetails = mReferrerClient.getInstallReferrer();
if (null != referrerDetails null != mCallback) {
mCallback.onSuccuss(referrerDetails.getInstallReferrer(),
referrerDetails.getReferrerClickTimestampMillisecond(),
referrerDetails.getInstallBeginTimestampMillisecond());
}
} catch (RemoteException e) {
Log.i(TAG, getInstallReferrer RemoteException: + e.getMessage());
} catch (IOException e) {
Log.i(TAG, getInstallReferrer IOException: + e.getMessage());
} finally {
disconnect();
}
}
}
3、創(chuàng)建InstallReferrerClient實例
通過builder配置和創(chuàng)建一個InstallReferrerClient實例。
開發(fā)步驟:
步驟1 調(diào)用InstallReferrerClient.newBuilder創(chuàng)建一個Builder實例。
步驟2 調(diào)用build創(chuàng)建InstallReferrerClient實例。
InstallReferrerSdkUtil.java
mReferrerClient=InstallReferrerClient.newBuilder(mContext).build();
4、連接轉(zhuǎn)化跟蹤參數(shù)服務(wù)
建立與轉(zhuǎn)化跟蹤參數(shù)服務(wù)的連接,不要在主線程中調(diào)用該方法。
開發(fā)步驟:
步驟1 設(shè)置startConnection的監(jiān)聽器為已創(chuàng)建的InstallReferrerStateListener監(jiān)聽器。
步驟2 在子線程中調(diào)用startConnection方法連接服務(wù)。
InstallReferrerSdkUtil.java
mReferrerClient.startConnection(installReferrerStateListener);
5.集成轉(zhuǎn)化跟蹤參數(shù)開放能力(AIDL方式)
1、新增AIDL接口文件
在工程中新增一個aidl接口文件,包名為com.huawei.android.hms.ppskit,文件名稱為IPPSChannelInfoService.aidl,拷貝下面內(nèi)容到文件中。
app/src/main/aidl/com/huawei/android/hms/ppskit/IPPSChannelInfoService.aidl
//IPPSRemoteService.aidl
package com.huawei.android.hms.ppskit;
/*
*Important:Do not modify the method sequence of the AIDL file.
*/
interface IPPSChannelInfoService{
String getChannelInfo();
}
2、創(chuàng)建一個類,實現(xiàn)ServiceConnection接口。
開發(fā)步驟:
步驟1 實現(xiàn)ServiceConnection的onServiceConnected方法。
步驟2 調(diào)用IPPSChannelInfoService.Stub.asInterface方法獲取IPPSChannelInfoService。
步驟3 調(diào)用getChannelInfo方法獲取轉(zhuǎn)化跟蹤參數(shù)。
InstallReferrerAidlUtil.java
private final class InstallReferrerServiceConnection implements ServiceConnection {
private InstallReferrerServiceConnection() {
}
@Override
public void onServiceConnected(ComponentName componentName, IBinder iBinder) {
Log.i(TAG, onServiceConnected);
mService = IPPSChannelInfoService.Stub.asInterface(iBinder);
if (null != mService) {
try {
String channelJson = mService.getChannelInfo();
Log.i(TAG, channelJson: + channelJson);
JSONObject jsonObject = new JSONObject(channelJson);
String installReferrer = jsonObject.optString(channelInfo);
long clickTimestamp = jsonObject.optLong(clickTimestamp, 0);
long installTimestamp = jsonObject.optLong(installTimestamp, 0);
if (null != mCallback) {
mCallback.onSuccuss(installReferrer, clickTimestamp, installTimestamp);
} else {
mCallback.onFail(install referrer is empty);
}
} catch (RemoteException e) {
Log.e(TAG, getChannelInfo RemoteException);
mCallback.onFail(e.getMessage());
} catch (Exception e) {
Log.e(TAG, getChannelInfo Excepition);
mCallback.onFail(e.getMessage());
} finally {
unbindService();
}
}
}
@Override
public void onServiceDisconnected(ComponentName componentName) {
Log.i(TAG, onServiceDisconnected);
mService = null;
}
}
3、連接轉(zhuǎn)化跟蹤參數(shù)的AIDL服務(wù)
開發(fā)步驟:
步驟1 創(chuàng)建一個InstallReferrerServiceConnection實例。
步驟2 創(chuàng)建一個Intent,Action是com.huawei.android.hms.CHANNELSERVICE。
步驟3 設(shè)置Intent的包名為com.huawei.hwid。
步驟4 調(diào)用bindService連接轉(zhuǎn)化跟蹤參數(shù)的AIDL服務(wù)。
InstallReferrerAidlUtil.java
private boolean bindService() {
Log.i(TAG, bindService);
if (null == mContext) {
Log.e(TAG, context is null);
return false;
}
mServiceConnection = new InstallReferrerServiceConnection();
Intent intent = new Intent(Constants.SERVICEACTION);
intent.setPackage(Constants.SERVICEPACKAGENAME);
boolean result = mContext.bindService(intent, mServiceConnection, Context.BINDAUTOCREATE);
Log.i(TAG, bindService result: + result);
return result;
}
4、斷開轉(zhuǎn)化跟蹤參數(shù)的AIDL服務(wù)
使用完AIDL接口后,應(yīng)該主動斷開服務(wù)連接。
InstallReferrerAidlUtil.java
private void unbindService() {
if (null != mServiceConnection) {
unbindService(mServiceConnection);
}
}
特別聲明:以上文章內(nèi)容僅代表作者本人觀點,不代表ESG跨境電商觀點或立場。如有關(guān)于作品內(nèi)容、版權(quán)或其它問題請于作品發(fā)表后的30日內(nèi)與ESG跨境電商聯(lián)系。
二維碼加載中...
使用微信掃一掃登錄
使用賬號密碼登錄
平臺顧問
微信掃一掃
馬上聯(lián)系在線顧問
小程序
ESG跨境小程序
手機入駐更便捷
返回頂部