adjust-icon

SDKシグネチャーライブラリの実装

AdjustのSDKシグネチャーライブラリは、Adjust SDKのスタンドアローンプラグインとして設計されています。つまり、コードを変更したり、アプリでAdjust SDKを使用する方法を変更したりする必要はありません。プラグインをインストールすると、Adjust SDKによって作成された全てのリクエストが引き続き正常に機能します。

Before you begin

シグネチャーライブラリをUnityアプリに実装する前に、以下を確認してください。

  • 使用中のAndroid APIバージョンが 21以降 であること。
  • お使いのAdjust SDKバージョンが 4.37.2以降 であること。この要件は、Adjust SDKが間接的に使用されている場合でも適用されます。
  • Proguardを使用している場合、シグネチャーライブラリとAdjust SDKの両方で全く同じProguard設定を使用する必要があります。
  • 16KBのページサイズに揃えたシグネチャーライブラリにご興味がある場合は、Adjustの担当者にお問い合わせいただくか、support@adjust.comまでご連絡ください。

Migrating from Signature v1 or v2 library

以前にシグネチャーv1またはシグネチャーv2を使用していた場合は、シグネチャーライブラリを連携する前に以前のバージョンを削除する必要があります。これを行うには、以下の手順に従ってください。

  • 以前シグネチャーv1を実装したことがある場合は、プロジェクト内のシグネチャー機能を呼び出すコードを削除してください。
  • 以前シグネチャーv2を実施したことがある場合は、シグネチャーv2のライブラリをプロジェクトから削除してください。

Updating the Signature Library

Adjustシグネチャーライブラリを更新するには、既存のシグネチャーライブラリを新しいバージョンに置き換え、テストを再度実行してください。証明書が設定済みで変更されていない限り、Adjustのアプリロジックや設定をすぐに変更する必要はありません。シークレットIDが以下の基準を満たす場合は、必ず無効化してください

  • インストールレポートに役立たなくなった。
  • アプリの新バージョンを(全てのアプリのプラットフォームとストアで)リリースした。

Integrate the signature library (SDK v4 only)

Unityプロジェクトにシグネチャーライブラリを実装するには、以下の手順に従ってください。

  1. GitHubからシグネチャーライブラリの内容を取得します。
  2. Androidアーカイブ(.aar)ファイルをUnityプロジェクト内のAssets/Adjust/Androidディレクトリに配置します。
  3. iOS static framework(.a)をUnityプロジェクト内のAssets/Adjust/iOSディレクトリに配置します。

これで、シグネチャーライブラリがプロジェクトに実装されました。デジタル証明書を設定するには、次のセクションの手順に従ってください。

Set up your certificates in the Adjust suite

アプリにシグネチャーライブラリを実装すると、Adjust SDKからAdjustに送信される全てのリクエストが署名されます。また、Adjust SDKは、署名証明書のフィンガープリントなどの関連情報をAdjustのサーバーに送信します。

証明書フィンガープリントは、証明書内に保持される公開情報の暗号化ハッシュです。これはアプリの信頼性を検証するために使用できます。

シグネチャーライブラリでは、証明書フィンガープリントの信頼性を検証できません。フィンガープリントを含むリクエストをAdjustが信頼性のあるものとして受理するには、フィンガープリントをAdjustの許可リストに追加する必要があります。これを行うには、証明書フィンガープリントを取得し、Adjustに送信する必要があります。

From a keystore

独自のキーストアを使用している場合、またはAndroid Studioが生成したキーストアの場合は、以下の手順に従って証明書フィンガープリントを取得できます。

  1. アプリのリリースバージョン の署名に使用されるキーストアファイル(.jks)を見つけます。キーストアは、Google Play ストアに送信されるリリースバージョンの署名に使用されたものでなければなりません。キーストアが異なる場合、SDKリクエストは拒否されます。

  2. 以下のコマンドを実行して、キーをリストアップします。角括弧内の部分をお客様の情報に置き換えてください。

    Terminal window
    $ keytool -list -v -keystore <path/to/keystore.jks> -alias <your_key_alias>

    このコマンドを実行すると、キーストアのパスワードが要求されます。これは、キーストアの生成時に定義したパスワードです。

    最終的な出力結果は以下のようになります。

    Alias name: Key0
    Creation date: May 15, 2018
    Entry type: PrivateKeyEntry
    Certificate chain length: 1
    Certificate[1]:
    Owner: CN=[Adjust, GmbH.]
    Issuer: CN=[Adjust, GmbH.]
    Serial number: 642f1b62
    Valid from: Tue May 15 09:46:06 CEST 2018 until: Sat May 09
    09:46:06 CEST 2043
    Certificate fingerprints:
    MD5: E7:88:9F:8C:9D:F4:14:C1:CF:E8:4C:97:F3:F2:3A:E3
    SHA1:
    C4:BD:07:91:BC:09:F8:B6:15:CD:BC:A3:3F:BC:68:8B:C2:EF:4F:F5
    SHA256:
    55:FB:97:0F:46:0F:94:EC:07:EA:01:69:50:5A:20:3F:A0:91:60:A4:F
    1:33:58:EA:76:DC:54:9E:A7:6A:B9:1A
    Signature algorithm name: SHA256withRSA
    Subject Public Key Algorithm: 2048-bit RSA key
    Version: 3
  3. SHA-1フィンガープリントを保存し、Adjustの許可リストに追加します。

