區隔

區隔 (在 Google Ads 使用者介面中是獨立選單) ,只要在查詢中加入正確欄位即可。適用對象 例如將 segments.device 新增至 這樣會產生一個資料列,代表每種裝置組合及 已在 FROM 子句中指定資源,而 統計資料值 (曝光次數、點擊次數、轉換次數等) 則會拆分至兩者間。

雖然在 Google Ads 使用者介面中,一次只能使用一個區隔, API,可讓您在同個查詢中指定多個區隔。

SELECT
  campaign.name,
  campaign.status,
  segments.device,
  metrics.impressions
FROM campaign

將這項查詢傳送至 GoogleAdsService.SearchStream敬上 看起來會類似以下 JSON 字串:

{
  "results":[
    {
      "campaign":{
        "resourceName":"customers/1234567890/campaigns/111111111",
        "name":"Test campaign",
        "status":"ENABLED"
      },
      "metrics":{
        "impressions":"10922"
      },
      "segments":{
        "device":"MOBILE"
      }
    },
    {
      "campaign":{
        "resourceName":"customers/1234567890/campaigns/111111111",
        "name":"Test campaign",
        "status":"ENABLED"
      },
      "metrics":{
        "impressions":"28297"
      },
      "segments":{
        "device":"DESKTOP"
      }
    },
    ...
  ]
}

請注意,在上述結果範例中,第一和第二筆的屬性都屬於屬性。 包含資源名稱的物件曝光次數已經過區隔 依據 device,因此同一個廣告活動可以傳回兩個以上的物件。

隱性區隔

每份報表一開始都是按照 FROM 中指定的資源區隔 子句。FROM 子句中資源的 resource_name 欄位是 並依其區隔指標,即使 resource_name 欄位 未明確包含在查詢中舉例來說,指定 ad_group 做為資源,然後對 FROM 子句 ad_group.resource_name會 並自動區隔指標 廣告群組層級。

針對這個查詢

SELECT metrics.impressions
FROM ad_group

則會產生類似下方的 JSON 字串:

{
  "results":[
    {
      "adGroup":{
        "resourceName":"customers/1234567890/adGroups/2222222222"
      },
      "metrics":{
        "impressions":"237"
      }
    },
    {
      "adGroup":{
        "resourceName":"customers/1234567890/adGroups/33333333333"
      },
      "metrics":{
        "impressions":"15"
      }
    },
    {
      "adGroup":{
        "resourceName":"customers/1234567890/adGroups/44444444444"
      },
      "metrics":{
        "impressions":"0"
      }
    }
  ]
}

請注意,系統一律會傳回 adGroupresource_name 欄位,原因是 ad_group 已在 FROM 子句中指定為資源。

可選取的區隔欄位

您無法為 FROM 子句中的指定資源選取部分區隔欄位。 舉例來說,我們將繼續從 ad_group 資源。若要從 ad_group 資源中選取區隔欄位, 該欄位需要存在於 ad_group 的 Segments 清單中。Segments 是清單中可用欄位表格的黃色部分 ad_group 資源的中繼資料頁面。

區隔資源

從某些資源中選取時,您或許可以選擇間接彙整 您可以在 FROM 子句中的資源。您可以在 FROM 子句中繼資料內資源上的 Attributed Resources 清單 頁面。如果是 ad_group 資源,您會看到 您也可從 campaign 中選取欄位 資源。任何 Attributed Resources 的 resource_name 欄位,且 系統會自動傳回 SELECT 子句中的 1 個欄位,即使 查詢中未明確包含 resource_name 欄位。

與選取 Attributed Resource 欄位的做法類似 Segmenting Resource 欄位。如果指定資源有 Segmenting Resources ,然後從列出的資源中選取欄位 將使查詢進一步按照該傳回的 resource_name 進行區隔 Segmenting Resource。舉例來說,您會發現 campaign 資源已列為 Segmenting Resourcecampaign_budget 資源。選取任一項目 廣告活動欄位,例如 campaign.name,來自 campaign_budget 資源不僅會導致 campaign.name 欄位的值出現 但會導致 設為 campaign.resource_name 欄位 並區隔開來的

區隔和指標之間可選取性

某個區隔欄位可能與其他區隔不相容 或部分指標欄位找出區隔欄位 清單中有哪些項目相容,請查看「selectable_with」清單 您必須在 SELECT 子句中填入區隔的資料。

