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