HUAWEI Ads Kit獲取轉(zhuǎn)化跟蹤參數(shù)(AIDL方式)

來源: 華為開發(fā)者聯(lián)盟官網(wǎng)
作者:華為開發(fā)者聯(lián)盟官網(wǎng)
時間:2020-12-31
17445
廣告主App開發(fā)者也可直接調(diào)用廣告服務(HUAWEI Ads Kit)的AIDL接口獲取華為設備上的轉(zhuǎn)化跟蹤參數(shù),這種集成方式不需要集成任何華為SDK。

MDliYzUwOC5qcGVn.jpg

使用場景

廣告主App開發(fā)者也可直接調(diào)用廣告服務(HUAWEI Ads Kit)的AIDL接口獲取華為設備上的轉(zhuǎn)化跟蹤參數(shù),這種集成方式不需要集成任何華為SDK。AIDL接口獲取到的轉(zhuǎn)化跟蹤參數(shù)與同一臺設備上SDK接口獲取到的轉(zhuǎn)化跟蹤參數(shù)相同。

調(diào)用流程

0000000000011111111.20201230140012.41722680608085420631485358986639_50511230060630_2800_03A39F645053454401C57875290D8F34FCAEB021AD87F3A7B3A84052BF01D975.png

開發(fā)步驟

1.創(chuàng)建接口IPPSChannelInfoService的AIDL文件,放置在com.huawei.android.hms.ppskit包路徑下,如下圖:

0000000000011111111.20201230140012.58612921815270468466951765571305_50511230060630_2800_7B5E606F7DDAF7139C993466A68A623D1F30FE8D229E58BE6F5863AFDE170740.jpg

2.將以下內(nèi)容復制到AIDL文件中。

package com.huawei.android.hms.ppskit;

/**重要:請不要修改此AIDL文件的方法順序*/

interface IPPSChannelInfoService{

String getChannelInfo();

}

3.創(chuàng)建一個類,實現(xiàn)Android原生的ServiceConnection接口。

a.實現(xiàn)ServiceConnection的onServiceConnected方法。

b.調(diào)用Android原生的IPPSChannelInfoService.Stub.asInterface方法獲取IPPSChannelInfoService。

c.調(diào)用getChannelInfo方法獲取轉(zhuǎn)化跟蹤參數(shù)。

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.連接轉(zhuǎn)化跟蹤參數(shù)的AIDL服務。

private boolean bindService() {

    // 創(chuàng)建一個InstallReferrerServiceConnection實例

    InstallReferrerServiceConnection serviceConnection = new InstallReferrerServiceConnection();

    // 創(chuàng)建一個Intent,Action是“com.huawei.android.hms.CHANNEL_SERVICE”

    Intent intent = new Intent("com.huawei.android.hms.CHANNEL_SERVICE");

    // 設置Intent的包名為”com.huawei.hwid”

    intent.setPackage("com.huawei.hwid");

    // 調(diào)用bindService連接轉(zhuǎn)化跟蹤參數(shù)的AIDL服務

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

    Log.i(TAG, "bindService result: " + result);

    return result;

}

5.解析返回的JSON格式寫轉(zhuǎn)化跟蹤參數(shù)。

private ReferrerDetails parseChannelJson(String channelJson) {

    Log.i(TAG, "parseChannelJson: " + channelJson);

    // 將JSON格式寫轉(zhuǎn)化跟蹤參數(shù)

    try {

        JSONObject jsonObject = new JSONObject(channelJson);

        // 跟蹤參數(shù)

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

}

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