Funktion „Weiter ansehen“ mit der REST API einbinden

Das Engage SDK bietet eine REST API, um ein einheitliches „Weiter ansehen“-Erlebnis auf Nicht-Android-Plattformen wie iOS und Roku TV zu ermöglichen. Mit der API können Entwickler den Status „Weiter ansehen“ für angemeldete Nutzer auf Nicht-Android-Plattformen aktualisieren.

Vorbereitung

  • Sie müssen zuerst die gerätebasierte Engage SDK-basierte Integration abschließen. Mit diesem wichtigen Schritt wird die erforderliche Verknüpfung zwischen der Google-Nutzer-ID und dem AccountProfile Ihrer App hergestellt.
  • API-Zugriff und -Authentifizierung: Wenn Sie die API in Ihrem Google Cloud-Projekt aufrufen und aktivieren möchten, müssen Sie einen Prozess für die Zulassungsliste durchlaufen. Für alle API-Anfragen ist eine Authentifizierung erforderlich.

Zugriff erhalten

Damit Sie die API in der Google Cloud Console aufrufen und aktivieren können, muss Ihr Konto registriert sein.

  1. Die Google Workspace-Kundennummer sollte verfügbar sein. Wenn sie nicht verfügbar ist, müssen Sie möglicherweise Google Workspace sowie alle Google-Konten einrichten, die Sie zum Aufrufen der API verwenden möchten.
  2. Richten Sie ein Konto mit der Google Cloud Console ein. Verwenden Sie dazu eine E-Mail-Adresse, die mit Google Workspace verknüpft ist.
  3. Erstellen Sie ein neues Projekt.
  4. Erstellen Sie ein Dienstkonto für die API-Authentifizierung. Nachdem Sie das Dienstkonto erstellt haben, haben Sie zwei Elemente:
    • Eine Dienstkonto-ID
    • Eine JSON-Datei mit Ihrem Dienstkontoschlüssel Bewahren Sie diese Datei sicher auf. Sie benötigen sie später, um Ihren Client bei der API zu authentifizieren.
  5. Workspace und verknüpfte Google-Konten können jetzt REST APIs verwenden. Sobald die Änderung übernommen wurde, werden Sie benachrichtigt, ob die API von Ihren Dienstkonten aufgerufen werden kann.
  6. Folgen Sie diesen Schritten, um sich auf einen delegierten API-Aufruf vorzubereiten.

Fortsetzungscluster veröffentlichen

Wenn Sie die Engage-Daten veröffentlichen möchten, senden Sie eine POST-Anfrage an die publishContinuationCluster API. Verwenden Sie dazu die folgende Syntax.

https://tvvideodiscovery.googleapis.com/v1/packages/{package_name}/accounts/{account_id}/profiles/{profile_id}/publishContinuationCluster

Wobei:

  • package_name: Der Paketname des Media-Anbieters
  • accountId: Die eindeutige ID für das Konto des Nutzers in Ihrem System. Sie muss mit der accountId übereinstimmen, die im gerätebasierten Pfad verwendet wird.
  • profileId: Die eindeutige ID für das Profil des Nutzers im Konto in Ihrem System. Sie muss mit der `profileId` übereinstimmen, die im gerätebasierten Pfad verwendet wird.

Die URL für das Konto ohne Profil lautet:

https://tvvideodiscovery.googleapis.com/v1/packages/{package_name}/accounts/{account_id}/publishContinuationCluster

Die Nutzlast für die Anfrage wird im Feld entities dargestellt. entities steht für eine Liste von Inhaltselementen, die entweder MovieEntity oder TVEpisodeEntity sein können. Dieses Feld ist erforderlich.

Anfragetext

Feld

Typ

Erforderlich

Beschreibung

entities

Liste von MediaEntity-Objekten

Ja

Liste von Inhaltselementen mit maximal 5 Elementen Nur die ersten fünf Elemente werden beibehalten, die übrigen werden gelöscht. Eine leere Liste ist zulässig, um anzugeben, dass der Nutzer alle Elemente angesehen hat.

