Vous pouvez parcourir les résultats récupérés avec GoogleAdsService.Search au lieu de télécharger l'ensemble des résultats en une seule fois. Pour obtenir une présentation des rapports avec l'API Google Ads, consultez la présentation des rapports.
Search renvoie des pages fixes de 10 000 lignes maximum. La définition de page_size dans SearchGoogleAdsRequest est obsolète et renvoie une erreur RequestError.PAGE_SIZE_NOT_SUPPORTED.
Exemple de requête et de pagination
Prenons l'exemple de requête suivant :
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
Si votre compte contient 50 000 mots clés, l'ensemble de résultats contient 10 000 objets GoogleAdsRow dans la première réponse, ainsi qu'un next_page_token.
Pour récupérer les 10 000 lignes suivantes, renvoyez la requête, mais mettez à jour le page_token de la requête avec le next_page_token de la réponse :
{
"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..."
}
Notez que next_page_token n'est pas renseigné dans la réponse contenant le dernier lot de lignes.
Nos bibliothèques clientes gèrent la pagination automatiquement. Il vous suffit d'itérer sur les lignes de la réponse. Lorsque toutes les lignes de la page actuelle ont été renvoyées, la bibliothèque cliente récupère automatiquement une nouvelle page de lignes en votre nom jusqu'à ce que l'ensemble du jeu de données soit récupéré. Si vous utilisez REST au lieu de gRPC, vous devez effectuer explicitement une requête pour chaque nouvelle page.
Mise en cache et expiration des jetons de page
L'API Google Ads met en cache l'ensemble de données en interne afin que les demandes de pages ultérieures soient plus rapides que la demande initiale. Notez que les valeurs next_page_token ont une valeur TTL (Time To Live) limitée et expirent si elles ne sont pas utilisées dans un court laps de temps (environ deux heures). Si un jeton de page expire, l'API renvoie une erreur et vous devez lancer une nouvelle requête.
Votre requête doit rester identique dans les demandes ultérieures pour que vous puissiez profiter des données mises en cache. Les requêtes paginées suivantes ne sont pas comptabilisées comme des opérations supplémentaires dans votre quota d'opérations quotidiennes pour l'accès Explorateur et l'accès de base. Si la requête diffère et est envoyée avec le même jeton de page, une erreur est renvoyée.