L'ottimizzazione delle quote è fondamentale per qualsiasi applicazione che utilizza l'API Display & Video 360. L'ottimizzazione dell'utilizzo della quota migliora le prestazioni semplificando le richieste API e aiutandoti a evitare gli errori restituiti quando si superano i limiti di frequenza impostati.
Questa pagina illustra le best practice generali e mette in evidenza le funzionalità supplementari nell'API Display & Video 360 che possono aiutarti a ridurre l'utilizzo della quota.
Effettuare richieste concorrenti a vari inserzionisti
La maggior parte dei metodi dell'API Display & Video 360 specifica un inserzionista nell'URL. Oltre alla quota a livello di progetto, per questi metodi vengono applicati limiti di frequenza"per inserzionista per progetto" più restrittivi quando vengono effettuate chiamate che specificano lo stesso inserzionista.
Per eseguire l'ottimizzazione in base a questa quota, limita le richieste simultanee a quelle che specificano inserzionisti diversi.
Utilizza i parametri pageSize
, filter
e orderBy
Utilizza i metodi list
anziché i metodi get
per recuperare più risorse.
A causa dei limiti relativi alle dimensioni delle pagine, le chiamate list
possono comunque consumare molta quota.
Ottimizza tutte le richieste list
impostando il parametro pageSize
sul valore massimo consentito. La dimensione predefinita della pagina di un metodo, utilizzata quando il parametro non è impostato, potrebbe essere inferiore al valore massimo consentito e richiedere più richieste per recuperare un elenco esaustivo delle risorse.
Se devi recuperare solo un sottoinsieme della risposta dell'elenco completo, puoi ottimizzare l'utilizzo della quota sfruttando i parametri facoltativi filter
e
orderBy
.
Il parametro filter
consente di limitare le risorse recuperate dalla chiamata list
a quelle le cui proprietà rispettano determinate espressioni. Questo parametro è utile quando si tenta di recuperare:
- Una risorsa specifica con un ID sconosciuto, ma con proprietà note. Se cerchi una risorsa specifica, puoi filtrare l'elenco restituito in base alle proprietà note della risorsa che ti interessa. Alcuni esempi sono il filtro degli elementi pubblicitari in base a un valore
displayName
noto, delle creatività in base al valorecreativeType
previsto e delle origini dell'inventario in base al valoreexchange
pertinente. - Risorse associate. Le risorse in Display & Video 360 sono spesso associate tra loro. Puoi utilizzare i filtri per limitare le risorse restituite a quelle che hanno una relazione specifica con un'altra. Alcuni esempi sono recuperare tutti gli ordini di inserzione sotto un determinato
campaignId
e tutte le creatività assegnate a un elemento pubblicitario. - Solo le risorse con proprietà strategiche. La funzionalità dell'API consente di controllare facilmente lo stato delle risorse e di reagire in modo programmatico. Con i filtri, puoi utilizzare le chiamate
list
per ottenere solo le risorse in cui è necessaria un'azione. Alcuni esempi sono il recupero di tutti gli elementi pubblicitari che mostrano un determinatolineItemWarningMessage
utile, tutti gli ordini di inserzione che sono stati aggiornati da una determinata data e ora o tutte le creatività con unapprovalStatus
non riuscito.
Il parametro orderBy
consente di ordinare le risorse recuperate in base a proprietà specifiche, in ordine crescente o decrescente. orderBy
, soprattutto se utilizzato insieme a filter
, può essere utilizzato per limitare il numero di pagine da esaminare prima di trovare una risorsa specifica. Inoltre, ti consente di recuperare facilmente i limiti superiore e inferiore di un elenco di risorse. Ad esempio, l'ordinamento
in base a updateTime
ti consente di trovare rapidamente gli
elementi pubblicitari o gli
ordini di inserzione di un inserzionista aggiornati più di recente.
Utilizzare funzioni collettive e per l'intera risorsa
L'API Display & Video 360 offre una serie di funzioni collettive e per l'intera risorsa che eseguono numerose azioni con una singola richiesta. Ecco alcuni esempi di questo tipo di funzioni:
- Modificare collettivamente i siti appartenenti a un singolo
canale. Ai canali possono essere assegnati migliaia di siti. Anziché gestire l'elenco dei siti di un canale con singole richieste
create
odelete
, puoi utilizzare una singola richiestabulkEdit
oreplace
per aggiungere e rimuovere numerosi siti o, rispettivamente, sostituire l'intero contenuto di un canale. - Gestire l'intera suite di targeting di un inserzionista. La suite di targeting di una risorsa viene assegnata a più tipi di targeting. Le funzioni di targeting a livello di risorsa, come
listAssignedTargetingOptions
eeditAssignedTargetingOptions
nel servizioadvertisers
, ti consentono di recuperare, creare e rimuovere il targeting in più tipi di targeting in un'unica richiesta. In questo modo, si riduce il costo della quota per l'impostazione della suite di targeting di un inserzionista su una singola richiesta. - Impostare la stessa limitazione di targeting su più elementi pubblicitari. Se
devi apportare le stesse modifiche al targeting in più elementi pubblicitari contemporaneamente,
puoi farlo utilizzando una singola
richiesta
advertisers.lineItems.bulkEditAssignedTargetingOptions
. - Attivazione o messa in pausa di più elementi pubblicitari. Gli elementi pubblicitari devono essere attivati
dopo la creazione prima di iniziare la pubblicazione. Se crei più elementi pubblicitari in rapida successione, puoi attivarli tutti con una singola richiesta
advertisers.lineItems.bulkUpdate
. Lo stesso metodo può essere utilizzato per mettere in pausa più elementi pubblicitari e interromperne la pubblicazione.
Memorizza nella cache e controlla gli ID utilizzati regolarmente
Molte operazioni nell'API Display & Video 360 richiedono l'utilizzo di ID risorsa recuperati tramite l'API stessa, inclusi gli ID opzione di targeting, gli ID segmento di pubblico di Google e altro ancora. Per evitare di recuperare gli ID dall'API a ogni utilizzo, ti consigliamo di memorizzarli localmente.
Tuttavia, alcune risorse possono essere ritirate, eliminate o rese non disponibili per l'utilizzo. Il tentativo di utilizzare gli ID di queste risorse potrebbe restituire un errore. Pertanto, ti consigliamo di controllare settimanalmente tutti gli ID memorizzati nella cache utilizzando il metodo get
o list
filtrato appropriato per verificare che sia ancora possibile recuperarli e che abbiano lo stato previsto.
Implementare il backoff esponenziale per le operazioni a lunga esecuzione
Durante il polling per verificare se un'operazione di lunga durata, come un'attività di download di SDF, è stata completata, utilizza una strategia di backoff esponenziale per ridurre la frequenza e il numero totale di richieste inviate.
Il backoff esponenziale è una strategia di gestione degli errori standard per le applicazioni di rete in cui il client riprova periodicamente le richieste per un periodo di tempo crescente. Se utilizzato correttamente, il backoff esponenziale aumenta l'efficienza dell'utilizzo della larghezza di banda, riduce il numero di richieste necessarie per ottenere una risposta positiva e massimizza il throughput delle richieste in ambienti concorrenziali.
Puoi trovare la strategia di backoff esponenziale implementata con le librerie client nei nostri esempi di codice per il download dei file SDF. Il flusso dettagliato per l'implementazione del backoff esponenziale semplice è il seguente:
- Invia una richiesta
sdfdownloadtasks.operations.get
all'API. - Recupera l'oggetto operazione.
- Se il campo
done
non è true, significa che devi riprovare a inviare la richiesta. - Attendi 5 secondi + un numero casuale di millisecondi e riprova a inviare la richiesta.
- Se il campo
- Recupera l'oggetto operazione.
- Se il campo
done
non è true, significa che devi riprovare a inviare la richiesta. - Attendi 10 secondi + un numero casuale di millisecondi e riprova a inviare la richiesta.
- Se il campo
- Recupera l'oggetto operazione.
- Se il campo
done
non è true, significa che devi riprovare a inviare la richiesta. - Attendi 20 secondi + un numero casuale di millisecondi e riprova a inviare la richiesta.
- Se il campo
- Recupera l'oggetto operazione.
- Se il campo
done
non è true, significa che devi riprovare a inviare la richiesta. - Attendi 40 secondi + un numero casuale di millisecondi e riprova a inviare la richiesta.
- Se il campo
- Recupera l'oggetto operazione.
- Se il campo
done
non è true, significa che devi riprovare a inviare la richiesta. - Attendi 80 secondi + un numero casuale di millisecondi e riprova a inviare la richiesta.
- Se il campo
- Continua questo pattern fino a quando l'oggetto query non viene aggiornato o non viene raggiunto un tempo massimo trascorso.