Das Feld entities enthält einzelne movieEntity und tvEpisodeEntity.

Feld

Typ

Erforderlich

Beschreibung

movieEntity

MovieEntity

Ja

Ein Objekt, das einen Film im ContinuationCluster darstellt

tvEpisodeEntity

TvEpisodeEntity

Ja

Ein Objekt, das eine Folge im ContinuationCluster darstellt

Jedes Objekt im Array „entities“ muss einer der verfügbaren MediaEntity-Typen sein nämlich MovieEntity und TvEpisodeEntity,zusammen mit allgemeinen und typspezifischen Feldern.

Das folgende Code-Snippet zeigt die Nutzlast des Anfragetexts für die publishContinuationCluster API.

{
  "entities": [
    {
      "movieEntity": {
        "watch_next_type": "WATCH_NEXT_TYPE_CONTINUE",
        "name": "Movie1",
        "platform_specific_playback_uris": [
          "https://www.example.com/entity_uri_for_android",
          "https://www.example.com/entity_uri_for_iOS"
        ],
        "poster_images": [
          "http://www.example.com/movie1_img1.png",
          "http://www.example.com/movie1_imag2.png"
        ],
        "last_engagement_time_millis": 864600000,
        "duration_millis": 5400000,
        "last_play_back_position_time_millis": 3241111
      }
    },
    {
      "tvEpisodeEntity": {
        "watch_next_type": "WATCH_NEXT_TYPE_CONTINUE",
        "name": "TV SERIES EPISODE 1",
        "platform_specific_playback_uris": [
          "https://www.example.com/entity_uri_for_android",
          "https://www.example.com/entity_uri_for_iOS"
        ],
        "poster_images": [
          "http://www.example.com/episode1_img1.png",
          "http://www.example.com/episode1_imag2.png"
        ],
        "last_engagement_time_millis": 864600000,
        "duration_millis": 1800000,
        "last_play_back_position_time_millis": 2141231,
        "episode_display_number": "1",
        "season_number": "1",
        "show_title": "title"
      }
    }
  ]
}

Engage-Daten löschen

Verwenden Sie die clearClusters API, um die Engage-Daten zu entfernen.

Wenn Sie die Daten des Fortsetzungsclusters löschen möchten, senden Sie eine POST-Anfrage an die clearClusters API. Verwenden Sie dazu die folgende Syntax.

https://tvvideodiscovery.googleapis.com/v1/packages/{package_name}/accounts/{account_id}/profiles/{profile_id}/clearClusters

Wobei:

  • package_name: Der Paketname des Media-Anbieters
  • accountId: Die eindeutige ID für das Konto des Nutzers in Ihrem System. Sie muss mit der accountId übereinstimmen, die im gerätebasierten Pfad verwendet wird.
  • profileId: Die eindeutige ID für das Profil des Nutzers im Konto in Ihrem System. Sie muss mit der `profileId` übereinstimmen, die im gerätebasierten Pfad verwendet wird.

Die Nutzlast für die clearClusters API enthält nur ein Feld, reason, das einen DeleteReason enthält, der den Grund für das Entfernen von Daten angibt.

{
  "reason": "DELETE_REASON_LOSS_OF_CONSENT"
}

Test

Nachdem Sie Daten erfolgreich gepostet haben, prüfen Sie mit einem Testnutzerkonto, ob die erwarteten Inhalte in der Zeile „Weiter ansehen“ auf Google-Zielplattformen wie Google TV und den mobilen Google TV-Apps für Android und iOS angezeigt werden.

Planen Sie bei Tests eine angemessene Verzögerung von einigen Minuten ein und halten Sie sich an die Anforderungen für das Ansehen, z. B. einen Teil eines Films ansehen oder eine Folge zu Ende ansehen. Weitere Informationen finden Sie in den Richtlinien zu „Als Nächstes ansehen“ für App-Entwickler für Details.