Google Ads to BigQuery テンプレート

Google Ads to BigQuery テンプレートは、Google 広告レポートを読み取り、BigQuery に書き込むバッチ パイプラインです。

パイプラインの要件

  • 使用される Google 広告アカウント ID。
  • データを取得するための Google 広告クエリ言語のクエリ。
  • Google Ads API の OAuth 認証情報。

テンプレートのパラメータ

パラメータ 説明
customerIds クエリの実行に使用する Google 広告アカウント ID のリスト。例: 12345,67890
query データの取得に使用するクエリ。Google 広告クエリ言語をご覧ください。例: SELECT campaign.id, campaign.name FROM campaign
qpsPerWorker Google 広告に送信する 1 秒あたりのクエリ リクエスト数(QPS)。パイプラインごとに必要な QPS をワーカーの最大数で割ります。アカウントまたは開発者トークンの上限を超えないようにしてください。レート制限をご覧ください。
googleAdsClientId アプリケーションを識別する OAuth 2.0 クライアント ID。クライアント ID とクライアント シークレットを作成するをご覧ください。
googleAdsClientSecret 指定したクライアント ID に対応する OAuth 2.0 クライアント シークレット。クライアント ID とクライアント シークレットを作成するをご覧ください。
googleAdsRefreshToken Google Ads API への接続に使用する OAuth 2.0 更新トークン。2 段階認証プロセスをご覧ください。
googleAdsDeveloperToken Google Ads API への接続に使用する Google 広告開発者トークン。開発者トークンを取得するをご覧ください。
outputTableSpec 出力を書き込む BigQuery テーブルの場所。名前は <project>:<dataset>.<table_name> の形式にします。テーブルのスキーマは、入力オブジェクトと一致する必要があります。
loginCustomerId 省略可: アカウント ID へのアクセスに使用する Google 広告クライアント センター(MCC)アカウントの ID。例: 12345
bigQueryTableSchemaPath 省略可: BigQuery スキーマ JSON ファイルへの Cloud Storage パス。この値が設定されていない場合、スキーマは Proto スキーマから推測されます。例: gs://MyBucket/bq_schema.json
writeDisposition 省略可: BigQuery の WriteDisposition 値。例: WRITE_APPENDWRITE_EMPTYWRITE_TRUNCATE。デフォルトは WRITE_APPEND です。
createDisposition 省略可: BigQuery の CreateDisposition 値。例: CREATE_IF_NEEDEDCREATE_NEVER。デフォルトは CREATE_IF_NEEDED です。

テンプレートを実行する

コンソール

  1. Dataflow の [テンプレートからジョブを作成] ページに移動します。
  2. [テンプレートからジョブを作成] に移動
  3. [ジョブ名] フィールドに、固有のジョブ名を入力します。
  4. (省略可)[リージョン エンドポイント] で、プルダウン メニューから値を選択します。デフォルトのリージョンは us-central1 です。

    Dataflow ジョブを実行できるリージョンのリストについては、Dataflow のロケーションをご覧ください。

  5. [Dataflow テンプレート] プルダウン メニューから、[ the Google Ads to BigQuery template] を選択します。
  6. 表示されたパラメータ フィールドに、パラメータ値を入力します。
  7. [ジョブを実行] をクリックします。

gcloud

シェルまたはターミナルで、テンプレートを実行します。

