Itérateurs

Les itérateurs représentent un schéma de programmation couramment 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 simultané de toute la liste en mémoire peut entraîner une utilisation excessive des ressources.

Les itérateurs exposent deux méthodes: boolean hasNext() et Object next(). Les scripts Google Ads utilisent le schéma de l'itérateur pour récupérer des entités Google Ads.

Du point de vue fonctionnel, les itérateurs ne sont pas trop 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 dans toutes les campagnes 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 construire un sélecteur.