Questa guida illustra le risorse per la risoluzione dei problemi relativi alle offerte in tempo reale, che ti consentono di accedere in modo programmatico
le metriche delle campagne con offerte in tempo reale che sono inoltre esposte tramite
Segmentazione delle offerte in tempo reale disponibile nella
UI di Authorized Buyers. Sono inclusi bidders.filterSets
, bidders.accounts.filterSets
e
di tutte le risorse al di sotto di questi
in modo gerarchico.
Utilizzando le metriche disponibili nelle risorse per la risoluzione dei problemi relativi alle offerte in tempo reale, puoi ottenere informazioni sulle opportunità mancate per ricevere impressioni che ti aiuteranno a ottimizzare la tua campagna con offerte in tempo reale.
Modifiche alla struttura e allo stile dell'API
Le risorse per la risoluzione dei problemi relativi alle offerte in tempo reale introducono alcune modifiche per indicare esplicitamente la proprietà e l'accesso, fornire un controllo più granulare sui dati restituiti dall'API ed allinearsi meglio Pratiche di progettazione delle API di Google.
Risorse a livello di offerente e di account
Le risorse sono strutturate sia in bidders
che in bidders.accounts
. che ti consentono di specificare
indica se una chiamata API ha come target un offerente (noto anche come account principale) e tutte le
account secondari o singoli account Authorized Buyers. Nel contesto delle offerte in tempo reale
Risoluzione dei problemi, le risorse strutturate in bidders.filterSets
restituiranno metriche aggregate
per l'offerente in questione e per tutti gli account secondari associati. Al contrario, quelli al di sotto
bidders.accounts.filterSets
restituirà le metriche solo per l'account specificato, indipendentemente da
che si tratti di un offerente o di un account secondario.
Nota: gli account che delegano le offerte a un altro acquirente non sono account offerente.
di conseguenza non possono accedere alle risorse a livello di offerente. Inoltre, gli account non offerente non possono
accedono a impressionMetrics
, filteredBidResponses
, bidResponseErrors
e a livello di account
bidResponsesWithoutBids
risorse.
Introduzione ai nomi delle risorse come identificatori univoci
I nomi delle risorse vengono utilizzati come identificatori univoci anziché numeri interi o stringhe. Quando crei una nuova istanza di un determinato di risorsa, ora devi specificare relativo resource name utilizzando il percorso URI seguito dall'ID risorsa preferito. La Di seguito sono riportati alcuni esempi di nomi pertinenti per le risorse della risoluzione dei problemi RTB:
Risorsa | Esempio di nome |
---|---|
bidders.filterSets | bidders/12345678/filterSets/fset_1 |
bidders.accounts.filterSets | bidders/12345678/accounts/87654321/filterSets/fset_2 |
Nota: l'ID risorsa specificato per bidders
nel nome deve corrispondere a quello di un offerente
ID account Authorized Buyers. Per accounts
, l'ID risorsa deve essere un ID account di
l'offerente o un account secondario gestito da quest'ultimo. Se non sai quali acquirenti Authorized Buyers
associati al tuo Account Google, puoi utilizzare
accounts.list per trovarli.
Set di filtri
Un insieme di filtri è una rappresentazione delle opzioni di filtro disponibili e che è possibile creare a livello di offerente o di account. Viene utilizzato per filtrare i risultati dell'elenco della risoluzione dei problemi relativi alle offerte in tempo reale. risorse che recuperano le metriche per le campagne con offerte in tempo reale.
Il filtro applicato durante il recupero delle metriche è l'intersezione di ciascun filtro nella
insieme di filtri. I filtri di elenco, come platforms
, vengono interpretati come l'unione di ogni elemento dell'elenco.
Gli insiemi di filtri a livello di offerente e di account sono distinti e accessibili solo dal livello in cui indipendentemente dall'account utilizzato per crearle. Condivisione di uno strumento di offerta e di un account secondario insiemi di filtri creati a livello di account, mentre solo un offerente può accedere alle risorse a A livello di offerente. La tabella seguente riassume il modo in cui gli account offerente e secondari possono accedere alle risorse a entrambi i livelli:
bidders.filterSets | bidders.accounts.filterSets | |
---|---|---|
Account offerente | Una chiamata API che interessa solo gli insiemi di filtri a livello di offerente. | Una chiamata API che interessa solo gli insiemi di filtri a livello di account. |
Account bambino/a | Questa chiamata API restituirà una risposta di errore. | Una chiamata API che interessa solo gli insiemi di filtri a livello di account. |
Creare un insieme di filtri
Quando crei un set di filtri, devi specificare un intervallo di tempo come relativeDateRange
,
absoluteDateRange
o realtimeTimeRange
. Quando recuperi le metriche,
Il comportamento predefinito prevede che tutti i dati vengano forniti per l'intero intervallo di tempo. Se vuoi ricevere
un'analisi delle serie temporali nell'intervallo di tempo, puoi specificare timeSeriesGranularity
per indicare intervalli HOURLY
o DAILY
.
Se vuoi impostare un filtro solo per un breve periodo di tempo, puoi impostare isTransient
parametro di query su true
. Questo indica che l'insieme di filtri è temporaneo, il che significa che non sarà mantenuto in modo permanente. I set di filtri temporanei saranno disponibili per almeno un'ora dopo la loro creazione, ma verranno eliminati. Per impostazione predefinita, gli insiemi di filtri non sono temporanei.
Esempio a livello di offerente
Per creare un nuovo set di filtri a livello di offerente, invia una richiesta POST
all'URI della risorsa bidders.filterSets
, che ha il seguente formato:
https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/filterSets
Avviso: i set di filtri a livello di offerente non sono in grado di filtrare per ID creatività o deal. Se specifichi questi filtri durante la creazione di un insieme di filtri a livello di offerente, riceverai una risposta di errore.
RichiediDi seguito è riportato un esempio di richiesta POST
che crea un nuovo insieme di filtri a livello di offerente non temporaneo:
POST https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/filterSets Authorization: Bearer access token here Content-Type: application/json { "name": "bidders/12345678/filterSets/bidder-fs", "format": "DISPLAY", "environment": "APP", "platforms": ["TABLET", "MOBILE"], "absoluteDateRange": { "startDate": { "month": 11, "day": 26, "year": 2017 }, "endDate": { "month": 12, "day": 3, "year": 2017 } }, "timeSeriesGranularity": "DAILY" }
Se la richiesta ha esito positivo, il server risponde con un codice di stato 200 OK. Il corpo della risposta includerà la risorsa del set di filtri creato, che sarà identica al set di filtri inviato nella richiesta.
Esempio a livello di account
Per creare un nuovo insieme di filtri a livello di account, invia una richiesta POST
all'indirizzo
URI risorsa bidders.accounts.filterSets
, che ha il seguente formato:
https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/accounts/{account resource ID}/filterSets
Nota: l'ID risorsa specificato per accounts
può
essere l'ID di qualsiasi account Authorized Buyers accessibile all'offerente
specificato nell'URI, incluso l'account dell'offerente stesso.
Ecco un esempio di richiesta POST
che crea un nuovo insieme di filtri non temporaneo a livello di account:
POST https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/accounts/87654321/filterSets Authorization: Bearer access token here Content-Type: application/json { "name": "bidders/12345678/accounts/87654321/filterSets/account-fs", "format": "VIDEO", "environment": "WEB", "platforms": ["DESKTOP"], "absoluteDateRange": { "startDate": { "month": 11, "day": 26, "year": 2017 }, "endDate": { "month": 12, "day": 3, "year": 2017 } }, "timeSeriesGranularity": "DAILY" }
Se la richiesta ha esito positivo, il server risponde con un codice di stato 200 OK. Il corpo della risposta includere la risorsa del set di filtri creata, che sarà identica all'insieme di filtri inviato in la richiesta.
Ottieni un insieme di filtri
Il metodo get può ottenere solo un filtro impostato allo stesso livello in cui è stato creato. Ad esempio, un offerente
l'account deve utilizzare bidders.accounts.filterSets.get
per recuperare un insieme di filtri creato a livello di account
anziché il metodo bidders.filterSets.get
.
A livello di offerente
Puoi recuperare un set di filtri a livello di offerente inviando una richiesta GET HTTP all'URI della risorsa bidders.filterSets
, che ha il seguente formato:
GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/filterSets/{filter set resource ID}
Ecco un esempio:
GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/filterSets/bidder-fs
Se la richiesta ha esito positivo, il server risponde con un codice di stato HTTP 200 OK
e il filtro recuperato impostato:
{ "name": "bidders/12345678/filterSets/bidder-fs", "format": "DISPLAY", "environment": "APP", "platforms": ["TABLET", "MOBILE"], "absoluteDateRange": { "startDate": { "month": 11, "day": 26, "year": 2017 }, "endDate": { "month": 12, "day": 3, "year": 2017 } }, "timeSeriesGranularity": "DAILY" }
A livello di account
Puoi recuperare un set di filtri a livello di account inviando una richiesta HTTP GET
all'URI della risorsa bidders.accounts.filterSets
, che ha il seguente formato:
GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/accounts/{account resource ID}/filterSets/{filter set resource ID}
Ecco un esempio:
GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/accounts/87654321/filterSets/account-fs
Se la richiesta ha esito positivo, il server risponde con un codice di stato HTTP 200 OK
e il filtro recuperato impostato:
{ "name": "bidders/12345678/accounts/87654321/filterSets/account-fs", "format": "VIDEO", "environment": "WEB", "platforms": ["DESKTOP"], "absoluteDateRange": { "startDate": { "month": 11, "day": 26, "year": 2017 }, "endDate": { "month": 12, "day": 3, "year": 2017 } }, "timeSeriesGranularity": "DAILY" }
Elenca insiemi di filtri
Il metodo list restituisce solo insiemi di filtri accessibili dal livello in cui viene chiamato.
Ad esempio, un account offerente non vedrà gli insiemi di filtri creati per se stesso tramite
bidders.accounts.filterSets.create
durante la chiamata al numero bidders.filterSets.list
.
A livello di offerente
Puoi recuperare tutti i set di filtri a livello di offerente per un determinato offerente inviando un GET
HTTP
all'URI della risorsa bidders.filtersets
, che ha il seguente formato:
GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/filterSets
Di seguito è riportato un esempio che elenca tutti gli insiemi di filtri a livello di offerente per un offerente con l'ID account 12345678:
GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/filterSets
{ "filterSets": [{ "filterSetId": "99994", "name": "bidders/12345678/filterSets/test-b-1", "relativeDateRange": { "durationDays": 30 } }, { "realtimeTimeRange": { "startTimeStamp": "2017-11-15T12:30:30.072831583Z" }, "filterSetId": "99995", "name": "bidders/12345678/filterSets/test-b-2", "timeSeriesGranularity": "HOURLY" }, { "absoluteDateRange": { "endDate": { "day": 12, "month": 3, "year": 2017 }, "startDate": { "day": 26, "month": 11, "year": 2017 } }, "filterSetId": "99996", "name": "bidders/12345678/filterSets/bidder-fs", "timeSeriesGranularity": "DAILY", "platforms": ["TABLET", "MOBILE"], "environment": "APP", "format": "DISPLAY" } ] }
A livello di account
Puoi recuperare tutti gli insiemi di filtri a livello di account per un determinato account inviando un GET
HTTP
all'URI della risorsa bidders.accounts.filtersets
, che ha il seguente formato:
GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/accounts/{account resource ID}/filterSets
Di seguito è riportato un esempio che elenca tutti gli insiemi di filtri a livello di account per un account secondario con ID account 87654321:
GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/accounts/87654321/filterSets
{ "filterSets": [{ "realtimeTimeRange": { "startTimeStamp": "2017-11-19T04:24:43.252893487Z" }, "filterSetId": "99997", "name": "bidders/12345678/accounts/87654321/filterSets/test-a-1", "timeSeriesGranularity": "DAILY" }, { "absoluteDateRange": { "endDate": { "day": 3, "month": 12, "year": 2017 }, "startDate": { "day": 26, "month": 11, "year": 2017 } }, "filterSetId": "99998", "name": "bidders/12345678/accounts/87654321/filterSets/account-fs", "timeSeriesGranularity": "DAILY", "platforms": ["DESKTOP"], "environment": "WEB", "format": "VIDEO" } ] }
Eliminare un insieme di filtri
Puoi utilizzare il metodo delete
per rimuovere tutti gli insiemi di filtri non temporanei che non sono
necessario più tempo. Può solo rimuovere i set di filtri accessibili dal livello in cui viene chiamato.
ad esempio, un account offerente non può eliminare un insieme di filtri creato con bidders.accounts.filterSets.create
con bidders.filterSets.delete
.
A livello di offerente
Puoi eliminare un insieme di filtri a livello di offerente per un determinato account inviando una richiesta DELETE
HTTP
all'URI della risorsa bidders.filtersets
, che ha il seguente formato:
DELETE https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/filterSets/{filter set resource ID}
Di seguito è riportato un esempio di eliminazione di un insieme di filtri a livello di offerente:
DELETE https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/filterSets/test-b-2
In caso di esito positivo, il corpo della richiesta sarà vuoto. Il set di filtri specificato non sarà più accessibile.
A livello di account
Puoi eliminare un set di filtri a livello di account per un determinato account inviando un DELETE
HTTP
all'URI della risorsa bidders.accounts.filtersets
, che ha il seguente formato:
DELETE https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/accounts/{account resource ID}/filterSets/{filter set resource ID}
Di seguito è riportato un esempio di eliminazione di un insieme di filtri a livello di account:
DELETE https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/accounts/87654321/filterSets/test-a-1
In caso di esito positivo, il corpo della richiesta sarà vuoto. Il set di filtri specificato non sarà più accessibile.
Recuperare le metriche di risoluzione dei problemi RTB
Tutte le risorse per la risoluzione dei problemi RTB utilizzate per ricevere le metriche funzionano in modo simile: hanno un
singolo metodo per elencare le metriche per il set di filtri specificato tramite un percorso filterSetName
. L'insieme di filtri specificato determinerà quali filtri e impostazioni saranno applicati quando
a eseguire query sulle metriche. La chiamata di queste risorse dal livello di offerta restituirà metriche aggregate
dall'account dell'offerente e da tutti gli account secondari associati, mentre una chiamata dal livello di account
restituirà solo le metriche
relative a un account individuale.
Metriche offerta
La risorsa bidMetrics
viene utilizzata per recuperare le metriche misurate nel
di offerte. Ad esempio, puoi utilizzarlo per determinare il numero totale di offerte rispetto a una
in un determinato intervallo di tempo e quanti non sono stati filtrati dall'asta e hanno vinto un'impressione;
e così via. Come tutte le altre risorse per la risoluzione dei problemi RTB utilizzate per raccogliere metriche, anche questo metodo prevede solo un list
.
Elenca metriche delle offerte a livello di offerente
Puoi elencare le metriche delle offerte a livello di offerente per un determinato insieme di filtri inviando un'istruzione GET
HTTP
all'URI della risorsa bidders.filtersets.bidMetrics
, che ha il seguente formato:
GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/filterSets/{filter set resource ID}/bidMetrics
Di seguito è riportato un esempio di metriche relative alle offerte a livello di offerente:
GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/filterSets/bidder-fs/bidMetrics
Se la richiesta ha esito positivo, il server risponde con un codice di stato 200 OK
e un corpo contenente righe di metriche per le dimensioni e la granularità specificate.
{ "bidMetricsRows": [{ "bids": { "value": "6160" }, "bidsInAuction": { "value": "5698" }, "billedImpressions": { "value": "1196" }, "impressionsWon": { "value": "2920" }, "measurableImpressions": { "value": "1160" }, "rowDimensions": { "timeInterval": { "endTime": "2017-11-29T08:00:00Z", "startTime": "2017-11-28T08:00:00Z" } }, "viewableImpressions": { "value": "683" } }, { "bids": { "value": "104288" }, "bidsInAuction": { "value": "94016" }, "billedImpressions": { "value": "99" }, "impressionsWon": { "value": "125" }, "measurableImpressions": { "value": "94" }, "rowDimensions": { "timeInterval": { "endTime": "2017-11-30T08:00:00Z", "startTime": "2017-11-29T08:00:00Z" } }, "viewableImpressions": { "value": "87" } }, { "bids": { "value": "3999" }, "bidsInAuction": { "value": "3631" }, "billedImpressions": { "value": "618" }, "impressionsWon": { "value": "1819" }, "measurableImpressions": { "value": "604" }, "rowDimensions": { "timeInterval": { "endTime": "2017-12-01T08:00:00Z", "startTime": "2017-11-30T08:00:00Z" } }, "viewableImpressions": { "value": "369" } }, { "bids": { "value": "15" }, "bidsInAuction": { "value": "3" }, "billedImpressions": {}, "impressionsWon": { "value": "3" }, "measurableImpressions": {}, "rowDimensions": { "timeInterval": { "endTime": "2017-12-02T08:00:00Z", "startTime": "2017-12-01T08:00:00Z" } }, "viewableImpressions": {} } ] }
Nota: tutti i campi impostati su 0 per una determinata metrica non verranno visualizzati nella risposta.
Le metriche billedImpressions
e measurableImpressions
vuote sopra riportate
indicano che il valore e la varianza di entrambi sono impostati su 0.
Avviso: per qualsiasi suddivisione dei dati nella risposta, la risposta non verrà
includi righe se non contengono almeno una metrica diversa da zero. Ad esempio, quando
timeSeriesGranularity
è specificato, la risposta non includerà righe per nessun
timeInterval
durante l'intervallo di tempo specificato dell'insieme di filtri in cui tutte le metriche sono pari a zero.
Elenca le metriche delle offerte a livello di account
Puoi elencare le metriche delle offerte a livello di account per un determinato insieme di filtri inviando un'istruzione GET
HTTP
all'URI della risorsa bidders.accounts.filtersets.bidMetrics
, che contiene
seguente formato:
GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/accounts/{account resource ID}/filterSets/{filter set resource ID}/bidMetrics
Di seguito è riportato un esempio di metriche relative alle offerte a livello di account:
GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/accounts/87654321/filterSets/account-fs/bidMetrics
Se la richiesta ha esito positivo, il server risponde con un codice di stato 200 OK
e un corpo contenente righe di metriche per le dimensioni e la granularità specificate.
{ "bidMetricsRows": [{ "bids": { "value": "1748" }, "bidsInAuction": { "value": "1421" }, "billedImpressions": { "value": "301" }, "impressionsWon": { "value": "915" }, "measurableImpressions": { "value": "298" }, "rowDimensions": { "timeInterval": { "endTime": "2017-12-01T08:00:00Z", "startTime": "2017-11-30T08:00:00Z" } }, "viewableImpressions": { "value": "172" } }, { "bids": { "value": "6" }, "bidsInAuction": { "value": "2" }, "billedImpressions": {}, "impressionsWon": { "value": "1" }, "measurableImpressions": {}, "rowDimensions": { "timeInterval": { "endTime": "2017-12-02T08:00:00Z", "startTime": "2017-12-01T08:00:00Z" } }, "viewableImpressions": {} } ] }
Nota: tutti i campi impostati su 0 per una determinata metrica non verranno visualizzati nella risposta. La
le metriche billedImpressions
e measurableImpressions
vuote sopra riportate indicano
che il valore e la varianza siano impostati su 0.
Avviso: per qualsiasi suddivisione dei dati nella risposta, la risposta non includerà
righe se non contengono almeno una metrica diversa da zero. Ad esempio, quando
timeSeriesGranularity
è specificato, la risposta non includerà righe per nessun
timeInterval
durante l'intervallo di tempo specificato dell'insieme di filtri in cui tutte le metriche sono pari a zero.