DoubleClick Bid Manager 服务

通过 DoubleClick Bid Manager 服务,您可以在 Apps 脚本中使用 DV360 Bid Manager API。此 API 支持以程序化方式访问 DoubleClick Bid Manager (DBM) 报告。

参考

如需详细了解此服务,请参阅 DBM Reporting API 的参考文档。与 Apps 脚本中的所有高级服务一样,DoubleClick Bid Manager 服务使用的对象、方法和参数均与公共 API 相同。如需了解详情,请参阅方法签名是如何确定的

如需报告问题并查找其他支持,请参阅 DBM 报告和广告投放支持指南

示例代码

以下示例代码使用 API 的版本 2

获取查询列表

此示例会记录账号中的所有可用查询。

advanced/doubleclickbidmanager.gs
/**
 * Logs all of the queries available in the account.
 */
function listQueries() {
  // Retrieve the list of available queries
  try {
    const queries = DoubleClickBidManager.Queries.list();

    if (queries.queries) {
      // Print out the ID and name of each
      for (let i = 0; i < queries.queries.length; i++) {
        const query = queries.queries[i];
        console.log('Found query with ID %s and name "%s".',
            query.queryId, query.metadata.title);
      }
    }
  } catch (e) {
    // TODO (Developer) - Handle exception
    console.log('Failed with error: %s', e.error);
  }
}

创建并运行查询

此示例会创建并运行新的 DBM 查询。

advanced/doubleclickbidmanager.gs
/**
 * Create and run a new DBM Query
 */
function createAndRunQuery() {
  let result;
  let execution;
  //We leave the default date range blank for the report run to
  //use the value defined during query creation
  let defaultDateRange = {}
  let partnerId = "1234567" //Replace with your Partner ID
  let query = {
    "metadata": {
      "title": "Apps Script Example Report",
      "dataRange": {
        "range": "YEAR_TO_DATE"
      },
      "format": "CSV"
    },
    "params": {
      "type": "STANDARD",
      "groupBys": [
        "FILTER_PARTNER",
        "FILTER_PARTNER_NAME",
        "FILTER_ADVERTISER",
        "FILTER_ADVERTISER_NAME",
      ],
      "filters": [
        {"type": "FILTER_PARTNER","value": partnerId}
      ],
      "metrics": [
        "METRIC_IMPRESSIONS"
      ]
    },
    "schedule": {
      "frequency": "ONE_TIME"
    }
  }

  try {
    result = DoubleClickBidManager.Queries.create(query);
    if (result.queryId) {
      console.log('Created query with ID %s and name "%s".',
          result.queryId, result.metadata.title);
      execution = DoubleClickBidManager.Queries.run(defaultDateRange, result.queryId);
      if(execution.key){
        console.log('Created query report with query ID %s and report ID "%s".',
          execution.key.queryId, execution.key.reportId);
      }
    }
  } catch (e) {
    // TODO (Developer) - Handle exception
    console.log(e)
    console.log('Failed with error: %s', e.error);
  }
}

提取 DBM 查询的最新报告

此示例会提取 DBM 查询的最新报告并记录相应内容。

advanced/doubleclickbidmanager.gs
/**
 * Fetches a report file
 */
function fetchReport() {
  const queryId = '1234567'; // Replace with your query ID.
  const orderBy = "key.reportId desc";

  try {
    const report = DoubleClickBidManager.Queries.Reports.list(queryId, {orderBy:orderBy});
    if(report.reports){
      const firstReport = report.reports[0];
      if(firstReport.metadata.status.state == 'DONE'){
        const reportFile = UrlFetchApp.fetch(firstReport.metadata.googleCloudStoragePath)
        console.log("Printing report content to log...")
        console.log(reportFile.getContentText())
      }
      else{
        console.log("Report status is %s, and is not available for download", firstReport.metadata.status.state)
      }
    }

  } catch (e) {
    // TODO (Developer) - Handle exception
    console.log(e)
    console.log('Failed with error: %s', e.error);
  }
}