版本说明

本页提供了 Google Bid Manager API 的版本说明。

版本 2

对 API 进行了结构性更改,包括更新服务端点以及重命名服务和方法。

通过移除不必要的字段、重新整理现有字段并更改字段类型,对查询报告资源进行了重大更新。这包括将字段类型更改为使用命名对象,而不是常规的“嵌套对象”定义。

需要使用 queries.run 方法运行临时查询,而不是在创建临时查询后自动运行。

queries.run 查询参数 asynchronous 替换为 synchronous

通过以下更改简化了报告检索:

更新了 API 返回的错误消息,使其更加具体并提供更规范的解决方案。

请按照 v2 迁移指南中的说明操作,从 v1.1 迁移到 v2。

新功能

已知问题

无。

版本 1.1

报告列映射的一对一过滤条件

映射到多个报告列的过滤条件现在映射到单个列。

例如,在 v1 中,添加过滤条件 FILTER_ADVERTISER 可生成包含“广告客户 ID”和“广告客户”列的报告。在 v1.1 中,所有报告列都有自己的过滤器。例如,新过滤条件 FILTER_ADVERTISER_NAME 会映射到“Advertiser”。若要在报告中同时获取“广告客户 ID”和“广告客户”列,Queries.createquery 请求中必须分别包含过滤条件 FILTER_ADVERTISERFILTER_ADVERTISER_NAME

更具体地说,createquery 请求具有以下特点:

{
...
"params": {
  ...
  "groupBys": ["FILTER_ADVERTISER"],
  "metrics": ["METRIC_IMPRESSIONS"],
  ...
}
...
}

在 v1 中生成具有以下标头的报告文件:

Advertiser,Advertiser ID,Advertiser Status,Advertiser Integration Code,Impressions

和以下头文件:

Advertiser,Impressions

上述示例中用于获取报告列的以下 v1 代码:

List<String> groupBys = new ArrayList<>();
groupBys.add("FILTER_ADVERTISER");
List<String> metrics = new ArrayList<>();
metrics.add("METRIC_IMPRESSIONS");
com.google.api.services.doubleclickbidmanager.model.Parameters createQueryParameters =
    new com.google.api.services.doubleclickbidmanager.model.Parameters()
        .setGroupBys(groupBys)
        .setMetrics(metrics);

在 v1.1 中必须进行类似于以下内容的修改(请注意过滤器顺序):

List<String> groupBys = new ArrayList<>();
groupBys.add("FILTER_ADVERTISER_NAME");
groupBys.add("FILTER_ADVERTISER");
groupBys.add("FILTER_ADVERTISER_INTEGRATION_STATUS");
groupBys.add("FILTER_ADVERTISER_INTEGRATION_CODE");
List<String> metrics = new ArrayList<>();
metrics.add("METRIC_IMPRESSIONS");
com.google.api.services.doubleclickbidmanager.model.Parameters createQueryParameters =
    new com.google.api.services.doubleclickbidmanager.model.Parameters()
        .setGroupBys(groupBys)
        .setMetrics(metrics);
原始过滤条件 已添加过滤条件
FILTER_ADVERTISER FILTER_ADVERTISER_NAME
FILTER_ADVERTISER_INTEGRATION_CODE
FILTER_ADVERTISER_INTEGRATION_STATUS
FILTER_AD_POSITION FILTER_AD_POSITION_NAME
FILTER_CARRIER FILTER_CARRIER_NAME
FILTER_CHANNEL_ID FILTER_CHANNEL_NAME
FILTER_CITY FILTER_CITY_NAME
FILTER_COMPANION_CREATIVE_ID FILTER_COMPANION_CREATIVE_NAME
FILTER_DMA FILTER_DMA_NAME
FILTER_INSERTION_ORDER FILTER_INSERTION_ORDER_NAME
FILTER_PARTNER FILTER_PARTNER_NAME
FILTER_PARTNER_STATUS
FILTER_REGION FILTER_REGION_NAME
FILTER_TRUEVIEW_DMA FILTER_TRUEVIEW_DMA_NAME
FILTER_TRUEVIEW_IAR_REGION FILTER_TRUEVIEW_IAR_REGION_NAME
FILTER_USER_LIST_FIRST_PARTY FILTER_USER_LIST_FIRST_PARTY_NAME
FILTER_USER_LIST_THIRD_PARTY FILTER_USER_LIST_THIRD_PARTY_NAME

分页

v1.1 为 Queries.listqueriesReports.listreports 方法添加了分页功能。

在 v1.1 中,这些方法返回的结果数等于新添加的参数 pageSize(如果未指定,则默认为 100)。响应包含新添加的 nextPageToken 字段,可用于检索下一组结果。如果结果已用尽,则此字段为空。

以下 v1 代码可检索属于特定查询的所有报告:

public class GetReports {
  public List<Report> getReports(DoubleClickBidManager service, long queryId) throws IOException {
    ListReportsResponse reportListResponse = service.reports().listreports(queryId).execute();

    return reportListResponse.getReports();
  }
}

在 v1.1 中必须进行类似于以下内容的修改,才能继续检索所有报告:

public class GetReports {
  public List<Report> getReports(DoubleClickBidManager service, long queryId) throws IOException {
    ListReportsResponse reportListResponse = service.reports().listreports(queryId).execute();

    List<Report> reports = new ArrayList<>(reportListResponse.getReports());
    while (reportListResponse.getNextPageToken() != null
        && reportListResponse.getNextPageToken().length() > 0) {
      // Get next set of results, aka page.
      reportListResponse =
          service
              .reports()
              .listreports(queryId)
              .setPageToken(reportListResponse.getNextPageToken())
              .execute();
      reports.addAll(reportListResponse.getReports());
    }

    return reports;
  }
}

如需了解详情,请参阅 Queries.listqueriesReports.listreports 方法文档。

已知问题

无。

版本 1

这是此 API 的初始版本。

已知问题

无。