版本資訊

本頁提供 Google Bid Manager API 的版本資訊。

版本 2

對 API 進行結構性變更,包括更新服務端點及重新命名服務和方法。

移除不必要的欄位、重新組織現有欄位,以及變更欄位類型,大幅更新 QueryReport 資源。包括將欄位類型變更為使用具名物件,而不使用一般的「巢狀物件」定義。

臨時使用 queries.run 方法執行臨時查詢,而不是在建立後自動執行。

已將 queries.run 查詢參數 asynchronous 替換為 synchronous

透過下列變更簡化報表擷取程序:

更新 API 傳回的錯誤訊息,使其更具體,並提供更詳盡的解決方案。

按照第 2 版遷移指南中的操作說明,從 v1.1 遷移至 v2。

全新功能

已知問題

無。

1.1 版本

用來對應報表資料的一對一篩選器

對應至多個報表欄的篩選器現在可對應至單一資料欄。

舉例來說,在 v1 中加入篩選器 FILTER_ADVERTISER 後,產生的報表除了「Advertiser ID」以外,還會產生含有「Advertiser」資料欄的報表。在 v1.1 版中,所有報表欄都有專屬的篩選器。舉例來說,新的篩選器 FILTER_ADVERTISER_NAME 會對應至「廣告客戶」。如要在報表中同時取得「廣告客戶 ID」和「廣告主」欄,您必須分別將 FILTER_ADVERTISERFILTER_ADVERTISER_NAME 篩選器加入 Queries.createquery 要求中。

簡單來說,createquery 要求:

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

會在 v1 中產生具有以下標題的報表檔案:

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

和 v1.1 中的下列標頭:

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

分頁

1.1 版將分頁新增至方法 Queries.listqueriesReports.listreports

在 1.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 的初始版本。

已知問題

無。