Salesforce Marketing Cloud の転送をスケジュールする

BigQuery Data Transfer Service for Salesforce Marketing Cloud コネクタを使用すると、Salesforce Marketing Cloud から BigQuery への定期的な読み込みジョブを自動的にスケジュールし、管理できます。

始める前に

以降のセクションでは、Salesforce Marketing Cloud のデータ転送を作成する前に必要な手順について説明します。

Salesforce Marketing Cloud の前提条件

Salesforce Marketing Cloud のデータ転送を作成するには、次の情報が必要です。

パラメータ名 説明
subdomain API サブドメイン
instance API サーバー インスタンス
clientId アプリ統合のクライアント ID
clientSecret アプリ インテグレーションのクライアント シークレット

Salesforce Marketing Cloud のデータ転送の作成に必要な情報を取得する手順は次のとおりです。

  1. サーバー間タイプの API インテグレーション パッケージをインストールします。パッケージの詳細ページの [Components] セクションにあるクライアント ID、クライアント シークレット、サブドメインをメモします。
  2. Salesforce Marketing Cloud アプリケーションにログインした後、URL で API サーバー インスタンスを特定します。インスタンス値は、s の後に数値が続きます。たとえば、URL https://mc.s4.exacttarget.com/ の場合、インスタンスの値は s4 です。詳しくは、Marketing Cloud アカウントのスタック ロケーションを確認するをご覧ください。

また、Salesforce Marketing Cloud のデータ転送を許可するようにスコープ権限の設定を構成する必要もあります。

  1. Salesforce Marketing Cloud アプリケーションにログインします。

  2. プロフィールのプルダウン メニューを開き、[Setup] をクリックします。

    Salesforce Marketing Cloud の設定で [Setup] をクリックする

  3. ナビゲーション バーの [Platform Tools] で、[Apps] > [Installed packages] をクリックします。

  4. インストールされているパッケージを選択して設定を変更します。

  5. [Components] セクションで [Edit] をクリックします。

  6. 次のスコープで [Read] オプションを選択します。

    • メール
    • 保存したコンテンツ
    • プロセス
    • コールバック
    • キャンペーン
    • サブスクリプション
  7. [保存] をクリックします。

BigQuery の前提条件

必要な BigQuery のロール

転送の作成に必要な権限を取得するには、BigQuery 管理者roles/bigquery.admin)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

この事前定義ロールには、転送の作成に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

転送を作成するには、次の権限が必要です。

  • ユーザーに対する bigquery.transfers.update
  • ターゲット データセットに対する bigquery.datasets.get
  • ターゲット データセットに対する bigquery.datasets.update

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

Salesforce Marketing Cloud のデータ転送を設定する

Salesforce Marketing Cloud のデータ転送を作成するには:

コンソール

  1. Google Cloud コンソールの [データ転送] ページに移動します。

    [データ転送] に移動

  2. [転送を作成] をクリックします。

  3. [ソースタイプ] セクションの [ソース] で、[Salesforce Marketing Cloud] を選択します。

  4. [データソースの詳細] セクションで、次のようにします。

    • [API Subdomain] に API サブドメインを入力します。
    • [API instance] に API インスタンスの値を入力します。
    • [クライアント ID] に、アプリ統合のクライアント ID を入力します。
    • [クライアント シークレット] に、アプリ インテグレーションのクライアント シークレットを入力します。
  5. [転送先の設定] セクションの [データセット] には、データを保存するために作成したデータセットを選択します。

  6. [転送構成名] セクションの [表示名] に、データ転送の名前を入力します。

  7. [スケジュール オプション] セクションで、次の操作を行います。

    • [繰り返しの頻度] リストで、この転送の実行頻度を指定するオプションを選択します。カスタムの繰り返しの頻度を指定するには、[カスタム] を選択します。[オンデマンド] を選択した場合、手動で転送をトリガーすると、この転送が実行されます。

    • 必要に応じて、[すぐに開始可能] を選択するか、[設定した時刻に開始] を選択して開始日と実行時間を指定します。

  8. [サービス アカウント] メニューで、Google Cloud プロジェクトに関連付けられたサービス アカウントを選択します。選択したサービス アカウントには、このデータ転送の実行に必要なロールが付与されている必要があります。

    フェデレーション ID でログインした場合、データ転送を作成するにはサービス アカウントが必要です。Google アカウントでログインした場合、転送用のサービス アカウントは省略可能です。

    データ転送でサービス アカウントを使用する方法の詳細については、サービス アカウントの使用をご覧ください。

  9. 省略可: [通知オプション] セクションで、次のようにします。

    • メール通知を有効にするには、[メール通知] をクリックします。このオプションを有効にすると、転送の実行が失敗した場合、転送管理者にメール通知が送信されます。
    • この転送の Pub/Sub 転送実行通知を有効にするには、[Pub/Sub 通知] をクリックします。トピック名を選択するか、[トピックを作成] をクリックしてトピックを作成します。
  10. [保存] をクリックします。

このデータ転送を実行すると、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 のデータ転送を設定する際に問題が発生した場合は、次のトラブルシューティング手順を試してください。

エラー メッセージ

エラー: 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] に構成します。

IP 許可リストを無効にする

エラー: INVALID_ARGUMENT. Table tableName does not exist in asset TableName

解決策: Salesforce Marketing Cloud アプリケーションで正しいスコープ権限が構成されていることを確認します。詳細については、Salesforce Marketing Cloud の前提条件をご覧ください。

料金

この機能のプレビュー版では、Salesforce Marketing Cloud のデータを BigQuery に転送する際に料金は発生しません。

次のステップ