Bạn có thể triển khai tính năng phân đoạn có trong giao diện người dùng Google Ads dưới dạng một trình đơn riêng trong API Google Ads bằng cách thêm trường thích hợp vào truy vấn. Ví dụ: việc thêm segments.device
vào truy vấn sẽ dẫn đến một báo cáo có một hàng cho từng tổ hợp thiết bị và tài nguyên được chỉ định trong mệnh đề FROM
, và các giá trị thống kê (lượt hiển thị, lượt nhấp, lượt chuyển đổi, v.v.) được phân chia giữa các giá trị đó.
Mặc dù trong giao diện người dùng Google Ads, bạn chỉ có thể sử dụng một phân đoạn tại một thời điểm, nhưng với API, bạn có thể chỉ định nhiều phân đoạn trong cùng một truy vấn.
SELECT
campaign.name,
campaign.status,
segments.device,
metrics.impressions
FROM campaign
Kết quả khi gửi truy vấn này đến GoogleAdsService.SearchStream
sẽ có dạng như sau:
{
"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"
}
},
...
]
}
Lưu ý rằng trong kết quả mẫu ở trên, các thuộc tính cho đối tượng thứ nhất và thứ hai bao gồm cả tên tài nguyên đều giống nhau. Các lượt hiển thị được phân đoạn theo thiết bị và do đó, có thể trả về 2 đối tượng cho cùng một chiến dịch.
Phân đoạn ngầm ẩn
Ban đầu, mỗi báo cáo sẽ được phân đoạn theo tài nguyên được chỉ định trong mệnh đề FROM
. Trường resource_name của tài nguyên trong mệnh đề FROM
sẽ được trả về và các chỉ số sẽ được phân đoạn theo trường đó, ngay cả khi trường resource_name không được đưa vào truy vấn một cách rõ ràng. Ví dụ: khi bạn chỉ định ad_group
làm tài nguyên trong mệnh đề FROM
, ad_group.resource_name
sẽ tự động được trả về và các chỉ số sẽ ngầm phân đoạn dựa trên tài nguyên đó ở cấp nhóm quảng cáo.
Vì vậy, đối với truy vấn này,
SELECT metrics.impressions
FROM ad_group
bạn sẽ nhận được chuỗi JSON như sau:
{
"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"
}
}
]
}
Xin lưu ý rằng trường resource_name
của adGroup
luôn được trả về vì ad_group
đã được chỉ định làm tài nguyên trong mệnh đề FROM
.
Các trường phân đoạn có thể chọn
Không phải trường phân đoạn nào cũng có thể chọn được cho một tài nguyên cụ thể trong mệnh đề FROM
.
Ví dụ: chúng ta sẽ tiếp tục truy vấn từ tài nguyên ad_group
. Để có thể chọn một trường phân đoạn từ tài nguyên ad_group,
trường đó cần tồn tại trong danh sách Segments
cho ad_group. Danh sách Segments
là phần màu vàng của bảng trường có sẵn trên trang siêu dữ liệu của tài nguyên ad_group
.
Phân đoạn tài nguyên
Khi chọn trong số một số tài nguyên, bạn có thể có tuỳ chọn ngầm liên kết các tài nguyên có liên quan bằng cách chọn các trường của chúng cùng với các trường của tài nguyên trong mệnh đề FROM
. Bạn có thể tìm thấy các tài nguyên liên quan này trong danh sách Attributed Resources
trên tài nguyên trên trang siêu dữ liệu của mệnh đề FROM
. Trong trường hợp tài nguyên ad_group
, bạn sẽ thấy rằng bạn cũng có thể chọn các trường từ tài nguyên campaign
. Trường resource_name của bất kỳ Attributed Resources
nào có ít nhất 1 trường trong mệnh đề SELECT
sẽ tự động được trả về, ngay cả khi trường resource_name không được đưa vào truy vấn một cách rõ ràng.
Tương tự như việc chọn trường Attributed Resource
, bạn cũng có thể chọn trường Segmenting Resource
. Nếu một tài nguyên nhất định có danh sách Segmenting Resources
trên trang siêu dữ liệu, thì việc chọn các trường từ một trong các tài nguyên được liệt kê đó sẽ khiến truy vấn bị phân đoạn thêm theo resource_name được trả về của Segmenting Resource
đó. Ví dụ: bạn sẽ thấy tài nguyên campaign
được liệt kê dưới dạng Segmenting Resource
cho tài nguyên campaign_budget
. Việc chọn bất kỳ trường chiến dịch nào, chẳng hạn như campaign.name
, từ tài nguyên campaign_budget sẽ không chỉ khiến trường campaign.name được trả về, mà còn khiến hệ thống trả về và phân đoạn trường
campaign.resource_name
.
Khả năng lựa chọn giữa các phân khúc và chỉ số
Một trường phân đoạn nhất định có thể không tương thích với một số trường phân đoạn khác hoặc với một số trường chỉ số. Để xác định các trường phân đoạn tương thích với nhau, bạn có thể xem lại danh sách selectable_with
của các phân đoạn trong mệnh đề SELECT
.
Trong tài nguyên ad_group
, bạn có thể chọn hơn 50 phân đoạn có sẵn. Tuy nhiên, danh sách selectable_with
cho segments.hotel_check_in_date
là tập hợp các phân đoạn tương thích nhỏ hơn nhiều. Điều này có nghĩa là nếu thêm trường segments.hotel_check_in_date
vào mệnh đề SELECT
, bạn sẽ giới hạn các phân đoạn có sẵn mà bạn còn lại để chọn đến giao điểm của 2 danh sách này.
- Khi thêm một số phân đoạn, các chỉ số trong hàng tóm tắt có thể giảm
- Khi
segments.keyword.info.match_type
được thêm vào truy vấn bằngFROM ad_group_ad
, phân đoạn đó sẽ yêu cầu truy vấn chỉ lấy các hàng dữ liệu có từ khoá và xoá bất kỳ hàng nào không liên kết với từ khoá. Trong trường hợp này, các chỉ số sẽ thấp hơn vì nó sẽ loại trừ mọi chỉ số không phải từ khoá.
Quy tắc cho phân đoạn trong mệnh đề WHERE
Khi một phân đoạn nằm trong mệnh đề WHERE
, thì phân đoạn đó cũng phải nằm trong mệnh đề SELECT
. Ngoại lệ đối với quy tắc này là các phân đoạn ngày sau đây, được gọi là phân đoạn ngày chính:
segments.date
segments.week
segments.month
segments.quarter
segments.year
Quy tắc cho trường phân đoạn ngày chính
Các phân đoạn có hàm segments.date
, segments.week
, segments.month
, segments.quarter
và segments.year
như sau:
Bạn có thể lọc các phân đoạn này trong mệnh đề
WHERE
mà không cần xuất hiện trong mệnh đềSELECT
.Nếu bất kỳ phân đoạn nào trong số này nằm trong mệnh đề
SELECT
, thì phạm vi ngày hữu hạn bao gồm phân đoạn ngày chính phải được chỉ định trong mệnh đềWHERE
(phân đoạn ngày không cần phải giống với phân đoạn được chỉ định trongSELECT
).
Ví dụ
Không hợp lệ: Vì segments.date nằm trong mệnh đề SELECT , bạn cần chỉ định một phạm vi ngày hữu hạn trong mệnh đề WHERE cho segments.date , segments.week , segments.month , segments.quarter hoặc segments.year .
|
SELECT campaign.name, metrics.clicks, segments.date FROM campaign |
Hợp lệ: Truy vấn này trả về tên chiến dịch và số lượt nhấp tích luỹ trong phạm vi ngày đó. Lưu ý rằng segments.date không cần phải xuất hiện trong mệnh đề SELECT .
|
SELECT campaign.name, metrics.clicks FROM campaign WHERE segments.date > '2020-01-01' AND segments.date < '2020-02-01' |
Hợp lệ: Truy vấn này trả về tên chiến dịch và số lượt nhấp được phân đoạn theo ngày cho tất cả các ngày trong phạm vi ngày đó. |
SELECT campaign.name, metrics.clicks, segments.date FROM campaign WHERE segments.date > '2020-01-01' AND segments.date < '2020-02-01' |
Hợp lệ: Truy vấn này trả về tên chiến dịch và số lượt nhấp được phân đoạn theo tháng cho tất cả các ngày trong phạm vi ngày. |
SELECT campaign.name, metrics.clicks, segments.month FROM campaign WHERE segments.date > '2020-01-01' AND segments.date < '2020-02-01' |
Hợp lệ: Truy vấn này trả về tên chiến dịch và số lượt nhấp được phân đoạn theo quý và sau đó theo tháng cho tất cả các tháng trong phạm vi năm. |
SELECT campaign.name, metrics.clicks, segments.quarter, segments.month FROM campaign WHERE segments.year > 2015 AND segments.year < 2020 |
search_term_view
Xin lưu ý rằng đối với tài nguyên search_term_view
, tài nguyên đó cũng được phân đoạn ngầm theo nhóm quảng cáo, không chỉ là cụm từ tìm kiếm, như được phản ánh bởi cấu trúc của tên tài nguyên (cũng bao gồm nhóm quảng cáo). Do đó, bạn sẽ nhận được một số hàng có vẻ như trùng lặp
có cùng cụm từ tìm kiếm xuất hiện trong kết quả của bạn nhưng trên thực tế,
các hàng đó sẽ thuộc về một nhóm quảng cáo khác:
{
"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"
}
}
]
}
Mặc dù 2 đối tượng được trả về trong ví dụ này có vẻ như trùng lặp, nhưng tên tài nguyên của chúng thực sự khác nhau, đặc biệt là trong phần "nhóm quảng cáo". Điều này có nghĩa là cụm từ tìm kiếm "google photos" được phân bổ cho hai
nhóm quảng cáo (Mã 2222222222
và 33333333333
) trong cùng một ngày (15/06/2015).
Do đó, chúng ta có thể kết luận rằng API này đã hoạt động như dự kiến và không trả về các đối tượng trùng lặp trong trường hợp này.