HUAWEI Ads廣告服務(wù)(轉(zhuǎn)化跟蹤參數(shù))(二)

來源: 華為開發(fā)者聯(lián)盟官網(wǎng)
作者:華為開發(fā)者聯(lián)盟官網(wǎng)
時間:2021-03-11
17097
SDK方式是指通過HUAWEI Ads Kit提供的SDK接入開放能力,接入方式簡單,推薦使用此方式。

ux_design_webdesign_app_mobile_business_interface_flat-723651.jpg

4.集成轉(zhuǎn)化跟蹤參數(shù)開放能力(SDK方式)

SDK方式是指通過HUAWEI Ads Kit提供的SDK接入開放能力,接入方式簡單,推薦使用此方式。

1、集成SDK

步驟1 配置HUAWEI Ads SDK的Maven倉地址。

打開Android Studio項目級build.gradle文件,在allprojects->repositories里面配置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:ads-installreferrer:{version}'

}

步驟3 同步修改的文件

58cc0770a592db68.png

步驟4 配置混淆腳本(必選)

app/proguard-rules.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.FEATURE_NOT_SUPPORTED:

                Log.i(TAG, "FEATURE_NOT_SUPPORTED");

                break;

            case InstallReferrerClient.InstallReferrerResponse.SERVICE_UNAVAILABLE:

                Log.i(TAG, "SERVICE_UNAVAILABLE");

                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.CHANNEL_SERVICE"。

步驟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.SERVICE_ACTION);

    intent.setPackage(Constants.SERVICE_PACKAGE_NAME);

    boolean result = mContext.bindService(intent, mServiceConnection, Context.BIND_AUTO_CREATE);

    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);

    }

}

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于華為開發(fā)者聯(lián)盟官網(wǎng),本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
掃碼登錄
打開掃一掃, 關(guān)注公眾號后即可登錄/注冊
加載中
二維碼已失效 請重試
刷新
賬號登錄/注冊
個人VIP
小程序
快出海小程序
公眾號
快出海公眾號
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家