# Adroll Export Integration

Treasure DataからAdRoll APIにジョブ結果を直接書き込むことができます。

Adroll Connectorは非推奨となりました。代わりにNextRoll Audience Exportコネクタを使用してください。[NextRoll Export Connector](/ja/int/nextroll-export-integration)

# 前提条件

- [TD Toolbelt](https://toolbelt.treasuredata.com/)を含むTreasure Dataの基本的な知識
- AdRollアカウント([https://www.adroll.com/](https://www.adroll.com/))
- AdRoll開発者アカウント([https://developers.adroll.com/](https://developers.adroll.com/))
- AdRollへの認可されたTreasure Dataアカウントアクセス


AdRollアプリケーションを作成し、Treasure Dataコネクタを使用する前にAdRollによって承認される必要があります。詳細については、[https://developers.adroll.com/user/me/apps](https://developers.adroll.com/user/me/apps) を参照してください。(情報を表示するにはログインする必要があります。)

# TD Consoleを使用して接続を作成する

## 新しい接続を作成する

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

1. **TD Console** を開きます。
2. **Integrations Hub** > **Catalog** に移動します。
3. Catalogの画面右端にある検索アイコンをクリックし、**AdRoll** と入力します。
4. AdRollコネクタにカーソルを合わせて **Create Authentication** を選択します。


![](/assets/adroll.a6b80936c15dc26bf8574af2dc82b6b1c99de1c583f41ff1f162505be7e2adbe.8b82f3dd.png)

次のダイアログが開きます。

![](/assets/newauthadroll.8a166a63e3e39198f16b7145801a0aaa78e561a16437e773667574c2514ba478.8b82f3dd.png)

UsernameとPasswordは、[https://developers.adroll.com/user/login](https://developers.adroll.com/user/login) へのログインに必要な値と同じです。

![](/assets/usernpwd.eaf583f179fe72b4ac551fefb197cb904b6681c7a2e1d04934efdf6667449c3b.8b82f3dd.png)

API KeyはAdRollアプリケーションの一部として生成されるClient IDと同じです。

![](/assets/adrollapikey.d8fc5214b1a2947962b2ae8a9b547563e5340dd8cb20b16b1fa17e991ec29344.8b82f3dd.png)

## データ接続でエクスポート結果を設定する

このステップでは、クエリを作成または再利用します。クエリでデータ接続を設定します。

注: クエリで列マッピングを定義する必要がある場合があります。

### パラメータを指定して接続を設定する

TD Consoleに移動します。**Data Workbench** > **Queries** に移動します。データのエクスポートに使用する予定のクエリにアクセスします。

クエリエディタの上部にある **Export Results** を選択します。Choose Integrationダイアログが開きます。検索ボックスに接続名を入力してフィルタリングし、接続を選択します。

![](/assets/adrollchooseint.4baca7220333608e6d5bfeb600f2b5c2e0fee8e97baa23658ef7212d9e065299.8b82f3dd.png)

パラメータ:

- **Advertiser ID** (必須): オーディエンスをグループ化するために使用されるID。
- **Retry Limit**(オプション): ネットワーク操作を試行する回数。デフォルト: 7
- **Connect Timeout in Seconds**(オプション): 接続操作を中止するまでの待機時間(秒単位)。デフォルト: 300、これは5分に相当します。
- **Read Timeout in Seconds** (オプション): 読み取り操作を中止するまでの待機時間(秒単位)。デフォルト: 900、これは15分に相当します。
- **Write Timeout in Seconds**(オプション): 書き込み操作を中止するまでの待機時間(秒単位)。デフォルト: 900、これは15分に相当します。
- **Skip on invalid records?** (オプション): 1つ以上の無効なレコードに遭遇した場合に処理を続行する(チェック)か、処理を終了する(チェックなし)かを選択するチェックボックス。


以下はサンプル設定です:

![](/assets/adrollexpsamp.d154e03be306b884eafbf8e4484668c7dca2a772dbc83e66ef7dd9645135eba1.8b82f3dd.png)

## AdRollにデータを投入するクエリの例

Treasure Dataから、AdRoll用の接続にExport Resultsを使用して次のクエリを実行します:


```sql
SELECT type, data, segment_id, segment_name FROM your_table;
```

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

Result Exportを使用したScheduled Jobsを使用して、指定した宛先に出力結果を定期的に書き込むことができます。

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

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

たとえば、cronスケジュールが`'0 0 1 * 1'`の場合、「day of month」仕様と「day of week」は不一致です。前者の仕様では毎月1日の午前0時(00:00)に実行する必要があり、後者の仕様では毎週月曜日の午前0時(00:00)に実行する必要があるためです。後者の仕様が優先されます。

### (オプション) Query Export ジョブをスケジュールする

Scheduled Jobs と Result Export を使用して、指定したターゲット宛先に出力結果を定期的に書き込むことができます。

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

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

例えば、cron スケジュールが `'0 0 1 * 1'` の場合、「月の日」の仕様と「週の曜日」が矛盾します。前者の仕様は毎月 1 日の午前 0 時 (00:00) に実行することを要求し、後者の仕様は毎週月曜日の午前 0 時 (00:00) に実行することを要求するためです。後者の仕様が優先されます。

#### TD Console を使用してジョブをスケジュールする

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... の詳細](#custom-cron-details)を参照してください。 |
| @daily (midnight) | 指定されたタイムゾーンで 1 日 1 回午前 0 時 (00:00 am) に実行します。 |
| @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 0 1 * *` | 毎月 1 日の午前 0 時に 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 日の午前 0 時 (00:00) に実行するようにスケジュールを設定します。 |
| 範囲 `'2-5'`
フィールドの許可される値の範囲を示します。 | `'0 0 1-10 * *'` | 毎月 1 日から 10 日までの午前 0 時 (00:00) に実行するようにスケジュールを設定します。 |
| カンマ区切りの値のリスト `'2,3,4,5'`
フィールドの許可される値のリストを示します。 | `0 0 1,11,21 * *'` | 毎月 1 日、11 日、21 日の午前 0 時 (00:00) に実行するようにスケジュールを設定します。 |
| 周期性インジケータ `'*/5'`
フィールドの有効な値の範囲に基づいて、
スケジュールが実行を許可される頻度を表現します。 | `'30 */2 1 * *'` | 毎月 1 日、00:30 から 2 時間ごとに実行するようにスケジュールを設定します。
`'0 0 */5 * *'` は、毎月 5 日から 5 日ごとに午前 0 時 (00:00) に実行するようにスケジュールを設定します。 |
| `'*'`
ワイルドカードを除く上記の
いずれかのカンマ区切りリストもサポートされています
`'2,*/5,8-10'` | `'0 0 5,*/10,25 * *'` | 毎月 5 日、10 日、20 日、25 日の午前 0 時 (00:00) に実行するようにスケジュールを設定します。 |


1. (オプション) Delay execution を有効にすることで、クエリの開始時刻を遅延させることができます。


### クエリを実行する

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

設定エラーにより継続的に失敗するScheduled Jobsは、いくつかの通知の後、システム側で無効にされる場合があります。

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

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

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


```yaml
timezone: UTC

_export:
  td:
    database: sample_datasets

+td-result-into-adroll:
  td>: queries/sample.sql
  result_connection: your_connections_name
  result_settings:
    advertiser_id: 12345
    request_retries: 7
    request_connect_timeout: 300
    request_read_timeout: 900
    request_write_timeout: 900
    skip_invalid: true
```

[Workflowでデータコネクタを使用してデータをエクスポートする](https://docs.treasuredata.com/smart/project-product-documentation/exporting-data-with-parameters)詳細については、こちらをご覧ください。

# AdRollへのエクスポートに関するFAQ

**行にSegment IDとSegment Nameの両方が提供されている場合はどうなりますか?**

Segment IDがnon-NULLの場合、行で表されるデータは、提供されたSegment IDに一致する既存のセグメントを更新するために使用されます。Segment IDがNULLの場合、行で表されるデータは新しいセグメントを作成するために使用されます。

AdRollは一意のセグメント名をサポートしていないため、同じセグメント名を持つ複数のセグメントが存在する可能性があることに注意してください。

**AdRoll APIによって課されるリソース制限はありますか?**

- はい、AdRollにはいくつかのリソース制限があります。AdRoll API呼び出しは1日あたり合計10,000回までしか実行できません。各AdRoll API呼び出しペイロードのサイズは10MBを超えることはできません。各広告主組織は、CRMタイプのセグメントを100個までしかサポートできません。これらの制限のいずれかを超えると、エラーが発生します。
- これらの制限は、AdRollに連絡することで増やすことができることに注意してください。


**CRMセグメントとCustomセグメント間でAdRoll APIの動作に違いはありますか?**

AdRoll APIには以下の違いと制限があります:

- CRMセグメントは、作成または更新するために少なくとも100個のデータアイテムが必要です。Customセグメントにはデータアイテム数の制限はありません。
- 広告主組織内に存在できるCRMセグメント数には制限があります(デフォルトは100)。Customセグメント数に制限はありません。
- Segment IDが提供される更新操作では、CRMセグメントデータは完全に置き換えられ、追加されません。一方、Customセグメントデータは既存のデータに追加されます。


# ログメッセージに関するFAQ

**Too many CRM segments created for the organization id (max 100 segments)**

- CRMセグメント作成の制限を超えました。既存のCRMセグメントを削除するか、AdRollに連絡して制限を増やしてください。


**Minimum requirement of 100 valid plain-text emails or MD5 hashed emails not met. Only 1 valid emails or MD5 hashes found**

- このエラーはCRMセグメントにのみ影響します。CRMセグメントには少なくとも100個のデータアイテムが必要です。


**We are currently in a scheduled maintenance window, please try again later. See**[**http://status.adroll.com/**](http://status.adroll.com/)**for more information**

- これはAdRollからのメッセージで、APIが一時的に利用できないことを示しています。


**Missing or incorrect credentials**

- 入力されたユーザーまたはパスワードがAdRoll APIへのアクセスを許可しません。


**Something went wrong**

- AdRoll APIがこの一般的なメッセージを返します: あなたの推測は私たちと同じくらい良いです。


## 列の命名

AdRollにエクスポートされるデータは、AdRollスキーマに従う必要があります。サポートされている列名は次のとおりです:

- type : セグメントで実行する操作(CRMまたはcustom)
- data : セグメントに追加するデータ(emailまたはcookie id)
- segment_id : Segment ID
- segment_name : Segment Name