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.
Schnellstartanleitung für Funktionen
In dieser Anleitung erfahren Sie, wie Sie Ihre erste Funktion erstellen, sie an eine Wiedergabekonfiguration anhängen und überprüfen, ob sie ausgeführt wurde. Am Ende haben Sie eine funktionierende Funktion, die den Gerätetyp (, oderdesktop) jedes Betrachters klassifiziert und ihn als Player-Parameter speichert ctvmobile, der in jeder ADS-Anfrage verfügbar ist.
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass Sie über eine bestehende MediaTailor Wiedergabekonfiguration verfügen. Falls Sie noch keines haben, beachten Sie die Informationen unter Erste Schritte mit MediaTailor.
Schritt 1: Erstellen einer -Funktion
In diesem Schritt erstellen Sie eine Funktion, die den Gerätetyp des Viewers anhand der User-Agent-Zeichenfolge klassifiziert und das Ergebnis in Player-Parametern speichert. Die Funktion verwendet einen benutzerdefinierten Ausgabetyp (keine externen API-Aufrufe) mit einem JSONata-Ausdrucksreferenz Ausdruck zur Auswertung des Benutzeragenten.
-
Öffnen Sie die MediaTailor Konsole unter https://console.aws.amazon.com/mediatailor/
. -
Wählen Sie im Navigationsbereich Funktionen aus.
-
Wählen Sie Funktion erstellen.
-
Wählen Sie im Fenster „Assistent erstellen“ die Option „Von Grund auf neu erstellen“ und anschließend „Fortfahren“ aus.
-
Wählen Sie unter Funktionstyp die Kachel Benutzerdefinierte Ausgabe aus.
-
Geben Sie unter Funktionsdetails Folgendes ein:
-
Funktions-ID:
myFirstFunction -
Description (Beschreibung:
Classify device type from user agent
-
-
Fügen Sie unter Benutzerdefinierte Ausgabekonfiguration im Abschnitt Ausgabe eine Zeile hinzu:
-
Schlüssel:
player_params.deviceType -
Value (Wert):
{% $contains(session.user_agent, 'CTV') ? 'ctv' : $contains(session.user_agent, 'Mobile') ? 'mobile' : 'desktop' %}
-
-
Wählen Sie Funktion erstellen.
Eine Erfolgsmeldung bestätigt, dass die Funktion erstellt wurde, und Sie werden zur Seite mit den Funktionsdetails weitergeleitet.
Die resultierende Funktionskonfiguration lautet:
{ "FunctionId": "myFirstFunction", "FunctionType": "CUSTOM_OUTPUT", "Description": "Classify device type from user agent", "CustomOutputConfiguration": { "Runtime": "JSONATA", "Output": { "player_params.deviceType": "{% $contains(session.user_agent, 'CTV') ? 'ctv' : $contains(session.user_agent, 'Mobile') ? 'mobile' : 'desktop' %}" } } }
Schritt 2: Hängen Sie die Funktion an eine Wiedergabekonfiguration an
Ordnen Sie die Funktion einem Lifecycle-Hook in Ihrer Wiedergabekonfiguration zu. Das Mapping gibt an MediaTailor , wann die Funktion ausgeführt werden soll.
-
Wählen Sie im Navigationsbereich Konfigurationen aus.
-
Wählen Sie die Wiedergabekonfiguration aus, die Sie aktualisieren möchten.
-
Wählen Sie Bearbeiten aus.
-
Erweitern Sie den Abschnitt Konfiguration der Funktionen.
-
Wählen Sie für den Hook zur Sitzungsinitialisierung eine Option
myFirstFunctionaus der Dropdownliste aus. -
Wählen Sie Speichern.
Dies wird an den myFirstFunction Lifecycle-Hook PRE_SESSION_INITIALIZATION angehängt. Die resultierende Funktionszuordnung lautet:
{ "FunctionMapping": { "PRE_SESSION_INITIALIZATION": "myFirstFunction" } }
MediaTailor führt die Funktion einmal zu Beginn jeder neuen Sitzung in dieser Wiedergabekonfiguration aus.
Schritt 3: Starten Sie eine Sitzung und überprüfen Sie, ob die Funktion ausgeführt wurde
Starten Sie eine neue Wiedergabe-Sitzung, um die Funktion auszulösen. Verwenden Sie eine Anfrage zur Sitzungsinitialisierung an den Sitzungsinitialisierungsendpunkt Ihrer Wiedergabekonfiguration.
MediaTailor veröffentlicht automatisch CloudWatch Metriken für jede Funktionsausführung — kein Opt-In erforderlich. Überprüfen Sie nach dem Start einer Sitzung die folgenden Metriken im AWS/MediaTailor Namespace, um sicherzustellen, dass Ihre Funktion ausgeführt wurde:
-
PreSessionInitHook.Invocations— Bestätigt, dass der Hook ausgelöst wurde. -
PreSessionInitHook.Errors— Sollte 0 sein, wenn die Funktion erfolgreich war. -
Function.Invocations— Bestätigt die Ausführung der einzelnen Funktion. Diese Metrik umfasstFunctionIdFunctionType, undHookTypeDimensionen, sodass Sie nach bestimmten Kriterien filternmyFirstFunctionkönnen.
Wenn die Funktion fehlschlägt, MediaTailor werden standardmäßig Fehlerprotokollereignisse an Manifest Logs ausgegeben (keine Konfiguration erforderlich):
-
PRE_SESSION_INIT_HOOK_ERROR— Hook-level Fehler miterrorTypeundcause. -
PRE_SESSION_INIT_FUNCTION_ERROR— Function-level Fehler mit den spezifischenfunctionIdund fehlerhaften Details.
Das folgende Beispiel zeigt ein PRE_SESSION_INIT_FUNCTION_ERROR Ereignis für einen Syntaxfehler im Funktionsausdruck:
{ "eventTimestamp": "2024-01-01T12:00:00.076000000Z", "eventType": "PRE_SESSION_INIT_FUNCTION_ERROR", "eventDescription": "Function execution failed", "awsAccountId": "123456789012", "originId": "my-config", "sessionId": "session-123", "requestId": "req-abc", "eventId": "5dc6f040-0f72-4e8c-a64e-25eeef62708c", "functionId": "myFirstFunction", "functionType": "CUSTOM_OUTPUT", "executionTimeMs": 2, "errorType": "SYNTAX_ERROR", "cause": "Expected \")\" before end of expression", "input": {} }
Verwenden Sie das eventId Feld, um Hook- und Funktionsfehlerereignisse für dieselbe Ausführung zu korrelieren. Das errorType Feld gibt die Fehlerklasse an. Eine vollständige Liste der Fehlertypen und -behebungen finden Problembehandlung und Überwachung Sie unter.
Anmerkung
Eine detaillierte Erfolgsprotokollierung erhalten Sie, wenn Sie sich PRE_SESSION_INIT_HOOK_SUMMARY in Ihrer Manifest-Protokollkonfiguration für PRE_SESSION_INIT_FUNCTION_COMPLETED Ereignisse entscheiden. In der Zusammenfassung der Ereignisse wird das Hook-Ergebnis jeder Ausführung angezeigt. Bei abgeschlossenen Ereignissen werden die Eingabe-, Ausgabe- und request/response HTTP-Details der einzelnen Funktionen angezeigt. Diese sind standardmäßig deaktiviert, um die Protokollkosten zu minimieren. Weitere Informationen finden Sie unter Problembehandlung und Überwachung.
Was passiert hinter den Kulissen
Hier ist der vollständige Anforderungsablauf für die Funktion, die Sie gerade erstellt haben:
-
Der Spieler initiiert eine Sitzung mit MediaTailor.
-
MediaTailor feuert den
PRE_SESSION_INITIALIZATIONLifecycle-Hook ab und läuftmyFirstFunction. -
Die Funktion wertet das
session.user_agentFeld aus und schreibtctv,mobile, oderdesktopinplayer_params.deviceType. -
MediaTailor erstellt die Sitzung und gibt das Manifest an den Spieler zurück.
-
Der Player stößt bei der Wiedergabe auf eine Werbeunterbrechung.
-
MediaTailor feuert den
PRE_ADS_REQUESTLifecycle-Hook ab und erstellt dann die ADS-Anfrage. Da es in Player-Parametern gespeichertdeviceTypewird, kann es durch dynamische Variablenersetzung in die ADS-Anforderungs-URL aufgenommen werden. -
Das ADS verwendet den Gerätetyp, um zielgerichtete Werbemittel zurückzugeben.
-
MediaTailor fügt die Werbeanzeigen in das Manifest ein und sendet es an den Player zurück.
Wenn die Funktion aus irgendeinem Grund fehlschlägt, wird die Ausgabe MediaTailor verworfen und der Vorgang wird fortgesetzt, als ob keine Funktion angehängt wäre. Der Zuschauer sieht immer noch Werbung — nur ohne Ausrichtung auf den Gerätetyp.
Vorgeschlagene Themen
Sie haben jetzt eine funktionierende Funktion an eine Wiedergabekonfiguration angehängt. Von hier:
-
Informationen darüber, welche Eingabefelder und Ausgabe-Namespaces bei jedem Lifecycle-Hook verfügbar sind, finden Sie unter. Lebenszyklus-Hooks
-
Weitere Informationen zu den verschiedenen Funktionstypen und deren Verkettung finden Sie unter. Funktionstypen und Zusammensetzung
-
Vollständige Arbeitsbeispiele finden Sie unterBeispiele für Funktionen.