概要:コラボレーターのデータセット間でのマッチ率を最大化し、コラボレーションの成果を最適化するために、ソースデータを準備してください。
データ準備について
AppsFlyer データコラボレーションプラットフォーム (DCP) は、複数のコラボレーターからの大規模なトランザクションデータ、ユーザーレベルデータ、またはその両方の組み合わせをインジェストおよび処理するように設計されています。インジェストされると、DCPは共有識別子(ハッシュ化されたメールアドレスやハッシュ化された電話番号など)を使用してデータセット間でユーザーをマッチングし、そのデータに基づいたコラボレーションワークフローを有効にできます。
この記事では、以下について説明します。
- DCPが処理できるデータの種類(トランザクション、ユーザーレベル、またはその組み合わせ)
- コラボレーター間のマッチ率を最大化し、アクティベーションパートナーによる最適なマッチングを実現するためのデータの構造化方法
- 推奨されるデータ構造と推奨されないデータ構造
- CSVファイルを使用する際のマルチバリュー識別子の取り扱い方法
データ型について理解する
コラボレーションで使用されるほとんどのソースには、以下のデータ型のいずれか、または両方が含まれます。
-
ユーザーレベル(ID)データ
- ゴール:各ユーザーとマッチングに使用される識別子を表します
- 推奨される構造:ユーザーごとに1行
-
トランザクション(イベント)データ
- ゴール:ユーザーのアクション(購入、訪問、トランザクション)を表します
- 一般的な構造:ユーザーごとに複数行(ユーザーは多くのトランザクションを持つ可能性があるため)
データ構造化ガイドライン
このセクションでは、DCPのデータ構造化ガイドラインとベストプラクティスについて概説します。
推奨されるデータ構造
DCPでの取り込みを最適化し、成果を最大化するためにソースデータを構造化するには:
- ソースデータのフォーマット要件を満たしていることを確認してください。
- 最良の結果を得るには、識別データをユーザーごとに1行で構造化し、そのユーザーの利用可能なすべての識別子を含めてください。推奨される識別子構造を参照してください。
- ユーザーが複数のメールアドレスや電話番号を持っている場合は、配列ベースの形式(Parquet、BigQuery、Snowflakeなど)を使用してください。
- ハッシュ化ガイドラインに従っていることを確認してください。
- トランザクションデータセット(および該当するその他のデータ型)については、DCPデータビューツールを使用して、コラボレーション用に最適化された、プライバシーが保護されたビジネス指向のデータサブセットを作成し、生のテーブルの代わりにそれを共有してください。データビューが推奨される理由<2>
他の構造も使用できますが、DCPを最大限に活用するのに適していない場合があります。推奨されないデータ構造を参照してください。
推奨される識別子構造
マッチ率を最大化するために、可能な限りユーザーレベルの識別データをユーザーごとに1行で送信し、ユーザーがどのように表現されているかを正確に反映する構造ですべての利用可能な識別子を含めることをお勧めします。
オプション1:ユーザーごとに1行、識別子タイプごとに1つの値
シンプルかつ効果的。
各ユーザーが最大で1つのハッシュ化されたメールアドレス、1つのハッシュ化された電話番号などを持つ場合に使用します。
例
| ユーザーID | {ハッシュ化されたメール} | ハッシュ化された電話番号 |
|---|---|---|
| 123 | 5d41402 | 152d234b70 |
| 456 | 7d793037 | |
| 789 | 0e6e5414 |
これが推奨される理由
- 準備と取り込みが最も簡単
- 検証とトラブルシューティングが容易
- 識別子が完全かつ一貫している場合に強力なマッチングパフォーマンスを発揮する(コラボレーターのデータセットおよびアクティベーションメディアパートナーとのマッチング用)
最適
- CSVベースのアップロードに最適
- Parquet / BigQuery / Snowflakeでもうまく機能する
オプション2:複数値フィールド用の識別子の配列(リスト)
ユーザーが複数のメールアドレスや電話番号を持っている場合の精度に最適。
ユーザーが同じ識別子タイプで複数の値を持つ可能性がある場合、以下のように使用します。
- 複数のハッシュ化されたメールアドレス
- 複数のハッシュ化された電話番号
この構造はネイティブ配列として表現する必要があります。
例
| ユーザーID | {ハッシュ化されたメール} | ハッシュ化された電話番号 | MAID |
|---|---|---|---|
| u_0001 | [a1b2 · c3d4 · e5f6] | [p1q2 · r3s4] | m001 |
| u_0002 | [z9y8 · x7w6] | m002 | |
| u_0003 | [t1u2 · v3w4 · x5y6] |
これが推奨される理由
- IDデータが内部でどのように保存されているかを反映しているため
- 「メール列」がいくつ必要かを推測する必要がないため
- 継続的なスキーマ変更を回避できるため
- ユーザーごとに複数の識別子を許可することで、マッチングの可能性を最大化する(コラボレーターのデータセットおよびアクティベーションメディアパートナーとのマッチング用)
最適
- Parquet (S3/GCS)
- BigQuery
- Snowflake
データ構造化のための実践的チェックリスト
ID(ユーザーレベル)データセットチェックリスト
- 1行が1ユーザーを表します。
- 利用可能なすべての識別子(ハッシュ化されたメールアドレス、ハッシュ化された電話番号、MAIDなど)を含めてください。
- 複数の値が存在する場合(例:複数のメールアドレス)、可能な限りネイティブ配列を使用してください。
- セル内のリスト、「email_1/email_2/email_3」のような形式、および複数行のID構造は避けてください。
トランザクション(イベント)データセットチェックリスト
- イベント/トランザクション行はそのまま維持してください。トランザクションデータの例を参照してください。
- 必要に応じてデータビューを使用し、コラボレーション可能なユーザーレベルのサマリーを作成してください。
データビューのチェックリスト
- ビジネス指向のデータビュー(オーディエンス対応、要約済み、標準化済み)を構築してください。
- 可能な限り、機密性の高い生のテーブルではなく、データビューを共有してください。
- 共有するフィールドは、必要なものだけに最小限に抑えてください(プライバシー保護およびビジネス保護のため)。
- 機密データへのアクセスを減らし、効率を向上させるために、集計を検討してください。
サポートされている取り込みクラウドサービスとフォーマット
DCPは、以下のような複数のクラウドサービスを通じた取り込みをサポートしています。
- AWS S3
- Google Cloud Storage
- BigQuery
- Snowflake
フォーマットに関するガイダンス
- 各ユーザーが識別子タイプごとに1つの値(1つのメールアドレス、1つの電話番号など)を持つ場合は、CSV(カンマ区切り)を使用してください。
- ユーザーが同じ識別子タイプの複数の値を持つ可能性がある場合(例:複数のハッシュ化されたメールアドレス)、配列対応フォーマットを優先してください。
- Parquet(ビッグデータで一般的)
- BigQuery(配列が組み込み)
- Snowflake(配列が組み込み)
注意:
- 「配列」とは単に「値のリスト」を意味します。
- ParquetおよびBigQuery/Snowflakeの配列は標準的であり、ほとんどのデータチームがこれを自然にサポートできます。
推奨されないデータ構造
DCPへの取り込みに理想的なデータ構造化のタイプもあれば、そうでないものもあります。以下は、推奨されないデータ構造のリストです:
避けるべきこと:同一の識別子タイプに対する複数の列
「プライマリ/セカンダリ/サードメール」のような例は推奨されません。
避けるべき例
| ユーザーID | メールアドレス(ハッシュ化) | メールアドレス(ハッシュ化) | メールアドレス(ハッシュ化) |
|---|---|---|---|
| 123 | a1b2 | c3d4 | |
| 456 | z9y8 |
避けるべき理由
- ユーザーごとの値の数が予測できない
- 列の増殖とスキーマ保守の問題につながる
避けるべきこと:「単一セル内のリスト」(フリーテキスト)
便利そうに見えても、エラーが発生しやすくなります。
避けるべき例
| ユーザーID | ハッシュ化されたメールアドレス(テキスト) |
|---|---|
| 123 | a1b2 · c3d4 · e5f6 |
避けるべき理由
- 真の配列型ではない
- フォーマットやエスケープの問題は一般的です
- わずかな不整合が取り込みを中断させる可能性があります
避けるべきこと:識別子に対するユーザーごとの複数行(ユーザーIDテーブルを作成する場合)
ユーザーごとに1行にできる場合は、IDデータを複数行に分割しないでください。
避けるべき例
| ユーザーID | 識別子のタイプ | 識別子の値 |
|---|---|---|
| 123 | hashed_email | a1b2 |
| 123 | hashed_email | c3d4 |
避けるべき理由
- ユーザーを再構築するために追加の処理が必要です
- 重複や不整合のリスクが高まります
- 大規模な環境では効率が低下します
注記:トランザクションテーブルではユーザーごとに複数行あるのが通常ですが、マッチングに使用するID(ユーザーレベル)テーブルには適していません。
追加情報
このセクションでは、関連トピックに関する詳細情報を提供します。
トランザクションデータの例
トランザクションデータやイベントデータは、ユーザーごとに複数行になる場合があります:
| Transaction ID | ユーザーID | 取引日 | 金額 | カテゴリ |
|---|---|---|---|---|
| t_001 | 123 | 2026-01-28 | 2026-01-28 | 食料品 |
| t_002 | 123 | 2026-01-28 | 2026-01-28 | 薬局 |
| t_003 | 456 | 2026-01-28 | 2026-01-28 | 電化製品 |
推奨
- トランザクションデータは自然な構造のまま取り込んでください
- Data Viewツールを使用して、コラボレーション可能なユーザーレベルのビューを作成します(例:過去30日間の支出、カテゴリの親和性、直近性/頻度の要約など)
コネクタ固有のサンプルアセット(AWS S3、GCS、BigQuery、Snowflake)
「識別子の配列/リスト」とはどういう意味ですか?
1人のユーザーが複数のメールアドレスや電話番号を持つ場合があります(例:個人用と仕事用のメールアドレス)。これらを余分な列や煩雑なテキストフィールドに押し込むのではなく、値のリストとして表現します。
| ユーザーID | ハッシュ化されたメールアドレス(リスト) |
|---|---|
| u_0001 | [a1b2 · c3d4 · e5f6] |
| u_0002 | [z9y8 · x7w6] |
1.AWS S3およびGCSコネクタ(Parquet)
IDサンプルに含めるべき内容(スキーマ)
| 項目 | 型 | 注意事項 |
|---|---|---|
| user_id | string | ユーザーごとに1行 |
| hashed_emails | string配列 | マルチ値識別子(推奨) |
| hashed_phones | string配列 | マルチ値識別子(推奨) |
| メイド | string | オプションの追加識別子 |
Parquetはリストをネイティブでサポートしているため、ユーザーが複数のメールアドレスや電話番号を持つ場合に推奨されます。
2.BigQueryコネクタ(テーブルプレビューおよびスキーマのスクリーンショット)
IDスキーマの例(BigQuery)
| 項目 | 型 | モード |
|---|---|---|
| user_id | 文字列 | NULLABLE |
| hashed_emails | 文字列 | REPEATED(ARRAY) |
| hashed_phones | 文字列 | REPEATED(ARRAY) |
| メイド | 文字列 | NULLABLE |
BigQueryでは配列がネイティブでサポートされています(REPEATEDフィールド)。複数のメールアドレスや電話番号が存在する場合、これが推奨されるアプローチです。
3.Snowflakeコネクタ(テーブルプレビューおよびスキーマのスクリーンショット)
IDスキーマの例(Snowflake)
| 項目 | 型 | 注意事項 |
|---|---|---|
| USER_ID | VARCHAR | ユーザーごとに1行 |
| {ハッシュ化されたメール} | 配列 | マルチ値識別子 |
| HASHED_PHONES | 配列 | マルチ値識別子 |
| MAID | VARCHAR | 任意 |
Snowflakeはリストのようなフィールド(配列)をサポートしています。これは、email_1/email_2/email_3といった列を作成するよりも推奨されます。
データビューが推奨される理由
データビューは、元のデータセットを変更することなく作成できる、既存のデータソースのカスタマイズされたサブセットです。データビューを使用すると、データを変更、絞り込み、要約する機能を実行できるため、コラボレーションにおいて関連性の高いデータのみを共有でき、共有するデータを明確かつ的を絞ったものに保ちつつ、その他のすべてのデータを非公開かつ安全に保つことができます。コラボレーションでデータビューを使用する理由:
ビジネス指向であり、コラボレーションが容易であるため
- データビューを使用すると、生のログや複雑なトランザクションスキーマではなく、クリーンでビジネスに適した構造(例:「顧客IDビュー」、「対象オーディエンスビュー」、「購入概要ビュー」など)でデータを提示できます。
- 定義(例:「アクティブな顧客」、「過去30日間の総支出」など)を標準化するのに役立つため、双方が足並みを揃え、同じロジックを使用できます。
設計上、よりプライバシーが保護されているため
- データビューはデータ最小化をサポートしています。完全な生のデータセットを公開するのではなく、コラボレーションに必要なフィールドと行のみを共有できます。
- データビューを使用すると、以下のことが可能になり、プライバシーリスクを軽減できます。
- 不要な属性を除外する
- 粒度を制限する(例:トランザクション単位ではなく集計された指標を共有する)
- マッチングに必要な識別子のみを共有する(機密性の高い追加列は共有しない)
機密性の高いビジネスデータを保護する
- 生のトランザクションテーブルには、非常に機密性の高いビジネスシグナル(例:詳細な購買行動、価格設定パターン、加盟店との関係、内部IDなど)が含まれている可能性があります。
- データビューを使用すると、コラボレーションに必要なデータのみを共有できます。
- 例:アイテムレベルの詳細ではなく、カテゴリレベルの集計を共有する
- 例:正確な明細項目ではなく、支出のバケットや要約指標を共有する
- これにより、競合情報や独自の情報を意図せず開示してしまうリスクが軽減されます。
データの費用対効果とパフォーマンスを向上させることができる
データビューは、より軽量で効率的になるように構成でき、多くの場合、以下を削減できます。
- スキャンされたデータ
- 処理時間
- コンピューティングコスト
コラボレーション対応のビュー(特に集計ビュー)を事前に構成しておくと、コラボレーションが迅速化し、運用上の予測可能性が高まる可能性があります。
プラットフォームによる複数のID/キーのアップロードと照合の動作
DCP識別子のアップロード
| パートナー/プラットフォーム | サポートされている識別子のタイプ | アップロードモード | アップロードの動作 | 識別子の優先順位(単一タイプのパートナー向け) |
|---|---|---|---|---|
| Meta | メールアドレス、電話番号、IDFA、GAID、Android ID、名、姓、生年月日、市区町村、都道府県、郵便番号、国 | サポートされているすべてのタイプ | サポートされているすべての識別子タイプをアップロードします | 該当なし - すべてアップロードします |
| メールアドレス、電話番号、IDFA、GAID、Android ID、顧客ID | 単一タイプ | オーディエンスごとに1つの識別子タイプをアップロードします | 1.メール 1PhoneモバイルID 4.お客様ID | |
| TikTok | メールアドレス、電話番号、IDFA、GAID、Android ID | サポートされているすべてのタイプ | サポートされているすべての識別子タイプをアップロードします | 該当なし - すべてアップロードします |
| メールアドレス、電話番号、IDFA、GAID | 単一タイプ | オーディエンスごとに1つの識別子タイプをアップロードします | 1.メール 1PhoneモバイルID | |
| Infillion | メールアドレス、電話番号、IDFA、GAID、MM-UUID | サポートされているすべてのタイプ | サポートされているすべてのタイプを最大3つのファイルにグループ化してアップロード | 該当なし - すべてアップロードします |
| TheTradeDesk | メール、電話: | 単一タイプ | オーディエンスごとに1つの識別子タイプをアップロードします | 1.メール 1Phone |
| AppsFlyer - Data Locker | 使用できる識別子: | すべてのタイプを結合 | すべての識別子を1つの結合ファイルで配信 | 該当なし - すべて配信 |
| プラットフォーム | ユーザーごとに複数のIDを送信できますか? | それらのいずれかでマッチングできますか? | 複数のIDを組み合わせることはできますか? | マッチングモデル(実用的) | 注意事項 |
|---|---|---|---|---|---|
| Meta | はい | はい | はい | 決定論的、任意のID / 組み合わせ | メールアドレス、電話番号、MAID、fbp/fbcをすべて評価。最も強力な「いずれか」の動作 |
| はい | 限定的 | いいえ | 決定論的、優先順位付けあり | 1つのIDでユーザーを特定。IDを組み合わせてマッチングすることはない | |
| TikTok | はい | はい | はい | 決定論的、任意のID / 組み合わせ | Metaと非常に類似。イベントに対してttclidが強力 |
| はい | 一部可能 | 限定的 | 決定論的、ID中心 | 主にメールアドレス + MAID。ID間での相互補完は限定的 | |
| The Trade Desk (TTD) | はい | IDグラフ経由 | はい(グラフ経由) | IDグラフ経由の決定論的マッチング | EUID/UID2グラフを通じて解決されたUID2 + MAID + クッキー |
| Infillion | はい | IDグラフ経由 | はい(グラフ経由) | パートナーグラフ経由の決定論的マッチング | OmniID / パートナーID解決に依存する |
アクティベーション計画のための要点
-
MetaおよびTikTok
- 持っているすべてのデータを送信する
- 真の「any-ID」動作
- IDリッチなクリーンルームアクティベーションに最適なプラットフォーム
-
Google
- カバレッジのために複数のIDを送信する
- ID間での補強は期待しないこと
- メール/電話番号の優位性は本物である
-
TTDおよびInfillion
- マッチング品質はIDグラフへの参加状況に大きく依存する
- 生の識別子数よりもUID2 / OmniIDのカバレッジが重要である
-
Pinterest
- MetaよりもGoogleに近い動作をする
- メール + MAID以外でのメリットは限定的である
要点
- MetaとTikTokのみが「いずれか」のマッチングをネイティブに行う
- Googleは決定論的ですが、単一IDで解決されます
- オープンウェブプラットフォームは、生のIDではなく、アイデンティティグラフを介して照合します
メディアパートナー別のハッシュ化データフォーマットガイドライン
ユニバーサル正規化ルール:
データをハッシュ化する前に、マッチングの精度を確保するため、ほとんどのプラットフォームで以下の正規化ステップが求められます:
- Text:小文字に変換し、先頭/末尾のすべての空白を削除します。
- PhoneE.164形式に変換します(例:+15551234567)
- ハッシュ化SHA-256が業界標準ですが、MD5やSHA-1を受け入れるプラットフォームもあります。
| メディアパートナー | メールのガイドライン | 電話番号のガイドライン | モバイルID(MAID)のガイドライン | 特定のプラットフォームのニュアンスとマッチングロジック | 関連リファレンス |
|---|---|---|---|---|---|
| Google Ads / DV360 | 形式:小文字に変換し、空白を削除します。ドメインを含めます。Gmailのルール:@gmail.com / @googlemail.comの場合、「@」の前のピリオド(.)と「+」以降のサフィックスを削除します。ハッシュ化SHA-256(16進数エンコード)。 | 形式:E.164(例:+16505551212)。国コードを含めるハッシュ化SHA-256。 | 形式:IDFA(iOS)またはGAID(Android)。ハッシュ化ハッシュ化しないでください。 | マッチング優先度:決定論的かつ優先順位付け(1.メール 1PhoneモバイルID)。複数のIDを組み合わせてマッチングを行うことはありません(シングルID解決)。DV360 PAIR:DV360は、パブリッシャーと広告主間の安全な照合のためのPAIRプロトコルもサポートしています。 | カスタマーマッチ(Google広告API)を開始する |
| Meta(Facebook/Instagram) |
形式:小文字に変換し、空白を削除します。ハッシュ化SHA-256が必要です。 注記:Metaは、ハッシュ化の正規化の一環としてメールアドレスからドットを削除しません。Metaの場合、ハッシュ化の前に小文字化と空白のトリミングのみを行う必要があります。ドットを削除してハッシュ化したメールアドレス(DCPソースマッピングの「ハッシュ化されたメールアドレス(ドットなし)」)を送信しても、Meta独自のハッシュと一致せず、メールアドレスをドメインとするユーザーのマッチ率が低下します。この識別子のバリエーションは、ドットの削除を必要とするパートナー(Google広告など)を対象としており、Meta/Facebookのアクティベーションには使用しないでください。 |
形式:記号、文字、先頭のゼロを削除してください。国コードを含めるハッシュ化SHA-256。 | 形式:IDFAまたはGAID。ハッシュ化ハッシュ化しないでください。小文字にし、ハイフンは保持してください。 |
マッチングロジック:「いずれか」のロジックを使用します。複数のID(メールアドレス、電話番号、MAIDなど)を組み合わせてユーザーを特定し、ID間での強力な補強を行います。 CAPI:ブラウザマッチングには、ハッシュ化されていないclient_ip_addressとclient_user_agentが必要です。 |
顧客情報パラメータ - Conversions API |
| TikTok | 形式:小文字に変換し、すべてのスペースを削除します。ハッシュ化SHA-256。 | 形式:E.164(+[国コード][番号])。+なしでも受け付けます。ハッシュ化SHA-256。 | 形式:GAID(Android)またはIDFA(iOS)。大文字小文字:すべて大文字またはすべて小文字。ハッシュ化SHA-256またはMD5。 |
マッチングロジック:Metaと同様に、「いずれか」の決定論的マッチングロジックを使用し、有効なIDが1つでもあれば十分です。 オーディエンスサイズカスタムオーディエンスを有効にするには、最低1,000人のマッチング済みユーザーが必要です。 |
顧客ファイルを使用してカスタムオーディエンスを作成する方法 |
| The Trade Desk (UID2) | 形式:Googleと同じ「Gmailルール」(ドットやプラス記号を削除)が適用されます。エンコーディング:生のバイトをBase64エンコードします(結果は44文字になります)。 | 形式:Eハッシュ化SHA-256。エンコーディング:生のバイトをBase64エンコードします。 | 形式:AAID(小文字)/ IDFA(大文字)。ハッシュ化SHA-256、MD5、またはSHA-1。 |
マッチングロジック:IDグラフによる決定論的マッチング。マッチングは、生のIDカバレッジではなく、グラフへの参加状況に依存します。 重要な注意点:ハッシュの生のバイトをBase64エンコードする必要があります。16進文字列をエンコードすると失敗します。 |
|
| 形式:「@」を含める必要があります。ハッシュ化SHA-256、MD5、またはSHA-1。 | 形式:E特殊文字(スペース、ハイフン)を削除してください。ハッシュ化SHA-256、MD5、またはSHA-1。 | 形式:IDFAまたはGAID。ハッシュ化SHA-256、MD5、またはSHA-1。 | マッチングロジック:"ID-Centric."マッチングは主にメールアドレスとMAIDによって行われます。Metaと比較してクロスIDによる補強が弱いため、他のIDを提供しても「限定的なメリット」しかありません。アップロードの動作:オーディエンスごとに1つの識別子タイプをアップロードします。 | DCPデータ取り込みおよび構造化ガイドライン |