Google Ad Manager 转移作业

通过适用于 Google Ad Manager 的 BigQuery Data Transfer Service,您可以自动安排和管理 Google Ad Manager(以前称为 DFP 广告管理系统)报告数据的周期性加载作业。

支持的报告

目前,适用于 Google Ad Manager 的 BigQuery Data Transfer Service 支持以下报告选项:

如需了解 Google Ad Manager 报告如何转换为 BigQuery 表和视图,请参阅 Google Ad Manager 报告转换

报告选项 支持
支持的 API 版本 v201802
时间安排

每 8 小时(基于创建时间)。

无法配置

刷新时段

过去 2 天

无法配置

最大回填时长

过去 60 天

Google Ad Manager 最多可将数据转移文件保留 60 天。保存时间超过 60 天的文件会被 Google Ad Manager 删除。

准备工作

在创建 Google Ad Manager 转移作业之前,请先做好以下准备工作:

  • 确认您已完成启用 BigQuery Data Transfer Service 所需的全部操作。
  • 创建 BigQuery 数据集以存储 Google Ad Manager 数据。
  • 确保您的组织有权访问 Google Ad Manager 数据转移 (Google Ad Manager DT) 文件。 这些文件由 Google Ad Manager 团队提交到 Cloud Storage 存储分区。要获取对 Google Ad Manager DT 文件的访问权限,请完成以下步骤。Google Ad Manager 团队可能会收取额外费用。

    • 查看数据转移概览报告
    • 在页面的右上角,点击与我们联系
    • 点击报告
    • 发送电子邮件或与代表聊天,询问是否可以访问 Google Ad Manager 数据转移文件。

    完成此步骤后,您将收到类似于以下名称的 Cloud Storage 存储分区:

    gdfp-12345678

    Google Cloud 团队不能代表您生成或授予对 Google Ad Manager DT 文件的访问权限。请联系 Google Ad Manager 支持团队,获取对 Google Ad Manager DT 文件的访问权限。

  • 启用对 Google Ad Manager 网络的 API 访问权限
  • 如果您打算使用经典版 BigQuery 网页界面创建转移作业,请允许显示来自 bigquery.cloud.google.com 的弹出式窗口,这样您才能看到权限窗口。您必须向 BigQuery Data Transfer Service 授予您的 Google Ad Manager 数据的管理权限,才能成功转移数据。
  • 转移作业运行通知目前为 Alpha 版。如果您想要设置转移作业通知,则必须拥有 Cloud Pub/Sub 的 pubsub.topics.setIamPolicy 权限。如果您只想设置电子邮件通知,则无需 Cloud Pub/Sub 权限。如需了解更多信息,请参阅 BigQuery Data Transfer Service 运行通知
  • 所需权限

    • BigQuery:确保转移作业创建者在 BigQuery 中拥有以下权限:

      • 创建转移作业所需的 bigquery.transfers.update 权限
      • 目标数据集的 bigquery.datasets.update 权限

      预定义的 Cloud IAM 角色 bigquery.admin 具有 bigquery.transfers.updatebigquery.datasets.update 权限。如需详细了解 BigQuery 中的 Cloud IAM 角色,请参阅访问权限控制

    • Google Ad Manager:存储在 Cloud Storage 中的 Google Ad Manager DT 文件的读取权限。对 Google Ad Manager DT 文件的权限由 Google Ad Manager 团队负责管理。

    设置 Google Ad Manager 转移作业

    为 Google Ad Manager 设置 BigQuery 数据转移作业需要提供以下信息:

    • Cloud Storage 存储分区:您的 Google Ad Manager DT 文件的 Cloud Storage 存储分区 URI(如准备工作中所述)。存储分区名称应类似于:

      gdfp-12345678
    • 网络代码:在登录网络后,您将在网址中找到 Google Ad Manager 的网络代码。例如,在网址 https://admanager.google.com/2032576#delivery 中,2032576 即为您的网络代码。如需了解详情,请参阅 Google Ad Manager 使用入门

    要为 Google Ad Manager 创建 BigQuery Data Transfer Service 转移作业,请执行以下操作:

    Console

    1. 转到 BigQuery 网页界面。

      转到 BigQuery 网页界面

    2. 点击转移作业

    3. 点击创建转移作业

    4. 创建转移作业页面上:

      • 来源类型部分的来源中,选择 Google Ad Manager

        转移作业来源

      • 转移配置名称部分的显示名中,输入转移作业的名称,例如 My Transfer。转移作业名称可以是任何容易辨识的值,方便以后需要时对其进行修改。

        转移作业名称

      • 时间安排选项部分的时间安排中,保留默认值(立即开始)或点击在设置的时间开始 (Start at a set time)。

        • 重复频率部分,从以下选项中选择转移作业的运行频率。
          • 每日一次(默认值)
          • 每周一次
          • 每月一次
          • 自定义
          • 按需
        • 开始日期和运行时间部分,输入开始转移作业的日期和时间。如果您选择的是立即开始,则此选项处于停用状态。

          转移作业时间安排

      • 目标设置部分的目标数据集中,选择您创建用来存储数据的数据集。

        转移作业数据集

      • 数据源详细信息部分,执行以下操作:

        • Cloud Storage 存储分区部分,输入存储 Data Transfer 文件的 Cloud Storage 存储分区的名称。当您输入存储分区名称时,请不要包含 gs://
        • Network Code 部分,输入您的网络代码。

          Google Ad Manager 来源详细信息

      • (可选)在通知选项部分,执行以下操作:

        • 点击切换开关以启用电子邮件通知。启用此选项后,转移作业管理员会在转移作业运行失败时收到电子邮件通知。
        • 选择 Cloud Pub/Sub 主题字段,选择主题名称或点击创建主题。此选项用于为您的转移作业配置 Cloud Pub/Sub 运行通知。转移作业运行通知目前为 Alpha 版
    5. 点击保存

    经典版界面

    1. 转到 BigQuery 网页界面。

      转到 BigQuery 网页界面

    2. 点击转移作业

    3. 点击添加转移作业

    4. New Transfer 页面上,执行以下操作:

      • Source 部分,选择 Google Ad Manager (formerly DFP)
      • Display name 部分,输入转移作业的名称,例如 My Transfer。显示名可以是任何容易辨识的值,让您以后在需要修改时能够轻松识别。
      • Destination dataset 部分,选择相应的数据集。
      • Cloud Storage Bucket 部分,输入存储数据转移文件的 Cloud Storage 存储分区的名称。当您输入存储分区名称时,请不要包含 gs://
      • Network Code 部分,输入您的网络代码。

        频道转移作业

      • (可选)展开 Advanced 部分,为转移作业配置运行通知。转移作业运行通知目前为 Alpha 版

        • Cloud Pub/Sub topic 部分,输入您的主题名称,例如 projects/myproject/topics/mytopic
        • 勾选 Send email notifications,让系统在转移作业运行失败时发送电子邮件通知。
        • 设置传输时请勿勾选 Disabled。请参阅处理传输作业以停用现有传输。

          Cloud Pub/Sub 主题

    5. 点击 Add

    6. 出现提示时,点击 Allow 以向 BigQuery Data Transfer Service 授予相应权限,允许其访问您的 Google Ad Manager 报告数据以及在 BigQuery 中管理数据。您必须允许显示来自 bigquery.cloud.google.com 的弹出式窗口,才能看到权限窗口。

      允许转移

    CLI

    输入 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。
    • dataset 是转移作业配置的目标数据集
    • name 是转移作业配置的显示名。转移作业名称可以是任何容易辨识的值,让您以后在需要修改时能够轻松识别。
    • parameters 包含所创建的转移作业配置的参数(采用 JSON 格式)。例如:--params='{"param":"param_value"}'。对于 Google Ad Manager,您必须提供 bucketnetwork_code 参数。bucket 是包含您的 Google Ad Manager DT 文件的 Cloud Storage 存储分区;network_code 是您的网络代码。
    • data_source 是数据源 — dfp_dt (Google Ad Manager)。

    您也可以提供 --project_id 标志来指定特定项目。如果未指定 --project_id,系统会使用默认项目。

    例如,以下命令会使用网络代码 12345678、Cloud Storage 存储分区 gdfp-12345678 和目标数据集 mydataset 创建名为 My Transfer 的 Google Ad Manager 转移作业。该转移作业会在默认项目中创建:

    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 Ad Manager 转移作业设置问题

    如果您在设置转移作业时遇到问题,请参阅排查 BigQuery Data Transfer Service 转移作业设置问题中的 Google Ad Manager 转移作业问题

    查询数据

    当数据转移到 BigQuery 时,数据会写入按提取时间分区的表。如需了解详情,请参阅分区表简介

    如果您要直接查询表,而不是使用自动生成的视图,那么必须在查询中使用 _PARTITIONTIME 伪列。如需了解详情,请参阅查询分区表

    您可以使用以下 Google Ad Manager 示例查询来分析已转移的数据。此外,您也可以在 Cloud DatalabGoogle Data Studio 等可视化工具中使用这些查询。这些查询旨在帮助您开始使用 BigQuery 来查询 Google Ad Manager 数据。如果您对这些报告的功能有其他问题,请联系您的 Google Ad Manager 技术代表。

    在以下每个查询中,将 dataset 等变量替换为您的值。例如,将 network_code 替换为您的 Google Ad Manager 网络代码。

    展示次数和唯一身份用户数(按城市)

    以下示例查询会分析过去 30 天内的展示次数和唯一身份用户数(按城市)。

    Console

    # 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.NetworkImpressionsnetwork_code`
    WHERE
      _DATA_DATE BETWEEN start_date AND end_date
    GROUP BY City, Date
    

    CLI

    # 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

    # 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.NetworkImpressionsnetwork_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
    

    CLI

        # 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

    # 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.NetworkImpressionsnetwork_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
    

    CLI

    # 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

    # 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.NetworkImpressionsnetwork_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
    

    CLI

    # 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'
    
    此页内容是否有用?请给出您的反馈和评价:

    发送以下问题的反馈:

    此网页
    需要帮助?请访问我们的支持页面