Google アド マネージャーの転送

Google アド マネージャー用 BigQuery Data Transfer Service を使用すると、繰り返し実施する必要がある Google アド マネージャー(以前の DoubleClick for Publishers)のレポートデータの読み込みジョブのスケジュールと管理を自動化できます。

サポートされるレポート

Google アド マネージャー用 BigQuery Data Transfer Service では現在、次のレポート オプションがサポートされています。

Google アド マネージャー レポートがどのように BigQuery のテーブルとビューに変換されるかについては、Google アド マネージャー レポートの変換をご覧ください。

レポート オプション サポート
サポート対象の API バージョン v201802
スケジュール

作成時間に基づいて、8 時間ごと。

設定不可

ウィンドウの更新

過去 2 日間

設定不可

最大バックフィル期間

過去 60 日間

Google アド マネージャーでは、Data Transfer ファイルが最大 60 日間保持されます。60 日を超えるファイルは Google アド マネージャーによって削除されます。

始める前に

Google アド マネージャーの転送を作成する前に、以下を行います。

  • BigQuery Data Transfer Service を有効にするために必要なすべての操作が完了していることを確認します。
  • Google アド マネージャー データを保存する BigQuery データセットを作成します。
  • Google アド マネージャーの Data Transfer(Google アド マネージャー DT)ファイルに組織がアクセスできることを確認します。 これらのファイルは、Google アド マネージャー チームによって Cloud Storage バケットに配信されています。Google アド マネージャー DT ファイルにアクセスするには、次の手順を完了します。Google アド マネージャー チームの追加料金が適用される場合があります。

    • Data Transfer レポートの概要を確認します。
    • ページの右上にある [お問い合わせ] をクリックします。
    • [レポート] をクリックします。
    • メールまたはチャットを使用して、担当者に Google アド マネージャーの Data Transfer ファイルへのアクセスについて質問します。

    この手順を完了すると、次のような Google Cloud Storage バケットを受け取ります。

    gdfp-12345678

    Google Cloud チームには、ユーザーに代わって Google アド マネージャー DT ファイルを生成したり、このようなファイルに対するアクセス権を付与したりする権限はありません。Google アド マネージャー DT ファイルへのアクセスについては、Google アド マネージャー サポートにお問い合わせください。

  • Google アド マネージャー ネットワークへの API アクセスを有効にします
  • 従来の BigQuery ウェブ UI を使用して転送を作成する場合は、bigquery.cloud.google.com からのポップアップを許可し、権限ウィンドウが表示されるようにします。転送を成功させるには、Google アド マネージャー データを管理するための権限を BigQuery Data Transfer Service に許可しておく必要があります。
  • 転送実行通知は、現時点ではアルファ版です。転送通知を設定する場合は、Cloud Pub/Sub の pubsub.topics.setIamPolicy 権限が必要です。メール通知の設定のみを行う場合は、Cloud Pub/Sub の権限は必要ありません。詳細については、BigQuery Data Transfer Service の実行通知をご覧ください。
  • 必要な権限

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

      • 転送を作成するための bigquery.transfers.update 権限と、ターゲット データセットに対する bigquery.datasets.update 権限。

      事前定義されたプロジェクト レベルの IAM 役割である bigquery.admin には、bigquery.transfers.update 権限と bigquery.transfers.update 権限が含まれています。BigQuery での IAM 役割の詳細については、アクセス制御をご覧ください。

    • Google アド マネージャー: Cloud Storage に保存されている Google アド マネージャー DT ファイルに対する読み取りアクセス権。Google アド マネージャー DT ファイルの権限は Google アド マネージャー チームによって管理されます。

    Google アド マネージャー転送の設定

    Google アド マネージャーの BigQuery Data Transfer を設定するには、次が必要です。

    • Cloud Storage バケット: 始める前にで説明されている Google アド マネージャー DT ファイルの Cloud Storage バケット URI。バケット名は次のようになります。

      gdfp-12345678
    • ネットワーク コード: ネットワークにログインすると、URL に Google アド マネージャーのネットワーク コードが表示されます。たとえば、URL https://admanager.google.com/2032576#delivery の場合は、2032576 がネットワーク コードです。詳細については、Google アド マネージャーのスタートガイドをご覧ください。

    Google アド マネージャーの BigQuery データ転送サービス転送を作成するには次を行います。

    Console

    1. BigQuery ウェブ UI に移動します。

      BigQuery ウェブ UI に移動

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

    3. [+ 作成] をクリックします。

    4. [転送の作成] ページで、次の操作を行います。

      • [ソースタイプ] セクションの [ソース] で、[Google アド マネージャー] を選択します。

        転送のソース

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

        転送名

      • [スケジュール オプション] セクションで、[スケジュール] をデフォルト値([すぐに開始可能])のままにするか、[設定した時間に開始] をクリックします。

        • [繰り返しの頻度] で、転送を実行する頻度のオプションを選択します。
          • 毎日(デフォルト)
          • 毎週
          • 毎月
          • カスタム
          • オンデマンド
        • [開始日と実行時間] に、転送を開始する日付と時刻を入力します。[すぐに開始可能] を選択した場合、このオプションは無効になります。

          転送スケジュール

      • [転送先の設定] セクションの [宛先データセット] で、データを保存するために作成したデータセットを選択します。

        転送データセット

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

        • [Cloud Storage Bucket] には、Data Transfer ファイルを格納する Cloud Storage バケットの名前を入力します。バケット名を入力するときに、gs:// は含めないでください。
        • [Network Code] に、ネットワーク コードを入力します。

          Google アド マネージャーのソースの詳細

      • (省略可)[通知オプション] セクションで、次の操作を行います。

        • 切り替えボタンをクリックしてメール通知を有効にします。このオプションを有効にすると、転送の実行が失敗した場合、転送管理者にメール通知が送信されます。
        • [Cloud Pub/Sub トピックを選択してください] で、トピック名を選択するか、[トピックを作成] をクリックします。このオプションで、Cloud Pub/Sub の転送実行通知を構成します。転送実行通知は、現時点ではアルファ版です。
    5. [保存] をクリックします。

    従来の UI

    1. BigQuery ウェブ UI に移動します。

      BigQuery ウェブ UI に移動

    2. [Transfers] をクリックします。

    3. [Add Transfer] をクリックします。

    4. [New Transfer] ページで次の操作を行います。

      • ソースについては、Google アド マネージャー(旧 DFP)を選択します。
      • [Display Name] に転送名(My Transfer など)を入力します。表示名には、後で修正が必要になった場合に簡単に識別できる任意の名前を使用できます。
      • [Destination dataset] で、該当するデータセットを選択します。
      • [Cloud Storage Bucket] には、Data Transfer ファイルを格納する Cloud Storage バケットの名前を入力します。バケット名を入力するときに、gs:// は含めないでください。
      • [Network Code] に、ネットワーク コードを入力します。

        チャネル転送

      • (省略可)[Advanced] セクションを展開し、転送の実行通知を構成します。転送実行通知は、現時点ではアルファ版です。

        • [Cloud Pub/Sub topic] にトピック名(projects/myproject/topics/mytopic など)を入力します。
        • [Send email notifications] をオンにして、転送実行失敗のメール通知を許可します。
        • 転送を設定するときは [Disabled] をオンにしないでください。既存の転送を無効にするには転送の操作をご覧ください。

          Cloud Pub/Sub トピック

    5. [追加] をクリックします。

    6. メッセージが表示されたら [Allow] をクリックします。これで、Google アド マネージャーのレポートデータにアクセスして BigQuery のデータを管理する権限が BigQuery Data Transfer Service に付与されます。権限ウィンドウが表示されるように、bigquery.cloud.google.com からのポップアップを許可します。

      転送の許可

    コマンドライン

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

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

      bq mk --transfer_config --project_id=[PROJECT_ID] --target_dataset=[DATASET] --display_name=[NAME] --params='[PARAMETERS]' --data_source=[DATA_SOURCE]
      

    ここで

    • --project_id はプロジェクト ID です。
    • --target_dataset は転送構成のターゲット データセットです。
    • --display_name は転送構成の表示名です。転送名には、後で修正が必要になった場合に簡単に識別できる任意の名前を使用できます。
    • --params には、作成される転送構成のパラメータを JSON 形式で指定します(例: --params='{"param":"param_value"}')。Google アド マネージャーでは、bucket パラメータと network_code パラメータを指定する必要があります。bucket は Google アド マネージャー DT ファイルを含む Cloud Storage バケットです。network_code はネットワーク コードです。
    • --data_source はデータソースであり、ここでは dfp_dt(Google アド マネージャー)です。

    また、--project_id フラグを指定して、特定のプロジェクトを指定することもできます。--project_id が指定されていない場合は、デフォルトのプロジェクトが使用されます。

    たとえば、次のコマンドは、ネットワーク コード 12345678、Cloud Storage バケット gdfp-12345678、ターゲット データセット mydataset を使用して My Transfer という名前の Google アド マネージャー転送を作成します。転送はデフォルトのプロジェクトに作成されます。

    bq mk --transfer_config --target_dataset=mydataset --display_name='My Transfer' --params='{"bucket": "gdfp-12345678","network_code": "12345678"}' --data_source=dfp_dt
    

    コマンドを実行すると、次のようなメッセージが表示されます。

    [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 リソースのインスタンスを指定します。

    Google アド マネージャーの転送設定のトラブルシューティング

    転送を設定する際に問題が発生した場合は、BigQuery Data Transfer Service 転送設定のトラブルシューティングGoogle アド マネージャーの転送に関する問題をご覧ください。

    データのクエリ

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

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

    次の Google アド マネージャーのサンプルクエリを使用すると、転送されたデータを分析できます。このクエリは、Cloud DatalabGoogle データポータルなどの可視化ツールでも使用できます。これらのクエリは、BigQuery で Google アド マネージャー データのクエリを開始する場合に役立つように用意されています。これらのレポートでできることに関するその他の質問については、Google アド マネージャーの技術担当者にお問い合わせください。

    このサンプルでは、BigQuery の標準 SQL サポートを使用します。標準 SQL を使用することを BigQuery に認識させるため、#standardSQL タグを使用します。#standardSQL 接頭辞の詳細については、クエリ接頭辞の設定をご覧ください。

    次の各クエリで、[DATASET] は実際のデータセット名に置き換えます。[NETWORK_CODE] は Google アド マネージャーのネットワーク コードに置き換えます。

    都市別のインプレッション数とユニーク ユーザー数

    次のサンプルクエリは、過去 30 日間のインプレッション数とユニーク ユーザー数を都市別に分析します。

    Console

    #standardSQL
    # START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
    # END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
    SELECT
      City,
      _DATA_DATE AS Date,
      count(*) AS imps,
      count(distinct UserId) AS uniq_users
    FROM `[DATASET].NetworkImpressions[NETWORK_CODE]`
    WHERE
      _DATA_DATE BETWEEN [START_DATE] AND [END_DATE]
    GROUP BY City, Date
    

    コマンドライン

    # START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
    # END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
    bq query --use_legacy_sql=false '
    SELECT
      City,
      _DATA_DATE AS Date,
      count(*) AS imps,
      count(distinct UserId) AS uniq_users
    FROM `[DATASET].NetworkImpressions_[NETWORK_CODE]`
    WHERE
      _DATA_DATE BETWEEN [START_DATE] AND [END_DATE]
    GROUP BY City, Date'
    

    広告申込情報タイプ別のインプレッション数とユニーク ユーザー数

    次のサンプルクエリは、過去 30 日間のインプレッション数とユニーク ユーザー数を広告申込情報タイプ別に分析します。

    Console

    #standardSQL
    # START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
    # END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
    SELECT
      MT.LineItemType AS LineItemType,
      DT._DATA_DATE AS Date,
      count(*) AS imps,
      count(distinct UserId) AS uniq_users
    FROM `[DATASET].NetworkImpressions[NETWORK_CODE]` AS DT
    LEFT JOIN `[DATASET].MatchTableLineItem_[NETWORK_CODE]` AS MT
    ON
      DT.LineItemId = MT.Id
    WHERE
      DT._DATA_DATE BETWEEN [START_DATE] AND [END_DATE]
    GROUP BY LineItemType, Date
    ORDER BY Date desc, imps desc
    

    コマンドライン

    # START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
    # END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
    bq query --use_legacy_sql=false '
    SELECT
      MT.LineItemType AS LineItemType,
      DT._DATA_DATE AS Date,
      count(*) AS imps,
      count(distinct UserId) AS uniq_users
    FROM `[DATASET].NetworkImpressions_[NETWORK_CODE]` AS DT
    LEFT JOIN `[DATASET].MatchTableLineItem_[NETWORK_CODE]` AS MT
    ON
      DT.LineItemId = MT.Id
    WHERE
      DT._DATA_DATE BETWEEN [START_DATE] AND [END_DATE]
    GROUP BY LineItemType, Date
    ORDER BY Date desc, imps desc'
    

    広告ユニット別のインプレッション数

    次のサンプルクエリは、過去 30 日間のインプレッション数を広告ユニット別に分析します。

    Console

    #standardSQL
    # START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
    # END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
    SELECT
      MT.AdUnitCode AS AdUnitCode,
      DT.DATA_DATE AS Date,
      count(*) AS imps
    FROM `[DATASET].NetworkImpressions[NETWORK_CODE]` AS DT
    LEFT JOIN `[DATASET].MatchTableLineItem_[NETWORK_CODE]` AS MT
    ON
      DT.AdUnitId = MT.Id
    WHERE
      DT._DATA_DATE BETWEEN [START_DATE] AND [END_DATE]
    GROUP BY AdUnitCode, Date
    ORDER BY Date desc, imps desc
    

    コマンドライン

    # START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
    # END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
    bq query --use_legacy_sql=false '
    SELECT
      MT.AdUnitCode AS AdUnitCode,
      DT._DATA_DATE AS Date,
      count(*) AS imps
    FROM `[DATASET].NetworkImpressions_[NETWORK_CODE]` AS DT
    LEFT JOIN `[DATASET].MatchTableLineItem_[NETWORK_CODE]` AS MT
    ON
      DT.AdUnitId = MT.Id
    WHERE
      DT._DATA_DATE BETWEEN [START_DATE] AND [END_DATE]
    GROUP BY AdUnitCode, Date
    ORDER BY Date desc, imps desc'
    

    広告申込情報別のインプレッション数

    次のサンプルクエリは、過去 30 日間のインプレッション数を広告申込情報別に分析します。

    Console

    #standardSQL
    # START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
    # END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
    SELECT
      MT.Name AS LineItemName,
      DT._DATA_DATE AS Date,
      count(*) AS imps
    FROM `[DATASET].NetworkImpressions[NETWORK_CODE]` AS DT
    LEFT JOIN `[DATASET].MatchTableLineItem_[NETWORK_CODE]` AS MT
    ON
      DT.LineItemId = MT.Id
    WHERE
      DT._DATA_DATE BETWEEN [START_DATE] AND [END_DATE]
    GROUP BY LineItemName, Date
    ORDER BY Date desc, imps desc
    

    コマンドライン

    # START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
    # END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
    bq query --use_legacy_sql=false '
    SELECT
      MT.Name AS LineItemName,
      DT._DATA_DATE AS Date,
      count(*) AS imps
    FROM `[DATASET].NetworkImpressions_[NETWORK_CODE]` AS DT
    LEFT JOIN `[DATASET].MatchTableLineItem_[NETWORK_CODE]` AS MT
    ON
      DT.LineItemId = MT.Id
    WHERE
      DT._DATA_DATE BETWEEN [START_DATE] AND [END_DATE]
    GROUP BY LineItemName, Date
    ORDER BY Date desc, imps desc'
    
    このページは役立ちましたか?評価をお願いいたします。

    フィードバックを送信...

    ご不明な点がありましたら、Google のサポートページをご覧ください。