# Google Ads リマーケティングリストエクスポート統合(非推奨)

この統合は、[Google AdWords API が廃止された](https://ads-developers.googleblog.com/2022/05/adwords-api-has-officially-sunset.html)ため、サポートされなくなりました。この統合を使用すると、以下のエラーメッセージが表示されます。   |  | | --- | | `Caused by: com.fasterxml.jackson.databind.JsonMappingException: Can not construct instance of com.fasterxml.jackson.databind.JsonNode, problem:``abstract` `types either need to be mapped to concrete types, have custom deserializer, or be instantiated with additional type information` `at [Source: N/A; line: -``1``, column: -``1``]` |   [Google Ads Import Integration - V2](/ja/int/google-ads-import-integration-v2) への移行を推奨します。[Migrating Google Adwords Integrations](/ja/int/migrating-google-adwords-integrations) を参照してください。

複数の Google Ads 統合が利用可能です。この記事では Google Ads リマーケティングについて説明します。

![](/assets/image2021-6-9_11-18-2.c1b2a0da9f636ffe07e04a4dbdaadcd57f9594079dae7845000a2a5dc372f50e.aa705ec5.png)

この記事では、Audience Partner API 経由の Google Ads(旧称 DDP 経由の AdWords)については説明していません。この名称は、Google が Google AdWords を Google Ads にリブランディングした後に変更されました。この統合は、特定のタイプのオーディエンスリスト(カスタマーリスト)でのみ機能します。アプリユーザーやウェブサイト訪問者などの他のリマーケティングリストタイプは、この統合ではサポートされていません。

この統合を活用することで、メールアドレスや電話番号などのユーザープロファイルを Google Ads リマーケティングユーザーリストに直接エクスポートできます。TD SQL クエリジョブの結果を実行して CRM データを一括アップロードし、Google リマーケティングユーザーリストにデータを追加または削除します。

userId カラムのデータをエクスポートできます。また、既存の segment からユーザーを削除することもできます。

- [前提条件](/ja/int/google-ads-remarketing-lists-export-integration-deprecated#h1_1644201065)
- [制限事項](/ja/int/google-ads-remarketing-lists-export-integration-deprecated#h1_1039046855)
- [カラム名](/ja/int/google-ads-remarketing-lists-export-integration-deprecated#h1_398826548)
- [データの正規化とハッシュ化](/ja/int/google-ads-remarketing-lists-export-integration-deprecated#h1__1346423306)
- [Google Ads ポリシー](/ja/int/google-ads-remarketing-lists-export-integration-deprecated#h1_1242475641)
- [Google Ads Developer Token の取得](/ja/int/google-ads-remarketing-lists-export-integration-deprecated#h1__168621430)
- [Treasure コンソール の使用](/ja/int/google-ads-remarketing-lists-export-integration-deprecated#h1_1466743834)
- [新しい接続の作成](/ja/int/google-ads-remarketing-lists-export-integration-deprecated#h2__1933218993)
- [クエリの定義](/ja/int/google-ads-remarketing-lists-export-integration-deprecated#h1__1190668676)
- [Google Ads リマーケティングリストの統合パラメータ](/ja/int/google-ads-remarketing-lists-export-integration-deprecated#h2__1132981550)
- [クエリの例](/ja/int/google-ads-remarketing-lists-export-integration-deprecated#h2_2027476544)
- [クエリ結果の検証(オプション)](/ja/int/google-ads-remarketing-lists-export-integration-deprecated#h1_1358407630)
- [クエリエクスポートジョブのスケジュール設定(オプション)](/ja/int/google-ads-remarketing-lists-export-integration-deprecated#h1__761307651)
- [Treasure コンソール を使用したジョブのスケジュール設定](/ja/int/google-ads-remarketing-lists-export-integration-deprecated#h2__803875349)
- [カスタム cron の詳細](/ja/int/google-ads-remarketing-lists-export-integration-deprecated#h3__1639660373)
- [クエリの実行](/ja/int/google-ads-remarketing-lists-export-integration-deprecated#h2__1254828190)
- [Workflow でのエクスポート結果の設定(オプション)](/ja/int/google-ads-remarketing-lists-export-integration-deprecated#h1_2054937253)
- [トラブルシューティング](/ja/int/google-ads-remarketing-lists-export-integration-deprecated#h1_861724344)


# 前提条件

- TD Toolbelt を含む Treasure Data の基本知識
- Google Ads アカウント
- 自身の Google Ads アカウントへの Treasure Data Google OAuth アプリアクセスの承認


# 制限事項

以下の制限事項は、[Google Ads API ドキュメント「リマーケティングとオーディエンスターゲティング」](https://developers.google.com/adwords/api/docs/guides/remarketing#multiple_user_lists)およびサポート記事に記載されています。

- **最小 5000 ユーザー**。広告は、少なくとも 5000 人のユーザーを持つユーザーリストに配信されます。「カスタマーマッチの制限」セクションを参照してください。ドキュメントには次のように記載されています:「広告の配信を開始するには、リストに少なくとも 5,000 人のメンバーをアップロードしてください。」
- **Google アカウントのメール**。メールは Google アカウントを使用して接続する必要があります。「メールアドレス、住所、またはユーザー ID によるカスタマーマッチ」セクションを参照してください。
- **@gmail.com 以外のアドレスは無視される**。Gmail でのターゲティングには、@gmail.com 形式のメールのみを使用できます。「メールアドレス、住所、またはユーザー ID によるカスタマーマッチ」セクションを参照してください。
- **ユーザーリストの丸め処理。** Google Ads マネージャーサイトでは、ユーザーリストの数は正確に表示されません:
  - ユーザー数が 1000 未満の場合、100 単位に丸められます。
  - それ以外の場合は、最も重要な 2 桁に丸められます。「カスタマーマッチの制限」セクションを参照してください。
- **Google ディスプレイネットワークのカスタマーマッチ**。カスタマーマッチは、Google ディスプレイネットワーク内のサードパーティサイトでは利用できません。「メールアドレス、住所、またはユーザー ID によるカスタマーマッチ」セクションを参照してください。
- **48 時間の遅延。** Google が新しいユーザーをリストに追加するには最大 48 時間かかります。[https://support.google.com/google-ads/answer/7474263](https://support.google.com/google-ads/answer/7474263) の「注意」セクションを参照してください。


# カラム名

出力結果は、事前定義されたカラム名を使用する必要があります。サポートされているカラム名は次のとおりです:

- `mobile_id`: IDFA(Identifier for Advertising)または AAID(Google Advertising ID)モバイルデバイス ID。例:**AEBE52E7-03EE-455A-B3C4-E57283966239**(形式は: 8-4-4-4-12 の 16 進数文字)
- `email`: メールアドレス
- `phone_number`: 電話番号
- user_id: 広告主が生成および割り当てたユーザー ID。この機能を使用するには、ホワイトリストに登録された Google アカウントが必要です(詳細については: [https://support.google.com/adspolicy/answer/6299717](https://support.google.com/adspolicy/answer/6299717))。


クエリ結果からサポートされているカラムが見つからない場合、エラーが発生します。カラムエイリアスは大文字と小文字を区別しません。たとえば、**email** または **EMAIL** を使用できます。

カラム名がサポートされている値と一致しない場合は、クエリでエイリアスを使用する必要があります。例:


```
SELECT an_email_column AS email,
another_phone_column AS phone_number
FROM your_table;
```

# データの正規化とハッシュ化

Treasure Data の結果出力は、Google のフォーマットとプライバシーガイドラインに従うために、値を自動的に正規化およびハッシュ化します。サポートされているハッシュアルゴリズムは SHA-256 のみです。

CRM データは、受け入れられるために特定のフォーマットガイドラインに従う必要があります。誤ったフォーマットは、アップロードエラーまたは一致するレコード数の減少につながる可能性があります。

正規化のために、結果出力中にデータタイプに応じて次の変換動作が適用されます。

- モバイル広告 ID: 正規化なし。
- メール:
  - データがプレーンテキストの場合、先頭と末尾の空白をトリミングし、すべての文字を小文字に変換してから、送信前にハッシュ化します
  - データが既にハッシュ化されている場合、変換は適用されません
- 電話番号: [E.164 形式](https://en.wikipedia.org/wiki/E.164)を使用します。例: +1234567890
  - データがプレーンテキストの場合、値をハッシュ化します
  - データが既にハッシュ化されている場合、変換は適用されません
- ユーザー ID: 正規化なし。


# Google Ads ポリシー

Treasure Data は、特に以下の Google Ads ポリシーを遵守することを推奨します:

- [パーソナライズド広告に関する Google Ads ポリシー](https://support.google.com/adspolicy/answer/143465)
- [カスタマーマッチに関する Google Ads ポリシー: ファーストパーティのコンテキストで収集した顧客情報のみをアップロードする](https://support.google.com/adspolicy/answer/6299717?hl=en)


# Google Ads Developer Tokenの取得

この情報には、Ads Managerアカウントが必要です：

1. [Ad Managerアカウントのホームページ](https://www.google.com/adwords/manager-accounts/)にアクセスし、**今すぐ開始**を選択します。
2. 必要な情報を入力し、**保存**を選択して続行します。
3. メールアドレスが確認されると、新しいマネージャーアカウントがアクティブになります。
4. ツール、お支払い、設定アイコンを選択し、セットアップの下にある**AdWords APIセンター**を選択します。マネージャーアカウントにログインしている場合のみ、AdWords APIセンターのリンクが表示されます。


![](/assets/image-20191015-161003.0c605d222c3c41e188947909b288055d9d765c3ee0c9d096466a1908cd9e5103.aa705ec5.png)

1. Ads APIの利用規約に同意するよう求められます。同意後、**トークンを作成**を選択します。
2. **テストアカウント**に対してはすぐにDeveloper Tokenを使用できますが、実際のAdsアカウントで動作するにはDeveloper Tokenの承認が必要です。これを行うには、[Basic/Standardアクセスレベル](https://developers.google.com/adwords/api/docs/guides/signup#billing)を申請する必要があります。


![](/assets/image-20191015-161010.e96363bd144b16398bfd63c4b0fe5c18e14c0036a32829bdc3af3eb76824b739.aa705ec5.png)

# Treasure コンソールの使用

## 新規接続の作成

Treasure Dataでは、クエリを実行する前にデータ接続を作成して設定する必要があります。データ接続の一部として、統合にアクセスするための認証情報を提供します。

##### 1. **Treasure コンソール**を開きます。

##### 2. **Integrations Hub** > **Catalog**に移動します。

##### 3. Google Adsを検索して選択します。

![](/assets/image2021-3-24_19-23-48.5d8eab5494a90fed6b53519c1672ebdf3f76442deed2b051a2c5e3b23c6cefe6.aa705ec5.png)

##### **Create Authentication**を選択します。

![](/assets/image2021-3-24_19-24-37.65e5a1293a5fe299579f69b511943b2510faed9990001dea5f3c21ac16ea664d.aa705ec5.png)

##### 認証するための認証情報を入力します。

##### オプションで、**Click here**を選択してGoogleにログインします。

![](/assets/image-20191015-160816.505ab2fa3944a3eff2e4a49e64f073341ae97ef1c62b6ccf30b66d2015765bcf.aa705ec5.png)

1.   1. **Integrations Hub** > **Catalog**に戻ります。
  2. Google Adsを検索して選択します。
  3. New Authenticationを選択します。
  4. OAuth接続フィールドの定義を確認します。


##### 7. **Continue**を選択します。

##### 接続の名前を入力します。

##### **Done**を選択します。

# クエリの定義

出力結果には、事前定義された列名を使用する必要があります。

user_idをGoogleにアップロードするには、user_id列をクエリする必要があります。

Treasure Dataの結果出力は、Googleのフォーマットおよびプライバシーガイドラインに従うために、値を自動的に正規化およびハッシュ化します。サポートされているハッシュアルゴリズムはSHA-256のみです。

## Google Ads Remarketing Listsの統合パラメータ

![](/assets/image2021-3-24_19-47-33.e1f4efd0a901e509bbbf5d5de5ae406015128ef71ada1ddf1dd3de6adc05a15f.aa705ec5.png)

![](/assets/image2021-3-24_19-48-9.53212625800787866b3e1ee12efae7f9fb80e6c3e4606d04f80b9e9fd6e62abf.aa705ec5.png)

| パラメータ | 必須 | 説明 |
|  --- | --- | --- |
| Ads Account | はい | Ads Customer IDで、形式は`xxx-yyy-zzzz`です |
| Mobile Application ID |  | モバイルアプリケーションID。Mobile Advertising IDをエクスポートする場合は必須です   - - iOS の場合：この設定を使用するには、モバイルアプリ名、9桁または10桁のApple ID、またはパブリッシャーで検索します。   - Androidの場合：ID文字列はアプリケーションのパッケージ名です（例：Google Playリンク[https://play.google.com/store/apps/details?id=com.labpixies.colordrips](https://play.google.com/store/apps/details?id=com.labpixies.colordrips)の「Color Drips」の場合は「com.labpixies.colordrips」） |
| UserList name | はい | ユーザーリストの名前。 |
| UserList description |  | ユーザーリストの説明。 |
| Mode |  | 出力モード。   - - **Append（デフォルト）**：クエリ結果が既存のユーザーリストに追加されます。指定された入力名のユーザーリストが存在しない場合は、新しいユーザーリストが作成されます。   - **Replace**：既存のユーザーリストのすべてのメンバーが削除され、クエリ結果に置き換えられます。ユーザーリストが存在しない場合は、新しいユーザーリストが作成されます。   - **Remove**：クエリ結果が既存のユーザーリストから削除されます。 |
| Membership Lifespan |  | ユーザーの連絡先情報がユーザーリストに保持される日数。デフォルト：`10000` |
| Upload Batch Size |  | 各バッチでアップロードするレコード数。デフォルト：`100000` |
| Retry Limit |  | システムが諦めるまでの再試行回数。デフォルト：`5` |
| Initial retry time wait in millis |  | 最初の試行と2回目の試行の間の時間（ミリ秒）。デフォルト：`500`（0.5秒相当） |
| Max retry wait in millis |  | 2回目以降のすべての試行の間の時間（ミリ秒）。デフォルト：`300000`（5分相当） |


## クエリの例

Treasure コンソールのQueriesページから、出力結果がGoogle Ads接続に送信されるように指定して、次のようなクエリを実行します。このクエリは一例です。


```
SELECT email, phone_number FROM (
  VALUES ('demo1@example.com', '+1234567890'),
         ('demo2@example.com', '+9876543210'),
         ('demo3@example.com', '+9988776655')
)  tbl (email, phone_number)
```

クエリでソーステーブルを指定する必要はありませんが、データベースを選択する必要があります。


```
SELECT email FROM app_users
```

クエリには以下を含めることができます：

- `mobile_id`のみ
- `email`および/または`phone_number`のみ
- `user_id`のみ
- その他のすべての列は無視されます


クエリは数秒で完了します。

# オプション: クエリ結果を検証する

新しく入力されたデータを表示するために、オーディエンスリストを検証します。

![](/assets/image-20191015-160853.443df15a4962a02f51a4a92ec1a106659018eaa5f36ab48a286b8bc884b116dc.aa705ec5.png)

# オプション: クエリエクスポートジョブをスケジュールする

Scheduled Jobsとエクスポート結果を使用して、指定したターゲット送信先に出力結果を定期的に書き込むことができます。

Treasure Dataのスケジューラー機能は、高可用性を実現するために定期的なクエリ実行をサポートしています。

2つの仕様が競合するスケジュール仕様を提供する場合、より頻繁に実行することを要求する仕様が優先され、もう一方のスケジュール仕様は無視されます。

たとえば、cronスケジュールが`'0 0 1 * 1'`の場合、「日」の仕様と「曜日」は一致しません。前者の仕様は毎月1日の深夜（00:00）に実行することを要求し、後者の仕様は毎週月曜日の深夜（00:00）に実行することを要求するためです。この場合、後者の仕様が優先されます。

## Treasure コンソールを使用してジョブをスケジュールする

1. **Data Workbench > Queries**に移動します
2. 新しいクエリを作成するか、既存のクエリを選択します。
3. **Schedule**の横にある「None」を選択します。
![](/assets/image2021-1-15_17-28-51.f1b242f6ecc7666a0097fdf37edd1682786ec11ef80eff68c66f091bc405c371.0f87d8d4.png)
4. ドロップダウンで、次のスケジュールオプションのいずれかを選択します。
![](/assets/image2021-1-15_17-29-47.45289a1c99256f125f4d887e501e204ed61f02223fde0927af5f425a89ace0c0.0f87d8d4.png)
| ドロップダウン値 | 説明 |
|  --- | --- |
| Custom cron... | [Custom cron...の詳細](/ja/int/google-ads-remarketing-lists-export-integration-deprecated#h3__1639660373)を参照してください。 |
| @daily (midnight) | 指定されたタイムゾーンで1日1回深夜（午前00:00）に実行します。 |
| @hourly (:00) | 毎時00分に実行します。 |
| None | スケジュールなし。 |


### Custom cron...の詳細

![](/assets/image2021-1-15_17-30-23.0f94a8aa5f75ea03e3fec0c25b0640cd59ee48d1804a83701e5f2372deae466c.0f87d8d4.png)

| **Cron値** | **説明** |
|  --- | --- |
| `0 * * * *` | 1時間に1回実行します。 |
| `0 0 * * *` | 1日1回深夜に実行します。 |
| `0 0 1 * *` | 毎月1日の深夜に1回実行します。 |
| "" | スケジュールされた実行時間のないジョブを作成します。 |



```
 *    *    *    *    *
 -    -    -    -    -
 |    |    |    |    |
 |    |    |    |    +----- day of week (0 - 6) (Sunday=0)
 |    |    |    +---------- month (1 - 12)
 |    |    +--------------- day of month (1 - 31)
 |    +-------------------- hour (0 - 23)
 +------------------------- min (0 - 59)
```

次の名前付きエントリを使用できます。

- Day of Week: sun, mon, tue, wed, thu, fri, sat.
- Month: jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec.


各フィールドの間には単一のスペースが必要です。各フィールドの値は次のように構成できます。

| フィールド値 | 例 | 例の説明 |
|  --- | --- | --- |
| 各フィールドの上記制限内の単一の値。 |  |  |
| フィールドに基づく制限がないことを示すワイルドカード`'*'`。 | `'0 0 1 * *'` | 毎月1日の深夜（00:00）に実行するようにスケジュールを設定します。 |
| フィールドで受け入れられる値の範囲を示す範囲`'2-5'`。 | `'0 0 1-10 * *'` | 毎月1日から10日の深夜（00:00）に実行するようにスケジュールを設定します。 |
| フィールドで受け入れられる値のリストを示すカンマ区切りの値のリスト`'2,3,4,5'`。 | `0 0 1,11,21 * *'` | 毎月1日、11日、21日の深夜（00:00）に実行するようにスケジュールを設定します。 |
| フィールドの有効な値の範囲に基づいて、スケジュールの実行頻度を表す周期性インジケーター`'*/5'`。 | `'30 */2 1 * *'` | 毎月1日に、00:30から2時間ごとに実行するようにスケジュールを設定します。`'0 0 */5 * *'`は、毎月5日から5日ごとに深夜（00:00）に実行するようにスケジュールを設定します。 |
| `'*'`ワイルドカードを除く上記のいずれかのカンマ区切りリスト`'2,*/5,8-10'`もサポートされています。 | `'0 0 5,*/10,25 * *'` | 毎月5日、10日、20日、25日の深夜（00:00）に実行するようにスケジュールを設定します。 |


1. （オプション）Delay executionを有効にして、クエリの開始時間を遅らせることができます。


### クエリを実行する

名前を付けてクエリを保存して実行するか、クエリを実行するだけです。クエリが正常に完了すると、クエリ結果は指定されたコンテナの送信先に自動的にインポートされます。

| Information | 設定エラーにより継続的に失敗するスケジュールジョブは、複数回の通知の後、システム側で無効化される場合があります。 |

| --- | --- |

# オプション: Workflowでエクスポート結果を設定する

Treasure ワークフロー内で、このデータコネクターを使用してデータをエクスポートするように指定できます。

詳細については、[Using Workflows to Export Data with the TD Toolbelt](/tools/cli-and-sdks/api#workflow-commands)を参照してください。

# トラブルシューティング

Q: ステータスが「Populating」の状態が1日または2日続いた後、ユーザーリストのステータスが「Error with the last upload」に変わります。なぜですか？

- テスト中、多くのリストを同時にアップロードすると、Google APIでこの問題が発生するようです。問題を引き起こす可能性のあるユーザーリストの数は不明ですが、一度にアップロードするユーザーリストは3〜5個に制限する必要があります。


Q: ユーザーリストのサイズの値が変わり続けるのはなぜですか？

- 観察によると、各ネットワークのサイズは、アクティブなユーザー数に基づいて毎日変化する可能性があります。


![](/assets/image-20191015-161020.bad5ddd93faaacdd34e2adafbb48929859e859a70c039ca45bbffadbe329361c.aa705ec5.png)

Q: リストのステータスが「Populating...」と表示されるのはなぜですか？

- リストにメンバーが入力されるまでに6〜12時間かかるため、12時間ごとに1回よりも頻繁にオーディエンスリストにアップロードすると、Ads UIで「Populating...」ステータスが表示される可能性があります。ほとんどの場合、リストが確定するまで最大48時間かかることがあります。