検索広告 360 の転送

検索広告 360 用 BigQuery Data Transfer Service を使用すると、検索広告 360 のレポートデータを定期的に読み込むジョブのスケジュールと管理を自動化できます。

サポートされるレポート

検索広告 360 用 BigQuery Data Transfer Service は、Search Ads 360 Reporting API v0 をサポートしています。

検索広告 360 レポートが BigQuery Data Transfer Service のテーブルとビューに変換される仕組みについては、検索広告 360 レポートの変換をご覧ください。

レポート オプション サポート
Supported API version

v0

スケジュール

毎日、転送が最初に作成される時刻(デフォルト)

時刻を設定できます。

ウィンドウの更新

過去 7 日間(デフォルト)

構成可能(最大 30 日)

マッチテーブルのスナップショットは 1 日に 1 回取得され、最後の実行日付のパーティションに保存されます。マッチテーブルのスナップショットは、バックフィルや、リフレッシュ ウィンドウを使用して読み込まれた日には更新されません。

最大バックフィル期間

上限なし

MCC アカウントごとのお客様 ID 数

2,000

BigQuery Data Transfer Service では、検索広告 360 マネージャー アカウントごとに最大 2,000 個のお客様 ID がサポートされます。

古い Search Ads 360 Reporting API を使用する検索広告 360 の転送ガイドについては、検索広告 360 の転送(非推奨)をご覧ください。

検索広告 360 の転送からのデータ取り込み

検索広告 360 から BigQuery にデータを転送すると、データは日付でパーティション分割された BigQuery テーブルに読み込まれます。データが読み込まれるテーブル パーティションは、データソースの日付に対応します。同じ日付の複数の転送をスケジュールすると、BigQuery Data Transfer Service により、対象の日付のパーティションが最新のデータで上書きされます。同じ日に複数回の転送を行っても、データは重複せず、他の日付のパーティションに対する影響はありません。

制限事項

  • 検索広告 360 の転送を設定できる最大頻度は、24 時間に 1 回です。デフォルトでは、転送を作成したときに転送が開始されます。ただし、転送を作成するときに、転送の開始時間を設定できます。
  • BigQuery Data Transfer Service は、検索広告 360 の転送中の増分転送をサポートしていません。データ移転の日付を指定すると、その日付で使用できるすべてのデータが転送されます。

始める前に

検索広告 360 の転送を作成する前に、以下の作業を完了しておきます。

必要な権限

転送を作成するユーザーに、次の必要な権限が付与されていることを確認します。

  • BigQuery Data Transfer Service:

    • bigquery.transfers.update(転送を作成する権限)
    • 抽出先データセットに対する bigquery.datasets.getbigquery.datasets.updateの両方の権限

    bigquery.transfers.update 権限、bigquery.datasets.update 権限、bigquery.datasets.get 権限は IAM 事前定義ロール bigquery.admin に含まれています。BigQuery Data Transfer Service での IAM ロールについて、詳しくはアクセス制御をご覧ください。

  • Google Cloud:

    • プロジェクトに対して検索広告 360 からデータをダウンロードするための serviceusage.services.use 権限。

    IAM 事前定義ロール editorownerserviceusage.serviceUsageConsumer には serviceusage.services.use 権限が含まれています。Service Usage の IAM ロールの詳細については、アクセス制御のリファレンスをご覧ください。

  • 検索広告 360

検索広告 360 のデータ転送を作成する

検索広告 360 レポートのデータ転送を作成するには、検索広告 360 のお客様 ID またはMCC アカウントが必要です。次のオプションのいずれかを選択します。

コンソール

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

