建立目標對象(受眾名單)
建立目標對象
對於造訪網站的訪客, 在 Google Analytics 上可以用維度、指標、事件為篩選條件, 對訪客進行分群, 將符合條件的訪客打包成目標對象(又稱受眾), 後續便可對這些受眾再行銷或進一步分析。
若要建立目標對象, 登入 Google Analytics 後, 點選頁面左下角的齒輪, 在資源設定
的資料顯示
, 點選目標對象
, 便會顯示目前已經建立的目標對象。點選新增目標對象
就可以開始建立受眾名單。
Google Analytics 提供許多建立目標對象的方法, 此處我們以範本
裡的客層
為範例, 建立受眾。
在範本裡, Google Analytics 提供五個篩選維度供我們使用, 包括年齡、性別、語言代碼、興趣、國家/地區 ID。建立篩選條件時, Google Analytics 會出現下拉式選單, 讓我們從可用的選項中選取。設定好篩選條件, Google Analytics 會在右下角顯示符合條件的使用者數, 以及佔全體訪客的比例。最後, 將目標對象命名, 按下儲存即建 立完成。
使用 audiences.list API 取得目標對象設定清單
Google 提供 audiences.list API 可以讓使用者取得目標對象設定清單。請注意, 原先我們在 UI 介面是以中文設定興趣為科技/科技迷
, 但 API 回傳的是 brandingInterestId
, 且值為 92507
。Google 並沒有提供興趣 ID 的對照表, 而本文先前使用的 runReport API, 也不允許將 1brandingInterestId
放入 Request body, 因此目前沒有簡便的方式可以取得興趣 ID 對照表。
audiences.list API 範例
Request parameters
properties/{GA4 資源 ID}
Response 範例
{
"audiences": [
{
"name": "properties/{GA4 資源 ID}/audiences/4122093742",
"displayName": "All Users",
"description": "All users",
"membershipDurationDays": 540,
"adsPersonalizationEnabled": true,
"createTime": "2022-10-05T05:32:28.572Z"
},
{
"name": "properties/{GA4 資源 ID}/audiences/4122093743",
"displayName": "Purchasers",
"description": "Users who have purchased in the last 540 days",
"membershipDurationDays": 540,
"adsPersonalizationEnabled": true,
"createTime": "2022-10-05T05:32:28.572Z"
},
{
"name": "properties/{GA4 資源 ID}/audiences/9768820273",
"displayName": "測試-科技迷",
"membershipDurationDays": 180,
"adsPersonalizationEnabled": true,
"filterClauses": [
{
"clauseType": "INCLUDE",
"simpleFilter": {
"scope": "AUDIENCE_FILTER_SCOPE_ACROSS_ALL_SESSIONS",
"filterExpression": {
"andGroup": {
"filterExpressions": [
{
"orGroup": {
"filterExpressions": [
{
"dimensionOrMetricFilter": {
"fieldName": "userAgeBracket",
"inListFilter": {
"values": [
"25-34",
"35-44",
"45-54"
]
},
"atAnyPointInTime": true
}
}
]
}
},
{
"orGroup": {
"filterExpressions": [
{
"dimensionOrMetricFilter": {
"fieldName": "userGender",
"inListFilter": {
"values": [
"female",
"male"
]
},
"atAnyPointInTime": true
}
}
]
}
},
{
"orGroup": {
"filterExpressions": [
{
"dimensionOrMetricFilter": {
"fieldName": "brandingInterestId",
"stringFilter": {
"matchType": "EXACT",
"value": "92507"
},
"atAnyPointInTime": true
}
}
]
}
},
{
"orGroup": {
"filterExpressions": [
{
"dimensionOrMetricFilter": {
"fieldName": "countryId",
"inListFilter": {
"values": [
"TW",
"JP"
]
},
"atAnyPointInTime": true
}
}
]
}
}
]
}
}
}
}
],
"createTime": "2024-10-04T02:06:19.430Z"
}
]
}
使用 audiences.create API 建立目標對象
除了在 UI 介面設定目標對象外, Google 也提供 audiences.create API 可以讓使用者建立目標對象。但使用這隻 API 時, 不能像在 UI 上一樣, 用興趣名稱建立目標對象, 只能使用 brandingInterestId
。如前文所言, Google 沒有提供興趣 ID 對照表。
在以下的 Request body, 我們放了多個 brandingInterestId
, 第一組 92507 已知是科技/科技迷, 第二組 92508 是未知的興趣, 最後刻意放了一組不合格的 ID, 以測試 API 效果。此外, 我們還放了 inmarketCategoriesId
, 這是 Google 定義的興趣 - 潛在目標消費者
, 這個維度並沒有在 Google 公布的可用維度清單裡。如果想知道還有哪些可用的維度, 可先在 UI 介面上先建立目標對象, 然後使用 runReport API 取得設定檔。
使用 audiences.create API 建立目標對象後, 可以回到 Google Analytics 查看結果。可以發現, UI 上興趣排列的順序, 與我們 Request body 排列順序 是一致的, 而不合格的興趣 ID, 則是以空字串呈現。
audiences.create API 範例
Request parameters
properties/{GA4 資源 ID}
Request body
{
"displayName":"測試-科技迷+其他",
"membershipDurationDays":180,
"description":"使用 API 建立目標對象",
"filterClauses":[
{
"clauseType":"INCLUDE",
"simpleFilter":{
"scope":"AUDIENCE_FILTER_SCOPE_ACROSS_ALL_SESSIONS",
"filterExpression":{
"andGroup":{
"filterExpressions":[
{
"orGroup":{
"filterExpressions":[
{
"dimensionOrMetricFilter":{
"fieldName":"userAgeBracket",
"inListFilter":{
"values":[
"25-34",
"35-44",
"45-54"
]
}
}
}
]
}
},
{
"orGroup":{
"filterExpressions":[
{
"dimensionOrMetricFilter":{
"fieldName":"userGender",
"inListFilter":{
"values":[
"female",
"male"
]
}
}
}
]
}
},
{
"orGroup":{
"filterExpressions":[
{
"dimensionOrMetricFilter":{
"fieldName":"brandingInterestId",
"stringFilter":{
"matchType":"EXACT",
"value":"92507"
}
}
},
{
"dimensionOrMetricFilter":{
"fieldName":"brandingInterestId",
"stringFilter":{
"matchType":"EXACT",
"value":"92508"
}
}
},
{
"dimensionOrMetricFilter":{
"fieldName":"brandingInterestId",
"stringFilter":{
"matchType":"EXACT",
"value":"xxxxx"
}
}
},
{
"dimensionOrMetricFilter":{
"fieldName":"inmarketCategoriesId",
"stringFilter":{
"matchType":"EXACT",
"value":"80286"
}
}
}
]
}
},
{
"orGroup":{
"filterExpressions":[
{
"dimensionOrMetricFilter":{
"fieldName":"countryId",
"inListFilter":{
"values":[
"TW",
"JP"
]
}
}
}
]
}
}
]
}
}
}
}
]
}
Response 範例
{
"name": "properties/{GA4 資源 ID}/audiences/9768953284",
"displayName": "測試-科技迷+其他",
"description": "使用 API 建立目標對象",
"membershipDurationDays": 180,
"adsPersonalizationEnabled": true,
"filterClauses": [
{
"clauseType": "INCLUDE",
"simpleFilter": {
"scope": "AUDIENCE_FILTER_SCOPE_ACROSS_ALL_SESSIONS",
"filterExpression": {
"andGroup": {
"filterExpressions": [
{
"orGroup": {
"filterExpressions": [
{
"dimensionOrMetricFilter": {
"fieldName": "userAgeBracket",
"inListFilter": {
"values": [
"25-34",
"35-44",
"45-54"
]
}
}
}
]
}
},
{
"orGroup": {
"filterExpressions": [
{
"dimensionOrMetricFilter": {
"fieldName": "userGender",
"inListFilter": {
"values": [
"female",
"male"
]
}
}
}
]
}
},
{
"orGroup": {
"filterExpressions": [
{
"dimensionOrMetricFilter": {
"fieldName": "brandingInterestId",
"stringFilter": {
"matchType": "EXACT",
"value": "92507"
}
}
},
{
"dimensionOrMetricFilter": {
"fieldName": "brandingInterestId",
"stringFilter": {
"matchType": "EXACT",
"value": "92508"
}
}
},
{
"dimensionOrMetricFilter": {
"fieldName": "brandingInterestId",
"stringFilter": {
"matchType": "EXACT",
"value": "xxxxx"
}
}
},
{
"dimensionOrMetricFilter": {
"fieldName": "inmarketCategoriesId",
"stringFilter": {
"matchType": "EXACT",
"value": "80286"
}
}
}
]
}
},
{
"orGroup": {
"filterExpressions": [
{
"dimensionOrMetricFilter": {
"fieldName": "countryId",
"inListFilter": {
"values": [
"TW",
"JP"
]
}
}
}
]
}
}
]
}
}
}
}
],
"createTime": "2024-10-04T03:17:34.786Z"
}
使用 audienceExports API 匯出目標對象名單
Google 提供兩隻 API 讓我們可以匯出目標對象名單。第一隻是 audienceExports.create, 先以這隻 API 指定要匯出的目標對象, 其中 Request body 可以指定要回傳 deviceId
與 userId
。注意, 如果目標對象人數不夠多, 有可能得到以下的錯誤訊息, 而無法匯出。
"message": "Audiences based on potentially thresholded dimensions are not eligible for export. Audience ({目標對象名單} / {目標對象 ID}) is not eligible for export.",
根據 Google 文件的說明, 若建立目標對象時使用了 userAgeBracket
、userGender
、brandingInterest
、audienceId
和 audienceName
這些維度, 系統會套用閾值,避免任何人在查看報表時推斷個別使用者的年齡、性別或興趣。
audienceExports.create API 範例
Request parameters
properties/{GA4 資源 ID}
Request body
{
"audience":"properties/{GA4 資源 ID}/audiences/{目標對象 ID}",
"dimensions":[
{
"dimensionName":"deviceId"
},
{
"dimensionName":"userId"
}
]
}
Response
{
"name": "operations/335783138pb9650143",
"response": {
"@type": "type.googleapis.com/google.analytics.data.v1beta.AudienceExport",
"name": "properties/{GA4 資源 ID}/audienceExports/{匯出作業 ID}",
"audience": "properties/{GA4 資源 ID}/audiences/{目標對象 ID}",
"audienceDisplayName": "{目標對象名稱}",
"dimensions": [
{
"dimensionName": "deviceId"
},
{
"dimensionName": "userId"
}
],
"state": "CREATING",
"beginCreatingTime": "2024-09-24T02:30:18.491758511Z",
"rowCount": 0,
"percentageCompleted": 0
}
}
若在上一步驟成功建立匯出作業, 便可將 Response 的 name
打入 audienceExports.query API, 下載目標對象名單。如果有將 GA4 原始資料匯出到 BigQuery, 可以將目標對象名單的 deviceId
、userId
分別與 GA4 資料的 user_pseudo_id
、user_id
建立關聯。
audienceExports.query API 範例
Request parameters
properties/{GA4 資源 ID}/audienceExports/{匯出作業 ID}
Response
{
"audienceExport":{
"name":"properties/{GA4 資源 ID}/audienceExports/{匯出作業 ID}",
"audience":"properties/{GA4 資源 ID}/audiences/{目標對象 ID}",
"audienceDisplayName":"{目標對象名稱}",
"dimensions":[
{
"dimensionName":"deviceId"
},
{
"dimensionName":"userId"
}
],
"state":"ACTIVE",
"beginCreatingTime":"2024-09-24T02:30:18.491758511Z",
"creationQuotaTokensCharged":15,
"rowCount":15021,
"percentageCompleted":100
},
"audienceRows":[
{
"dimensionValues":[
{
"value":"1000057725.1706432498"
},
{
"value":"(not set)"
}
]
},
......
{
"dimensionValues":[
{
"value":"1000270049.1699343438"
},
{
"value":"(not set)"
}
]
}
],
"rowCount":15287
}
Footnotes
-
2024-10-24 備註: Google 其實有提供興趣 ID 對照表, 但並不在 Google Analytics 說明文件裡。 ↩