検索広告 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 | |
スケジュール | 毎日、転送が最初に作成される時刻(デフォルト) 時刻を設定できます。 |
ウィンドウの更新 | 過去 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 を有効にするために必要なすべての操作が完了していることを確認します。
- 検索広告 360 のレポートデータを保存する BigQuery Data Transfer Service データセットを作成します。
- Pub/Sub の転送実行通知を設定する場合は、
pubsub.topics.setIamPolicy
権限が必要です。メール通知を設定するだけの場合、Pub/Sub の権限は必要ありません。詳細については、BigQuery Data Transfer Service の実行通知をご覧ください。 - プロジェクトで Search Ads 360 Reporting API へのアクセスを有効にします。
必要な権限
転送を作成するユーザーに、次の必要な権限が付与されていることを確認します。
BigQuery Data Transfer Service:
bigquery.transfers.update
(転送を作成する権限)- 抽出先データセットに対する
bigquery.datasets.get
とbigquery.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 事前定義ロール
editor
、owner
、serviceusage.serviceUsageConsumer
にはserviceusage.services.use
権限が含まれています。Service Usage の IAM ロールの詳細については、アクセス制御のリファレンスをご覧ください。- プロジェクトに対して検索広告 360 からデータをダウンロードするための
検索広告 360
- 転送構成で使用される検索広告 360 お客様 ID またはクライアント センター(MCC)アカウントに対する読み取りアクセス権。
検索広告 360 のデータ転送を作成する
検索広告 360 レポートのデータ転送を作成するには、検索広告 360 のお客様 ID またはMCC アカウントが必要です。次のオプションのいずれかを選択します。
コンソール
- Google Cloud コンソールの [BigQuery] ページに移動します。
[データ転送] をクリックします。
[転送を作成] をクリックします。
[ソースタイプ] セクションの [ソース] で、[検索広告 360 - プレビュー] を選択します。
[転送構成名] セクションの [表示名] に、転送名(例:
My Transfer
)を入力します。転送名には、後で修正が必要になった場合に識別できる任意の名前を使用できます。[スケジュール オプション] セクションで:
- [繰り返しの頻度] で、転送を実行する頻度のオプションを選択します。[日数] を選択した場合は、有効な時刻を UTC で入力します。
- 時間
- 日数
- オンデマンド
- 必要に応じて、[すぐに開始可能] を選択するか、[設定した時刻に開始] を選択して開始日と実行時間を指定します。
- [繰り返しの頻度] で、転送を実行する頻度のオプションを選択します。[日数] を選択した場合は、有効な時刻を UTC で入力します。
[転送先の設定] セクションの [データセット] には、データを保存するために作成したデータセットを選択します。
[データソースの詳細] セクションで、次の操作を行います。
[お客様 ID] に検索広告 360 のお客様 ID を入力します。
省略可: ID マッピング テーブルを取得するには、代理店 ID と広告主 ID(どちらも指定する必要があります)を入力します。
省略可: 含めるテーブルのカンマ区切りのリストを入力します(例:
Campaign, AdGroup
)。特定のテーブルを除外するには、このリストの先頭に-
文字を配置します(例:-Campaign, AdGroup
)。デフォルトでは、すべてのテーブルが含まれています。(省略可)[ウィンドウの更新] に 1~30 の値を入力します。設定しない場合、更新期間はデフォルトで 7 日間に設定されます。
[サービス アカウント] メニューで、Google Cloud プロジェクトに関連付けられたサービス アカウントからサービス アカウントを選択します。ユーザー認証情報を使用する代わりに、サービス アカウントを転送に関連付けることができます。データ転送でサービス アカウントを使用する方法の詳細については、サービス アカウントの使用をご覧ください。
- フェデレーション ID でログインした場合、転送を作成するにはサービス アカウントが必要です。Google アカウントでログインした場合、転送用のサービス アカウントは省略可能です。
- サービス アカウントには必要な権限が付与されている必要があります。
省略可: [通知オプション] セクションで、次の操作を行います。
[保存] をクリックします。
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 アカウントに切り替えることをおすすめします。方法は次のとおりです。
- 検索広告 360 の転送を MCC アカウントまたはサブ MCC アカウントのレベルで 1 つ設定します。
- バックフィルのスケジュールを設定します。
- 個々のお客様 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
- 1234 - サブ MCC アカウント
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_id
と new_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 のお客様 IDADVERTISER_ID
: 検索広告 360 の広告主 IDNEW_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 のお客様 IDADVERTISER_ID
: 検索広告 360 の広告主 IDNEW_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 fromproject-B.data_set_b.table_name_b
) b on a.item1 = b.item3検索広告 360 のサポートにお問い合わせのうえ、追加の割り当てをリクエストします。