[BigQuery] ページに移動

  1. [データ転送] をクリックします。

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

  3. [ソースタイプ] セクションの [ソース] で、[検索広告 360 - プレビュー] を選択します。

  4. [転送構成名] セクションの [表示名] に、転送名(例: My Transfer)を入力します。転送名には、後で修正が必要になった場合に識別できる任意の名前を使用できます。

  5. [スケジュール オプション] セクションで:

    • [繰り返しの頻度] で、転送を実行する頻度のオプションを選択します。[日数] を選択した場合は、有効な時刻を UTC で入力します。
      • 時間
      • 日数
      • オンデマンド
    • 必要に応じて、[すぐに開始可能] を選択するか、[設定した時刻に開始] を選択して開始日と実行時間を指定します。
  6. [転送先の設定] セクションの [データセット] には、データを保存するために作成したデータセットを選択します。

  7. [データソースの詳細] セクションで、次の操作を行います。

  8. [お客様 ID] に検索広告 360 のお客様 ID を入力します。

  9. 省略可: ID マッピング テーブルを取得するには、代理店 ID広告主 ID(どちらも指定する必要があります)を入力します。

  10. 省略可: 含めるテーブルのカンマ区切りのリストを入力します(例: Campaign, AdGroup)。特定のテーブルを除外するには、このリストの先頭に - 文字を配置します(例: -Campaign, AdGroup)。デフォルトでは、すべてのテーブルが含まれています。

  11. (省略可)[ウィンドウの更新] に 1~30 の値を入力します。設定しない場合、更新期間はデフォルトで 7 日間に設定されます。

  12. [サービス アカウント] メニューで、Google Cloud プロジェクトに関連付けられたサービス アカウントからサービス アカウントを選択します。ユーザー認証情報を使用する代わりに、サービス アカウントを転送に関連付けることができます。データ転送でサービス アカウントを使用する方法の詳細については、サービス アカウントの使用をご覧ください。

    • フェデレーション ID でログインした場合、転送を作成するにはサービス アカウントが必要です。Google アカウントでログインした場合、転送用のサービス アカウントは省略可能です。
    • サービス アカウントには必要な権限が付与されている必要があります。
  13. 省略可: [通知オプション] セクションで、次の操作を行います。

    • 切り替えボタンをクリックしてメール通知を有効にします。このオプションを有効にすると、転送の実行が失敗した場合、転送管理者にメール通知が送信されます。

    • 切り替えボタンをクリックして、Pub/Sub 通知を有効にします。[Cloud Pub/Sub トピックを選択してください] で、トピック名を選択するか、[トピックを作成する] をクリックします。このオプションで、Pub/Sub の転送実行通知を構成します。

  14. [保存] をクリックします。

bq

bq mk コマンドを入力して、転送作成フラグ --transfer_config を指定します。次のフラグも必要です。

  • --data_source
  • --target_dataset
  • --display_name
  • --params

次のフラグは省略可能です。

  • --project_id: 使用するプロジェクトを指定します。このフラグが指定されていない場合は、デフォルトのプロジェクトが使用されます。
  • --table_filter: 転送に含めるテーブルを指定します。このフラグが指定されていない場合、すべてのテーブルが含まれます。特定のテーブルのみを含めるには、値のカンマ区切りのリスト(Ad, Campaign, AdGroup など)を使用します。特定のテーブルを除外するには、値の先頭にハイフン(-)を付けます(例: -Ad, Campaign, AdGroup)。
  • --service_account_name: ユーザー アカウントの代わりに、検索広告 360 の転送認証に使用するサービス アカウントを指定します。
bq mk \
--transfer_config \
--project_id=project_id \
--target_dataset=dataset \
--display_name=name \
--params='parameters' \
--data_source=data_source \
--service_account_name=service_account_name

ここで

  • project_id: プロジェクト ID。
  • dataset: 転送構成のターゲット データセット。
  • name: 転送構成の表示名。転送名には、後で修正が必要になった場合に識別できる任意の名前を使用できます。
  • parameters: 作成される転送構成のパラメータを JSON 形式で指定します。例: --params='{"param":"param_value"}'customer_id パラメータを指定する必要があります。
  • data_source: データソース — search_ads
  • service_account_name は、転送の認証に使用されるサービス アカウント名です。サービス アカウントは、転送の作成に使用した project_id が所有している必要があります。また、必要な権限がすべて付与されている必要があります。

たとえば、次のコマンドは、お客様 ID 123-123-1234 とターゲット データセット mydataset を使用して、My Transfer という名前の検索広告 360 転送を作成します。この転送はデフォルトのプロジェクトで作成されます。

bq mk \
--transfer_config \
--target_dataset=mydataset \
--display_name='My Transfer' \
--params='{"customer_id":"123-123-1234"}' \
--data_source=search_ads

コマンドの初回実行時に、次のようなメッセージが表示されます。

[URL omitted] Please copy and paste the above URL into your web browser and follow the instructions to retrieve an authentication code.

メッセージの指示に従って、認証コードをコマンドラインに貼り付けます。

API

projects.locations.transferConfigs.create メソッドを使用して、TransferConfig リソースのインスタンスを指定します。

検索広告 360 の転送を手動でトリガーする

