Les itérateurs sont un modèle de programmation courant utilisé pour parcourir une liste d'objets lorsque
- la taille de la liste n'est peut-être pas connue dès le départ ;
- le chargement de la liste entière en mémoire à la fois peut s'avérer trop gourmand en ressources.
Les itérateurs exposent deux méthodes : boolean hasNext() et Object next().
Les scripts Google Ads utilisent le modèle d'itérateur pour récupérer les entités Google Ads.
Sur le plan fonctionnel, les itérateurs ne sont pas très différents des tableaux standards et peuvent rendre votre code plus concis. Comparez le code qui parcourt un tableau :
for (var i = 0; i < myArray.length; i++) {
let myObject = myArray[i];
}
au code qui parcourt un itérateur :
while (myIterator.hasNext()) {
let myObject = myIterator.next();
}
Le code suivant illustre l'utilisation d'un itérateur sur toutes les campagnes sur le Réseau de Recherche et Display de votre compte :
var campaignIterator = AdsApp.campaigns().get();
while (campaignIterator.hasNext()) {
let campaign = campaignIterator.next();
console.log(`${campaign.getName()}; active? ${campaign.isEnabled()}; ` +
`budget=${campaign.getBudget().getAmount()}`);
}
Vous pouvez également utiliser l'itération JavaScript intégrée :
for (const campaign of AdsApp.campaigns()) {
console.log(`${campaign.getName()}; active? ${campaign.isEnabled()}; ` +
`budget=${campaign.getBudget().getAmount()}`);
}
L'application de withLimit() à un sélecteur ne modifie pas la valeur de totalNumEntities(). x et y dans l'extrait suivant auront la même valeur :
var x = AdsApp.keywords().get().totalNumEntities();
var y = AdsApp.keywords().withLimit(5).get().totalNumEntities();
Pour obtenir un itérateur d'entités Google Ads, vous devez d'abord créer un sélecteur.