gcloud dataflow flex-template run JOB_NAME \
    --template-file-gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/flex/Google_Ads_to_BigQuery \
    --project=PROJECT_ID \
    --region=REGION_NAME \
    --parameters \
       customerIds=CUSTOMER_IDS,\
       query=QUERY,\
       qpsPerWorker=QPS_PER_WORKER,\
       googleAdsClientId=GOOGLE_ADS_CLIENT_ID,\
       googleAdsClientSecret=GOOGLE_ADS_CLIENT_SECRET,\
       googleAdsRefreshToken=GOOGLE_ADS_REFRESH_TOKEN,\
       googleAdsDeveloperToken=GOOGLE_ADS_DEVELOPER_TOKEN,\
       outputTableSpec=OUTPUT_TABLE_SPEC,\

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

  • JOB_NAME: 一意の任意のジョブ名
  • VERSION: 使用するテンプレートのバージョン

    使用できる値は次のとおりです。

    • latest: 最新バージョンのテンプレートを使用します。このテンプレートは、バケット内で日付のない親フォルダ(gs://dataflow-templates-REGION_NAME/latest/)にあります。
    • バージョン名(例: 2023-09-12-00_RC00)。特定のバージョンのテンプレートを使用します。このテンプレートは、バケット内で対応する日付の親フォルダ(gs://dataflow-templates-REGION_NAME/)にあります。
  • REGION_NAME: Dataflow ジョブをデプロイするリージョン(例: us-central1
  • CUSTOMER_IDS: Google 広告アカウント ID
  • QUERY: Google 広告クエリ言語のクエリ
  • QPS_PER_WORKER: ワーカーあたりの必要な Google 広告リクエスト レート
  • GOOGLE_ADS_CLIENT_ID: アプリケーションを識別する OAuth 2.0 クライアント ID
  • GOOGLE_ADS_CLIENT_SECRET: 指定されたクライアント ID に対応する OAuth 2.0 クライアント シークレット
  • GOOGLE_ADS_REFRESH_TOKEN: Google Ads API への接続に使用する OAuth 2.0 更新トークン
  • GOOGLE_ADS_DEVELOPER_TOKEN: Google Ads API への接続に使用する Google 広告開発者トークン
  • OUTPUT_TABLE_SPEC: BigQuery 出力テーブル

API

REST API を使用してテンプレートを実行するには、HTTP POST リクエストを送信します。API とその認証スコープの詳細については、projects.templates.launch をご覧ください。

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch
{
   "launchParameter": {
     "jobName": "JOB_NAME",
     "parameters": {
       "customerIds": "CUSTOMER_IDS",
       "query": "QUERY",
       "qpsPerWorker": "QPS_PER_WORKER",
       "googleAdsClientId": "GOOGLE_ADS_CLIENT_ID",
       "googleAdsClientSecret": "GOOGLE_ADS_CLIENT_SECRET",
       "googleAdsRefreshToken": "GOOGLE_ADS_REFRESH_TOKEN",
       "googleAdsDeveloperToken": "GOOGLE_ADS_DEVELOPER_TOKEN",
       "outputTableSpec": "OUTPUT_TABLE_SPEC",
     },
     "containerSpecGcsPath": "gs://dataflow-templates-LOCATION/VERSION/flex/Google_Ads_to_BigQuery",
     "environment": { "maxWorkers": "10" }
  }
}

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

  • PROJECT_ID: Dataflow ジョブを実行する Google Cloud プロジェクトの ID
  • JOB_NAME: 一意の任意のジョブ名
  • VERSION: 使用するテンプレートのバージョン

    使用できる値は次のとおりです。

    • latest: 最新バージョンのテンプレートを使用します。このテンプレートは、バケット内で日付のない親フォルダ(gs://dataflow-templates-REGION_NAME/latest/)にあります。
    • バージョン名(例: 2023-09-12-00_RC00)。特定のバージョンのテンプレートを使用します。このテンプレートは、バケット内で対応する日付の親フォルダ(gs://dataflow-templates-REGION_NAME/)にあります。
  • LOCATION: Dataflow ジョブをデプロイするリージョン(例: us-central1
  • CUSTOMER_IDS: Google 広告アカウント ID
  • QUERY: Google 広告クエリ言語のクエリ
  • QPS_PER_WORKER: ワーカーあたりの必要な Google 広告リクエスト レート
  • GOOGLE_ADS_CLIENT_ID: アプリケーションを識別する OAuth 2.0 クライアント ID
  • GOOGLE_ADS_CLIENT_SECRET: 指定されたクライアント ID に対応する OAuth 2.0 クライアント シークレット
  • GOOGLE_ADS_REFRESH_TOKEN: Google Ads API への接続に使用する OAuth 2.0 更新トークン
  • GOOGLE_ADS_DEVELOPER_TOKEN: Google Ads API への接続に使用する Google 広告開発者トークン
  • OUTPUT_TABLE_SPEC: BigQuery 出力テーブル

次のステップ