From Google Play Internal App Sharing

Google Play Internal App Sharingを使用している場合、組織のSHA-1証明書フィンガープリントと内部テスト証明書フィンガープリントの両方をAdjustに送信し、許可リストに登録する必要があります。

フィンガープリントを抽出する方法:

  1. Google Play Consoleからログインします。
  2. アプリを選択します。
  3. リリース管理(Release Management)—> アプリのリリース(App Releases)—> 内部アプリ共有の管理(App Signing)> アプリ証明書(App certificates) を選択します。
  4. 内部テスト証明書 と組織のキーストアの両方の SHA-1証明書のフィンガープリント を保存し、Adjustの許可リストに追加します。

Google Play Consoleの証明書ページのスクリーンショット

From Google Play App Signing

Google Play App Signingを使用している場合、組織のSHA-1証明書フィンガープリントと内部テスト用の証明書フィンガープリントの両方をAdjustに送信し、許可リストに登録する必要があります。

フィンガープリントを抽出する方法:

  1. Google Play Consoleからログインします。
  2. アプリを選択します。
  3. リリース管理(Release Management)—> アプリの署名(App Signing) を選択します。
  4. アプリ署名証明書アップロード証明書 の両方の SHA-1証明書フィンガープリント を保存します。

Google Play ConsoleのApp Signingページのスクリーンショット

From Huawei AppGallery App Signing

Huawei AppGallery App Signingを使用している場合、組織のSHA-1証明書フィンガープリントと内部テスト用証明書フィンガープリントの両方をAdjustに送信し、許可リストに登録する必要があります。

フィンガープリントを抽出する方法:

  1. AppGallery ConnectのApp Signingページに移動し、アプリ署名証明書(certificate.pem)をダウンロードします。

AppGallery ConnectのApp Signingページのスクリーンショット

  1. 証明書をダウンロードしたら、次のコマンドを実行して証明書のSHA-1フィンガープリントを出力します。

    Terminal window
    $ openssl x509 -fingerprint -in certificate.pem -noout -SHA1

    出力結果は以下のようになります。

    SHA1 Fingerprint=C4:BD:07:91:BC:09:F8:B6:15:CD:BC:A3:3F:BC:68:8B:C2:EF:4F:F5
  2. フィンガープリントを保存して、Adjustの許可リストに追加します。

Add your digital certificate fingerprints to Adjust’s allowlist

証明書のフィンガープリントを取得したら、以下を実行して許可リスト(ホワイトリスト)に追加してください。

  1. AppViewでアプリを選択し、アプリの詳細画面を開きます。
  2. 不正防止(Protection) タブを選択します。
  3. 疑わしいインストール(Suspicious install) セクションで、 編集(Edit) ボタンを選択します。
  4. Androidフィンガープリント(Android finterprinting) セクションで、 新規フィンガープリント(New fingerprint) を選択します。
  5. 表示されるテキストボックスにSHA-1フィンガープリントを貼り付けます。
  6. Add を選択します。

これで、フィンガープリントがアプリで許可リストに登録されました。

Test your app

Adjustテストコンソールを使用して、アプリにシグネチャーライブラリが実装されていることを確認できます。

シグネチャーライブラリの実装をテストするには、以下の手順に従ってください。

  1. インストール情報が送信されるようにするには、テストデバイスからアプリを完全に削除します。

  2. デバイスに関する全ての情報を消去するには、テストコンソールを使用してデバイスに関する情報を削除します。 また、 Adjust Insightsアプリ(iOSAndroidでご利用可能)で取得したアプリの広告IDをパスすることで、forget_deviceエンドポイントを使用することも可能です。 次の広告IDはいずれも使用できます:adidandroid_idgps_adididfaidfvimeioaid

    コールは以下のようになります。

    Terminal window
    $ curl -X POST 'https://app.adjust.com/forget_device?app_token={yourAppToken}&id={adid}'
  3. テストコンソールからデバイスのデータを削除したら、テストデバイスにアプリをインストールして起動し、インストール情報をAdjustに送信します。

  4. テストデバイスの広告IDをテストコンソールに入力し、インストールイベント情報を取得します。以下の点を確認してください。

    1. SignatureVerificationResultフィールドに次の値が表示されている: Valid Signature
    2. SignatureVersionフィールドに次の値が表示されている: 3

これらのフィールドが存在し、正しい情報が含まれている場合、シグネチャーライブラリは正常に実装されています。これらのフィールドに他の値が表示されている場合は、実装手順を再度確認するか、support@adjust.comまでお問い合わせください。

これで、シグネチャーライブラリがアプリに連携されました。 2回のアトリビューション期間が経過したら、 SDKシグネチャーの検証を有効化して、署名されたリクエストのみがAdjustで受理されるようにしてください。

Troubleshooting

AdjustSigSdk.aでの不明なCPUアーキテクチャー

Unity Editor 2018以降では、 Unknown CPU Architecture というエラーメッセージが表示される場合があります。このエラーメッセージは、UnityエディターがiOS static framework(.a)をiOS以外のプラットフォームに適用しようとする場合に表示されます。この問題を解決するには、 AdjustSigSdk.aファイルを選択し、 Import Settings メニューで iOS を除く全てのプラットフォームの選択を解除してください。

UnityエディターのAdjustSdk Import Settingsのスクリーンショット