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 nécessiter trop de 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 extraire les entités Google Ads.

Sur le plan 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 sur 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 créer un sélecteur.