3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Huawei Adsの実装方法-インストールリファラー編

Last updated at Posted at 2021-02-09

Huawei Adsの実装方法-インストールリファラー編

インストールリファラーで取得できる情報が3つあります。

  • リファラーのパッケージ名
  • リファラーのクリックが行われたときのタイムスタンプ
  • インストールが開始されたときのタイムスタンプ

実装ステップ1

インストールリファラーの情報を受け取るリスナーを作ります。

private var installReferrerClient: InstallReferrerClient? = null

private var installReferrerStateListener = object : InstallReferrerStateListener{
    override fun onInstallReferrerSetupFinished(responseCode: Int) {
        when(responseCode) {
            InstallReferrerClient.InstallReferrerResponse.OK -> {
                installReferrerClient?.let {
                    try {
                        val referrerDetails: ReferrerDetails = it.installReferrer
                        Log.i(TAG, "リファラーのパッケージ名 = " + referrerDetails.installReferrer)
                        Log.i(TAG, "リファラーのクリックが行われたときのタイムスタンプ = " + referrerDetails.referrerClickTimestampMillisecond)
                        Log.i(TAG, "インストールが開始されたときのタイムスタンプ = " + referrerDetails.installBeginTimestampMillisecond)
                    } catch (exception: RemoteException) {
                        Log.e(TAG, exception.message, exception)
                    } catch (exception: IOException) {
                        Log.e(TAG, exception.message, exception)
                    } finally {
                        disconnectInstallReferrerClient()
                    }
                }
            }
            InstallReferrerClient.InstallReferrerResponse.FEATURE_NOT_SUPPORTED -> {
                Log.i(TAG, "FEATURE_NOT_SUPPORTED")
            }
            InstallReferrerClient.InstallReferrerResponse.SERVICE_UNAVAILABLE -> {
                Log.i(TAG, "SERVICE_UNAVAILABLE")
            }
            InstallReferrerClient.InstallReferrerResponse.SERVICE_DISCONNECTED -> {
                Log.i(TAG, "SERVICE_DISCONNECTED")
            }
            InstallReferrerClient.InstallReferrerResponse.DEVELOPER_ERROR -> {
                Log.i(TAG, "DEVELOPER_ERROR")
            }
        }
    }

    override fun onInstallReferrerServiceDisconnected() {
        Log.i(TAG, "onInstallReferrerServiceDisconnected")
    }
}

実装ステップ2

インストールリファラーのクライアントに接続します。

fun connectInstallReferrerClient(context: Context) {
    Completable.create{ emitter ->
        installReferrerClient = InstallReferrerClient
            .newBuilder(context)
            .setTest(false)
//            .setTest(true)    // テストの場合はtrueにする
            .build()
        installReferrerClient?.let {
            it.startConnection(installReferrerStateListener)
        }
        emitter.onComplete()
    }.subscribeOn(Schedulers.io())
        .subscribe()
}

テスト時の注意点

テストする前に、以下のテスト用ツールのソースコードをダウンロードしてビルドし、インストールする必要があります。
https://communityfile-drcn.op.hicloud.com/FileServer/getFile/cmtyPub/011/111/111/0000000000011111111.20201228164405.24541529505523316959624130552905:50511229010931:2800:A1CA4A2BB8B8AAA730E281C484A9B92934735813D70689D8FD3AC9A509B34DAD.zip

インストール後にそれを起動し、Write install referrer for testを選びます。
スクリーンショット 2020-10-01 155726.png

そして、テストデータを入れて、保存します。
スクリーンショット 2020-10-01 155726.png

Huawei Adsシリーズ

GitHub

HMS Ads Kit Demo : https://github.com/Rei2020GitHub/MyPublicProject/tree/master/AdsDemo

参考

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?