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.