検索広告 360 の転送を手動でトリガーすると、マッチテーブルのスナップショットが 1 日に 1 回取得され、最後の実行日付のパーティションに保存されます。手動転送をトリガーしても、次のテーブルのマッチテーブル スナップショットは更新されません。

  • アカウント
  • 広告
  • AdGroup
  • AdGroupCriterion
  • 任意の ID マッピング テーブル
  • アセット
  • BidStrategy
  • Campaign
  • CampaignCriterion
  • ConversionAction
  • キーワード
  • NegativeAdGroupKeyword
  • NegativeAdGroupCriterion
  • NegativeCampaignKeyword
  • NegativeCampaignCriterion
  • ProductGroup

検索広告 360 のクライアント センター(MCC)アカウントのサポート

検索広告 360 の MCC アカウントを使用すると、個別のお客様 ID を使用する場合と比較していくつかのメリットがあります。

  • 複数のお客様 ID のレポートのために、複数の転送を管理する必要はありません。
  • すべてのお客様 ID が同じテーブルに保存されるため、お客様間のクエリの作成が簡単になります。
  • MCC を使用すると、同じ 1 つのジョブで複数のお客様 ID が読み込まれるので、BigQuery Data Transfer Service の読み込み割り当て量の問題が緩和されます。

お客様 ID に固有の複数の検索広告 360 転送を設定されているお客様は、検索広告 360 MCC アカウントに切り替えることをおすすめします。方法は次のとおりです。

  1. 検索広告 360 の転送を MCC アカウントまたはサブ MCC アカウントのレベルで 1 つ設定します。
  2. バックフィルのスケジュールを設定します。
  3. 個々のお客様 ID 固有の検索広告 360 の転送を無効にします。

検索広告 360 の MCC アカウントについて詳しくは、検索広告 360 リニューアル版の MCC アカウントについてMCC アカウントとアカウントのリンク方法をご覧ください。

次のリストは、特定の検索広告 360 の MCC アカウントにリンクされているお客様 ID を示しています。

  • 1234567890 - ルート MCC アカウント
    • 1234 - サブ MCC アカウント
      • 1111 - お客様 ID
      • 2222 - お客様 ID
      • 3333 - お客様 ID
      • 4444 - お客様 ID
      • 567 - サブ MCC アカウント
        • 5555 - お客様 ID
        • 6666 - お客様 ID
        • 7777 - お客様 ID
    • 89 - サブ MCC アカウント
      • 8888 - お客様 ID
      • 9999 - お客様 ID
    • 0000 - お客様 ID

MCC アカウントにリンクされたお客様 ID が各レポートに表示されます。BigQuery Data Transfer Service の検索広告 360 レポート構造について詳しくは、検索広告 360 レポートの変換をご覧ください。

お客様 ID 1234567890 の転送構成

ルート MCC アカウント(お客様 ID 1234567890)の転送構成では、次のお客様 ID を含む転送実行が生成されます。

  • 1111(サブ MCC アカウント 1234 を介して)
  • 2222(サブ MCC アカウント 1234 を介して)
  • 3333(サブ MCC アカウント 1234 を介して)
  • 4444(サブ MCC アカウント 1234 を介して)
  • 5555(サブ MCC アカウント 567 およびサブ MCC アカウント 1234 を介して)
  • 6666(サブ MCC アカウント 567 およびサブ MCC アカウント 1234 を介して)
  • 7777(サブ MCC アカウント 567 およびサブ MCC アカウント 1234 を介して)
  • 8888(サブ MCC アカウント 89 を介して)
  • 9999(サブ MCC アカウント 89 を介して)
  • 0000(個別のお客様 ID)

お客様 ID 1234 の転送構成

サブ MCC アカウント 123(お客様 ID 1234)の転送構成では、次のお客様 ID を含む転送実行が生成されます。

  • 1111
  • 2222
  • 3333
  • 4444
  • 5555(サブ MCC アカウント 567 を介して)
  • 6666(サブ MCC アカウント 567 を介して)
  • 7777(サブ MCC アカウント 567 を介して)

お客様 ID 567 の転送構成

サブ MCC アカウント 567(お客様 ID 567)の転送構成では、次のお客様 ID を含む転送実行が生成されます。

  • 5555
  • 6666
  • 7777

お客様 ID 89 の転送構成

サブ MCC アカウント 89(お客様 ID 89)の転送構成では、次のお客様 ID を含む転送実行が生成されます。

  • 8888
  • 9999

お客様 ID 0000 の転送構成

お客様 ID 0000 の転送構成では、個別のお客様 ID のみを含む転送実行が生成されます。

  • 0000

データに対するクエリを実行する

データが BigQuery Data Transfer Service に転送されると、取り込み時間パーティション分割テーブルにそのデータが書き込まれます。詳細については、パーティション分割テーブルの概要をご覧ください。

