Bid Manager API 1.1 版已淘汰,將於 2023 年 4 月 27 日停用。

遷移至 v2 以避免服務中斷。請參閱遷移指南,瞭解遷移至 v2 的步驟。

版本資訊

透過集合功能整理內容 你可以依據偏好儲存及分類內容。

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

版本 2

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

移除不需要的欄位、重新整理現有欄位,以及變更欄位類型,藉此更新查詢報表資源。這包括將欄位類型變更為使用已命名物件,而不是使用一般的「巢狀物件」定義。

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

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

以下變更簡化了報表擷取作業:

已更新 API 傳回的錯誤訊息,說明更具體,並提供更多說明解決方案。

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

新功能

已知問題

1.1 版本

用來對應資料欄對應的一對一篩選器

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

舉例來說,在第 1 版中,如果包含「FILTER_ADVERTISER」篩選器,系統會產生含有「廣告客戶」欄的報表,以及「廣告客戶 ID」和「廣告客戶 ID」欄。在 1.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

和 1.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

分頁

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

已知問題