概要
UPDM(ユーザー提供データ マッチング)は、ユーザーについて収集した自社データ(ウェブサイト、アプリ、実店舗からの情報など)を、そのユーザーがログインしていた Google 広告データと結合します(Google マーケティング プラットフォームを除く)。ユーザー提供データのマッチングの対象となるには、広告イベントが Google 広告データのログイン ユーザーにリンクされている必要があります。
ユーザー提供データ マッチングには、他の形式のカスタマー マッチに比べて独自のメリットがあります。ユーザー提供データの一致:
- 業界データの変化にサードパーティ製データよりも耐性がある
- ユーザー提供データのマッチングは、ログイン ユーザーに関して Google が所有および運営する広告枠のみで利用可能なため、今後のサードパーティ Cookie のサポート終了による影響はありません。
- より関連性の高いカスタマー エクスペリエンスを提供できるため、多くの場合、顧客エンゲージメントが向上します。
- より詳細な顧客インサイトを提供
プロセスの概要
アカウントでユーザー提供データのマッチングを有効にした後、この機能を継続して使用するには、2 つの段階があります。
- Ads Data Hub に自社データを取り込む
- 一致したデータに基づく Ads Data Hub で進行中のクエリ
- Ads Data Hub で通常のクエリを実行する場合と同じ方法で、
*_match
テーブルに対してクエリを実行します。
- Ads Data Hub で通常のクエリを実行する場合と同じ方法で、
データソースと宛先のプロジェクト
接続では、データソース プロジェクトと宛先プロジェクトの 2 つの異なる Google Cloud プロジェクトを使用する必要があります。
- データソース: このプロジェクトには、独自の広告データ(未加工)が含まれます。
- 宛先: Ads Data Hub が書き込む BigQuery データセット。デフォルトでは、これは管理プロジェクトです。別の Google Cloud プロジェクトに変更する場合は、サービス アカウントの構成をご覧ください。
プライバシーの制限
顧客データを収集する
ユーザー提供データのマッチングを使用する場合は、自社データをアップロードする必要があります。ウェブサイトやアプリ、実店舗で収集した情報のほか、顧客と直接共有した情報などがあります。
データサイズ
エンドユーザーのプライバシーを保護するために、ユーザー提供データのマッチングでは、データのサイズに関して次の要件が適用されます。
- ユーザーリストに少なくとも 1,000 件のレコードをアップロードする必要があります。
- マッチテーブルの更新を成功させるには、新しく一致したユーザー数が最低数に達する必要があります。この動作は差分チェックに似ています。
- リストはレコードの最大数を超えないようにする必要があります。データの上限については、Google の担当者にお問い合わせください。
[接続] タブを有効にする
開始する前に、Ads Data Hub アカウントを構成して、[接続] タブを有効にします。このタブで、データ マッチング パイプラインが確立されます。これらのステップを実行する必要があるのは 1 回のみです。
- Google 担当者に送信します。
- ユーザー提供データのマッチングに使用する Ads Data Hub アカウント ID。
- 宛先プロジェクトにアクセスできるスーパー ユーザーのメールアドレス。
- アカウントとスーパーユーザーが許可リストに登録されていることを Google 担当者に確認します。
指定した Google Cloud プロジェクトで Ads Data Connector API を有効にします。デフォルトでは、これが管理プロジェクトです。別のプロジェクトを使用するには、代替 Google Cloud プロジェクトをデータソース プロジェクトとして使用して次の操作を行います。これらの手順は、許可リストに登録されたスーパーユーザーとしてログインした状態で行う必要があります。
- Cloud Console API ライブラリに移動します。
- リストからデータソース プロジェクトを選択します。
- Ads Data Connector API を検索します。Ads Data Connector API が検索結果に表示されない場合、ログインしている Google アカウントが許可リストに登録されているスーパーユーザーではない可能性があります。
- [API] ページで、[有効にする] をクリックします。
- API が有効であることを Google の担当者に確認します。
Google の担当者から、Datafusion、Dataproc、UPDM サービス アカウントとして指定された 3 つのメールアドレスが送信されます。
Ads Data Hub アカウントにも、[自社データ] と [データ マッチング] という新しい [接続] セクションが表示されます。各タブのユースケースをご覧ください。
サービス アカウントに適切な権限を付与します。さまざまなサービス アカウントと必要な権限に説明を表示するには、テーブルでデータソースを選択します。
BigQuery
Datafusion サービス アカウント 目的 Datafusion サービス アカウントは、Ads Data Hub UI にソース フィールドのリストを表示するために使用されます。 Format service-some-number@gcp-sa-datafusion.iam.gserviceaccount.com
必要なアクセス権 BigQuery Data Viewer
roles/bigquery.dataViewer
データソースと宛先のプロジェクト内の特定のデータセット Storage Admin
roles/storage.admin
データソース プロジェクト、または専用ストレージ バケット Dataproc サービス アカウント 目的 Dataproc サービス アカウントは、バックグラウンドでデータ パイプラインを実行する役割を担います。 Format some-number-compute@developer.gserviceaccount.com
必要なアクセス権 BigQuery Data Viewer
roles/bigquery.dataViewer
データソースと宛先のプロジェクト内の特定のデータセット BigQuery Data Editor
roles/bigquery.dataEditor
宛先プロジェクトの特定のデータセットの場合 BigQuery Job User
roles/bigquery.jobUser
データソースと宛先の両方のプロジェクト Storage Admin
roles/storage.admin
データソースと宛先の両方のプロジェクト、または専用のストレージ バケット UPDM サービス アカウント 目的 UPDM サービス アカウントは、一致するジョブの実行に使用されます。 Format service-some-number@gcp-sa-adsdataconnector.iam.gserviceaccount.com
必要なアクセス権 BigQuery Data Viewer
roles/bigquery.dataViewer
宛先プロジェクト BigQuery Job User
roles/bigquery.jobUser
宛先プロジェクト Cloud Storage
Datafusion サービス アカウント 目的 Datafusion サービス アカウントは、Ads Data Hub UI にソース フィールドのリストを表示するために使用されます。 Format service-some-number@gcp-sa-datafusion.iam.gserviceaccount.com
必要なアクセス権 Storage Object Viewer
roles/storage.objectViewer
データソース プロジェクトの特定のストレージ バケット BigQuery Data Viewer
roles/bigquery.dataViewer
データソース プロジェクト、または専用ストレージ バケット Storage Admin
roles/storage.admin
データソース プロジェクト、または専用ストレージ バケット Dataproc サービス アカウント 目的 Dataproc サービス アカウントは、バックグラウンドでデータ パイプラインを実行する役割を担います。 Format some-number-compute@developer.gserviceaccount.com
必要なアクセス権 Storage Admin
roles/storage.admin
データソースと宛先の両方のプロジェクト、または専用のストレージ バケット BigQuery Job User
roles/bigquery.jobUser
宛先プロジェクト UPDM サービス アカウント 目的 UPDM サービス アカウントは、一致するジョブの実行に使用されます。 Format service-some-number@gcp-sa-adsdataconnector.iam.gserviceaccount.com
必要なアクセス権 BigQuery Data Viewer
roles/bigquery.dataViewer
宛先プロジェクト BigQuery Job User
roles/bigquery.jobUser
宛先プロジェクト Salesforce
近日提供予定
自社データの取り込み
入力データの形式を設定する
データが一致するには、次のフォーマット要件を満たしている必要があります。
- ここに示されているように、Base16 文字列としてエンコードされた SHA256 ハッシュを使用してアップロードする必要があります。UPDM は Base64 をサポートしていますが、Google 広告カスタマー マッチのガイドラインとは異なります。
- 入力フィールドは文字列としてフォーマットする必要があります。BigQuery の SHA256 ハッシュ関数と Base16 のエンコード関数(TO_HEX)を使用している場合は、次の変換を使用します。
TO_HEX(SHA256(user_data))
User ID
- 書式なしテキスト
- ハッシュ化: なし
メール
- 空白をストリップ
- 文字はすべて小文字にしてください
- すべてのメールアドレスにドメイン名を含めてください(gmail.com や hotmail.co.jp など)
- アクセントを削除する(例: è、é、ê、ë e)
- ハッシュ化: Base16 でエンコードされた SHA256
有効: TO_HEX(SHA256("jeffersonloveshiking@gmail.com"))
無効: TO_HEX(SHA256("JéffersonLôvesHiking@gmail.com"))
スマートフォン
- 空白をストリップ
- E.164 形式(例: US +14155552671、UK +442071838750)
- 国コードを含む(米国を含む)
- 「+」と国コードを除く特殊文字を除くすべてを削除
- ハッシュ化: Base16 でエンコードされた SHA256
有効: TO_HEX(SHA256("+18005550101"))
無効: TO_HEX(SHA256("(800) 555-0101"))
名
- 空白をストリップ
- 文字はすべて小文字にしてください
- 「Mrs.」などの接頭辞をすべて削除してください。
- アクセント記号を削除しない(例: è、é、ê、ë)
- ハッシュ化: Base16 でエンコードされた SHA256
有効: TO_HEX(SHA256("daní"))
無効: TO_HEX(SHA256("Daní"))
姓
- 空白をストリップ
- 文字はすべて小文字にしてください
- Jr. などのすべての接頭辞を削除します。
- アクセント記号を削除しない(例: è、é、ê、ë)
- ハッシュ化: Base16 でエンコードされた SHA256
有効: TO_HEX(SHA256("delacruz"))
無効: TO_HEX(SHA256("de la Cruz, Jr."))
Country
- 顧客データがすべて同じ国のものである場合も、国コードを含めてください
- 国のデータをハッシュ化しない
- ISO 3166-1 alpha-2 の国コードを使用している
- ハッシュ化: なし
有効: US
無効: United States of America
または USA
郵便番号
- 郵便番号データをハッシュ化しない
- 米国の郵便番号と国際郵便番号の両方を使用できます
- 米国の場合:
- 5 桁のコードを指定できます(例: 94043)
- 5 桁の後に 4 桁の拡張コードが続く形式も使用できます(例: 94043-1351、940431351)
- その他の国の場合:
- 書式設定は不要です(小文字にすること、スペースや特殊文字を削除する必要はありません)
- 郵便番号の拡張コード部分は省略してください
- ハッシュ化: なし
ハッシュ検証とデータ エンコーディング
次のハッシュ検証スクリプトを使用して、データの形式が正しいことを確認できます。
JavaScript
Base16
/**
* @fileoverview Provides the hashing algorithm for User-Provided Data Match, as
* well as some valid hashes of sample data for testing.
*/
async function hash(token) {
const formattedToken = token.trim().toLowerCase();
const hashArrayBuffer = await crypto.subtle.digest(
'SHA-256', (new TextEncoder()).encode(formattedToken));
return Array.from(new Uint8Array(hashArrayBuffer))
.map((b) => b.toString(16).padStart(2, '0'))
.join('');
}
function main() {
// Expected hash for test@gmail.com:
// 87924606b4131a8aceeeae8868531fbb9712aaa07a5d3a756b26ce0f5d6ca674
hash('test@gmail.com').then(result => console.log(result));
// Expected hash for +18005551212:
// 61d9111bed3e6d9cfc1bc3b5cb35a402687c4f1546bee061a2bd444fbdd64c44
hash('+18005551212').then(result => console.log(result));
// Expected hash for John:
// 96d9632f363564cc3032521409cf22a852f2032eec099ed5967c0d000cec607a
hash('John').then(result => console.log(result));
// Expected hash for Doe:
// 799ef92a11af918e3fb741df42934f3b568ed2d93ac1df74f1b8d41a27932a6f
hash('Doe').then(result => console.log(result));
}
main()
Base64
/**
* @fileoverview Provides the hashing algorithm, as well as some valid hashes of
* sample data for testing.
*/
async function hash(token) {
const formattedToken = token.trim().toLowerCase();
const hashBuffer = await crypto.subtle.digest(
'SHA-256', (new TextEncoder()).encode(formattedToken));
const base64Str = btoa(String.fromCharCode(...new Uint8Array(hashBuffer)));
return base64Str;
}
function main() {
// Expected hash for test@gmail.com:
// h5JGBrQTGorO7q6IaFMfu5cSqqB6XTp1aybOD11spnQ=
hash('test@gmail.com').then(result => console.log(result));
// Expected hash for +18005551212:
// YdkRG+0+bZz8G8O1yzWkAmh8TxVGvuBhor1ET73WTEQ=
hash('+18005551212').then(result => console.log(result));
// Expected hash for John: ltljLzY1ZMwwMlIUCc8iqFLyAy7sCZ7VlnwNAAzsYHo=
hash('John').then(result => console.log(result));
// Expected hash for Doe: eZ75KhGvkY4/t0HfQpNPO1aO0tk6wd908bjUGieTKm8=
hash('Doe').then(result => console.log(result));
}
main()
Python
Base16
"""Provides the hashing algorithm, as well as some valid hashes of sample data for testing.
Supports: Python 2, Python 3
Sample hashes:
- Email 'test@gmail.com': 87924606b4131a8aceeeae8868531fbb9712aaa07a5d3a756b26ce0f5d6ca674
- Phone '+18005551212': 61d9111bed3e6d9cfc1bc3b5cb35a402687c4f1546bee061a2bd444fbdd64c44
- First name 'John': 96d9632f363564cc3032521409cf22a852f2032eec099ed5967c0d000cec607a
- Last name 'Doe': 799ef92a11af918e3fb741df42934f3b568ed2d93ac1df74f1b8d41a27932a6f
"""
import base64
import hashlib
def updm_hash(token):
return hashlib.sha256(token.strip().lower().encode('utf-8')).hexdigest()
def print_updm_hash(token):
print('Hash: "{}"\t(Token: {})'.format(updm_hash(token), token))
def main():
print_updm_hash('test@gmail.com')
print_updm_hash('+18005551212')
print_updm_hash('John')
print_updm_hash('Doe')
if __name__ == '__main__':
main()
Base64
"""Provides the hashing algorithm, as well as some valid hashes of sample data for testing.
Supports: Python 2, Python 3
Sample hashes:
- Email 'test@gmail.com': h5JGBrQTGorO7q6IaFMfu5cSqqB6XTp1aybOD11spnQ=
- Phone '+18005551212': YdkRG+0+bZz8G8O1yzWkAmh8TxVGvuBhor1ET73WTEQ=
- First name 'John': ltljLzY1ZMwwMlIUCc8iqFLyAy7sCZ7VlnwNAAzsYHo=
- Last name 'Doe': eZ75KhGvkY4/t0HfQpNPO1aO0tk6wd908bjUGieTKm8=
"""
import base64
import hashlib
def hash(token):
return base64.b64encode(
hashlib.sha256(
token.strip().lower().encode('utf-8')).digest()).decode('utf-8')
def print_hash(token, expected=None):
hashed = hash(token)
if expected is not None and hashed != expected:
print(
'ERROR: Incorrect hash for token "{}". Expected "{}", got "{}"'.format(
token, expected, hashed))
return
print('Hash: "{}"\t(Token: {})'.format(hashed, token))
def main():
print_hash(
'test@gmail.com', expected='h5JGBrQTGorO7q6IaFMfu5cSqqB6XTp1aybOD11spnQ=')
print_hash(
'+18005551212', expected='YdkRG+0+bZz8G8O1yzWkAmh8TxVGvuBhor1ET73WTEQ=')
print_hash('John', expected='ltljLzY1ZMwwMlIUCc8iqFLyAy7sCZ7VlnwNAAzsYHo=')
print_hash('Doe', expected='eZ75KhGvkY4/t0HfQpNPO1aO0tk6wd908bjUGieTKm8=')
if __name__ == '__main__':
main()
Go
Base16
/*
Provides the hashing algorithm, as well as some valid hashes of sample data for testing.
Sample hashes:
- Email 'test@gmail.com': 87924606b4131a8aceeeae8868531fbb9712aaa07a5d3a756b26ce0f5d6ca674
- Phone '+18005551212': 61d9111bed3e6d9cfc1bc3b5cb35a402687c4f1546bee061a2bd444fbdd64c44
- First name 'John': 96d9632f363564cc3032521409cf22a852f2032eec099ed5967c0d000cec607a
- Last name 'Doe': 799ef92a11af918e3fb741df42934f3b568ed2d93ac1df74f1b8d41a27932a6f
*/
package main
import (
"crypto/sha256"
"fmt"
"strings"
)
// Hash hashes an email, phone, first name, or last name into the correct format.
func Hash(token string) string {
formatted := strings.TrimSpace(strings.ToLower(token))
hashed := sha256.Sum256([]byte(formatted))
encoded := fmt.Sprintf("%x", hashed[:])
return encoded
}
// PrintHash prints the hash for a token.
func PrintHash(token string) {
fmt.Printf("Hash: \"%s\"\t(Token: %s)\n", Hash(token), token)
}
func main() {
PrintHash("test@gmail.com")
PrintHash("+18005551212")
PrintHash("John")
PrintHash("Doe")
}
Base64
/*
Provides the hashing algorithm, as well as some valid hashes of sample data for testing.
Sample hashes:
- Email 'test@gmail.com': h5JGBrQTGorO7q6IaFMfu5cSqqB6XTp1aybOD11spnQ=
- Phone '+18005551212': YdkRG+0+bZz8G8O1yzWkAmh8TxVGvuBhor1ET73WTEQ=
- First name 'John': ltljLzY1ZMwwMlIUCc8iqFLyAy7sCZ7VlnwNAAzsYHo=
- Last name 'Doe': eZ75KhGvkY4/t0HfQpNPO1aO0tk6wd908bjUGieTKm8=
*/
package main
import (
"crypto/sha256"
"encoding/base64"
"fmt"
"strings"
)
// Hash hashes an email, phone, first name, or last name into the correct format.
func Hash(token string) string {
formatted := strings.TrimSpace(strings.ToLower(token))
hashed := sha256.Sum256([]byte(formatted))
encoded := base64.StdEncoding.EncodeToString(hashed[:])
return encoded
}
// PrintHash prints the hash for a token.
func PrintHash(token string) {
fmt.Printf("Hash: \"%s\"\t(Token: %s)\n", Hash(token), token)
}
func main() {
PrintHash("test@gmail.com")
PrintHash("+18005551212")
PrintHash("John")
PrintHash("Doe")
}
Java
Base16
package updm.hashing;
import static java.nio.charset.StandardCharsets.UTF_8;
import com.google.common.base.Ascii;
import com.google.common.hash.Hashing;
/**
* Example of the UPDM hashing algorithm using hex-encoded SHA-256.
*
* <p>This uses the Guava Hashing to generate the hash: https://github.com/google/guava
*
* <p>Sample valid hashes:
*
* <ul>
* <li>Email "test@gmail.com": "87924606b4131a8aceeeae8868531fbb9712aaa07a5d3a756b26ce0f5d6ca674"
* <li>Phone "+18005551212": "61d9111bed3e6d9cfc1bc3b5cb35a402687c4f1546bee061a2bd444fbdd64c44"
* <li>First name "John": "96d9632f363564cc3032521409cf22a852f2032eec099ed5967c0d000cec607a"
* <li>Last name "Doe": "799ef92a11af918e3fb741df42934f3b568ed2d93ac1df74f1b8d41a27932a6f"
* </ul>
*/
public final class HashExample {
private HashExample() {}
public static String hash(String token) {
String formattedToken = Ascii.toLowerCase(token).strip();
return Hashing.sha256().hashString(formattedToken, UTF_8).toString();
}
public static void printHash(String token) {
System.out.printf("Hash: \"%s\"\t(Token: %s)\n", hash(token), token);
}
public static void main(String[] args) {
printHash("test@gmail.com");
printHash("+18005551212");
printHash("John");
printHash("Doe");
}
}
Base64
package updm.hashing;
import static java.nio.charset.StandardCharsets.UTF_8;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;
/**
* Example of the hashing algorithm.
*
* <p>Sample hashes:
*
* <ul>
* <li>Email 'test@gmail.com': h5JGBrQTGorO7q6IaFMfu5cSqqB6XTp1aybOD11spnQ=
* <li>Phone '+18005551212': YdkRG+0+bZz8G8O1yzWkAmh8TxVGvuBhor1ET73WTEQ=
* <li>First name 'John': ltljLzY1ZMwwMlIUCc8iqFLyAy7sCZ7VlnwNAAzsYHo=
* <li>Last name 'Doe': eZ75KhGvkY4/t0HfQpNPO1aO0tk6wd908bjUGieTKm8=
* </ul>
*/
public final class HashExample {
private HashExample() {}
public static String hash(String token) {
String formattedToken = token.toLowerCase().strip();
byte[] hash;
try {
hash = MessageDigest.getInstance("SHA-256").digest(formattedToken.getBytes(UTF_8));
} catch (NoSuchAlgorithmException e) {
throw new IllegalStateException("SHA-256 not supported", e);
}
return Base64.getEncoder().encodeToString(hash);
}
public static void printHash(String token) {
System.out.printf("Hash: \"%s\"\t(Token: %s)\n", hash(token), token);
}
public static void main(String[] args) {
printHash("test@gmail.com");
printHash("+18005551212");
printHash("John");
printHash("Doe");
}
}
SQL
Base16
/*
Provides the hashing algorithm, as well as some valid hashes of sample data for testing.
The following code uses Google Standard SQL and can be run on BigQuery to generate match tables from unhashed data.
Sample hashes:
- Email 'test@gmail.com': 87924606b4131a8aceeeae8868531fbb9712aaa07a5d3a756b26ce0f5d6ca674
- Phone '+18005551212': 61d9111bed3e6d9cfc1bc3b5cb35a402687c4f1546bee061a2bd444fbdd64c44
- First name 'John': 96d9632f363564cc3032521409cf22a852f2032eec099ed5967c0d000cec607a
- Last name 'Doe': 799ef92a11af918e3fb741df42934f3b568ed2d93ac1df74f1b8d41a27932a6f
The unhashed input table schema is assumed to be:
- Column name: UserID, Type: String
- Column name: Email, Type: String
- Column name: Phone, Type: String
- Column name: FirstName, Type: String
- Column name: LastName, Type: String
- Column name: PostalCode, Type: String
- Column name: CountryCode, Type: String
*/
CREATE TABLE `your_project_name.your_dataset_name.output_hashed_table_name`
AS
SELECT
UserID,
TO_HEX(SHA256(LOWER(Email))) AS Email,
TO_HEX(SHA256(Phone)) AS Phone,
TO_HEX(SHA256(LOWER(FirstName))) AS FirstName,
TO_HEX(SHA256(LOWER(LastName))) AS LastName,
PostalCode,
CountryCode,
FROM
`your_project_name.your_dataset_name.input_unhashed_table_name`;
Base64
/*
Provides the hashing algorithm, as well as some valid hashes of sample data for testing.
The following code uses Google Standard SQL and can be run on BigQuery to generate match tables from unhashed data.
Sample hashes:
- Email 'test@gmail.com': h5JGBrQTGorO7q6IaFMfu5cSqqB6XTp1aybOD11spnQ=
- Phone '+18005551212': YdkRG+0+bZz8G8O1yzWkAmh8TxVGvuBhor1ET73WTEQ=
- First name 'John': ltljLzY1ZMwwMlIUCc8iqFLyAy7sCZ7VlnwNAAzsYHo=
- Last name 'Doe': eZ75KhGvkY4/t0HfQpNPO1aO0tk6wd908bjUGieTKm8=
The unhashed input table schema is assumed to be:
- Column name: UserID, Type: String
- Column name: Email, Type: String
- Column name: Phone, Type: String
- Column name: FirstName, Type: String
- Column name: LastName, Type: String
- Column name: PostalCode, Type: String
- Column name: CountryCode, Type: String
*/
CREATE TABLE `your_project_name.your_dataset_name.output_hashed_table_name`
AS
SELECT
UserID,
TO_BASE64(SHA256(LOWER(Email))) AS Email,
TO_BASE64(SHA256(Phone)) AS Phone,
TO_BASE64(SHA256(LOWER(FirstName))) AS FirstName,
TO_BASE64(SHA256(LOWER(LastName))) AS LastName,
PostalCode,
CountryCode,
FROM
`your_project_name.your_dataset_name.input_unhashed_table_name`;
結合キー
ユーザー提供データの一部の組み合わせは、他のデータよりも強力な場合があります。ユーザー指定のデータの組み合わせのリストを以下に示します。
- メール、電話、住所(最強)
- 電話番号、住所
- メールアドレス、住所
- メール、電話
- Address(住所)
- スマートフォン
- メール(最も弱い)
マッチテーブルを作成する
- [接続] > [データ マッチング] > [接続の作成] をクリックします。
- データソースを選択し、[接続] をクリックします。プロンプトが表示されたら、認証を行い、[次へ] をクリックします。
- データソースを構成し、[次へ] をクリックします。
BigQuery
インポートする BigQuery テーブルを選択します。
Cloud Storage
gsutil ファイルのパス(
gs://my-bucket/folder/
など)を入力し、ファイル形式を選択します。Salesforce
近日提供予定
- 宛先を設定し、[次へ] をクリックします。
- データの中間宛先として使用する新しい BigQuery データセットを選択します。このステップにより、データが正しくフォーマットされます。
- 省略可: データの形式を変更します。変換には、コンピューティング ハッシュ、小文字/大文字の書式設定、結合/分割フィールドが含まれます。
- [操作] > > [変換] をクリックします。
- ポップアップ表示されるパネルで、[変換を追加] または [別の変換を追加] をクリックします。
- プルダウン メニューから変換タイプを選択し、要件を入力します。
- [保存] をクリックします。
- 少なくとも 1 つの結合キーを選択して、使用するフィールドをマッピングし、[次へ] をクリックします。
- スケジュールを設定します。
- [Finish] をクリックします。
接続の詳細の表示
接続の詳細ページには、特定の接続での最近の実行とエラーに関する情報が表示されます。特定の接続の詳細を表示するには:
- [接続] > [データ マッチング] をクリックします。
- 接続の名前をクリックして、詳細を表示します。
- 接続の詳細と最近の実行を確認できます。それぞれのエラーには、接続レベル(接続が実行されなかったこと)と行レベルのエラー(行がインポートされなかった)の 2 種類のエラーが表示されます。
- [失敗] ステータスは、接続全体の実行に失敗したことを示します(例: サービス アカウントの権限の問題)。エラー ステータスをクリックして、接続に影響を与えたエラーを確認します。
- [Completed] のステータスは、接続が正常に完了したことを示します。ただし、行レベルのエラーが引き続き発生することがあります。エラーは、[Rows with errors] 列にゼロ以外の値で示されます。値をクリックすると、失敗したレコードの詳細が表示されます。
接続を編集する
接続の編集はまだサポートされていません。接続を変更するには、新しい接続を作成してから、古い接続を削除します。
Ads Data Hub でデータをクエリする
マッチテーブルをクエリする
プライバシー チェックを満たすのに十分なデータがマッチテーブルに含まれている場合は、テーブルに対してクエリを実行できます。user_id
フィールドを含む Ads Data Hub スキーマの各テーブルには、*_match
テーブルが付属しています。たとえば、adh.google_ads_impressions
テーブルの場合、Ads Data Hub はユーザー ID のみを含む adh.google_ads_impressions_match
という一致テーブルを生成します。これらのテーブルには、user_id
と一致する元のテーブルで使用可能なユーザーのサブセットが含まれています。たとえば、元のテーブルにユーザー A とユーザー B のデータが含まれていて、ユーザー A のみが一致すると、ユーザー B はマッチテーブルに含まれません。
マッチテーブルには external_cookie
という列があり、Cookie が BYTES として保存されます。
external_cookie フィールドに ID は BYTES が含まれます。成功するには、結合キーを BYTES にキャストする必要があります。
JOIN ON
google_data_imp.external_cookie = CAST(my_data.user_id AS BYTES)
広告イベント テーブルの *_match
ビューをクエリして、マッチテーブルを使用します。Cookie マッチングも使用する場合は、クエリでマッチタイプでフィルタリングできます。使用するプロパティは次のとおりです。
- Cookie マッチングのための
match_type = 1
match_type = 2
: ユーザー提供データのマッチングの場合
クエリで match_type
は許可されますが、このフィールドは結果で返されないため、最後の SELECT
ステートメントで使用しないでください。
サンプルクエリ
一致したユーザー数をカウント
このクエリでは、Google 広告のインプレッション数表に一致するユーザー数がカウントされます。
/* Count matched users in Google Ads impressions table */
SELECT COUNT(DISTINCT user_id)
FROM adh.google_ads_impressions_match
ユーザー提供データのマッチング ユーザーをカウントする
このクエリは、一致したユーザーの数をマッチタイプ別にカウントします。広告イベント テーブルにはログイン ユーザーと非ログイン ユーザーの両方のイベントが含まれるため、ユーザー提供データの一致をフィルタすると、ログインしたユーザーのみが一致します。
/* Count user-provided data matched users by match type.
match_type = 1 for cookie matching
match_type = 2 for user-provided data matching */
SELECT
match_type AS match_type,
COUNT(DISTINCT user_id) AS user_cnt,
FROM
adh.google_ads_impressions_match
GROUP BY
match_type
次のクエリは、自社データと Google 広告データを結合する方法を示しています。
/* Join first-party data with Google Ads data. The external_cookie field
contains your ID as BYTES. You need to cast your join key into BYTES for
successful matches. */
SELECT
inventory_type,
COUNT(*) AS impressions
FROM
adh.yt_reserve_impressions_match AS google_data_imp
LEFT JOIN
`my_data`
ON
google_data_imp.external_cookie = CAST(my_data.user_id AS BYTES)
-- Uncomment the following line if cookie matching is enabled as well.
-- WHERE google_data_imp.match_type = 2
GROUP BY
inventory_type
このクエリは、Cookie に一致するユーザーを除く、ユーザー提供データと一致するユーザーの数をカウントします。広告イベント テーブルには、ログインしたユーザーとログアウトしたユーザーの両方のイベントが含まれているため、ユーザー提供データの一致のみをフィルタリングすると、ログインしたユーザーのみが一致します。
/* Count user-provided data matched users, excluding cookie matched users. */
SELECT
COUNT(DISTINCT user_id)
FROM
adh.google_ads_impressions_match
WHERE
match_type = 2
接続
有益な広告分析情報を得るには、多くの場合、複数のソースのデータをつなぎ合わせる必要があります。このデータ パイプラインの問題に対する独自のソリューションを構築するには、かなりの時間と投資が必要になります。Connections は、BigQuery へのデータのインポート、変換、書き込みのステップバイステップのガイド付きインターフェースを提供することで、このプロセスを効率化します。作成したデータは、Ads Data Hub クエリや、BigQuery から読み込まれるその他のプロダクトで使用できます。自社データでクエリを拡充すると、より豊かなカスタマー エクスペリエンスを提供でき、業界全体での広告トラッキングの変更に対する耐性も向上します。
また Connections は、個人を特定できる情報(PII)を暗号化し、プライバシーを重視しながらパートナーと共有するためのツールも構築されています。Connections では、PII が含まれる列を選択した後、データを暗号化し、権限を持つユーザーのみがエクスポートまたは読み取りを行えるようにします。
接続を使用して次の場所からデータをインポートできます。
- BigQuery
- Cloud Storage
- Salesforce(近日提供予定)
測定や有効化のユースケースに必要な自社データを把握するのは難しい場合があるため、Connections では、事前定義されたユースケースの包括的なリストを提供して、データの抽出、変換、読み込みの全容をガイドします。
自社データとデータ マッチングの違い
ユーザー提供のマッチテーブルを構成するワークフローは、Connections を介した通常の自社データ接続の作成に似ています。ただし、2 プロジェクトの要件では、ユーザー提供のデータ マッチングを使用する前に接続を設定することを前提としています。データ準備ツールとして接続のみを使用する場合は、単一の Google Cloud プロジェクトを使用できます。
ユーザー提供データのマッチングに関する追加の要件:
- メール、電話、住所、またはその組み合わせを結合キーとして使用する必要があります。
- user_id の競合の解決方法を指定する必要があります。既存の一致を維持するか、新しいデータで上書きするかを選択できます。
- datafusion アカウントと Dataproc アカウントに加えて、UPDM サービス アカウントを使用する必要があります。
自社データのワークフロー
接続を作成する
- [接続] > [自社データ] > [接続の作成] をクリックします。
- データソースに接続します。認証を求めるメッセージが表示されます。
BigQuery
権限は Google アカウントに基づいているため、追加の認証は必要ありません。Connections サービス アカウントにテーブルへの読み取りアクセス権が付与されていることを確認します。
Cloud Storage
権限は Google アカウントに基づいているため、追加の認証は必要ありません。Connections サービス アカウントにストレージ バケットへの読み取りアクセス権が付与されていることを確認します。
Salesforce
(近日提供予定)
組織の Salesforce 認証情報を使用してログインします。 Google は認証情報を保存しないため、新たに Salesforce に接続するたびに再認証が必要になります。
- ユースケースと結合キーを選択してから、ユースケースを選択してください。ユースケースを選択しない場合は、[スキップ] をクリックします。 ユースケースは後で選択できません。
- データソースを設定します。
BigQuery
インポートする BigQuery テーブルを選択します。
Cloud Storage
gsutil ファイルのパス(
gs://my-bucket/folder/
など)を入力し、ファイル形式を選択します。Salesforce
準備中
- 宛先とマップ フィールドを構成します。
- 結果を書き込む Google Cloud プロジェクト、データセット、テーブルを選択します。接続サービス アカウントに、書き込み先のデータセットに対する書き込みアクセス権があることを確認します。
- 接続を開始するたびに、書き込み先の新しいテーブルが作成されます。既存のテーブルを選択すると、エラーが表示されます。
- 宛先フィールド(作成しているテーブルに表示されるフィールド)をソースデータのソース フィールドにマッピングします。
- スケジュールを設定します。
- [完了] をクリックします。大量のデータを処理する接続は、実行に数時間かかることがあります。
接続の詳細の表示
接続の詳細ページには、特定の接続での最近の実行とエラーに関する情報が表示されます。特定の接続の詳細を表示するには:
- [接続] > [自社データ] をクリックします。
- 接続の名前をクリックして、詳細を表示します。
- 接続の詳細と最近の実行を確認できます。それぞれのエラーには、接続レベル(接続が実行されなかったこと)と行レベルのエラー(行がインポートされなかった)の 2 種類のエラーが表示されます。
- [失敗] ステータスは、接続全体の実行に失敗したことを示します(例: サービス アカウントの権限の問題)。エラー ステータスをクリックして、接続に影響を与えたエラーを確認します。
- [Completed] のステータスは、接続が正常に完了したことを示します。ただし、行レベルのエラーが引き続き発生することがあります。エラーは、[Rows with errors] 列にゼロ以外の値で示されます。値をクリックすると、失敗したレコードの詳細が表示されます。
接続を編集する
接続の編集はまだサポートされていません。接続を変更するには、新しい接続を作成し、古い接続を削除します。
ユースケース
選択したユースケースは、宛先テーブルのスキーマとインポートされた結合キーのフィールドに影響します。以下のユースケースを展開して、スキーマと結合キーへの影響を確認してください。
リーチとフリークエンシー
自社のユーザー セグメント別にスライス化された、複数のチャネルやデバイスにまたがるキャンペーンのリーチとフリークエンシーを測定します。
フィールド名 | 説明 | タイプ | 必須/省略可 |
---|---|---|---|
結合キー | 使用する結合キーに基づく変更 | 文字列 | 必須 |
gender | 性別 | 文字列 | 任意 |
age | Age | int | 任意 |
city | 市区郡町村 | 文字列 | 任意 |
country | Country | 文字列 | 任意 |
ライフサイクルの状態 | 顧客ファネルの状態: 不明、オンボーディング、エンゲージメント、失効など | 文字列 | 任意 |
loyalty_status | シルバー、ゴールド、プラチナ、ダイヤモンドなど | 文字列 | 任意 |
last_purchase_date | 最終購入日(Unix エポック タイムスタンプ) | int | 任意 |
last_purchase_product [前回の購入商品] | 最後に購入した商品 / 消費した商品 | 文字列 | 任意 |
last_contacted_date | 最後の連絡 / エンゲージメントの日付(Unix エポック タイムスタンプ) | int | 任意 |
LTV | 顧客 LTV | int | 任意 |
定期購入の種類 | 顧客が持っているサブプロダクトやサブスクリプション タイプ(例: デラックス、ファミリー プラン) | 文字列 | 任意 |
transaction_id | この取引の一意の ID | 文字列 | 任意 |
transaction_date | トランザクションの日付(Unix エポック タイムスタンプ) | int | 任意 |
transaction_revenue | トランザクションからの収益 | int | 任意 |
currency | トランザクションの通貨タイプ | 文字列 | 任意 |
quantity | 取引に含まれるアイテムの数量 | 文字列 | 任意 |
price | 取引に含まれるアイテムごとの価格 | int | 任意 |
transaction_cost | 取引による商品 / サービスの費用 | int | 任意 |
トランザクション利益 | トランザクションの総利益 | int | 任意 |
product_id | トランザクション内の商品の SKU / ID | 文字列 | 任意 |
transaction_description | 取引に関するその他の説明、メタデータ、パラメータ | 文字列 | 任意 |
event_type | 例: テレビ広告のインプレッション、マーケティング メール、ウェブサイト訪問、実店舗への来店など。 | 文字列 | 任意 |
イベント ID | 上記のイベントの一意の ID | 文字列 | 任意 |
event_timestamp | イベントの日付(Unix エポック タイムスタンプ) | int | 任意 |
チャンネル メタデータ | このタッチポイント チャネルに関する追加のメタデータまたは情報。 | 文字列 | 任意 |
マルチタッチ アトリビューション
自社のタッチポイントを Google データからのタッチポイントと組み合わせることでアトリビューションを測定します。
フィールド名 | 説明 | タイプ | 必須/省略可 |
---|---|---|---|
結合キー | 使用する結合キーに基づく変更 | 文字列 | 必須 |
event_type | 例: テレビ広告のインプレッション、マーケティング メール、ウェブサイト訪問、実店舗への来店など。 | 文字列 | 必須 |
イベント ID | 上記のイベントの一意の ID | 文字列 | 必須 |
event_timestamp | イベントの日付(Unix エポック タイムスタンプ) | int | 必須 |
クレジット | 貢献度(アトリビューションに使用)- 例: コンバージョン数 | int | 任意 |
チャンネル メタデータ | このタッチポイント チャネルに関する追加のメタデータまたは情報。 | 文字列 | 任意 |
パフォーマンス指標
ユーザー属性、アフィニティ、自社のユーザー セグメント別にスライス化されたキャンペーンのパフォーマンスを測定します。
フィールド名 | 説明 | タイプ | 必須/省略可 |
---|---|---|---|
結合キー | 使用する結合キーに基づく変更 | 文字列 | 必須 |
gender | 性別 | 文字列 | 任意 |
age | Age | int | 任意 |
city | 市区郡町村 | 文字列 | 任意 |
country | Country | 文字列 | 任意 |
ライフサイクルの状態 | 顧客ファネルの状態: 不明、オンボーディング、エンゲージメント、失効など | 文字列 | 任意 |
loyalty_status | シルバー、ゴールド、プラチナ、ダイヤモンドなど | 文字列 | 任意 |
last_purchase_date | 最終購入日(Unix エポック タイムスタンプ) | int | 任意 |
last_purchase_product [前回の購入商品] | 最後に購入した商品 / 消費した商品 | 文字列 | 任意 |
last_contacted_date | 最後の連絡 / エンゲージメントの日付(Unix エポック タイムスタンプ) | int | 任意 |
LTV | 顧客 LTV | int | 任意 |
定期購入の種類 | 顧客が持っているサブプロダクトやサブスクリプション タイプ(例: デラックス、ファミリー プラン) | 文字列 | 任意 |
コンバージョン経路アトリビューション
自社のタッチポイントなど、カスタムのタッチポイントを含むコンバージョン経路のパフォーマンスを分析します。
フィールド名 | 説明 | タイプ | 必須/省略可 |
---|---|---|---|
結合キー | 使用する結合キーに基づく変更 | 文字列 | 必須 |
event_type | 例: テレビ広告のインプレッション、マーケティング メール、ウェブサイト訪問、実店舗への来店など。 | 文字列 | 必須 |
イベント ID | 上記のイベントの一意の ID | 文字列 | 必須 |
event_timestamp | イベントの日付(Unix エポック タイムスタンプ) | int | 必須 |
クレジット | 貢献度(アトリビューションに使用)- 例: コンバージョン数 | int | 任意 |
チャンネル メタデータ | このタッチポイント チャネルに関する追加のメタデータまたは情報。 | 文字列 | 任意 |
クロス パブリッシャーの重複
自社のユーザー セグメント別にスライス化された、複数のパブリッシャーにまたがるキャンペーンのリーチとフリークエンシーを分析します。
フィールド名 | 説明 | タイプ | 必須/省略可 |
---|---|---|---|
結合キー | 使用する結合キーに基づく変更 | 文字列 | 必須 |
gender | 性別 | 文字列 | 任意 |
age | Age | int | 任意 |
city | 市区郡町村 | 文字列 | 任意 |
country | Country | 文字列 | 任意 |
ライフサイクルの状態 | 顧客ファネルの状態: 不明、オンボーディング、エンゲージメント、失効など | 文字列 | 任意 |
loyalty_status | シルバー、ゴールド、プラチナ、ダイヤモンドなど | 文字列 | 任意 |
last_purchase_date | 最終購入日(Unix エポック タイムスタンプ) | int | 任意 |
last_purchase_product [前回の購入商品] | 最後に購入した商品 / 消費した商品 | 文字列 | 任意 |
last_contacted_date | 最後の連絡 / エンゲージメントの日付(Unix エポック タイムスタンプ) | int | 任意 |
LTV | 顧客 LTV | int | 任意 |
定期購入の種類 | 顧客が持っているサブプロダクトやサブスクリプション タイプ(例: デラックス、ファミリー プラン) | 文字列 | 任意 |
同時キャンペーンのパフォーマンス
自社のユーザー セグメント別にスライス化された、並行キャンペーンのパフォーマンスを測定します。
フィールド名 | 説明 | タイプ | 必須/省略可 |
---|---|---|---|
結合キー | 使用する結合キーに基づく変更 | 文字列 | 必須 |
gender | 性別 | 文字列 | 任意 |
age | Age | int | 任意 |
city | 市区郡町村 | 文字列 | 任意 |
country | Country | 文字列 | 任意 |
ライフサイクルの状態 | 顧客ファネルの状態: 不明、オンボーディング、エンゲージメント、失効など | 文字列 | 任意 |
loyalty_status | シルバー、ゴールド、プラチナ、ダイヤモンドなど | 文字列 | 任意 |
last_purchase_date | 最終購入日(Unix エポック タイムスタンプ) | int | 任意 |
last_purchase_product [前回の購入商品] | 最後に購入した商品 / 消費した商品 | 文字列 | 任意 |
last_contacted_date | 最後の連絡 / エンゲージメントの日付(Unix エポック タイムスタンプ) | int | 任意 |
LTV | 顧客 LTV | int | 任意 |
定期購入の種類 | 顧客が持っているサブプロダクトやサブスクリプション タイプ(例: デラックス、ファミリー プラン) | 文字列 | 任意 |
transaction_id | この取引の一意の ID | 文字列 | 任意 |
transaction_date | トランザクションの日付(Unix エポック タイムスタンプ) | int | 任意 |
transaction_revenue | トランザクションからの収益 | int | 任意 |
currency | トランザクションの通貨タイプ | 文字列 | 任意 |
quantity | 取引に含まれるアイテムの数量 | 文字列 | 任意 |
price | 取引に含まれるアイテムごとの価格 | int | 任意 |
transaction_cost | 取引による商品 / サービスの費用 | int | 任意 |
トランザクション利益 | トランザクションの総利益 | int | 任意 |
product_id | トランザクション内の商品の SKU / ID | 文字列 | 任意 |
transaction_description | 取引に関するその他の説明、メタデータ、パラメータ | 文字列 | 任意 |
event_type | 例: テレビ広告のインプレッション、マーケティング メール、ウェブサイト訪問、実店舗への来店など。 | 文字列 | 任意 |
イベント ID | 上記のイベントの一意の ID | 文字列 | 任意 |
event_timestamp | イベントの日付(Unix エポック タイムスタンプ) | int | 任意 |
チャンネル メタデータ | このタッチポイント チャネルに関する追加のメタデータまたは情報。 | 文字列 | 任意 |
キャンペーン比較
Google キャンペーンと他のパブリッシャーのパフォーマンスを比較します。
フィールド名 | 説明 | タイプ | 必須/省略可 |
---|---|---|---|
結合キー | 使用する結合キーに基づく変更 | 文字列 | 必須 |
チャンネル | このキャンペーンが実施されたチャネル(Facebook、TV など) | 文字列 | 必須 |
パートナー | パートナーの名前(関与している場合) | 文字列 | 任意 |
戦術 | 特定の戦術の名前 | 文字列 | 任意 |
キャンペーン メタデータ | このキャンペーンに関する追加のメタデータまたは情報 | 文字列 | 任意 |
date | キャンペーン アクティビティの日付(Unix エポック タイムスタンプ) | int | 必須 |
表示回数 | このキャンペーンのキャンペーンの表示回数 | int | 必須 |
clicks | この日付のこのキャンペーンのクリック数 | int | 必須 |
コンバージョン数 | この日付のこのキャンペーンからのコンバージョン数 | int | 必須 |
費用 | この日付のこのキャンペーンの合計費用 | int | 必須 |
アフィニティとラベルの比較
自社のユーザー セグメントと、Google アフィニティ セグメントおよび購買意向の強いオーディエンス セグメント間の重複を見つけます。
フィールド名 | 説明 | タイプ | 必須/省略可 |
---|---|---|---|
結合キー | 使用する結合キーに基づく変更 | 文字列 | 必須 |
gender | 性別 | 文字列 | 任意 |
age | Age | int | 任意 |
city | 市区郡町村 | 文字列 | 任意 |
country | Country | 文字列 | 任意 |
ライフサイクルの状態 | 顧客ファネルの状態: 不明、オンボーディング、エンゲージメント、失効など | 文字列 | 任意 |
loyalty_status | シルバー、ゴールド、プラチナ、ダイヤモンドなど | 文字列 | 任意 |
last_purchase_date | 最終購入日(Unix エポック タイムスタンプ) | int | 任意 |
last_purchase_product [前回の購入商品] | 最後に購入した商品 / 消費した商品 | 文字列 | 任意 |
last_contacted_date | 最後の連絡 / エンゲージメントの日付(Unix エポック タイムスタンプ) | int | 任意 |
LTV | 顧客 LTV | int | 任意 |
定期購入の種類 | 顧客が持っているサブプロダクトやサブスクリプション タイプ(例: デラックス、ファミリー プラン) | 文字列 | 任意 |
アプリ コンバージョンの分析
アプリ内ユーザー行動に対するキャンペーンの効果を測定します。
フィールド名 | 説明 | タイプ | 必須/省略可 |
---|---|---|---|
結合キー | 使用する結合キーに基づく変更 | 文字列 | 必須 |
date | モバイルアプリのアクティビティの日付(Unix エポック タイムスタンプ) | int | 必須 |
インストール | この日にインストール イベントが記録されたかどうかを表すブール値 | boolean | 必須 |
登録する | この日に登録イベントが記録されたかどうかを表すブール値 | boolean | 必須 |
login | この日にログイン イベントが記録されたかどうかを表すブール値 | boolean | 必須 |
in_app_purchases | この日のアプリ内購入の合計数 | int | 必須 |
ROI の計算
自社のコンバージョン データに基づく投資収益率の増分を測定します。
フィールド名 | 説明 | タイプ | 必須/省略可 |
---|---|---|---|
結合キー | 使用する結合キーに基づく変更 | 文字列 | 必須 |
transaction_id | この取引の一意の ID | 文字列 | 必須 |
transaction_date | トランザクションの日付(Unix エポック タイムスタンプ) | int | 必須 |
transaction_revenue | トランザクションからの収益 | int | 必須 |
currency | トランザクションの通貨タイプ | 文字列 | 任意 |
quantity | 取引に含まれるアイテムの数量 | 文字列 | 任意 |
price | 取引に含まれるアイテムごとの価格 | int | 任意 |
transaction_cost | 取引による商品 / サービスの費用 | int | 任意 |
トランザクション利益 | トランザクションの総利益 | int | 任意 |
product_id | トランザクション内の商品の SKU / ID | 文字列 | 任意 |
transaction_description | 取引に関するその他の説明、メタデータ、パラメータ | 文字列 | 任意 |
カスタム オーディエンスの有効化
自社データと Google データに基づくカスタム ユーザー セグメントを作成、有効化します
フィールド名 | 説明 | タイプ | 必須/省略可 |
---|---|---|---|
結合キー | 使用する結合キーに基づく変更 | 文字列 | 必須 |
gender | 性別 | 文字列 | 任意 |
age | Age | int | 任意 |
city | 市区郡町村 | 文字列 | 任意 |
country | Country | 文字列 | 任意 |
ライフサイクルの状態 | 顧客ファネルの状態: 不明、オンボーディング、エンゲージメント、失効など | 文字列 | 任意 |
loyalty_status | シルバー、ゴールド、プラチナ、ダイヤモンドなど | 文字列 | 任意 |
last_purchase_date | 最終購入日(Unix エポック タイムスタンプ) | int | 任意 |
last_purchase_product [前回の購入商品] | 最後に購入した商品 / 消費した商品 | 文字列 | 任意 |
last_contacted_date | 最後の連絡 / エンゲージメントの日付(Unix エポック タイムスタンプ) | int | 任意 |
LTV | 顧客 LTV | int | 任意 |
定期購入の種類 | 顧客が持っているサブプロダクトやサブスクリプション タイプ(例: デラックス、ファミリー プラン) | 文字列 | 任意 |
カスタム入札
自社データと Google データに基づくディスプレイ&ビデオ 360 入札戦略を最適化します
フィールド名 | 説明 | タイプ | 必須/省略可 |
---|---|---|---|
結合キー | 使用する結合キーに基づく変更 | 文字列 | 必須 |
gender | 性別 | 文字列 | 任意 |
age | Age | int | 任意 |
city | 市区郡町村 | 文字列 | 任意 |
country | Country | 文字列 | 任意 |
ライフサイクルの状態 | 顧客ファネルの状態: 不明、オンボーディング、エンゲージメント、失効など | 文字列 | 任意 |
loyalty_status | シルバー、ゴールド、プラチナ、ダイヤモンドなど | 文字列 | 任意 |
last_purchase_date | 最終購入日(Unix エポック タイムスタンプ) | int | 任意 |
last_purchase_product [前回の購入商品] | 最後に購入した商品 / 消費した商品 | 文字列 | 任意 |
last_contacted_date | 最後の連絡 / エンゲージメントの日付(Unix エポック タイムスタンプ) | int | 任意 |
LTV | 顧客 LTV | int | 任意 |
定期購入の種類 | 顧客が持っているサブプロダクトやサブスクリプション タイプ(例: デラックス、ファミリー プラン) | 文字列 | 任意 |
クロス パブリッシャーのパフォーマンス
パブリッシャー別、またはパブリッシャーと自社のユーザー セグメント別にスライス化されたパフォーマンス指標を測定します
フィールド名 | 説明 | タイプ | 必須/省略可 |
---|---|---|---|
結合キー | 使用する結合キーに基づく変更 | 文字列 | 必須 |
gender | 性別 | 文字列 | 任意 |
age | Age | int | 任意 |
city | 市区郡町村 | 文字列 | 任意 |
country | Country | 文字列 | 任意 |
ライフサイクルの状態 | 顧客ファネルの状態: 不明、オンボーディング、エンゲージメント、失効など | 文字列 | 任意 |
loyalty_status | シルバー、ゴールド、プラチナ、ダイヤモンドなど | 文字列 | 任意 |
last_purchase_date | 最終購入日(Unix エポック タイムスタンプ) | int | 任意 |
last_purchase_product [前回の購入商品] | 最後に購入した商品 / 消費した商品 | 文字列 | 任意 |
last_contacted_date | 最後の連絡 / エンゲージメントの日付(Unix エポック タイムスタンプ) | int | 任意 |
LTV | 顧客 LTV | int | 任意 |
定期購入の種類 | 顧客が持っているサブプロダクトやサブスクリプション タイプ(例: デラックス、ファミリー プラン) | 文字列 | 任意 |