自動生成されたビューを使用せずに、テーブルでクエリを直接実行する場合は、そのクエリで _PARTITIONTIME 疑似列を使用する必要があります。詳細については、パーティション分割テーブルのクエリをご覧ください。

検索広告 360 のサンプルクエリ

次の検索広告 360 のサンプルクエリを使用して、転送されたデータを分析できます。このクエリは、Looker Studio などのビジュアリゼーション ツールでも表示できます。

次のクエリの例では、BigQuery Data Transfer Service を使用して検索広告 360 データに対するクエリの実行を開始しています。これらのレポートでできることに関するその他のご質問については、検索広告 360 の技術担当者にお問い合わせください。

自動生成されたビューを使用せずに、テーブルでクエリを直接実行する場合は、そのクエリで _PARTITIONTIME 疑似列を使用する必要があります。詳細については、パーティション分割テーブルのクエリをご覧ください。

キャンペーンの掲載結果

次のサンプルクエリは、過去 30 日間の検索広告 360 キャンペーンのパフォーマンスを分析します。

SELECT
  c.customer_id,
  c.campaign_name,
  c.campaign_status,
  SUM(cs.metrics_clicks) AS Clicks,
  (SUM(cs.metrics_cost_micros) / 1000000) AS Cost,
  SUM(cs.metrics_impressions) AS Impressions
FROM
  `DATASET.sa_Campaign_CUSTOMER_ID` c
LEFT JOIN
  `DATASET.sa_CampaignStats_CUSTOMER_ID` cs
ON
  (c.campaign_id = cs.campaign_id
  AND cs._DATA_DATE BETWEEN
  DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY) AND DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY))
WHERE
  c._DATA_DATE = c._LATEST_DATE
GROUP BY
  1, 2, 3
ORDER BY
  Impressions DESC

次のように置き換えます。

  • DATASET: データセットの名前
  • CUSTOMER_ID: 検索広告 360 のお客様 ID

キーワード数

次のサンプルクエリは、キャンペーン、広告グループ、ステータスごとにキーワードを分析します。

  SELECT
    c.campaign_status AS CampaignStatus,
    a.ad_group_status AS AdGroupStatus,
    k.ad_group_criterion_status AS KeywordStatus,
    k.ad_group_criterion_keyword_match_type AS KeywordMatchType,
    COUNT(*) AS count
  FROM
    `DATASET.sa_Keyword_CUSTOMER_ID` k
    JOIN
    `DATASET.sa_Campaign_CUSTOMER_ID` c
  ON
    (k.campaign_id = c.campaign_id AND k._DATA_DATE = c._DATA_DATE)
  JOIN
    `DATASET.sa_AdGroup_CUSTOMER_ID` a
  ON
    (k.ad_group_id = a.ad_group_id AND k._DATA_DATE = a._DATA_DATE)
  WHERE
    k._DATA_DATE = k._LATEST_DATE
  GROUP BY
    1, 2, 3, 4

次のように置き換えます。

  • DATASET: データセットの名前
  • CUSTOMER_ID: 検索広告 360 のお客様 ID

ID マッピング テーブル

検索広告 360 リニューアル版のエンティティ(顧客、キャンペーン、広告グループなど)の ID 空間は、検索広告 360 従来版では異なります。検索広告 360 従来版 API と検索広告 360 リニューアル版 API のデータを結合することを必要とする既存の検索広告 360 の転送ユーザーの場合は、転送構成で有効な代理店 ID と広告主 ID を指定すると、BigQuery Data Transfer Service を使用して ID マッピング テーブルを転送できます。

サポートされるエンティティには、legacy_idnew_id の 2 つの列があり、それぞれ検索広告 360 の旧バージョンと新バージョンのエンティティの ID マッピングを指定します。ID マッピング テーブルは次のとおりです。

  • IdMapping_AD
  • IdMapping_AD_GROUP
  • IdMapping_CAMPAIGN
  • IdMapping_CAMPAIGN_CRITERION
  • IdMapping_CAMPAIGN_GROUP
  • IdMapping_CAMPAIGN_GROUP_PERFORMANCE_TARGET
  • IdMapping_CRITERION
  • IdMapping_CUSTOMER
  • IdMapping_FEED_ITEM
  • IdMapping_FEED_TABLE

クエリの例

次のクエリでは、ID マッピング テーブルを使用して、検索広告 360 の新しい ID スペースにある新旧の検索広告 360 の転送のテーブル間で、キャンペーンごとの指標を集計します。

