View a markdown version of this page

Kurzanleitung für Funktionen - 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.

Kurzanleitung für Funktionen

In dieser Anleitung erfahren Sie, wie Sie Ihre erste Funktion erstellen, sie einer Wiedergabekonfiguration zuordnen und überprüfen, ob sie ausgeführt wurde. Am Ende haben Sie eine funktionierende Funktion, die den Gerätetyp (, oderdesktop) jedes Zuschauers 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 JSONataReferenz für Ausdrücke Ausdruck, um den Benutzeragenten auszuwerten.

  1. Öffnen Sie die MediaTailor-Konsole.

  2. Wählen Sie im Navigationsbereich Funktionen aus.

  3. Wählen Sie Funktion erstellen.

  4. Wählen Sie im Modal des Erstellungsassistenten die Option Von Grund auf neu erstellen und dann Weiter aus.

  5. Wählen Sie unter Funktionstyp die benutzerdefinierte Ausgabekachel aus.

  6. Geben Sie unter Funktionsdetails Folgendes ein:

    • Funktions-ID: myFirstFunction

    • Description (Beschreibung: Classify device type from user agent

  7. 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' %}

  8. 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 muss.

  1. Wählen Sie im Navigationsbereich Konfigurationen aus.

  2. Wählen Sie die Wiedergabekonfiguration, die Sie aktualisieren möchten.

  3. Wählen Sie Bearbeiten aus.

  4. Erweitern Sie den Abschnitt zur Konfiguration der Funktionen.

  5. Wählen Sie den Hook zur Sitzungsinitialisierung myFirstFunction aus der Dropdownliste aus.

  6. Wählen Sie Speichern.

Dies hängt mit dem myFirstFunction Lifecycle-Hook zusammenPre-session Initialisierung. 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 Wiedergabesitzung, um die Funktion auszulösen. Senden Sie eine Anfrage zur Sitzungsinitialisierung an den Endpunkt der Sitzungsinitialisierung 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 zu bestätigen, 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 einzelne ausgeführte Funktion. Diese Metrik umfasstFunctionId,FunctionType, und HookType Dimensionen, nach denen Sie myFirstFunction gezielt filtern können.

Wenn die Funktion fehlschlägt, MediaTailor werden standardmäßig Fehlerprotokollereignisse an die Manifest Logs ausgegeben (keine Konfiguration erforderlich):

  • PRE_SESSION_INIT_HOOK_ERROR— Hook-level Fehler mit errorType undcause.

  • PRE_SESSION_INIT_FUNCTION_ERROR— Function-level Fehler bei den spezifischen Angaben functionId und den Fehlerdetails.

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 Korrekturen finden Problembehandlung und Überwachung Sie unter.

Anmerkung

Für eine detaillierte Erfolgsprotokollierung melden Sie sich für PRE_SESSION_INIT_FUNCTION_COMPLETED Ereignisse in Ihrer Manifestprotokollkonfiguration an. PRE_SESSION_INIT_HOOK_SUMMARY Zusammenfassende Ereignisse zeigen das Hook-Ergebnis für jede Ausführung. Abgeschlossene Ereignisse zeigen die Eingabe-, Ausgabe- und request/response HTTP-Details jeder Funktion. 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 komplette Anforderungsablauf für die Funktion, die Sie gerade erstellt haben:

  1. Der Spieler initiiert eine Sitzung mit MediaTailor.

  2. MediaTailor löst den PRE_SESSION_INITIALIZATION Lifecycle-Hook aus und läuftmyFirstFunction.

  3. Die Funktion wertet das session.user_agent Feld aus und schreibt ctvmobile, oder desktop inplayer_params.deviceType.

  4. MediaTailor erstellt die Sitzung und gibt das Manifest an den Player zurück.

  5. Der Player stößt während der Wiedergabe auf eine Werbeunterbrechung.

  6. MediaTailor löst den PRE_ADS_REQUEST Lifecycle-Hook aus und erstellt dann die ADS-Anfrage. Da es in Player-Parametern gespeichert deviceType wird, kann es durch dynamische Variablenersetzung in die ADS-Anforderungs-URL aufgenommen werden.

  7. Das ADS verwendet den Gerätetyp, um zielgerichtete Werbemittel zurückzugeben.

  8. MediaTailor fügt die Anzeigen in das Manifest ein und gibt sie an den Player zurück.

Wenn die Funktion aus irgendeinem Grund fehlschlägt, wird die Ausgabe MediaTailor verworfen und es wird so verfahren, 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, die an eine Wiedergabekonfiguration angehängt ist. Von hier aus: