Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Angebotserstellung und Templateerstellung
Auf dieser Seite wird erklärt, wie eine OpenRTB-Gebotsanfrage aus Ihrer Vorlage MediaTailor erstellt wird, wie die Variableninterpolation funktioniert und welche Werte automatisch festgelegt werden. MediaTailor
Felder für die Konfiguration
Wenn Sie die Ertragsoptimierung für eine Wiedergabekonfiguration aktivieren, geben Sie vier Felder an:
| Feld | Description | Erforderlich |
|---|---|---|
PublisherId |
Ihre APS-Publisher-ID (erhalten Sie aus der APS-Registrierung). Wird app.publisher.id bei jeder Angebotsanfrage eingefügt. |
Ja |
Region |
APS-Region: AMERICASEUROPE, oderASIA_PACIFIC. Bestimmt den APS-Endpunkt. |
Ja |
MinimumUnfilledDuration |
Es sind mindestens ungefüllte Sekunden erforderlich, bevor eine Gebotsanfrage MediaTailor ausgelöst wird. Wird auch verwendet alsimp.video.minduration. |
Ja |
OpenRtbTemplate |
Ihre ORTB-JSON-Vorlage (max. 100 KB). Definiert den Text der Angebotsanfrage. | Ja |
Wie ist die Angebotsanfrage aufgebaut
Wenn eine Werbeunterbrechung noch eine ungenutzte Laufzeit hat, wird MediaTailor die Angebotsanfrage in den folgenden Schritten erstellt:
-
Interpolation von Vorlagen. MediaTailor löst
{{session.*}},,{{player_params.*}}{{avail.*}}{{request.*}},{{asset.*}}und{{scte.*}}Platzhalter in Ihrer Vorlage mithilfe der Standard-Syntax für Moustache-Vorlagen auf.Moustache verwendet doppelte geschweifte Klammern, was sich von den eckigen Klammern unterscheidet {{ }}, die bei der ADS-URL-Variablenersetzung verwendet werden.[ ] -
JSON-Analyse. Die interpolierte Vorlage wird als JSON geparst.
-
Extraktion und Validierung von Feldern. MediaTailorextrahiert Pflichtfelder und gibt eine aus,
BidRequestConfigurationErrorfalls welche fehlen oder leer sind. -
Fest codierte Feldinjektion. MediaTailor überschreibt oder fügt automatisch verwaltete Felder mithilfe von Werten aus der Konsolenkonfiguration und dem aktuell verfügbaren Kontext ein (z. B.
app.publisher.idaus Ihrer konfigurierten Publisher-ID,imp.video.maxdurationaus der berechneten ungefüllten Dauer). -
Serialisierung und Einreichung. Das Finale BidRequest wird in JSON serialisiert und als HTTP-POST an den APS-Endpunkt gesendet.
Wichtig
Wenn nach der Interpolation ein Pflichtfeld fehlt oder leer ist, schlägt die Angebotsanforderung mit einem fehl BidRequestConfigurationError und es wird keine Anfrage an APS gesendet. Der Fehler wird protokolliert, aber die Wiedergabe wird normal fortgesetzt (Fail-Open).
Standardvorlage für die Konsole
Wenn Sie die Ertragsoptimierung in der MediaTailor Konsole aktivieren, wird die folgende vorgefüllte Vorlage als Ausgangspunkt bereitgestellt. Sie sollten die Werte für Ihre Anwendung anpassen:
{ "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 Erklärung:
| Feld | Kategorie | Vorgehensweise |
|---|---|---|
imp[0].bidfloor |
Optional (Standard: 1.0) | Lege deinen Mindest-CPM fest. Die Standardeinstellung für die Konsole ist 5$. Niedriger für bessere Füllraten beim Testen. |
app.id |
APS empfohlen | Ihre App-Kennung. Der Spieler muss sendenplayerParams.app_id. |
app.name |
APS empfohlen | Ihr App-Name. Der Spieler muss sendenplayerParams.app_name. |
app.bundle |
Verpflichtend | Ihre App-Paket-ID. Der Spieler muss einen statischen Wert senden playerParams.bundle oder durch einen statischen Wert ersetzen (empfohlen). |
app.storeurl |
Pflichtfeld | Ihre App Store-URL. Der Spieler muss einen statischen Wert senden playerParams.storeurl oder durch einen statischen Wert ersetzen (empfohlen). |
app.domain |
APS wird empfohlen | Ihre App-Domain. Der Spieler muss sendenplayerParams.domain. |
app.content.genre |
APS empfohlen | Wird aus Asset-Metadaten der Inhaltsquelle gefüllt. |
app.content.contentrating |
APS wird empfohlen | Wird aus Asset-Metadaten der Inhaltsquelle gefüllt. |
device.dnt |
APS wird empfohlen | Flagge „Nicht verfolgen“. Der Spieler muss sendenplayerParams.dnt. |
device.ua |
Verpflichtend | Wird automatisch vom User-Agent Header des Viewers bis zum Ende ausgefüllt{{session.user_agent}}. Es wird kein Spielerparameter benötigt. |
device.ip |
Erforderlich | Wird automatisch von der IP des Betrachters bis zum Ende ausgefüllt{{session.client_ip}}. Es wird kein Spielerparameter benötigt. |
device.ifa |
APS empfohlen | Werbe-ID. Der Spieler muss sendenplayerParams.device_ifa. |
device.w / device.h |
APS empfohlen | Abmessungen des Bildschirms. Der Spieler mussplayerParams.device_width/sendendevice_height. |
device.language |
APS empfohlen | Sprache des Geräts. Der Spieler muss sendenplayerParams.language. |
device.model |
APS empfohlen | Gerätemodell. Der Spieler muss sendenplayerParams.model. |
device.os / device.osv |
APS empfohlen | Betriebssystem und Version. Der Spieler mussplayerParams.os/sendenosv. |
device.devicetype |
Überschreibbar (Standard: 3) | IAB-Gerätetyp. Der Spieler muss sendenplayerParams.devicetype. Ist das Feld leer, ist die Standardeinstellung 3 (CTV). |
device.make |
APS empfohlen | Hersteller des Geräts. Der Spieler muss sendenplayerParams.make. |
user.consent |
APS empfohlen (EU) | DSGVO-Einwilligungszeichenfolge (TCF). Der Spieler muss sendenplayerParams.consent. |
regs.gdpr |
APS empfohlen (EU) | DSGVO-Flag (0 oder 1). Der Spieler muss sendenplayerParams.gdpr. |
regs.us_privacy |
APS empfohlen (USA) | CCPA-Zeichenfolge (z. B.1YNY). Der Spieler muss sendenplayerParams.us_privacy. |
regs.gpp |
APS empfohlen | Zeichenfolge mit der Zustimmung der Global Privacy Platform. Der Spieler muss sendenplayerParams.gpp_consent. us_privacyFür bessere Füllraten vorzuziehen. |
regs.gpp_sid |
APS empfohlen | GPP-Abschnitts-IDs (z. B. [7] für US National). Der Spieler muss sendenplayerParams.gpp_sid. |
Wichtig
Die Konsole verwendet {{player_params.*}} standardmäßig Pflichtfelder wie app.bundle undapp.storeurl. Wenn Ihr Spieler diese Parameter nicht sendet, schlägt die Gebotsanfrage mit fehlBidRequestConfigurationError. Bei Feldern, die für jede Sitzung identisch sind (in der Regelapp.bundle, app.storeurlapp.name, und andere Kennungen auf App-Ebene), sollten Sie erwägen, den Platzhalter durch einen statischen Wert zu ersetzen (z. B.). "bundle":
"com.yourcompany.app" Codieren Sie keine Felder fest, die je nach Betrachter unterschiedlich sind, wie device.ua z. B.,, GDPR- und GPP-Zustimmungszeichenfolgen oder irgendwelche Regs- oder Benutzerobjektfelder. device.ip device.ifa Diese müssen von oder stammen. {{session.*}} {{player_params.*}}
Anmerkung
In der Standardeinstellung der Konsole ist video.mimes oder nicht video.protocols in der Vorlage enthalten. MediaTailor verwendet fest codierte Fallback-Werte (["video/mp4"]für MIMEs, [1,2,3,4,5,6,7,8] für Protokolle), wenn diese nicht bereitgestellt werden. Sie können sie zu Ihrer Vorlage hinzufügen, wenn Sie die unterstützten Formate einschränken möchten.
Vorlageninterpolation (Moustache Templating)
Ihre ORTB-Vorlage verwendet die Mustache-Templating-Syntax für die dynamische Wertersetzung. {{ }}
Verfügbare Vorlagenvariablen
Ihre ORTB-Vorlage kann dieselben dynamischen Variablen verwenden, die in ADS-URL-Vorlagen verfügbar sind. Dazu gehören Sitzungsvariablen (z. B.,{{session.client_ip}}){{session.user_agent}}, Player-Parameter ({{player_params.*}}), Asset-Metadaten ({{asset.*}}), Avail-Kontext ({{avail.*}}) und SCTE-Signaldaten (). {{scte.*}}
Die vollständige Liste der verfügbaren Variablen und ihre Beschreibungen finden Sie unter. MediaTailor dynamische Anzeigenvariablen für ADS-Anfragen Wie man MediaTailor URL-decodes Parameterwerte abspielt, bevor man sie in die Vorlage einfügt, finden Sie weiter unten Verhalten beim Kodieren und Dekodieren auf dieser Seite.
Die am häufigsten verwendeten Variablen in ORTB-Vorlagen sind:
-
{{session.user_agent}}: User-Agent Header des Betrachters (verwenden fürdevice.ua). -
{{session.client_ip}}: IP-Adresse des Betrachters (verwenden fürdevice.ip). -
{{player_params.*}}: Benutzerdefinierte Werte, die vom Player während der Sitzungsinitialisierung weitergegeben wurden. -
{{asset.*}}: Inhaltsmetadaten vom Ursprung (z. B.asset.genre,asset.content_rating).
Warnung
Setzen Sie Platzhalter immer in Anführungszeichen, auch bei numerischen Feldern wie dnt oderdevicetype. Wenn ein Platzhalter in eine leere Zeichenfolge aufgelöst wird und nicht in Anführungszeichen gesetzt wird (z. B."dnt":
{{player_params.dnt}}), ist das Ergebnis ein ungültiges JSON und die gesamte Gebotsanfrage schlägt mit einem fehl. BidRequestConfigurationError Verwenden Sie stattdessen "dnt":
"{{player_params.dnt}}". APS akzeptiert numerische Felder, die als Zeichenfolgen übergeben werden. Dieses Verhalten ist beabsichtigt, da das automatische Anführen von Ersetzungen leerer Zeichenketten mit dem Raw-JSON-Modus, der an anderer Stelle im Interpolator verwendet wird, in Konflikt geraten würde. Die Einschränkung wird dokumentiert und nicht durchgesetzt. Siehe auchVerhalten beim Kodieren und Dekodieren, wie Spielerparameterwerte vor der Interpolation MediaTailor behandelt werden.
Wie übergibt man Spielerparameter
Es gibt zwei Möglichkeiten, Spielerparameter während der Sitzungsinitialisierung zu übergeben.
Methode 1: POST-Anfrage mit JSON-Text (empfohlen)
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" } }
Diese Methode wird bevorzugt, da sie URL-encoding Probleme mit komplexen Werten wie User-Agent-Zeichenketten vermeidet.
Methode 2: URL-Abfrageparameter
GET https://<mediatailor-endpoint>/v1/session/<config-hash>/<origin-id>/master.m3u8 ?playerParams.app_id=558775_example
Bei dieser Methode müssen Werte wie folgt sein URL-encoded. MediaTailor URL-decodes sie vor der Interpolation.
Verhalten beim Kodieren und Dekodieren
MediaTailor führt eine URL-Dekodierung der Player-Parameterwerte auf einer Ebene durch, bevor sie in die Vorlage interpoliert werden. Dies gilt unabhängig davon, wie die Parameter übergeben werden (POST-Text oder URL-Abfrageparameter).
Beispiele für dekodierte Werte:
| Gesendeter Wert | Wert nach der Decodierung (wird in der Vorlage verwendet) |
|---|---|
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) |
Die wichtigsten Punkte:
-
MediaTailor dekodiert nur auf eine Ebene. Double-encoded Werte (z. B.
%2520) werden in ein Leerzeichen dekodiert%20, nicht in ein Leerzeichen. -
POST-Textwerte werden ebenfalls dekodiert. Wenn Ihr POST-Text URL-encoded Werte enthält, werden diese vor der Interpolation dekodiert.
-
Klartextwerte (keine Kodierung) werden unverändert übertragen.
-
Nach der Dekodierung und Interpolation wird die gesamte Vorlage als JSON analysiert. Sonderzeichen in interpolierten Werten (wie Anführungszeichen ohne Escapezeichen oder umgekehrte Schrägstriche) können die JSON-Analyse unterbrechen.
Tipp
Wenn dein Player Werte sendet, die bereits Klartext sind (nicht URL-encoded), funktionieren sie unverändert. Du musst nur darauf achten, dass deine URL-encodes Spielerwerte dekodiert werden, bevor du sie sendest.
Was passiert, wenn eine Variable fehlt
Wenn der Player keinen Parameter sendet, auf den in Ihrer Vorlage verwiesen wird (zum Beispiel, {{player_params.app_name}} aber nicht app_name in den Player-Parametern), wird der Platzhalter in eine leere Zeichenfolge aufgelöst. ""
Auswirkung: Wenn sich die leere Zeichenfolge in einem Pflichtfeld befindet (wieapp.bundle), schlägt die Gebotsanfrage mit fehl. BidRequestConfigurationError Wenn es sich um ein optionales Feld handelt, erhält APS einen leeren Wert, was zu einer Antwort ohne Gebot (HTTP 204) führen kann.
Was wird automatisch MediaTailor gesetzt
Die folgenden Felder werden immer MediaTailor mithilfe von Werten aus Ihrer Konsolenkonfiguration und dem aktuell verfügbaren Kontext festgelegt. Wenn Sie diese in Ihre Vorlage aufnehmen, werden Ihre Werte außer Kraft gesetzt:
| Feld | Quelle |
|---|---|
id |
Auto-generated: {sessionId}_{availId} Format (zum Beispiel). abc123-def456_78901 Nützlich, um Angebotsanfragen mit Sitzungsprotokollen zu korrelieren. |
app.publisher.id |
Ihre Konfiguration PublisherId von der Konsole aus. |
imp[0].video.minduration |
Ihre Konfiguration MinimumUnfilledDuration von der Konsole. |
imp[0].video.maxduration |
Berechnet: Die tatsächlich noch nicht abgefüllten Sekunden sind hierfür verfügbar. |
imp[0].video.maxseq |
Berechnet:. floor(unfilled_duration / 6) |
imp[0].video.poddur |
Berechnet: Die tatsächlich ungefüllten Sekunden stehen hierfür zur Verfügung. |
ext.integrationType |
Immer auf eingestellt. "EMT" |
Nächste Schritte
-
Die vollständige Referenz zu den einzelnen Feldern finden Sie unter. ORTB-Feldreferenz
-
Informationen zum Kopieren und Einfügen von Vorlagen finden Sie unter. Beispiel--Vorlagen