Iteratori

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

  • La dimensione dell'elenco potrebbe non essere nota fin dall'inizio.
  • Il caricamento contemporaneo dell'intero elenco nella memoria può risultare eccessivo di risorse.

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

A livello funzionale, gli iteratori non sono molto diversi dai normali array 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 codice che attraversa un iteratore:

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

Il seguente codice dimostra 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 delle entità di Google Ads, devi prima creare un selettore.