SDKシグネチャー
Adjust SDKはインストールの正当性を確認し、スプーフィングされたトラフィックからデータセットを保護するために、デジタルシグネチャーアプリシークレットから算出)を送信します。管理画面内でアプリシークレットを作成してAdjust SDKに実装すると、Adjustサーバーがレポートされたすべてのインストールの正当性を効率的に確認し、不正なアクティビティを拒否します。この機能を利用することにより、アトリビューションデータの正確性と安全性を確保できます。 

注:

  • この機能はAdjustのすべてのお客様にご利用いただけますが、管理画面には自動的に表示されません。SDKシグネチャーの実装をご希望の場合は、担当のアカウントマネージャーまたはsupport@adjust.comまでお問い合わせください。
  • この機能を使用するには、Adjust SDKバージョン4.12以降の実装が必要となります。

アプリシークレットの管理方法

アプリシークレットを作成

手順

Adjust管理画面にて
  1. アプリに移動して、アプリオプションの (▲) ボタンをクリックします。
  2. その他の設定(All Settings) > SDKシグネチャー (SDK Signature)を選択します。
  3. (画面下部の)新規アプリシークレットを作成(CREATE NEW APP SECRET)を選択して、アプリシークレットを生成します。
  4. (任意)アプリシークレット名(Name App Secret)フィールドにアプリシークレット名を入力します。
    • 推奨:アプリシークレットとアプリストア名を含むアプリバージョンを入力することをお勧めします
  5. (任意)開発担当者のメールアドレスを入力して、実装のために必要なアプリシークレット情報を送ります。送られるこのメールには、アプリトークン、アプリシークレット、アプリシークレットバージョン、その他重要なSDK資料へのリンクが含まれます。
  6. 保存(SAVE CHANGES)を選択します。
アプリシークレットのリストに、新しいアプリシークレットが表示されます。各アプリシークレットには、作成日順に1から番号付けされたシークレットIDが割り当てられます。

アプリシークレット名は、アプリシークレットの横にある編集(鉛筆)アイコンを選択すれば、いつでも編集できます。

:アプリシークレットが有効になる前に、アプリ開発者がアプリのAdjust SDKにアプリシークレットを連携してください。

Adjust SDKにアプリシークレットを実装 

アプリシークレットを作成後、アプリストアへ提出する前に、Adjust SDKに連携する必要があります。

開発者向けの手順については、下記GitHubリポジトリをご覧ください。

アプリシークレットを無効化

社内でのデータ漏洩が疑われる場合は、アプリシークレットを無効化する必要があります。アプリシークレットの無効化のタイミングは、データ分析の担当者が決定するよう推奨します。また、無効化されたアプリシークレットの再有効化はいつでも行うことができます。

手順

Adjust管理画面にて
  1. アプリに移動して、アプリオプションの (▲) ボタンをクリックします。
  2. その他の設定(All Settings) > SDKシグネチャー (SDK Signature)を選択します。
  3. 無効化するアプリシークレットの横にある、無効化(電源)アイコンを選択します。
  4. 無効化(DEACTIVATE)を選択します。
アプリシークレットの無効化は、即時反映されます。 

無効化されたアプリシークレットと共にレポートされたアプリのインストールはすべて拒否され、Untrusted Devicesの下に分類されます。Adjustは、これらの拒否された端末によるセッションとイベントの計測を継続しますが、この情報はAdjustアドフラウド防止機能を使用している場合のみ、管理画面のレポートに表示されます。

アプリシークレットを再有効化

アプリシークレットを誤って無効化した場合や、無効化後にトラフィックに不可解な異常が認められる場合などのやむを得ない場合を除き、アプリシークレットの再有効化を行わないでください。

手順

Adjust管理画面にて
  1. アプリに移動して、アプリオプションの (▲) ボタンをクリックします。
  2. その他の設定 (All Settings) > SDKシグネチャーを選択します。
  3. 無効化されているアプリシークレットを表示(Show deactivated secrets)をオンにします。
  4. 再有効化する無効化されたアプリシークレットの横にある、有効化(電源)アイコンを選択します。
再有効化されたアプリシークレットは、有効なアプリシークレットの一覧に表示されます。再有効化されたアプリシークレットは、すべて元のアプリシークレットIDを保持しています。

アプリシークレットの再有効化は、即時反映されます。無効化されている間に拒否されたインストールが、遡って管理画面の履歴データに追加されることはありません。無効化されている間に拒否されたインストールはすべて、拒否されたままになります。 

効果的な活用方法

アプリシークレットは極めて柔軟に使用できますが、最大限に活用するための推奨事項を以下にご案内いたします。

アプリシークレット名

アプリシークレット名を入力する際は、アプリの関連するバージョン、およびアプリストアを含めることをおすすめします。例:version 2.3-Play Store

アプリシークレットの作成時

アプリのバージョンをリリースするたびに、アプリシークレットを作成することをお勧めします。また、アプリストアごと(Google PlayストアやAmazonアプリストアなど)に、プリインストールキャンペーン用に個別のアプリシークレットを生成することもお勧めします。

アプリシークレットの無効化と再有効化

