API Google Ads có cơ chế báo cáo và truy xuất thuộc tính hợp nhất cho phép bạn tạo truy vấn bằng Ngôn ngữ truy vấn của Google Ads. Điều này cho phép các truy vấn phức tạp có thể trả về một lượng lớn dữ liệu về từng tài khoản Google Ads.
Bạn có thể tạo truy vấn bằng một trong hai phương thức Search
hoặc SearchStream
.
Cả hai phương thức đều hỗ trợ cùng một truy vấn và trả về kết quả tương đương. Phương thức Search
trả về dữ liệu trong các trang có kích thước cố định gồm 10.000 hàng, cho phép bạn lặp lại nhóm kết quả bằng cách sử dụng tính năng phân trang. Điều này có thể thuận lợi trong điều kiện băng thông thấp hoặc điều kiện mạng không đáng tin cậy, chẳng hạn như để phân đoạn một kết quả lớn được đặt thành các phản hồi nhỏ hơn. Những phản hồi này có thể được tìm nạp lại nếu bị mất kết nối. Mặt khác, phương thức SearchStream
sẽ truyền trực tuyến toàn bộ tập hợp kết quả trở lại trong một phản hồi duy nhất. Điều này có thể hiệu quả hơn khi truy xuất dữ liệu hàng loạt.
Cả Search
và SearchStream
đều sử dụng cùng một URL cơ sở:
https://googleads.googleapis.com/v18/customers/CUSTOMER_ID/googleAds
POST /v18/customers/CUSTOMER_ID/googleAds:search HTTP/1.1 Host: googleads.googleapis.com Content-Type: application/json Authorization: Bearer ACCESS_TOKEN developer-token: DEVELOPER_TOKEN { "query": "SELECT ad_group_criterion.keyword.text, ad_group_criterion.status FROM ad_group_criterion WHERE ad_group_criterion.type = 'KEYWORD' AND ad_group_criterion.status = 'ENABLED'" }
Nếu kết quả có hơn 10.000 hàng,thì nextPageToken
sẽ được trả về trong phản hồi:
{ "results": [ // ... // ... // ... ], "nextPageToken": "CPii5aS87vfFTBAKGJvk36qpLiIWUW5SZk8xa1JPaXJVdXdIR05JUUpxZyoCVjMwADjUBkD___________8B", "fieldMask": "adGroupCriterion.keyword.text,adGroupCriterion.status" }
Việc lặp lại cùng một truy vấn với pageToken
được thêm vào các giá trị từ yêu cầu trước sẽ tìm nạp trang kết quả tiếp theo:
POST /v18/customers/CUSTOMER_ID/googleAds:search HTTP/1.1 Host: googleads.googleapis.com Content-Type: application/json Authorization: Bearer ACCESS_TOKEN developer-token: DEVELOPER_TOKEN { "query": "SELECT ad_group_criterion.keyword.text, ad_group_criterion.status FROM ad_group_criterion WHERE ad_group_criterion.type = 'KEYWORD' AND ad_group_criterion.status = 'ENABLED'", "pageToken": "CPii5aS87vfFTBAKGJvk36qpLiIWUW5SZk8xa1JPaXJVdXdIR05JUUpxZyoCVjMwADjUBkD___________8B" }
Để sử dụng phương thức SearchStream
(trả về tất cả kết quả trong một phản hồi truyền trực tuyến), hãy thay đổi phương thức dịch vụ trong URL thành searchStream
(SearchStream
không yêu cầu pageToken
):
POST /v18/customers/CUSTOMER_ID/googleAds:searchStream HTTP/1.1 Host: googleads.googleapis.com Content-Type: application/json Authorization: Bearer ACCESS_TOKEN developer-token: DEVELOPER_TOKEN { "query": "SELECT ad_group_criterion.keyword.text, ad_group_criterion.status FROM ad_group_criterion WHERE ad_group_criterion.type = 'KEYWORD' AND ad_group_criterion.status = 'ENABLED'" }