# Salesforce Marketing Cloud Streaming Import Integration

Salesforce Marketing Cloud（SFMC）は、マーケターがメール、モバイル、ソーシャル、およびオンラインマーケティングオートメーションを行うためのマーケティングオートメーションソリューションです。この連携を使用すると、メール送信、メール開封、メールクリック、SMS送信、SMS未送信などのSFMCイベントをほぼリアルタイムでストリーミングし、さらなる意思決定のためにTD CDPに取り込むことができます。

## この連携の特徴：

- SFMCイベントデータをTDプラットフォームに取り込むための簡単に設定可能なコネクタ
- 特定または複数のSFMCイベントにサブスクライブ
- 信頼性の高いデータソースとして使用
- 必要に応じてイベントデータのサブスクライブを停止


以下のイベントデータをSFMCからTreasure Dataにストリーミングすることができます：

- EmailSent
- EmailNotSent
- EmailBounced
- EmailOpen
- EmailClick
- EmailUnsubscribe
- SmsSent
- SmsNotSent


データの宛先は以下のように設定できます：

- Plazma DB


## 前提条件

- Treasure Dataの基本知識
- Salesforce Marketing Cloudの基本知識
- [APIキーの取得](https://docs.treasuredata.com/smart/project-product-documentation/getting-your-api-keys)


## 制限事項

- Plazmaでデータが利用可能になるまでの予想ターゲットレイテンシは5〜10分です。
- TDユーザーは、SFMCストリーミング接続を作成するために書き込み専用APIキーを使用する必要があります。
- SFMCアカウントに作成できるコールバックの数に注意してください。これにより、イベントを取り込むためにTDで作成できるソースの数が制限されます。
- SFMCアカウントのメール送信制限に注意してください。[Salesforceの記事](https://help.salesforce.com/articleView?id=000334302&mode=1&sfdcIFrameOrigin=null&type=1)を参照してください。
- データを取り込むテーブルを作成する前に、Plazmaでデータベースとテーブルを作成する必要があります。データベースとテーブルの自動作成の完全なサポートは、次の実装で予定されています。
- 新しく作成されたソースがデータのストリーミングを開始するまで、数秒の遅延が予想されます。
- TD Toolbeltコマンドはストリーミングコネクタではサポートされていません。
- SFMCストリーミング接続にコミットされるイベントサイズは1MBを超えることはできません。
- SFMCストリーミング接続のデータ取り込みエンドポイントのタスクごとの制限は、1秒あたり約400リクエストです。
- アカウントあたり最大2タスクです。


## 要件

SFMCパッケージAPI連携のセットアップを完了する必要があります。これには、まずSFMCクライアントIDとシークレットを取得する必要があります。

### SFMCクライアントIDとシークレットの取得

以下の手順は、認証情報を使用して認証するために必要なクライアントIDとクライアントシークレットを見つけるための手順です。

1. Salesforce Marketing Cloudダッシュボードにログインします。
2. **Setup** > **Apps** > **Installed Packages**に移動します。
3. **New**を選択します。
4. パッケージの名前と説明を入力します。
5. **Save**を選択します。
![](/assets/screen-shot-2021-07-08-at-7.58.10-pm.9d6fc0ca7ba492a46e9dc7cb70ec8848b4736582e73edfa02574d9ed9b2554d7.413c7b35.png)
6. インストール済みパッケージのリストから新しく作成されたパッケージを探します。
7. パッケージ名を選択します。
8. **Add Component**を選択します。
9. **API Integration**を選択してから、**Next**を選択します。
![](/assets/screen-shot-2021-07-15-at-11.21.22-am.bbb0a181373715bb107d3503f3f33dcd90d284545f1329178564d2a39ff9688d.413c7b35.png)
10. **Server-to-Server**を選択します。
![](/assets/screen-shot-2021-07-15-at-11.21.34-am.de2bc0d3e2408b44178734fa7846c6fbcb2dbfc1fb891932a9f819a1e12d2371.413c7b35.png)
11. 以下のようにEVENT NOTIFICATIONSオプションを選択します：
![](/assets/screen-shot-2021-07-15-at-11.22.08-am.b3d5be8e9688c00fd7c17095bce3fa4a064649f6053505ff8b84cedc24b876b0.413c7b35.png)
これらのオプションにより、コールバックとサブスクリプションの読み取り/作成/更新/削除の操作を実行できます。


**SFMCパッケージセットアップ用のAPIを使用するためのOAuth 2.0スコープ**

APIを使用して認証情報を取得する場合、以下のスコープを指定する必要があります：

* event_notification_callback_create
* event_notification_callback_read
* event_notification_callback_update
* event_notification_callback_delete
* event_notification_subscription_create
* event_notification_subscription_read
* event_notification_subscription_update
* event_notification_subscription_delete


1. **Client Id**と**Client Secret**をコピーします。
これらはTreasure Dataで接続を作成する際に必要です。
2. **Authentication Base URI**と**Rest Base URI**をコピーします。


これらはTDでソースを作成する際に必要です。
![](/assets/screen-shot-2021-07-08-at-8.02.14-pm.9da1b42f19ad2d7de08c1c73de5f841e727564b3cba7f2a68147371cfd56d3bc.413c7b35.png)

## Treasure コンソールを使用して接続を作成する

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

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

1. **Treasure コンソール**を開きます。
2. **Integrations Hub > Catalog**に移動します。
3. Salesforce Marketing Cloud Data Streamingを検索して選択します。
![](/assets/image2021-8-30_12-45-43.35932ec79c61bd8d20f90fadf6a0008c88cb56a53d619ac785a70097b7f9b57f.413c7b35.png)
4. Create Authenticationを選択します。
![](/assets/image2021-7-7_14-56-1.8666ba3dbf81d512e19beabf825059d7db1599a53f48a7a0e2b793fd37a37d8b.413c7b35.png)**
5. 以下のパラメータを編集します：
| パラメータ |  | 説明 |
|  --- | --- | --- |
| Client ID | 必須 | Salesforce Marketing CloudのクライアントID。「SFMCクライアントIDとシークレットの取得」を参照してください。 |
| Client Secret | 必須 | Salesforce Marketing Cloudのクライアントシークレット。「SFMCクライアントIDとシークレットの取得」を参照してください。 |
| Treasure API Key | 必須 | データベースへのアクセス用のTD書き込み専用APIキー。[APIキーの取得](https://docs.treasuredata.com/smart/project-product-documentation/getting-your-api-keys)を参照してください。 |
6. **Continue**を選択します。
7. 接続の名前を入力します。
8. **Done**を選択します。


### Treasure Dataにデータを転送する

認証済み接続を作成すると、自動的にAuthentications一覧ページに移動します。

1. 作成した接続を検索します。
2. **New Source**を選択します。
3. Data Transferフィールドに**Source**の名前を入力します。
4. **Next**を選択します。
5. Source Tableダイアログが開きます。


![](/assets/image2021-7-7_17-16-44.df994caa0778b8fd1bd6c8374088dfa2692db892de94a25cb93d1bfca9e54692.413c7b35.png)

以下のパラメータを編集します：

| パラメータ | 必須 | 説明 |
|  --- | --- | --- |
| Datastore | 必須 | 現在利用可能なオプションはPlazmaのみです。 |
| Tags | オプション | タグはこのソースを見つけるために使用できます |
| Database | 必須 | データをインポートするTreasure Data内のデータベースを指定します。 |
| Table | 必須 | データを配置するデータベース内のテーブルを指定します。 |
| Authorization Endpoint | 必須 | 認証URL。認証を提供するために使用するエンドポイント。 |
| Rest API Endpoint | 必須 | Salesforce REST APIエンドポイント。 |
| Event Categories | 必須 | イベントカテゴリ内で、環境に必要な数のイベントタイプを追加して指定できます。 |
| Event Type | 必須 | イベントは生成されるか、システムによってトリガーされるか、ユーザーアクションによって開始されます。値のリストを確認し、監視するイベントタイプを選択します。 |


1. **Create**を選択します。


**Source Id**は注意して扱う必要があります。

### データプレビュー

- ストリーミングデータの場合、プレビューはありません。


### データ取り込み

- コネクタは、ストリーミングデータソースの作成が成功した後、最初のイベントがトリガーされるとすぐにTDでイベントデータの取り込みを開始できます。