Iteratori

Gli iteratori sono un modello di programmazione comune utilizzato per attraversare un elenco di oggetti quando

  • Le dimensioni dell'elenco potrebbero non essere note dall'inizio.
  • Il caricamento dell'intero elenco in memoria contemporaneamente potrebbe richiedere troppe risorse.

Gli iteratori espongono due metodi: boolean hasNext() e Object next(). Gli script Google Ads utilizzano il pattern Iterator per recuperare le entità Google Ads.

A livello di funzionalità, gli iteratori non sono molto diversi dagli array regolari e possono rendere il codice più conciso. Confronta il codice che attraversa un array:

for (var i = 0; i < myArray.length; i++) {
  let myObject = myArray[i];
}

con il codice che attraversa un iteratore:

while (myIterator.hasNext()) {
  let myObject = myIterator.next();
}

Il seguente codice mostra l'utilizzo di un iteratore per tutte le campagne nel tuo account:

var campaignIterator = AdsApp.campaigns().get();

while (campaignIterator.hasNext()) {
  let campaign = campaignIterator.next();
  console.log(`${campaign.getName()}; active? ${campaign.isEnabled()}; ` +
      `budget=${campaign.getBudget().getAmount()}`);
}

Puoi anche utilizzare l'iterazione JavaScript integrata:

for (const campaign of AdsApp.campaigns()) {
  console.log(`${campaign.getName()}; active? ${campaign.isEnabled()}; ` +
      `budget=${campaign.getBudget().getAmount()}`);
}

L'applicazione di withLimit() a un selettore non modifica il valore di totalNumEntities(). x e y nello snippet seguente avranno lo stesso valore:

var x = AdsApp.keywords().get().totalNumEntities();
var y = AdsApp.keywords().withLimit(5).get().totalNumEntities();

Per ottenere un iteratore di entità Google Ads, devi prima creare un selettore.