Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Costruzione e modellazione delle offerte
Questa pagina spiega come MediaTailor creare una richiesta di offerta OpenRTB dal tuo modello, come funziona l'interpolazione delle variabili e quali valori vengono impostati automaticamente. MediaTailor
Campi di configurazione
Quando abiliti l'ottimizzazione del rendimento su una configurazione di riproduzione, fornisci quattro campi:
| Campo | Description | Richiesto |
|---|---|---|
PublisherId |
Il tuo ID editore APS (ottenuto dalla registrazione APS). Inserito in ogni app.publisher.id richiesta di offerta. |
Sì |
Region |
Regione APS:AMERICAS,EUROPE, oASIA_PACIFIC. Determina l'endpoint APS. |
Sì |
MinimumUnfilledDuration |
Sono necessari almeno secondi vuoti prima che venga MediaTailor attivata una richiesta di offerta. Utilizzato anche come. imp.video.minduration |
Sì |
OpenRtbTemplate |
Il tuo modello JSON ORTB (max 100 KB). Definisce il corpo della richiesta di offerta. | Sì |
Come viene costruita la richiesta di offerta
Quando un'interruzione pubblicitaria ha una durata residua non completata, MediaTailor costruisce la richiesta di offerta in questi passaggi:
-
Interpolazione dei modelli. MediaTailor risolve
{{session.*}},,{{player_params.*}}{{avail.*}}{{request.*}}, e i{{scte.*}}segnaposto nel modello{{asset.*}}utilizzando la sintassi standard di Mustache per i modelli. https://mustache.github.io/mustache.5.htmlMustache utilizza doppie parentesi graffe {{ }}, che differiscono dalle parentesi quadre utilizzate nella sostituzione delle variabili URL ADS.[ ] -
Analisi JSON. Il modello interpolato viene analizzato come JSON.
-
Estrazione e convalida dei campi. MediaTailorestrae i campi obbligatori e genera un messaggio
BidRequestConfigurationErrorse mancano o sono vuoti. -
Iniezione di campo codificata. MediaTailor sovrascrive o inserisce i campi che gestisce automaticamente utilizzando i valori della configurazione della console e del contesto di disponibilità corrente (ad esempio,
app.publisher.iddall'ID editore configurato, dalla durata non compilata calcolata).imp.video.maxduration -
Serializzazione e invio. La finale BidRequest viene serializzata in JSON e inviata come HTTP POST all'endpoint APS.
Importante
Se un campo obbligatorio è mancante o vuoto dopo l'interpolazione, la richiesta di offerta ha esito negativo BidRequestConfigurationError e nessuna richiesta viene inviata ad APS. L'errore viene registrato ma la riproduzione continua normalmente (fail-open).
Modello predefinito della console
Quando abiliti l'ottimizzazione del rendimento nella MediaTailor console, viene fornito il seguente modello precompilato come punto di partenza. Dovresti personalizzare i valori per la tua applicazione:
{ "imp": [ { "bidfloor": 5 } ], "app": { "id": "{{player_params.app_id}}", "name": "{{player_params.app_name}}", "bundle": "{{player_params.bundle}}", "storeurl": "{{player_params.storeurl}}", "domain": "{{player_params.domain}}", "content": { "genre": "{{asset.genre}}", "contentrating": "{{asset.content_rating}}" } }, "device": { "dnt": "{{player_params.dnt}}", "ua": "{{session.user_agent}}", "ip": "{{session.client_ip}}", "ifa": "{{player_params.device_ifa}}", "w": "{{player_params.device_width}}", "h": "{{player_params.device_height}}", "language": "{{player_params.language}}", "model": "{{player_params.model}}", "os": "{{player_params.os}}", "osv": "{{player_params.osv}}", "devicetype": "{{player_params.devicetype}}", "make": "{{player_params.make}}" }, "user": { "consent": "{{player_params.consent}}" }, "regs": { "gdpr": "{{player_params.gdpr}}", "us_privacy": "{{player_params.us_privacy}}", "gpp": "{{player_params.gpp_consent}}", "gpp_sid": "{{player_params.gpp_sid}}" } }
Field-by-field spiegazione:
| Campo | Categoria | Cosa fare |
|---|---|---|
imp[0].bidfloor |
Facoltativo (impostazione predefinita: 1.0) | Imposta il tuo CPM minimo. L'impostazione predefinita della console è $5. Inferiore per una migliore percentuale di riempimento durante i test. |
app.id |
APS consigliato | L'identificatore della tua app. Il giocatore deve inviareplayerParams.app_id. |
app.name |
APS consigliato | Il nome della tua app. Il giocatore deve inviareplayerParams.app_name. |
app.bundle |
È obbligatorio | L'ID del tuo pacchetto di app. Il giocatore deve inviare playerParams.bundle o sostituire con un valore statico (consigliato). |
app.storeurl |
È obbligatorio | L'URL del tuo app store. Il giocatore deve inviare playerParams.storeurl o sostituire con un valore statico (consigliato). |
app.domain |
APS consigliato | Il dominio della tua app. Il giocatore deve inviareplayerParams.domain. |
app.content.genre |
APS consigliato | Compilato a partire dai metadati delle risorse di origine dei contenuti. |
app.content.contentrating |
APS consigliato | Compilato a partire dai metadati delle risorse di origine dei contenuti. |
device.dnt |
APS consigliato | Bandiera Do Not Track. Il giocatore deve inviareplayerParams.dnt. |
device.ua |
È obbligatorio | Compilato automaticamente dall' User-Agent intestazione dello spettatore fino a. {{session.user_agent}} Non è necessario alcun parametro del giocatore. |
device.ip |
È obbligatorio | Compilato automaticamente dall'IP del visualizzatore tramite{{session.client_ip}}. Non è necessario alcun parametro del giocatore. |
device.ifa |
APS consigliato | ID pubblicitario. Il giocatore deve inviareplayerParams.device_ifa. |
device.w / device.h |
APS consigliato | Dimensioni dello schermo. Il giocatore deve inviareplayerParams.device_width/device_height. |
device.language |
APS consigliato | Lingua del dispositivo. Il giocatore deve inviareplayerParams.language. |
device.model |
APS consigliato | Modello del dispositivo. Il giocatore deve inviareplayerParams.model. |
device.os / device.osv |
APS consigliato | Sistema operativo e versione. Il giocatore deve inviareplayerParams.os/osv. |
device.devicetype |
Sostituibile (impostazione predefinita: 3) | Tipo di dispositivo IAB. Il giocatore deve inviareplayerParams.devicetype. Il valore predefinito è 3 (CTV) se vuoto. |
device.make |
APS consigliato | Produttore del dispositivo. Il giocatore deve inviareplayerParams.make. |
user.consent |
Consigliato APS (UE) | Stringa di consenso GDPR (TCF). Il giocatore deve inviareplayerParams.consent. |
regs.gdpr |
Consigliato APS (UE) | Bandiera GDPR (0 o 1). Il giocatore deve inviareplayerParams.gdpr. |
regs.us_privacy |
Consigliato APS (USA) | Stringa CCPA (ad esempio,1YNY). Il giocatore deve inviareplayerParams.us_privacy. |
regs.gpp |
APS consigliato | Stringa di consenso di Global Privacy Platform. Il giocatore deve inviareplayerParams.gpp_consent. Preferito rispetto us_privacy ai tassi di riempimento migliori. |
regs.gpp_sid |
Consigliato APS | ID di sezione GPP (ad esempio, [7] per i cittadini statunitensi). Il giocatore deve inviareplayerParams.gpp_sid. |
Importante
L'impostazione predefinita della console utilizza {{player_params.*}} campi obbligatori come app.bundle eapp.storeurl. Se il giocatore non invia questi parametri, la richiesta di offerta non andrà a buon fineBidRequestConfigurationError. Per i campi uguali per ogni sessione (in genereapp.bundle,app.storeurl, e altri identificatori a livello di app)app.name, valuta la possibilità di sostituire il segnaposto con un valore statico (ad esempio,). "bundle":
"com.yourcompany.app" Non inserire l'hardcode nei campi che variano a seconda del visualizzatore, ad esempio,,, le device.ua stringhe di consenso GDPR e GPP o i campi dei registri o degli oggetti utente. device.ip device.ifa Questi devono provenire da o. {{session.*}} {{player_params.*}}
Nota
L'impostazione predefinita della console non include video.mimes o video.protocols nel modello. MediaTailor utilizza valori di riserva codificati (["video/mp4"]per MIME, [1,2,3,4,5,6,7,8] per protocolli) quando non vengono forniti. Puoi aggiungerli al tuo modello se desideri limitare i formati supportati.
Interpolazione dei modelli (Moustache templating)
Il modello ORTB utilizza la sintassi dei modelli Mustache per la sostituzione dinamica dei valori. {{ }} utilizzano doppie parentesi graffe.
Variabili di modello disponibili
Il modello ORTB può utilizzare le stesse variabili dinamiche disponibili nei modelli di URL ADS. Queste includono variabili di sessione (ad esempio,{{session.client_ip}}){{session.user_agent}}, parametri del giocatore ({{player_params.*}}), metadati delle risorse ({{asset.*}}), avail context () e dati del segnale SCTE ({{avail.*}}). {{scte.*}}
Per l'elenco completo delle variabili disponibili e le relative descrizioni, consulta. MediaTailor variabili pubblicitarie dinamiche per richieste ADS Per informazioni sui valori dei parametri del MediaTailor URL-decodes giocatore prima di sostituirli nel modello, consulta Comportamento di codifica e decodifica più avanti questa pagina.
Le variabili più comunemente usate nei template ORTB sono:
-
{{session.user_agent}}: User-Agent intestazione del visualizzatore (da usare perdevice.ua). -
{{session.client_ip}}: indirizzo IP del visualizzatore (da utilizzare perdevice.ip). -
{{player_params.*}}: valori personalizzati passati dal giocatore durante l'inizializzazione della sessione. -
{{asset.*}}: metadati del contenuto dall'origine (ad esempio,asset.genre).asset.content_rating
avvertimento
Racchiudi sempre i segnaposto tra virgolette, anche per campi numerici come o. dnt devicetype Se un segnaposto si risolve in una stringa vuota e non viene citato (ad esempio"dnt":
{{player_params.dnt}}), il risultato è un JSON non valido e l'intera richiesta di offerta ha esito negativo con un. BidRequestConfigurationError Usare invece "dnt":
"{{player_params.dnt}}". APS accetta i campi numerici passati come stringhe. Questo comportamento è stato progettato perché la quotazione automatica delle sostituzioni di stringhe vuote entrerebbe in conflitto con la modalità RAW-JSON utilizzata altrove nell'interpolatore. Il vincolo è documentato anziché applicato. Vedi anche come MediaTailor gestisce Comportamento di codifica e decodifica i valori dei parametri del giocatore prima dell'interpolazione.
Come passare i parametri del giocatore
Ci sono due modi per passare i parametri del giocatore durante l'inizializzazione della sessione.
Metodo 1: richiesta POST con corpo JSON (consigliato)
POST https://<mediatailor-endpoint>/v1/session/<config-hash>/<origin-id>/master.m3u8 Content-Type: application/json { "playerParams": { "app_id": "558775_example", "slot_id": "608109df-2378-4bc5-8da5-24bc355f01a4", "os": "Tizen", "make": "Samsung", "model": "Tizen TV", "language": "en", "us_privacy": "1YNY" } }
Questo metodo è preferito perché evita URL-encoding problemi con valori complessi come le stringhe dell'agente utente.
Metodo 2: parametri di interrogazione degli URL
GET https://<mediatailor-endpoint>/v1/session/<config-hash>/<origin-id>/master.m3u8 ?playerParams.app_id=558775_example
Con questo metodo, i valori devono essere URL-encoded. MediaTailor URL-decodes prima dell'interpolazione.
Comportamento di codifica e decodifica
MediaTailor esegue un livello di decodifica degli URL sui valori dei parametri del giocatore prima di interpolarli nel modello. Ciò si applica indipendentemente da come vengono passati i parametri (parametri del corpo POST o dei parametri di interrogazione dell'URL).
Esempi di valori decodificati:
| Valore inviato | Valore dopo la decodifica (utilizzato nel modello) |
|---|---|
Test%20Os |
Test Os |
https%3A%2F%2Flocalhost |
https://localhost |
foo%20bar |
foo bar |
Mozilla%2F5.0%20(SMART-TV) |
Mozilla/5.0 (SMART-TV) |
Punti chiave:
-
MediaTailor decodifica su un solo livello. Double-encoded i valori (ad esempio,
%2520) verranno decodificati in uno spazio%20, non in uno spazio. -
Vengono decodificati anche i valori del corpo POST. Se il corpo del POST contiene URL-encoded valori, questi verranno decodificati prima dell'interpolazione.
-
I valori di testo normale (senza codifica) vengono trasmessi invariati.
-
Dopo la decodifica e l'interpolazione, l'intero modello viene analizzato come JSON. I caratteri speciali nei valori interpolati (come virgolette senza escape o barre rovesciate) possono interrompere l'analisi JSON.
Suggerimento
Se il lettore invia valori che sono già in testo normale (non), funzionano così come sono. URL-encoded Devi solo essere consapevole della decodifica dei URL-encodes valori da parte del lettore prima di inviarli.
Cosa succede quando manca una variabile
Se il giocatore non invia un parametro a cui si fa riferimento nel modello (ad esempio, {{player_params.app_name}} ma non app_name nei parametri del player), il segnaposto si trasforma in una stringa vuota. ""
Impatto: se la stringa vuota si trova in un campo obbligatorio (ad esempioapp.bundle), la richiesta di offerta non va a buon fine. BidRequestConfigurationError Se si trova in un campo opzionale, APS riceve un valore vuoto che può causare una risposta di mancata offerta (HTTP 204).
Cosa viene MediaTailor impostato automaticamente
I seguenti campi vengono sempre impostati MediaTailor utilizzando i valori della configurazione della console e del contesto di disponibilità corrente. Se li includi nel modello, i tuoi valori vengono sovrascritti:
| Campo | Origine |
|---|---|
id |
Auto-generated: {sessionId}_{availId} formato (ad esempio,abc123-def456_78901). Utile per correlare le richieste di offerta con i registri delle sessioni. |
app.publisher.id |
La tua configurazione viene effettuata PublisherId dalla console. |
imp[0].video.minduration |
La tua configurazione viene MinimumUnfilledDuration dalla console. |
imp[0].video.maxduration |
Calcolato: secondi effettivi non occupati per questo risultato. |
imp[0].video.maxseq |
Calcolato:. floor(unfilled_duration / 6) |
imp[0].video.poddur |
Calcolato: secondi vuoti effettivi per questo risultato. |
ext.integrationType |
Sempre impostato su. "EMT" |
Fasi successive
-
Per il riferimento completo campo per campo, vedere. Riferimento al campo ORTB
-
Per i modelli copia-incolla, consulta. Modelli di esempio