Pour gérer les ensembles de résultats contenant un grand nombre de lignes, le langage de requête Merchant Center est compatible avec la pagination. Deux paramètres permettent de contrôler la pagination dans le corps de la requête reports.search
: page_size
et page_token
, en plus d'un champ de sortie dans le corps de la réponse : next_page_token
.
Le paramètre page_size
spécifie le nombre maximal de lignes à récupérer dans une seule requête. S'il n'est pas spécifié, cette valeur est automatiquement définie sur la taille maximale de page (1 000 lignes).
Le paramètre page_token
spécifie le jeton de la page à renvoyer. S'il n'est pas spécifié, la première page est renvoyée. Pour récupérer une page suivante, la valeur reçue comme next_page_token
de l'appel reports.search
précédent doit être fournie en tant que page_token
. Lorsqu'un page_token
est fourni, tous les autres paramètres de l'appel doivent correspondre à l'appel précédent qui a renvoyé le page_token
pour éviter tout comportement inattendu.
Exemple
SELECT
segments.offer_id,
metrics.impressions,
metrics.clicks,
metrics.ctr
FROM MerchantPerformanceView
WHERE segments.date BETWEEN '2021-12-01' AND '2021-12-31'
Pour cette requête, supposons que le compte contient 100 000 offer_ids
et que le paramètre page_size
soit défini sur 200. L'ensemble de résultats contiendra alors 200 objets ReportRow
dans la première réponse, ainsi qu'un champ next_page_token
.
Pour récupérer les 200 lignes suivantes, renvoyez la requête avec la même taille de page, mais mettez à jour le page_token
de la requête avec le next_page_token
de la réponse précédente.
Voici un exemple de corps de réponse (les cinq premiers résultats plus le champ next_page_token
) :
{
"results": [
{
"segments": {
"offerId": "12345"
},
"metrics": {
"clicks": "0",
"impressions": "59",
"ctr": 0
}
},
{
"segments": {
"offerId": "12346"
},
"metrics": {
"clicks": "9625",
"impressions": "276695",
"ctr": 0.034785594246372356
}
},
{
"segments": {
"offerId": "12347"
},
"metrics": {
"clicks": "148",
"impressions": "22045",
"ctr": 0.0067135404853708325
}
},
{
"segments": {
"offerId": "12348"
},
"metrics": {
"clicks": "11",
"impressions": "1100",
"ctr": 0.01
}
},
{
"segments": {
"offerId": "12349"
},
"metrics": {
"clicks": "569",
"impressions": "62977",
"ctr": 0.0090350445400701838
}
},
...
],
"nextPageToken": "CMgB"
}