Google Ads API là công cụ mạnh mẽ để quản lý và phân tích dữ liệu quảng cáo. Khi làm việc với các tập dữ liệu lớn, việc phân trang (pagination) trở thành một kỹ năng quan trọng để xử lý dữ liệu hiệu quả. Trong bài viết này, chúng ta sẽ tìm hiểu cách Google Ads API hỗ trợ phân trang, những điểm cần lưu ý khi sử dụng trường page_size và cách áp dụng next_page_token để lấy toàn bộ dữ liệu mà không vượt qua hạn mức truy vấn.
Lưu ý: Trường page_size sẽ bị loại bỏ trong một phiên bản Google Ads API tương lai. Theo thông báo chính thức, trường page_size hiện có giá trị mặc định là 10.000 và không nên được chỉ định thủ công. Việc cố tình thiết lập giá trị cho page_size sẽ gây ra lỗi trong các phiên bản 17 và 18. Tuy nhiên, page_size vẫn được hỗ trợ trong phiên bản 16 và sẽ bị ngừng hoạt động vào năm 2025.
Dịch vụ GoogleAdsService.Search hỗ trợ phân trang với kích thước cố định là 10.000 dòng trên mỗi trang kết quả. Kết quả của một truy vấn được chia thành nhiều phản hồi, mỗi phản hồi chứa tối đa 10.000 đối tượng.
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 Google Ads chứa 50.000 từ khóa, tập hợp kết quả sẽ bao gồm 10.000 đối tượng GoogleAdsRow trong phản hồi đầu tiên, cùng với mã thông báo next_page_token.
Để truy xuất dữ liệu từ các trang tiếp theo, bạn cần gửi lại yêu cầu và cập nhật tham số page_token thành giá trị của next_page_token từ phản hồi trước đó. Lưu ý rằng next_page_token sẽ không được điền trong phản hồi cuối cùng khi toàn bộ dữ liệu đã được trả về.
Thư viện ứng dụng chính thức của Google Ads API hỗ trợ xử lý phân trang tự động. Khi sử dụng thư viện này, bạn chỉ cần lặp qua các hàng trong phản hồi. Sau khi tất cả dữ liệu trên trang hiện tại được trả về, thư viện sẽ tự động gửi yêu cầu để truy xuất trang tiếp theo. Quá trình này sẽ lặp lại cho đến khi toàn bộ tập dữ liệu được xử lý. Trong trường hợp sử dụng REST API thay vì gRPC, bạn cần tự tạo yêu cầu rõ ràng cho mỗi trang dữ liệu mới.
Google Ads API lưu toàn bộ tập dữ liệu vào bộ nhớ đệm nội bộ, giúp các yêu cầu tiếp theo nhanh hơn đáng kể so với yêu cầu ban đầu.
Tuy nhiên, để tận dụng tối đa hiệu suất này, các truy vấn tiếp theo phải giống hệt truy vấn ban đầu. Những truy vấn tương tự sẽ không ảnh hưởng đến hạn mức truy cập API, đặc biệt với quyền truy cập cơ bản. Ngược lại, nếu truy vấn khác biệt nhưng vẫn sử dụng mã thông báo trang cũ, lỗi sẽ được trả về.
Điểm chính: Nếu cần phân trang thủ công trong các trường hợp như phân trang web tuỳ chỉnh, bạn nên truy xuất và lưu trữ kết quả trên máy (ví dụ: trong cơ sở dữ liệu) và xây dựng logic phân trang của riêng mình.
Phân trang trong Google Ads API không chỉ giúp bạn quản lý dữ liệu hiệu quả mà còn tối ưu hóa hiệu suất hệ thống, đặc biệt khi làm việc với tập dữ liệu lớn. Bằng cách hiểu rõ cách hoạt động của page_size, next_page_token và lưu trữ kết quả hợp lý, bạn có thể xây dựng các quy trình truy vấn mạnh mẽ và bền vững. Hãy áp dụng ngay những kiến thức này để tối ưu hóa hoạt động quảng cáo của bạn với Google Ads API.