SELECT CustomerID, CampaignID, Sum(Clicks), Sum(Cost) FROM
(SELECT
  cs.customer_id AS CustomerID,
  cs.campaign_id AS CampaignID,
  cs.metrics_clicks AS Clicks,
  cs.metrics_cost_micros / 1000000 AS Cost
FROM
  `DATASET.sa_CampaignStats_CUSTOMER_ID` cs
WHERE cs._DATA_DATE = 'NEW_DATA_DATE'
UNION ALL
SELECT
  customer_id_mapping.new_id AS CustomerID,
  campaign_id_mapping.new_id AS CampaignID,
  cs.clicks AS Clicks,
  cs.cost AS Cost
FROM
  `DATASET.CampaignStats_ADVERTISER_ID` cs
LEFT JOIN
  `DATASET.IdMapping_CUSTOMER_ADVERTISER_ID` customer_id_mapping
ON cs.accountId = customer_id_mapping.legacy_id
LEFT JOIN
  `DATASET.IdMapping_CAMPAIGN_ADVERTISER_ID` campaign_id_mapping
ON cs.campaignId = campaign_id_mapping.legacy_id
WHERE cs._DATA_DATE = 'OLD_DATA_DATE')
GROUP BY
1, 2
ORDER BY
1, 2

次のように置き換えます。

  • DATASET: データセットの名前
  • CUSTOMER_ID: 検索広告 360 のお客様 ID
  • ADVERTISER_ID: 検索広告 360 の広告主 ID
  • NEW_DATA_DATE: 検索広告 360 リニューアル版テーブルのデータ日付
  • OLD_DATA_DATE: 検索広告 360 従来版テーブルのデータ日付

次のクエリでは、ID マッピング テーブルを使用して、検索広告 360 従来版とリニューアル版の転送のテーブル間でキャンペーンごとの指標を集計します。

SELECT CustomerID, CampaignID, Sum(Clicks), Sum(Cost) FROM
(SELECT
  customer_id_mapping.legacy_id AS CustomerID,
  campaign_id_mapping.legacy_id AS CampaignID,
  cs.metrics_clicks AS Clicks,
  cs.metrics_cost_micros / 1000000 AS Cost
FROM
  `DATASET.sa_CampaignStats_CUSTOMER_ID` cs
LEFT JOIN
  `DATASET.IdMapping_CUSTOMER_ADVERTISER_ID` customer_id_mapping
ON cs.customer_id = customer_id_mapping.new_id
LEFT JOIN
  `DATASET.IdMapping_CAMPAIGN_ADVERTISER_ID` campaign_id_mapping
ON cs.campaign_id = campaign_id_mapping.new_id
WHERE cs._DATA_DATE = 'NEW_DATA_DATE'
UNION ALL
SELECT
  CAST(accountId AS INT) AS CustomerID,
  CAST(campaignId AS INT) AS CampaignID,
  cs.clicks AS Clicks,
  cs.cost AS Cost
FROM
  `DATASET.CampaignStats_ADVERTISER_ID` cs
WHERE cs._DATA_DATE = 'OLD_DATA_DATE')
GROUP BY
1, 2
ORDER BY
1, 2

次のように置き換えます。

  • DATASET: データセットの名前
  • CUSTOMER_ID: 検索広告 360 のお客様 ID
  • ADVERTISER_ID: 検索広告 360 の広告主 ID
  • NEW_DATA_DATE: 検索広告 360 リニューアル版テーブルのデータ日付
  • OLD_DATA_DATE: 検索広告 360 従来版テーブルのデータ日付

発生しうる割り当ての問題

Search Ads 360 Reporting API では、Google プロジェクトで 1 日に送信できるリクエストの数に割り当てが設定されています。BigQuery Data Transfer Service と他のサービスに 1 つのプロジェクトを使用している場合は、すべてのサービスが同じ割り当てを共有し、どのサービスでも割り当て上限に達する可能性があります。

この発生しうる問題を回避して既存のワークフローに影響を与えないようにするには、次のオプションを検討してください。

  • BigQuery Data Transfer Service 用に別個のプロジェクトを設定します。プロジェクト間のテーブル結合は次のようになります。

      #standardSQL
      select count(a.item1)
      from (select item1, item2 from project-A.data_set_a.table_name_a) a
      inner join
      (select item3, item4 from project-B.data_set_b.table_name_b) b
      on a.item1 = b.item3
    

  • 検索広告 360 のサポートにお問い合わせのうえ、追加の割り当てをリクエストします。