View a markdown version of this page

Angebotserstellung und Templateerstellung - AWS Elemental MediaTailor

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:

  1. 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. [ ]

  2. JSON-Analyse. Die interpolierte Vorlage wird als JSON geparst.

  3. Extraktion und Validierung von Feldern. MediaTailorextrahiert Pflichtfelder und gibt eine aus, BidRequestConfigurationError falls welche fehlen oder leer sind.

  4. 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.id aus Ihrer konfigurierten Publisher-ID, imp.video.maxduration aus der berechneten ungefüllten Dauer).

  5. 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. Platzhalter verwenden doppelte geschweifte Klammern. {{ }}

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