HUAWEI Ads廣告服務(轉化跟蹤參數)(二),基于位置的huaweiads干什么用的HUAWEI Ads廣告服務(轉化跟蹤參數)(二)4.集成轉化跟蹤參數開放能力(SDK方式)SDK方式是指通過HUAWEI Ads Kit提供的SDK接入開放能力,接入方式簡單,推薦使用此方式。1、集成SDK步驟1 配置HUAWE......
4.集成轉化跟蹤參數開放能力(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、創建轉化跟蹤參數狀態監聽器
實現InstallReferrerStateListener監聽器接口的兩個方法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);
}
};
在連接成功的回調中調用getInstallReferrer方法獲取轉化跟蹤參數。
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、創建InstallReferrerClient實例
通過builder配置和創建一個InstallReferrerClient實例。
開發步驟:
步驟1 調用InstallReferrerClient.newBuilder創建一個Builder實例。
步驟2 調用build創建InstallReferrerClient實例。
InstallReferrerSdkUtil.java
mReferrerClient=InstallReferrerClient.newBuilder(mContext).build();
4、連接轉化跟蹤參數服務
建立與轉化跟蹤參數服務的連接,不要在主線程中調用該方法。
開發步驟:
步驟1 設置startConnection的監聽器為已創建的InstallReferrerStateListener監聽器。
步驟2 在子線程中調用startConnection方法連接服務。
InstallReferrerSdkUtil.java
mReferrerClient.startConnection(installReferrerStateListener);
5.集成轉化跟蹤參數開放能力(AIDL方式)
1、新增AIDL接口文件
在工程中新增一個aidl接口文件,包名為com.huawei.android.hms.ppskit,文件名稱為IPPSChannelInfoService.aidl,拷貝下面內容到文件中。
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、創建一個類,實現ServiceConnection接口。
開發步驟:
步驟1 實現ServiceConnection的onServiceConnected方法。
步驟2 調用IPPSChannelInfoService.Stub.asInterface方法獲取IPPSChannelInfoService。
步驟3 調用getChannelInfo方法獲取轉化跟蹤參數。
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、連接轉化跟蹤參數的AIDL服務
開發步驟:
步驟1 創建一個InstallReferrerServiceConnection實例。
步驟2 創建一個Intent,Action是com.huawei.android.hms.CHANNELSERVICE。
步驟3 設置Intent的包名為com.huawei.hwid。
步驟4 調用bindService連接轉化跟蹤參數的AIDL服務。
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、斷開轉化跟蹤參數的AIDL服務
使用完AIDL接口后,應該主動斷開服務連接。
InstallReferrerAidlUtil.java
private void unbindService() {
if (null != mServiceConnection) {
unbindService(mServiceConnection);
}
}
特別聲明:以上文章內容僅代表作者本人觀點,不代表ESG跨境電商觀點或立場。如有關于作品內容、版權或其它問題請于作品發表后的30日內與ESG跨境電商聯系。
二維碼加載中...
使用微信掃一掃登錄
使用賬號密碼登錄
平臺顧問
微信掃一掃
馬上聯系在線顧問
小程序
ESG跨境小程序
手機入駐更便捷
返回頂部