アプリ開発の担当者ではなく、データ分析の担当者がアプリの無効化のタイミングを決定してください。

アプリシークレットの無効化

Adjustは、アプリシークレットがインストールレポートに役立っていない場合、または(すべてのアプリプラットフォームおよびストアで)新バージョンのアプリをリリースが完了した場合は、アプリシークレットを無効化することをお勧めします。無効化を行わないと、管理画面のレポートやコールバックから大量のデータが失われる可能性があります。

社内でデータ漏洩が疑われる場合にも、アプリシークレットの無効化をお勧めします。アプリシークレットが外部に公開されている場合は、無効化する必要があります。 

アプリシークレットの再有効化

通常、アプリシークレットの再有効化は推奨されません。以下に該当する場合にのみ、再有効化を検討してください。 
  • アプリシークレットを誤って無効化してしまった場合
  • 無効化後にトラフィックに不可解な変化(たとえば、インストール数の大幅かつ不可解な減少)が認められる場合

SDKシグネチャーの適用

デフォルトでは、新規アプリのSDKシグネチャーはすべてオフとなっています。

SDKシグネチャーを適用させるには、インストールが正当で有効なアプリシークレットが含まれている必要があります。無効または無効化されたアプリシークレットとともに送信されたインストールはすべて拒否されます。アプリシークレットなしで送信されたインストール(すなわち、すべての旧バージョンのアプリ)もすべて拒否されます。 

SDKシグネチャーの適用を無効にすると、Adjustがアプリシークレットなしで送信されたインストールを許可するようになるため、慎重に判断してください。SDKシグネチャー適用の設定は、アプリシークレットなしで送信されたインストールにのみ反映されます。無効または無効化されたアプリシークレットによるインストールは、この設定にかかわらず、必ず拒否されます。

アプリシークレットの統計情報

アプリシークレットの統計情報を表示する

手順

Adjust管理画面にて
  1. アプリに移動して、アプリオプションの (▲) ボタンをクリックします。
  2. その他の設定(All Settings) > SDKシグネチャー (SDK signature)を選択します。
  3. シークレットのレポートを表示(VIEW SECRET STATS)を選択します。

アプリシークレット情報に表示されるデータ

そのようなインストールがあった場合はグラフの左側に、Invalid SecretNo Secretなどのアプリシークレットが表示されます。アプリシークレットの上にカーソルを置き、プラスアイコン(+)を選択すると、そのアプリシークレットのデータをグラフに追加することができます。アプリシークレットの情報をグラフから削除する場合は、左側のセクションまたはグラフ上部に表示されたアプリシークレット名の上にカーソルを置き、マイナスアイコン(-)を選択します。

グラフ上の実線は許可されたインストール、点線は拒否されたインストールを表します。

アプリのAdjust SDKがサンドボックス環境でのインストールは、このグラフには表示されません。

グラフの上にカーソルを移動すると、特定の時点の値が表示されます。現在カーソルを置いている日付がグラフの真上に表示され、その値は画面左上の該当するシークレットに表示されます。これらのセクションの1つにカーソルを合わせると、そのラインがグラフ上で単独に表示されます。

国別にインストールを確認するには、左側のセクションでアプリシークレットを選択してください。

グループ化(時間、日、週、または月)

グラフの上にあるこのフィルターを使用して、グラフに表示されるデータポイントの数を変更できます。使用できるオプションは、選択した期間によって異なりますが、全部で4つのオプションがあります(時間、および)。

時間を選択すると、選択した期間の毎時間のデータポイントがグラフに表示されます。これは、ユーザーのアクティビティが時間帯によってどのように変化するかを確認する場合に便利です。

を選択すると、選択した期間の毎月のデータポイントが1つのみ表示されます。これにより、長期にわたるインストールアクティビティの変化を全般的に把握できます。

線形または対数

このフィルターは、グラフのy軸の表示に影響します。線形を選択するとデータ範囲に同じ重みが与えられ、グラフのy軸の同量を占めることになります。このビューの欠点は、多くのアクティビティがグラフの下の範囲で行われ、上の範囲であまり行われない場合、グラフの下部にデータが凝縮され、何が起こっているのか見極めるのが難しいことです。

対数を選択すると、各データ範囲の下にデータ範囲の半分のスペースが与えられるため、y軸を上に移動すると各データ範囲のスペースが徐々に減少します。これにより下の範囲のスペースが増え、データを確認しやすくなります。

対数のy軸は、下の範囲と上の範囲が実際よりもはるかに近接して表示される場合があり、誤解を招く恐れがあることに注意してください。2つのオプションを切り替えることにより、表示されたデータを包括的に理解できます。

よくあるご質問

デジタルシグネチャーとは? 

デジタルシグネチャーは、デジタルのメッセージやドキュメントの認証に使用される数学的手法です。デジタルシグネチャーは、メッセージが安全に送信され、送信中にデータ漏洩が発生していないことを示す設計となっています。

アプリシークレットとは

