Questa pagina illustra varie best practice per lo sviluppo con gli script Google Ads.
Selettori
Filtrare con i selettori
Se possibile, utilizza i filtri per richiedere solo le entità di cui hai bisogno. L'applicazione di filtri appropriati presenta i seguenti vantaggi:
- Il codice è più semplice e facile da comprendere.
- Lo script verrà eseguito molto più velocemente.
Confronta i seguenti snippet di codice:
| Approccio di programmazione | Snippet di codice |
|---|---|
| Filtrare utilizzando i selettori (opzione consigliata) |
var keywords = AdsApp.keywords()
.withCondition('Clicks > 10')
.forDateRange('LAST_MONTH')
.get();
while (keywords.hasNext()) {
var keyword = keywords.next();
// Do work here.
}
|
| Filtro nel codice (non consigliato) |
var keywords = AdsApp.keywords().get();
while (keywords.hasNext()) {
var keyword = keywords.next();
var stats = keyword.getStatsFor(
'LAST_MONTH');
if (stats.getClicks() > 10) {
// Do work here.
}
}
|
Il secondo approccio non è consigliato perché tenta di recuperare l'elenco di tutte le parole chiave nel tuo account solo per applicare un filtro all'elenco.
Evita di attraversare la gerarchia della campagna
Quando vuoi recuperare entità a un determinato livello, utilizza un metodo di raccolta a quel livello anziché attraversare l'intera gerarchia della campagna. Oltre a essere più semplice, questa operazione avrà un rendimento molto migliore: il sistema non dovrà leggere inutilmente tutte le campagne e tutti i gruppi di annunci.
Confronta i seguenti snippet di codice che recuperano tutti gli annunci nel tuo account:
| Approccio di programmazione | Snippet di codice |
|---|---|
| Utilizzare il metodo di raccolta appropriato (consigliato) |
var ads = AdsApp.ads(); |
| Attraversare la gerarchia (sconsigliato) |
var campaigns = AdsApp.campaigns().get();
while (campaigns.hasNext()) {
var adGroups = campaigns.next().
adGroups().get();
while (adGroups.hasNext()) {
var ads = adGroups.next().ads().get();
// Do your work here.
}
}
|
Il secondo approccio non è consigliato perché tenta di recuperare intere gerarchie di oggetti (campagne, gruppi di annunci) quando sono necessari solo gli annunci.
Utilizzare metodi di accesso genitori specifici
A volte è necessario ottenere l'entità principale di un oggetto recuperato. In questo caso, devi utilizzare un metodo di accesso fornito anziché recuperare intere gerarchie.
Confronta i seguenti snippet di codice che recuperano i gruppi di annunci con annunci di testo che hanno ricevuto più di 50 clic il mese scorso:
| Approccio di programmazione | Snippet di codice |
|---|---|
| Utilizzare il metodo di accesso al genitore appropriato (consigliato) |
var ads = AdsApp.ads()
.withCondition('Clicks > 50')
.forDateRange('LAST_MONTH')
.get();
while (ads.hasNext()) {
var ad = ads.next();
var adGroup = ad.getAdGroup();
var campaign = ad.getCampaign();
// Store (campaign, adGroup) to an array.
}
|
| Attraversare la gerarchia (non consigliato) |
var campaigns = AdsApp.campaigns().get();
while (campaigns.hasNext()) {
var adGroups = campaigns.next()
.adGroups()
.get();
while (adGroups.hasNext()) {
var ads = adGroups.ads()
.withCondition('Clicks > 50')
.forDateRange('LAST_MONTH')
.get();
if (ads.totalNumEntities() > 0) {
// Store (campaign, adGroup) to an array.
}
}
}
|
Il secondo approccio non è consigliato perché recupera l'intera gerarchia di campagne e gruppi di annunci nel tuo account, mentre hai bisogno solo di un sottoinsieme di campagne e gruppi di annunci associati al tuo insieme di annunci. Il primo approccio si limita a recuperare solo la raccolta di annunci pertinente e utilizza un metodo appropriato per accedere ai relativi oggetti padre.
Utilizzare filtri genitore specifici
Per accedere alle entità all'interno di una campagna o di un gruppo di annunci specifico, utilizza un filtro specifico nel selettore anziché recuperare e poi attraversare una gerarchia.
Confronta i seguenti snippet di codice che recuperano l'elenco degli annunci di testo all'interno di una campagna e di un gruppo di annunci specifici che hanno ricevuto più di 50 clic il mese scorso.
| Approccio di programmazione | Snippet di codice |
|---|---|
| Utilizzare filtri a livello principale appropriati (consigliato) |
var ads = AdsApp.ads()
.withCondition('CampaignName = "Campaign 1"')
.withCondition('AdGroupName = "AdGroup 1"')
.withCondition('Clicks > 50')
.forDateRange('LAST_MONTH')
.get();
while (ads.hasNext()) {
var ad = ads.next();
var adGroup = ad.getAdGroup();
var campaign = ad.getCampaign();
// Store (campaign, adGroup, ad) to
// an array.
}
|
| Attraversare la gerarchia (non consigliato) |
var campaigns = AdsApp.campaigns()
.withCondition('Name = "Campaign 1"')
.get();
while (campaigns.hasNext()) {
var adGroups = campaigns.next()
.adGroups()
.withCondition('Name = "AdGroup 1"')
.get();
while (adGroups.hasNext()) {
var ads = adGroups.ads()
.withCondition('Clicks > 50')
.forDateRange('LAST_MONTH')
.get();
while (ads.hasNext()) {
var ad = ads.next();
// Store (campaign, adGroup, ad) to
// an array.
}
}
}
|
Il secondo approccio non è consigliato perché itera la gerarchia di campagne e gruppi di annunci nel tuo account, quando hai bisogno solo di un insieme selezionato di annunci e delle relative campagne e gruppi di annunci principali. Il primo approccio limita l'iterazione all'elenco degli annunci applicando un filtro specifico per le entità principali nel selettore.
Utilizzare gli ID per il filtraggio, se possibile
Quando filtri le entità, è preferibile filtrare le entità in base ai relativi ID anziché ad altri campi.
Considera i seguenti snippet di codice che selezionano una campagna.
| Approccio di programmazione | Snippet di codice |
|---|---|
| Filtra per ID (consigliato) |
var campaign = AdsApp.campaigns()
.withIds([12345])
.get()
.next();
|
| Filtra per nome (meno ottimale) |
|