Salesforce Marketing Cloud の転送をスケジュールする
BigQuery Data Transfer Service for Salesforce Marketing Cloud コネクタを使用すると、Salesforce Marketing Cloud から BigQuery への定期的な読み込みジョブを自動的にスケジュールし、管理できます。
制限事項
Salesforce Marketing Cloud のデータ転送には、次の制限があります。
- 構成したネットワーク アタッチメントと仮想マシン(VM)インスタンスが異なるリージョンにある場合、Salesforce Marketing Cloud からデータを転送するときにリージョン間でデータが移動する可能性があります。
始める前に
以降のセクションでは、Salesforce Marketing Cloud のデータ転送を作成する前に必要な手順について説明します。
Salesforce Marketing Cloud の前提条件
Salesforce Marketing Cloud のデータ転送を作成するには、次の情報が必要です。
パラメータ名 | 説明 |
---|---|
subdomain |
API サブドメイン |
instance |
API サーバー インスタンス |
clientId |
アプリ統合のクライアント ID |
clientSecret |
アプリ インテグレーションのクライアント シークレット |
Salesforce Marketing Cloud のデータ転送の作成に必要な情報を取得する手順は次のとおりです。
- サーバー間タイプの API インテグレーション パッケージをインストールします。パッケージの詳細ページの [Components] セクションにあるクライアント ID、クライアント シークレット、サブドメインをメモします。
- サブドメインはベース URI の一部です。たとえば、認証ベース URI
https://SUBDOMAIN.auth.marketingcloudapis.com/
の場合、SUBDOMAIN がサブドメインの値です。 - 詳細については、クライアント認証情報の権限付与タイプを使用したサーバー間インテグレーションをご覧ください。
- サブドメインはベース URI の一部です。たとえば、認証ベース URI
- Salesforce Marketing Cloud アプリケーションにログインした後、URL で API サーバー インスタンスを特定します。インスタンス値は、
s
の後に数値が続きます。たとえば、URLhttps://mc.s4.exacttarget.com/
の場合、インスタンスの値はs4
です。詳しくは、Marketing Cloud アカウントのスタック ロケーションを確認するをご覧ください。
また、Salesforce Marketing Cloud のデータ転送を許可するようにスコープ権限の設定を構成する必要もあります。
Salesforce Marketing Cloud アプリケーションにログインします。
プロフィールのプルダウン メニューを開き、[Setup] をクリックします。
ナビゲーション バーの [Platform Tools] で、[Apps] > [Installed packages] をクリックします。
インストールされているパッケージを選択して設定を変更します。
[Components] セクションで [Edit] をクリックします。
次のスコープで [Read] オプションを選択します。
- メール
- 保存したコンテンツ
- プロセス
- コールバック
- キャンペーン
- サブスクリプション
[保存] をクリックします。
BigQuery の前提条件
- BigQuery Data Transfer Service を有効にするために必要なすべての操作が完了していることを確認します。
- データを保存する BigQuery データセットを作成します。
- Pub/Sub の転送実行通知を設定する場合は、
pubsub.topics.setIamPolicy
Identity and Access Management(IAM)権限があることを確認します。メール通知を設定するだけの場合、Pub/Sub の権限は必要ありません。詳細については、BigQuery Data Transfer Service の実行通知をご覧ください。
必要な BigQuery のロール
転送の作成に必要な権限を取得するには、BigQuery 管理者(roles/bigquery.admin
)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
この事前定義ロールには、転送の作成に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
転送を作成するには、次の権限が必要です。
-
ユーザーに対する
bigquery.transfers.update
-
ターゲット データセットに対する
bigquery.datasets.get
-
ターゲット データセットに対する
bigquery.datasets.update
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
Salesforce Marketing Cloud のデータ転送を設定する
Salesforce Marketing Cloud のデータ転送を作成するには:
コンソール
Google Cloud コンソールの [データ転送] ページに移動します。
[転送を作成] をクリックします。
[ソースタイプ] セクションの [ソース] で、[Salesforce Marketing Cloud] を選択します。
[データソースの詳細] セクションで、次のようにします。
- [API Subdomain] に API サブドメインを入力します。
- [API instance] に API インスタンスの値を入力します。
- [クライアント ID] に、アプリ統合のクライアント ID を入力します。
- [クライアント シークレット] に、アプリ インテグレーションのクライアント シークレットを入力します。
[転送先の設定] セクションの [データセット] には、データを保存するために作成したデータセットを選択します。
[転送構成名] セクションの [表示名] に、データ転送の名前を入力します。
[スケジュール オプション] セクションで、次の操作を行います。
- [繰り返しの頻度] リストで、この転送の実行頻度を指定するオプションを選択します。カスタムの繰り返しの頻度を指定するには、[カスタム] を選択します。[オンデマンド] を選択した場合、手動で転送をトリガーすると、この転送が実行されます。
- 必要に応じて、[すぐに開始] を選択するか、[設定した時刻に開始] を選択して開始日と実行時間を指定します。
[サービス アカウント] メニューで、 Google Cloud プロジェクトに関連付けられているサービス アカウントを選択します。選択したサービス アカウントには、このデータ転送の実行に必要なロールが付与されている必要があります。
フェデレーション ID でログインした場合、データ転送を作成するにはサービス アカウントが必要です。Google アカウントでログインした場合、転送用のサービス アカウントは省略可能です。データ転送でサービス アカウントを使用する方法の詳細については、サービス アカウントの使用をご覧ください。
省略可: [通知オプション] セクションで、次のようにします。
- メール通知を有効にするには、[メール通知] をクリックします。このオプションを有効にすると、転送の実行が失敗した場合、転送管理者にメール通知が送信されます。
- この転送の Pub/Sub 転送実行通知を有効にするには、[Pub/Sub 通知] をクリックします。トピック名を選択するか、[トピックを作成] をクリックしてトピックを作成します。
[保存] をクリックします。
このデータ転送を実行すると、BigQuery Data Transfer Service は REST インターフェースに基づいて次のテーブルにデータを自動的に挿入します。
Campaigns
Categories
EventDefinitions
Journeys
JourneyActivities
SendDefinitions
Subscriptions
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(省略可): Google Cloud プロジェクト 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 のデータ転送を設定する際に問題が発生した場合は、次のトラブルシューティング手順を試してください。
- API インテグレーション パッケージに構成された認証がサーバー間に構成されていることを確認します。
- [スコープ] で、認証アプリに必要な権限が構成されていることを確認します。
エラー メッセージ
- エラー:
invalid_grant. The client's IP address is unauthorized for this account. Allowlist the client's IP address in Marketing Cloud Administration.
解決策: 次のいずれかを試しください。
- Google Cloud リソースで使用可能なすべての 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 の概要をご覧ください。
- 転送構成に関する情報の取得、転送構成の一覧表示、転送の実行履歴の表示など、データ転送の使用方法については、転送の管理をご覧ください。
- クロスクラウドの操作でデータを読み込む方法を学習する。