Advanced-Matching データ共有では、メールや電話番号などのハッシュ化されたユーザー識別子をAppsFlyerから選択したアドネットワークに転送できるため、パートナーはデバイスIDがなくても広告エンゲージメントにイベントをアトリビュートできます。
Advanced-Matching データ共有について
デバイス識別子の利用が難しくなるにつれて、アドネットワークでは広告エンゲージメントを照合するためにファーストパーティデータへの依存度が高まっています。 Advanced-Matchingデータ共有は、ハッシュ化された識別子をプライバシーに準拠した形式で対応パートナーに転送することで、このギャップに対応します。
この機能はオプションで、パートナーごとに設定します。 対応ネットワークで有効にすると、AppsFlyerはインストール、リエンゲージメント、アプリ内イベントのイベントデータとあわせてハッシュ化された識別子を転送します。
重要!
すべての識別子は、AppsFlyerに到達する前に、デバイス上でSDKを介して、またはサーバー側でS2S APIを介してSHA-256でハッシュ化する必要があります。 プレーンテキストデータが受信、保存、転送されることはなく、検証に失敗した値は取り込み時に破棄されます。
対応パートナー
Advanced-Matchingデータ共有は、以下のネットワークで利用できます:
| パートナー | 連携タイプ | サポートされているイベント |
| Google (googleads_int) | OCI | インストール、リエンゲージメント、アプリ内イベント |
| Meta (facebook_int, metaweb_int) | SRN + CAPI | インストール、リエンゲージメント、アプリ内イベント |
| OpenAI (openai_int) | CAPI | インストール、リエンゲージメント、アプリ内イベント |
| TikTok (tiktokglobal_int, tiktokweb_int) | SRN + CAPI | インストール、リエンゲージメント、アプリ内イベント |
| Snapchat (snapchat_int, snapweb_int) | SRN + CAPI | インストール、リエンゲージメント、アプリ内イベント |
| Pinterest (pinterest_int) | CAPI | インストール、リエンゲージメント、アプリ内イベント |
| Reddit (reddit_int) | CAPI | インストール、リエンゲージメント、アプリ内イベント |
| Roku (rokuads_int) | SRN + CAPI | インストール、リエンゲージメント、アプリ内イベント |
エンドツーエンドのフロー
識別子が取得されてからパートナーに届くまでの流れは次のとおりです:
- アプリまたはバックエンドが識別子(メールアドレス、電話番号、またはその他の対応タイプ)を取得します。
- AppsFlyer SDKがSHA-256を使用して識別子を自動的に正規化し、ハッシュ化します。あるいは、サーバーがS2S APIで送信する前に同じ処理を行います。
- SDKまたはサーバーは、ハッシュ化された識別子をイベント(インストール、再インストール、リエンゲージメント、またはアプリ内イベント)とともにAppsFlyerに送信します。
- そのパートナーでAdvanced-Matching Data Sharingが有効になっている場合、AppsFlyerはハッシュをイベントペイロードとともに転送します。
- パートナーはこのハッシュを使用してイベントを既知のユーザーと照合し、アトリビューションの精度とマッチ品質を向上させます。
注
ハッシュ化された識別子は、Advanced-Matching Data Sharingが有効になっているパートナーにのみ転送されます。 パートナーでこの設定がオフになっている場合、イベントに識別子が含まれていても、そのパートナーとハッシュ化されたデータは共有されません。
ハッシュ化されたユーザー識別子がAppsFlyerに届く仕組み
ハッシュ化された識別子は、SDKまたはサーバー間(S2S)APIの2つの方法でAppsFlyerに送信されます。 どちらの場合も、適切にハッシュ化された値のみが受け付けられます。 以下のタブで各方法を説明します。
SDK
SDK V7.0.1では、生の識別子をAppsFlyer Android SDKおよびiOS SDKに渡すためのメソッドが導入されました。 SDKは、AppsFlyerに送信する前に入力を正規化してハッシュ化します:
SDKは次のステップを順番に実行します:
- 各パートナーの要件に応じて入力を正規化します。
- 正規化した値をSHA-256でハッシュ化します。
- ハッシュ化された値のみをAppsFlyerに送信します。 生の入力がデバイス外に送信されることはありません。
無効な値はSDKによってエラーとして拒否され、AppsFlyerには送信されません。
注
AndroidとiOSは、SDK V7.0.1以降でサポートされています。
実装の詳細については、Android SDK連携ガイドおよびiOS SDK連携ガイドをご覧ください。
S2S API
S2Sアプリ内イベントAPIでイベントを送信する場合、識別子は送信前にサーバーで正規化およびハッシュ化する必要があります。 APIは次のフィールドを受け付けます:
| フィールド | 説明 |
|---|---|
email_hashed |
ハッシュ化されたメールアドレス |
phone_number_hashed |
ハッシュ化された電話番号(数字のみ) |
phone_number_e164_hashed |
E.164形式のハッシュ化された電話番号 |
first_name_hashed |
ハッシュ化された名 |
last_name_hashed |
ハッシュ化された姓 |
fb_login_id |
FacebookログインID(ハッシュ化されません。そのまま渡されます) |
この表のすべてのフィールド(fb_login_idを除く)は、SHA-256形式に照らして検証されます。 一致しない値は通知なく破棄され、どのパートナーにも転送されません。 イベント内の他のフィールドは通常どおり処理されます。
電話番号フィールドが二つあるのはなぜですか?
ネットワークは、AppsFlyerが転送するハッシュと、自社で保存しているユーザーの電話番号のハッシュを比較して、イベントを照合します。 同じ番号でも、異なる形式で正規化すると異なるハッシュが生成されるため、一致させるには両者が同じ形式からハッシュ化する必要があります。 ネットワークごとに電話番号の正規化方法が異なり、AppsFlyerはすでにハッシュ化された値を受け取るため、サポートされているすべてのパートナーに対応するには両方のバージョンを送信する必要があります。
-
phone_number_hashed: MetaとSnapchat向け。 ハッシュ前の正規化形式:16501234567 -
phone_number_e164_hashed: GoogleとTikTok向け。 ハッシュ前の正規化形式:+16501234567
識別子を正規化してハッシュ化する
生の値を以下の説明どおりに正確に正規化し、次にSHA-256でハッシュ化して、小文字の16進ダイジェストを送信します。
メールアドレス(email_hashed)
メールアドレスは次のように正規化してハッシュ化します:
- すべての空白を削除します。
- 小文字に変換します。
- SHA-256でハッシュ化します。
例:
User@Example.COM → user@example.com → SHA-256ハッシュ
Phone number, digits only (phone_number_hashed)
Meta、Reddit、Pinterest、Snapchatにはこれを使用します。 電話番号は次のように正規化してハッシュ化します:
- 国コードを先頭に付けます。
- すべての記号、文字、先頭のゼロを削除します。
- SHA-256でハッシュ化します。
例:
+1 (650) 123-4567 → 16501234567 → SHA-256ハッシュ
Phone number, E.164 (phone_number_e164_hashed)
Google、TikTok、Rokuにはこれを使用します。 電話番号は次のように正規化してハッシュ化します:
- 国コードを先頭に付けます。
- すべての記号、文字、先頭のゼロを削除します。
- 先頭に
+記号を付けます。 - SHA-256でハッシュ化します。
例:
+1 (650) 123-4567 → +16501234567 → SHA-256ハッシュ
名(first_name_hashed)と姓(last_name_hashed)
名前を次のように正規化してハッシュ化します:
- すべての空白を削除します。
- 小文字に変換します。
- SHA-256でハッシュ化します。
FacebookログインID (fb_login_id)
Facebook Login SDKから提供された未加工のFacebookログインIDをそのまま送信します。 この項目はハッシュ化されません。
高度なマッチングデータ共有をオンにする
高度なマッチングデータ共有は、パートナーごとおよびアプリごとに管理され、各ネットワークで明示的に有効にする必要があります。
高度なマッチングデータ共有を有効にするには:
- AppsFlyerで、サイドメニューからコラボレーション > アクティブな連携を選択します。
- パートナーを検索して選択します。
- 高度なマッチングデータ共有をオンにします。
- 連携を保存をクリックします。
高度なマッチングデータ共有をオンにすると、サポート対象の識別子フィールドが1つ以上含まれるイベントでは、それらのフィールドがパートナーに転送されます。
注
高度なマッチングデータ共有をオフにすると、そのパートナーとのハッシュデータ共有は直ちに停止します。 ポストバックやイベントデータを含む他の連携設定には影響しません。
プライバシーとデータの取り扱い
パートナーに対して高度なマッチングデータ共有を有効にすると、AppsFlyerはイベントデータとともに、ハッシュ化されたユーザー識別子をそのネットワークへ転送し始めます。 オンにする前に、次の点を確認してください:
- このデータをパートナーと共有するための適法な根拠が存在すること(GDPRやCCPAなど、適用されるプライバシー法に基づく)。
- プライバシーポリシーが更新されており、必要な場合はユーザーの同意を取得していること。
- データ共有の運用がパートナーの規約に準拠していること。
重要!
AppsFlyerは、平文の個人を特定できる情報(PII)を処理または保存しません。 すべての識別子フィールドは取り込み時に検証されます。SHA-256形式に準拠しない値は破棄され、いかなるパートナーにも転送されることはありません。
FAQ
Advanced-Matching Data Sharingは、オーディエンスのハッシュ化されたメールアドレスと電話番号の機能と同じですか?
いいえ。 これらは別の仕組みです。 オーディエンスは、広告ターゲティング用のユーザーリストを作成します。 Advanced-Matching Data Sharingは、パートナーレベルでの一致率を向上させるために、各イベントとともにハッシュ化された識別子を転送します。 AppsFlyerは、Advanced-Matching Data Sharingとオーディエンスの両方で新しいデータ取得方法を使用し、両方の方法を統合する予定です。
無効なハッシュ値を送信するとどうなりますか?
そのフィールドは取り込み時に破棄され、どのパートナーにも転送されません。 イベント内の他のフィールドは通常どおり処理されます。
サポートされているすべてのフィールドを送信する必要がありますか?
いいえ。 設定済みのパートナーに対して利用可能で関連性のある識別子のみを含める必要があります。 不足しているフィールドは転送されません。
Advanced-Matching Data Sharingによってインストールのアトリビューションは改善されますか?
ほとんどのパートナーは、インストール、リエンゲージメント、または再インストールのマッチングに、ハッシュ化されたメールアドレスやハッシュ化された電話番号を使用していません。 これらのフィールドを送信することで、主にパートナー側でのアプリ内イベントのマッチング精度向上に役立ちます。 AppsFlyerのアトリビューションには影響しません。
AppsFlyerがプレーンテキストのユーザー識別子を受け取ることはありますか?
いいえ。 この記事の上部付近にある「Important!」のコールアウトで説明されているとおり、SDKを介したデバイス上でも、S2S APIを介したサーバー側でも、識別子はAppsFlyerに届く前に必ずハッシュ化されます。 AppsFlyerはハッシュ化された値のみを受け付けます。