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.