Salesforce Marketing Cloud のデータを BigQuery に読み込む
BigQuery Data Transfer Service for Salesforce Marketing Cloud コネクタを使用して、Salesforce Marketing Cloud から BigQuery にデータを読み込むことができます。BigQuery Data Transfer Service を使用すると、Salesforce Marketing Cloud から BigQuery に最新のデータを追加する定期的な転送ジョブをスケジュール設定できます。
制限事項
Salesforce Marketing Cloud のデータ転送には、次の制限があります。
- 1 つの転送構成でサポートできるデータ転送実行は、一度に 1 つだけです。最初の転送が完了する前に 2 回目のデータ転送が実行されるようにスケジュールされている場合、最初のデータ転送のみが完了し、最初の転送と重複する他のデータ転送はスキップされます。
- 1 つの転送構成内で転送がスキップされないようにするには、繰り返し頻度を構成して、大規模なデータ転送間の時間を長くすることをおすすめします。
- 構成したネットワーク アタッチメントと仮想マシン(VM)インスタンスが異なるリージョンにある場合、Salesforce Marketing Cloud からデータを転送するときにリージョン間でデータが移動する可能性があります。
始める前に
以降のセクションでは、Salesforce Marketing Cloud のデータ転送を作成する前に必要な手順について説明します。
Salesforce Marketing Cloud の前提条件
Salesforce Marketing Cloud のデータ転送を作成するには、次の情報が必要です。
パラメータ名 | 説明 |
---|---|
subdomain |
ベース URI にある API サブドメイン。たとえば、認証ベース URI https://SUBDOMAIN.auth.marketingcloudapis.com/ の場合、SUBDOMAIN がサブドメインの値です。 |
instance |
Salesforce Marketing Cloud アプリケーションにログインした後、URL で API サーバー インスタンスを特定します。インスタンス値は、`s` の後に数値が続きます。たとえば、URL `https://mc.s4.exacttarget.com/` の場合、インスタンスの値は `s4` です。詳しくは、Marketing Cloud アカウントのスタック ロケーションを確認するをご覧ください。 |
clientId |
API 統合のクライアント ID。[設定] > [アプリ] > [インストール済みパッケージ] に移動し、パッケージ名をクリックします。クライアント ID は [コンポーネント] に表示されます。 |
clientSecret |
アプリ インテグレーションのクライアント シークレット。[設定] > [アプリ] > [インストール済みパッケージ] に移動し、パッケージ名をクリックします。クライアント シークレットは [コンポーネント] に表示されます。 |
Salesforce Marketing Cloud の転送用に IP 許可リストを設定する
Cloud de Confiance by S3NS 環境と Salesforce Marketing Cloud アカウントを構成して、データ転送の許可リストに特定の IP アドレスを追加する必要があります。これにより、Salesforce Marketing Cloud は信頼できる静的 IP アドレスからの接続のみを受け入れるようになります。
これを行うには、まず静的 IP アドレスを使用するように Cloud de Confiance by S3NS ネットワークを設定する必要があります。
- Virtual Private Cloud ネットワーク内の静的 IP アドレスを使用して、パブリック ネットワーク アドレス変換(NAT)を設定します。CloudNAT は、このデータ転送の宛先データセットと同じリージョン内で構成する必要があります。
- 同じ VPC ネットワーク内にネットワーク アタッチメントを設定します。このリソースは、BigQuery Data Transfer Service がプライベート サービスにアクセスするために使用されます。
次に、Salesforce Marketing Cloud の許可リストに静的 IP アドレスを追加する必要があります。IP アドレスの範囲を追加するときは、Cloud de Confiance by S3NS パブリック NAT の静的 IP アドレスを IP 範囲の開始 IP アドレスと終了 IP アドレスの両方に使用します。
IP 範囲を設定したら、[ネットワーク アタッチメント] フィールドでネットワーク アタッチメントを選択して、転送構成を設定するときに静的 IP を指定できます。
Salesforce Marketing Cloud API インテグレーション パッケージをインストールして構成する
Salesforce Marketing Cloud にサーバー間 API インテグレーション パッケージをインストールする必要があります。これを行うには、Salesforce Marketing Cloud で新しいインストール済みパッケージをインストールし、コンポーネント [API Integration] > [Server-to-Server] を指定します。詳細については、パッケージの作成とインストールをご覧ください。
API 統合パッケージをインストールしたら、次の権限スコープを追加する必要があります。
- アクセス:
Offline Access
- メールアドレス:
Read
- OTT:
Read
- Push:
Read
- SMS:
Read
- ウェブ:
Read
- ドキュメントと画像:
Read
- 保存したコンテンツ:
Read
- 移動:
Read
- 対象ユーザー:
Read
- リストと購読者:
Read
- 日付拡張機能:
Read
- ファイルの場所
Read
- トラッキング イベント:
Read
- コールバック:
Read
- 定期購入:
Read
- キャンペーン:
Read
- アセット:
Read
- アカウント:
Read
- OTT チャンネル:
Read
- ユーザー:
Read
詳細については、API 統合の権限スコープをご覧ください。
BigQuery の前提条件
- BigQuery Data Transfer Service を有効にするために必要なすべての操作が完了していることを確認します。
- データを保存する BigQuery データセットを作成します。
- Pub/Sub の転送実行通知を設定する場合は、
pubsub.topics.setIamPolicy
Identity and Access Management(IAM)権限があることを確認します。メール通知を設定するだけの場合、Pub/Sub の権限は必要ありません。詳細については、BigQuery Data Transfer Service の実行通知をご覧ください。
必要な BigQuery のロール
BigQuery Data Transfer Service データ転送の作成に必要な権限を取得するには、プロジェクトに対する BigQuery 管理者 (roles/bigquery.admin
)IAM ロールを付与するよう管理者に依頼します。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
この事前定義ロールには、BigQuery Data Transfer Service のデータ転送の作成に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
BigQuery Data Transfer Service データ転送を作成するには、次の権限が必要です。
-
BigQuery Data Transfer Service の権限:
-
bigquery.transfers.update
-
bigquery.transfers.get
-
-
BigQuery の権限:
-
bigquery.datasets.get
-
bigquery.datasets.getIamPolicy
-
bigquery.datasets.update
-
bigquery.datasets.setIamPolicy
-
bigquery.jobs.create
-
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
詳細については、bigquery.admin
へのアクセス権を付与するをご覧ください。
Salesforce Marketing Cloud のデータ転送を設定する
次のいずれかのオプションを使用して転送構成を設定し、Salesforce Marketing Cloud のデータを BigQuery に追加します。
コンソール
Cloud de Confiance コンソールの [データ転送] ページに移動します。
[転送を作成] をクリックします。
[ソースタイプ] セクションの [ソース] で、[Salesforce Marketing Cloud] を選択します。
[データソースの詳細] セクションで、次のようにします。
- [API Subdomain] に、認証ベース URI のサブドメインを入力します。
- [API instance] に、Marketing Cloud アプリケーションにログインした後の URL の API インスタンスを入力します。
- [クライアント ID] に、API 統合パッケージのクライアント ID を入力します。
- [クライアント シークレット] に、API 統合パッケージのクライアント シークレットを入力します。
[転送先の設定] セクションの [データセット] には、データを保存するために作成したデータセットを選択します。
[転送構成名] セクションの [表示名] に、データ転送の名前を入力します。
[スケジュール オプション] セクションで、次の操作を行います。
- [繰り返しの頻度] リストで、この転送の実行頻度を指定するオプションを選択します。カスタムの繰り返しの頻度を指定するには、[カスタム] を選択します。[オンデマンド] を選択した場合、手動で転送をトリガーすると、この転送が実行されます。
- 必要に応じて、[すぐに開始] を選択するか、[設定した時刻に開始] を選択して開始日と実行時間を指定します。
省略可: [通知オプション] セクションで、次のようにします。
- メール通知を有効にするには、[メール通知] をクリックします。このオプションを有効にした場合、転送の実行が失敗すると転送管理者にメール通知が送信されます。
- この転送の Pub/Sub 転送実行通知を有効にするには、[Pub/Sub 通知] をクリックします。トピック名を選択するか、[トピックを作成] をクリックしてトピックを作成します。
[保存] をクリックします。
bq
bq mk
コマンドを入力して、転送作成フラグ --transfer_config
を指定します。
bq mk --transfer_config --project_id=PROJECT_ID --data_source=DATA_SOURCE --display_name=DISPLAY_NAME --target_dataset=DATASET --params='PARAMETERS'
次のように置き換えます。
- PROJECT_ID(省略可): Cloud de Confiance by S3NS プロジェクト ID。
--project_id
で特定のプロジェクトを指定しない場合は、デフォルトのプロジェクトが使用されます。 - DATA_SOURCE: データソース(例:
saphana
)。 - DISPLAY_NAME: 転送構成の表示名。データ転送名には、後で修正が必要になった場合に識別できる任意の名前を使用できます。
- DATASET: 転送構成のターゲット データセット。
- PARAMETERS: 作成される転送構成のパラメータを JSON 形式で指定します。例:
--params='{"param":"param_value"}'
。Salesforce Marketing Cloud 転送のパラメータは次のとおりです。connector.subdomain
: API サブドメイン。connector.instance
: API インスタンスの値。connector.authentication.oauth.clientId
: OAuth クライアントのアプリ ID 名。connector.authentication.oauth.clientSecret
: OAuth クライアントのアプリ シークレット。
たとえば、次のコマンドは、すべての必須パラメータを使用してデフォルト プロジェクトに Salesforce Marketing Cloud のデータ転送を作成します。
bq mk --transfer_config --target_dataset=mydataset --data_source=salesforce_marketing --display_name='My Transfer' --params='{"connector.subdomain": "abcd", "connector.instance": "x", "connector.authentication.oauth.clientId": "1234567890", "connector.authentication.oauth.clientSecret":"ABC12345"}'
API
projects.locations.transferConfigs.create
メソッドを使用して、TransferConfig
リソースのインスタンスを指定します。
転送構成を保存すると、Salesforce Marketing Cloud コネクタはスケジュール オプションに従って転送実行を自動的にトリガーします。転送を実行するたびに、Salesforce Marketing Cloud コネクタは、REST インターフェースに基づいて、Salesforce Marketing Cloud から BigQuery に次のテーブルに利用可能なすべてのデータを転送します。
Assets
CampaignAssets
Campaigns
Categories
EventDefinitions
FacebookMessengerProperties
JourneyActivities
Journeys
LineMessengerProperties
SendDefinitions
Subscriptions
DataExtension
Email
LinkSend
List
ListSubscriber
Subscriber
TriggeredSendDefinition
定期的なスケジュール外でデータ転送を手動で実行するには、バックフィル実行を開始します。
データ型マッピング
次の表に、Salesforce Marketing Cloud のデータ型と対応する BigQuery のデータ型のマッピングを示します。
Salesforce Marketing Cloud のデータ型 | BigQuery のデータ型 |
---|---|
Boolean |
BOOLEAN |
Number |
INTEGER |
Text |
STRING |
Decimal |
FLOAT |
EmailAddress |
STRING |
Phone |
STRING |
date |
DATE |
Date |
TIMESTAMP |
転送の設定に関するトラブルシューティング
Salesforce Marketing Cloud のデータ転送を設定する際に問題が発生した場合は、次のトラブルシューティング手順を試してください。
- API インテグレーション パッケージに構成された認証がサーバー間に構成されていることを確認します。
- [スコープ] で、認証アプリに必要な権限が構成されていることを確認します。
エラー メッセージ
- エラー:
invalid_grant. The client's IP address is unauthorized for this account. Allowlist the client's IP address in Marketing Cloud Administration.
解決策: 次のいずれかを試しください。
- Cloud de Confiance by S3NS リソースで使用可能なすべての IP アドレスを有効にします。
- IP 許可リストを無効にします。これを行うには、Salesforce Marketing Cloud アプリケーションにログインし、[Setup] > [Security Settings] ページに移動します。[Edit] をクリックし、[Restrict Logins by IP Address(IP Allowlisting)] 設定を [IP Allowlisting Disabled] に構成します。
- エラー:
INVALID_ARGUMENT. Table tableName does not exist in asset TableName
解決策: Salesforce Marketing Cloud アプリケーションで正しいスコープ権限が構成されていることを確認します。詳細については、Salesforce Marketing Cloud の前提条件をご覧ください。
料金
この機能のプレビュー版では、Salesforce Marketing Cloud のデータを BigQuery に転送する際に料金は発生しません。
次のステップ
- BigQuery Data Transfer Service の概要については、BigQuery Data Transfer Service の概要をご覧ください。
- 転送構成に関する情報の取得、転送構成の一覧表示、転送の実行履歴の表示など、データ転送の使用方法については、転送の管理をご覧ください。
- クロスクラウドの操作でデータを読み込む方法を学習する。