Chuyển trang kết quả

Bạn có thể phân trang qua các kết quả đã truy xuất 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ề việc 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 dùng nữa và trả về lỗi RequestError.PAGE_SIZE_NOT_SUPPORTED.

Truy vấn và phân trang mẫu

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 có 50.000 từ khoá, thì tập kết quả sẽ chứa 10.000 GoogleAdsRow đối tượng trong phản hồi đầu tiên, cùng với a 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 của yêu cầu page_token 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 của các hà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 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 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 từng trang mới.

Lưu vào bộ nhớ đệm và hết hạn mã thông báo trang

API Google Ads 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 2 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.

Truy vấn của bạn phải giữ nguyên trong các yêu cầu tiếp theo để tận dụng dữ liệu được 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à các thao tác bổ sung đối với hạn mức thao tác hằng ngày cho quyền truy cập vào Trình khám phá và quyền truy cập cơ bản. Nếu truy vấn khác và được gửi cùng với cùng một mã thông báo trang, thì hệ thống sẽ trả về lỗi.