如果是 ad_group 資源,則超過 50 個可用的區隔 即可選擇不同的機器類型不過,selectable_with 清單 segments.hotel_check_in_date 是較小型的相容區隔組合也就是說,如果您將 segments.hotel_check_in_date 欄位插入 SELECT 子句中, 這裡列出的可用路段 清單。

新增部分區隔時,摘要列中的指標可能會減少
在含有以下參數的查詢中加入 segments.keyword.info.match_typeFROM ad_group_ad,該區隔指示查詢「只」取得 ,然後移除與廣告活動無關聯的任何列 字詞。在本例中,由於系統會排除任何 非關鍵字指標

WHERE 子句中區隔的規則

如果區段位於 WHERE 子句中,則這必須同時位於 SELECT 中 子句。這項規則的例外情形是下列日期區隔: 稱為核心日期區隔

  • segments.date
  • segments.week
  • segments.month
  • segments.quarter
  • segments.year

核心日期區隔欄位的規則

區隔 segments.datesegments.weeksegments.monthsegments.quartersegments.year 函式,如下所示:

  • 你可以使用 WHERE 子句進行篩選,而不顯示任何區隔 在 SELECT 子句中。

  • 如果其中有任何區隔位於 SELECT 子句中,則會是一個有限的日期範圍 若包含核心日期區隔,必須在 WHERE 子句中指定 (日期區隔不必與 SELECT)。

範例

無效:因為 segments.date 為 在 SELECT 子句中,您需要指定 segments.dateWHERE 子句 segments.weeksegments.monthsegments.quartersegments.year
SELECT
  campaign.name,
  metrics.clicks,
  segments.date
FROM campaign
有效:這項查詢會傳回廣告活動名稱和 在指定日期範圍內累積的點擊次數。請注意,segments.date 不需要出現在 SELECT 子句中
SELECT
  campaign.name,
  metrics.clicks
FROM campaign
WHERE segments.date > '2020-01-01'
  AND segments.date < '2020-02-01'
有效:這項查詢會傳回廣告活動名稱和 日期範圍內每一天按日期區隔的點擊。
SELECT
  campaign.name,
  metrics.clicks,
  segments.date
FROM campaign
WHERE segments.date > '2020-01-01'
  AND segments.date < '2020-02-01'
有效:這項查詢會傳回廣告活動名稱和 日期範圍內所有天數 (按月份區隔) 的點擊次數。
SELECT
  campaign.name,
  metrics.clicks,
  segments.month
FROM campaign
WHERE segments.date > '2020-01-01'
  AND segments.date < '2020-02-01'
有效:這項查詢會傳回廣告活動名稱和 按季區隔,再按月份區隔,該年度範圍內所有月份的點擊次數。
SELECT
  campaign.name,
  metrics.clicks,
  segments.quarter,
  segments.month
FROM campaign
WHERE segments.year > 2015
  AND segments.year < 2020

search_term_view

請注意,對於 search_term_view 資源,也屬於 按廣告群組 (不只是搜尋字詞) 隱含區隔 其資源的結構 name,需要將 也包含廣告群組因此,您可能會看到一些似乎重複的項目 含有相同搜尋字詞的資料列在實際出現在結果中時 這些資料列就屬於不同的廣告群組:

{
  "results":[
    {
      "searchTermView":{
        "resourceName":"customers/1234567890/searchTermViews/111111111~2222222222~Z29vZ2xlIHBob3RvcyBpb3M",
        "searchTerm":"google photos"
      },
      "metrics":{
        "impressions":"3"
      },
      "segments":{
        "date":"2015-06-15"
      }
    },
    {
      "searchTermView":{
        "resourceName":"customers/1234567890/searchTermViews/111111111~33333333333~Z29vZ2xlIHBob3RvcyBpb3M",
        "searchTerm":"google photos"
      },
      "metrics":{
        "impressions":"2"
      },
      "segments":{
        "date":"2015-06-15"
      }
    }
  ]
}

雖然這個範例中的兩個傳回物件似乎重複 但由於資源名稱不同,尤其是在「廣告群組」 部分。這表示搜尋字詞「Google 相簿」歸功於 相同日期 (2015-06-15) 的廣告群組 (ID 222222222233333333333)。 因此,我們可以判斷這個 API 運作正常,而且並未傳回 重複的物件