Bạn có thể phân trang kết quả truy xuất được bằng GoogleAdsService.Search thay vì tải toàn bộ tập kết quả xuống cùng một lúc. Để xem thông tin tổng quan về báo cáo bằng Google Ads API, hãy xem bài viết Tổng quan về báo cáo.
Search trả về các trang cố định có tối đa 10.000 hàng. Việc đặt page_size trong SearchGoogleAdsRequest không còn được dùng nữa và sẽ trả về lỗi RequestError.PAGE_SIZE_NOT_SUPPORTED.
Ví dụ về truy vấn và phân trang
Hãy xem xét truy vấn sau:
SELECT
ad_group.id,
ad_group_criterion.type,
ad_group_criterion.criterion_id,
ad_group_criterion.keyword.text,
ad_group_criterion.keyword.match_type
FROM ad_group_criterion
WHERE ad_group_criterion.type = KEYWORD
Nếu tài khoản của bạn chứa 50.000 từ khoá, thì tập kết quả sẽ chứa 10.000 đối tượng GoogleAdsRow trong phản hồi đầu tiên, cùng với một next_page_token.
Để truy xuất 10.000 hàng tiếp theo, hãy gửi lại yêu cầu nhưng cập nhật page_token của yêu cầu thành next_page_token của phản hồi:
{
"query": "SELECT ad_group.id, ad_group_criterion.type, ad_group_criterion.criterion_id, ad_group_criterion.keyword.text, ad_group_criterion.keyword.match_type FROM ad_group_criterion WHERE ad_group_criterion.type = KEYWORD",
"pageToken": "CN3q9...example_token..."
}
Xin lưu ý rằng next_page_token không được điền sẵn trong phản hồi chứa lô hàng cuối cùng.
Thư viện ứng dụng của chúng tôi tự động xử lý việc phân trang. Bạn chỉ cần lặp lại qua các hàng của phản hồi. Khi tất cả các hàng trong trang hiện tại đã được trả về, thư viện ứng dụng sẽ tự động tìm nạp một trang hàng mới thay cho bạn cho đến khi truy xuất được toàn bộ tập dữ liệu. Nếu sử dụng REST thay vì gRPC, bạn phải đưa ra yêu cầu rõ ràng cho mỗi trang mới.
Lưu vào bộ nhớ đệm và hết hạn mã thông báo trang
Google Ads API lưu tập dữ liệu vào bộ nhớ đệm nội bộ để các yêu cầu trang tiếp theo nhanh hơn yêu cầu ban đầu. Xin lưu ý rằng các giá trị next_page_token có thời gian tồn tại (TTL) giới hạn và sẽ hết hạn nếu không được sử dụng trong một khoảng thời gian ngắn (khoảng hai giờ). Nếu mã thông báo trang hết hạn, API sẽ trả về lỗi và bạn phải bắt đầu
một truy vấn mới.
Cụm từ tìm kiếm của bạn phải giống hệt nhau trong các yêu cầu tiếp theo để tận dụng dữ liệu đã lưu vào bộ nhớ đệm. Các yêu cầu được phân trang tiếp theo không được tính là thao tác bổ sung vào hạn mức thao tác hằng ngày cho quyền truy cập Explorer và quyền truy cập Basic. Nếu truy vấn khác nhau và được gửi cùng với mã thông báo trang, thì lỗi sẽ được trả về.