アプリシークレットは、5つの整数を組み合わせたものです。Adjustは、AdjustのサーバーにSDKトラフィックを送信する際に、この値を使用して重要なデータポイントをハッシュします。サーバーでは、Adjustがこのハッシュ値に基づいてインストールの正当性を確認することができます。アプリシークレットは、SDKシグネチャーの算出に非常に有効で、(Adjust管理画面からエクスポートされた)プレーンテキスト形式のみを使用して導き出すことができます。 

効果を最大限に高めるため、下記にもとづいて新しいアプリシークレットを作成することをお勧めします。
  • 各種プラットフォーム(iOS、Androidなど)
  • 新しいアプリバージョンのリリース

アプリシークレットを実装する方法

アプリシークレットを作成したら、実装のため、アプリシークレットIDとともに開発者に送信します。手順については、関連するAdjust SDKのREADMEをご確認ください。

管理画面でのデータの確認方法

アプリシークレットのパフォーマンスは、前述したアプリシークレットのレポート画面に表示されます。

拒否されたインストールは、管理画面の不正ビューに表示されます。無効なシグネチャーが原因で拒否されたインストールは、Untrusted Devices > Invalid Signatureに分類されます。Adjustのアドフラウド防止機能をご利用でない場合、拒否されたインストールはAdjustのレポートに表示されません

シグネチャーが無効な場合とシグネチャーが無い場合の違いは?

Adjustがアプリシークレットに基づいて算出したシグネチャーと一致しない場合、そのシグネチャーは無効とみなされます。無効なシグネチャーには、不正なシグネチャーと、無効化されたアプリシークレットから算出されたシグネチャーが含まれます。

アプリのインストール時にシグネチャーが一切含まれていない場合は、シグネチャーがないと見なされます。SDKシグネチャーの適用がオンになっている場合のみ、シグネチャーを含まないインストールが拒否されます。

拒否されたインストールアクティビティをAdjustから受け取る方法は?

SDKシグネチャーが無効または含まれていないためにインストールが拒否された場合、Adjustのリアルタイムコールバック機能またはクラウドストレージのCSVアップロードを通じて通知を受けることができます。拒否されたインストールまたは拒否されたリアトリビューションコールバックに{rejection_reason}のプレースホルダーを追加すると、拒否されたインストールまたはリアトリビューションの理由が通知されます。もしくはCSV定義に{rejection_reason}を追加します。

:Adjustのアドフラウド防止機能を使用している場合は、拒否されたインストールおよびリアトリビューションのコールバックのみを受け取ることが可能です。
リアルタイムコールバックの設定手順
Adjust管理画面にて
  1. アプリに移動して、アプリオプションの (▲) ボタンをクリックします。
  2. その他の設定(All Settings) > ローデータエクスポート(Raw Data Export) > リアルタイムコールバック(Real-Time Callbacks)を選択します。
  3. 拒否されたインストールまたは拒否されたリアトリビューションの横にある、編集(鉛筆)アイコンを選択します。
  4. コールバックURLを入力し、拒否理由のパラメータ値を追加します。
    • 指定するパラメータを入力します。これはサーバーの設定に合わせてカスタマイズできます。
    • 値は、{rejection_reason}とします。
    • rejected_install_reason={rejection_reason}
  5. アップデート(UPDATE)を選択します。
SDKシグネチャーが無効または含まれないことが原因でインストールやリアトリビューションが拒否された場合は、コールバックを通じてrejected_install_reason=invalid_signatureなどが送られてきます。

SDKシグネチャーの適用がオンになっている場合のみ、シグネチャーを含まないインストールが拒否されます。
Amazon S3バケットのエクスポート設定手順
Adjust管理画面にて
  1. アプリに移動して、アプリオプションの (▲) ボタンをクリックします。
  2. その他の設定(All Settings) > ローデータエキスポート(Raw Data Export) > CSVアップロード(CSV Upload)を選択します。
  3. エクスポートするイベント(Select Events for Export)を選択します。
  4. 拒否されたインストール(rejected install)および/または拒否されたリアトリビューション(rejected reattribution)を選択します。
  5. CSV定義に、{rejection_reason}のプレースホルダを追加します。
拒否されたインストールまたは拒否されたリアトリビューションのイベントが発生した場合、CSVファイルのアップロードの{rejection_reason}列にinvalid_signatureと表示されます。

アプリシークレット、およびSDKトラフィックのシグネチャーのオプトインが必要な理由

Adjust SDKは、暗号化された通信チャネル、すなわちHTTPSを使用してAdjustのサーバーと通信していますが、このデータは不正業者によって傍受され、解読される可能性があります。 また、このような「攻撃」で取得された情報が、不正なインストールの生成に使用される場合があります。

こうした場合に、AdjustのSDKシグネチャー方式が効果を発揮します。Adjust SDKでは、アプリシークレット(アプリパブリッシャーとAdjustのみが認識する値)からシグネチャーを算出するため、Adjustのサーバーは受信するすべてのインストールの正当性を確認できます。 

不正業者がインストール時に送信される重要なデータ(たとえば、インストール時間やデバイス固有のIDなど)を改ざんした場合、Adjustのサーバーがこれを検出し、インストールを拒否します。 

このトピックについて