Feedstruktur

Der Feed „Media Actions“ ist ein JSON-Objekt, das eine Sammlung von Entitäten enthält. Eine Entität ist ein schema.org-Objekt, das ein Element in deinem Katalog darstellt, z. B. eine TV-Folge, eine TV-Serie, einen Film, einen Song oder ein Album.

Abbildung 1. Die Feedstrukturen von Anseh- und Anhöraktionen.

Feedstruktur

Wiedergabeaktionen und Wiedergabelistenaktionen haben unterschiedliche Feedstrukturen.

Anseh-Aktionen haben die folgende Hierarchie:
Anhör-Aktionen haben die folgende Hierarchie:

Datenfeed-Umschlag

Ein Datenfeed-Umschlag ist das oberste Objekt im Media-Aktionen-Feed. Das Objekt enthält ein Array von Content-Markup-Objekten (Entitäten), die alle Inhalte in Ihrem Katalog repräsentieren.

Ein Datenfeed-Envelope unterstützt die folgenden Eigenschaften:

Attribut Typ Beschreibung
@context URL Erforderlich: auf http://schema.org festgelegt
@type Text Erforderlich: Legen Sie hierfür den Wert DataFeed fest.
dateModified DateTime Erforderlich: Datum und Uhrzeit der letzten Änderung des Feeds im ISO 8601-Format (einschließlich Zeitzone).
dataFeedElement Ding Erforderlich: Die Entitäten deines Medienkatalogs.

Vorlage für Datenfeed-Umschlag

{
  "@context": "http://schema.org",
  "@type": "DataFeed",
  "dateModified": "2018-07-20T00:44:51Z",
  "dataFeedElement": [
    { <CONTENT MARKUP OBJECT 01> },
    { <CONTENT MARKUP OBJECT 02> },
    { <CONTENT MARKUP OBJECT 03> },
    ...
  ]
}

Inhalts-Markup

Ein Content-Markup-Objekt stellt eine einzelne Entität in deinem Katalog dar: einen Film, eine TV-Folge, eine TV-Serie, einen Song, ein Album, einen Radiosender usw. Das Objekt enthält die ID und kanonische URL des Inhalts und hilft, den Inhalt über metadata zu beschreiben.

Vorlage für Inhalts-Markup

Ein Inhalts-Markup-Objekt kann ein Array von Aktions-Markup-Objekten enthalten, sodass die Inhalte mehreren Aktions-Markup-Objekten zugeordnet werden können. So kann der Inhalt beispielsweise pro Region ein anderes Action-Markup-Objekt haben.

{
   "@context": ["http://schema.org", {"@language": "en"}],
   "@type": "Movie",
   "@id": "http://www.example.com/my_favorite_movie",
   "url": "http://www.example.com/my_favorite_movie",
   "name": "My Favorite Movie",
   "potentialAction": [
     { <ACTION MARKUP OBJECT 01> },
     { <ACTION MARKUP OBJECT 02> }
   ],
   ...
}

Aktions-Markup

Ein Aktions-Markup-Objekt beschreibt den Deeplink, über den Nutzer zu den Inhalten gelangen, und die für die Inhalte erforderliche Zugriffsebene. Das Objekt ist eine Property (potentialAction) eines Inhalts-Markup-Objekts.

Es gibt zwei Möglichkeiten, die Zugriffsbeschränkungen anzugeben:

Vorlage für Aktions-Markup

Wenn die Inhalte mehrere Deeplinks enthalten, enthält ein Action-Markup-Objekt mehrere Zielobjekte. So kann sich der Deeplink für iOS-Inhalte beispielsweise vom Deeplink für Android-Inhalte unterscheiden. Wenn es je nach Region und Zeitraum unterschiedliche Zugriffsbeschränkungen gibt, kann ein Aktions-Markup-Objekt mehrere Objekte für die Spezifikation des Aktionszugriffs oder Angebotsobjekte haben, wie in den folgenden Vorlagen dargestellt.

Vorlage für Action-Markup-Objekte für Smartwatch-Aktionen:

"potentialAction": {
  "@type": "WatchAction",
  "target": [
    { <TARGET OBJECT 01> },
    { <TARGET OBJECT 02> }
  ],
  "actionAccessibilityRequirement": [
    { <ACTION ACCESSIBILITY OBJECT 01> },
    { <ACTION ACCESSIBILITY OBJECT 02> }
  ]
}

Vorlage für das Action-Markup-Objekt für Anhör-Aktionen:

"potentialAction": {
  "@type": "ListenAction",
  "target": [
    { <TARGET OBJECT 01> },
    { <TARGET OBJECT 02> }
  ],
  "expectsAcceptanceOf": [
    { <OFFER OBJECT 01> },
    { <OFFER OBJECT 02> }
  ]
}

Ziel

Ein Zielobjekt dient der Zuordnung eines Deeplinks zu verschiedenen Google-Plattformen. Das Objekt ist eine Property (target) eines Aktions-Markup-Objekts.

Beispiel für ein Ziel

Wenn die Inhalte je nach Plattform mehrere Deeplinks haben, erstellen Sie mehrere Zielobjekte, um unterschiedliche Zuordnungen bereitzustellen. So kann sich der Deeplink für Chromecast beispielsweise von den Deeplinks der anderen Plattformen unterscheiden, wie im Beispiel unten gezeigt.

Beispiel für ein Zielobjekt (einfach):

"target": {
  "@type": "EntryPoint",
  "urlTemplate": "http://www.example.com/my_favorite_movie?autoplay=true",
  "actionPlatform": [
    "http://schema.org/DesktopWebPlatform",
    "http://schema.org/MobileWebPlatform",
    "http://schema.org/AndroidPlatform",
    "http://schema.org/AndroidTVPlatform",
    "http://schema.org/IOSPlatform",
    "http://schema.googleapis.com/GoogleVideoCast"
  ]
}

Beispiel für ein Zielobjekt mit zwei Deeplinks:

"target": [
  {
    "@type": "EntryPoint",
    "urlTemplate": "http://www.example.com/my_favorite_movie?autoplay=true",
    "actionPlatform": [
      "http://schema.org/DesktopWebPlatform",
      "http://schema.org/MobileWebPlatform",
      "http://schema.org/AndroidPlatform",
      "http://schema.org/AndroidTVPlatform",
      "http://schema.org/IOSPlatform"
    ]
  },
  {
    "@type": "EntryPoint",
    "urlTemplate": "http://www.example.com/cast/my_favorite_movie?autoplay=true",
    "actionPlatform": [
      "http://schema.googleapis.com/GoogleVideoCast"
    ]
  }
]

Spezifikation für den Aktionszugriff

Ein Objekt mit einer Zugriffsspezifikation für Aktionen beschreibt die Zugriffsanforderungen für die Inhalte basierend auf der Region und dem Zeitraum. Das Objekt ist eine Property (actionAccessibilityRequirement) eines Aktions-Markup-Objekts.

category des Objekts kann Folgendes sein:

  • nologinrequired
  • free
  • subscription

    Erstelle ein Medienaboobjekt, um die Details des Abos zu beschreiben. Wenn für die Inhalte ein zusätzlicher Kauf für die Abonnenten erforderlich ist, verwende ein Angebotsobjekt, um den Preis anzugeben.

  • externalsubscription

    Erstelle ein Medienaboobjekt, um die Details des Abos zu beschreiben. Wenn für die Inhalte ein zusätzlicher Kauf für die Abonnenten erforderlich ist, verwende ein Angebotsobjekt, um den Preis anzugeben.

  • rental

    Verwenden Sie ein Angebotsobjekt, um den Preis anzugeben.

  • purchase

    Verwenden Sie ein Angebotsobjekt, um den Preis anzugeben.

Medienabo

Ein Medienaboobjekt beschreibt die Details des für Inhalte erforderlichen Abos. Das Objekt ist eine Property (requiresSubscription) eines Objekts für die Spezifikation des Aktionszugriffs. Das ist erforderlich, wenn actionAccessibilityRequirement.category subscription oder externalSubscription ist und Ihr Aboangebot mehrere Pakete oder Stufen umfasst oder Add-ons unterstützt. Füge diese Informationen nicht hinzu, wenn dein Abo nur eine Stufe hat und Zugriff auf alle Inhalte in deinem Katalog gewährt.

Beispiel für ein Medienabo

Beispiel für ein Objekt für ein Medienabo:

"requiresSubscription": {
  "@type": "MediaSubscription",
  "@id": "http://www.example.com/premium_subscription",
  "name": "Example Premium",
  "sameAs": "http://www.example.com/premium_subscription"
}

Angebot

Ein Angebotsobjekt beschreibt den mit Inhalten verbundenen Preis. Das Objekt ist eine Property (expectsAcceptanceOf) der folgenden Objekte:

Beispiel für ein Angebot

Bei Wiedergabeaktionen wird das Attribut expectsAcceptanceOf im Objekt für die Spezifikation des Aktionszugriffs angegeben:

"potentialAction":{
  "@type":"WatchAction",
  "target":{
    "@type":"EntryPoint",
    "urlTemplate":"http://www.example.com/my_favorite_movie?autoplay=true",
    "actionPlatform":[ "http://schema.org/DesktopWebPlatform" ]
  },
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "purchase",
    "availabilityStarts": "2019-01-01T00:00Z",
    "availabilityEnds": "2019-12-31T00:00Z",
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    },
    "expectsAcceptanceOf": {
      "@type": "Offer",
      "price": 7.99,
      "priceCurrency": "USD",
      "seller": {
        "@type": "Organization",
        "name": "My example seller"
      }
    }
  }
}

Bei „Listen-Aktionen“ wird die expectsAcceptanceOf-Property direkt im Action-Markup-Objekt angegeben:

"potentialAction":{
  "@type":"ListenAction",
  "target":{
    "@type":"EntryPoint",
    "urlTemplate":"http://www.example.com/playlist/top_pop_songs?autoplay=true",
    "actionPlatform":[ "http://schema.org/DesktopWebPlatform" ]
  },
  "expectsAcceptanceOf":{
    "@type": "Offer",
    "eligibleRegion": {
      "@type":"Country",
      "name":"US"
    },
    "category": "subscription",
    "name": "Example Music",
    "price": 9.99,
    "priceCurrency": "USD",
    "seller": {
      "@type": "Organization",
      "name": "My example seller",
      "sameAs": "http://www.example.com"
    }
  }
}

Bild

Ein Bildobjekt beschreibt das Bild, das mit Inhalten verknüpft ist.

Das Bild muss folgende Anforderungen erfüllen:

  • Verwenden Sie für Wiedergabeaktionen ein hochauflösendes Bild (mindestens 140 × 210 Pixel) mit einem Seitenverhältnis von 2:3.
    • Das Bild muss im Format .jpg oder .png vorliegen.
  • Verwenden Sie für Aktionen vom Typ „Anhören“ ein hochauflösendes Bild (mindestens 300 × 300 Pixel) mit einem Seitenverhältnis von 1:1.
    • Wir empfehlen eine Größe von mindestens 600 x 600 Pixeln.
    • Das Bild muss das Format .jpg, .png oder .gif haben.
  • Die URL des Bildes muss gecrawlt und indexiert werden können.
  • Sie müssen die Rechte zur Verwendung des Bildes haben und zulassen, dass das Bild auf Google-Geräten und -Properties angezeigt wird.
  • Das Bild darf Folgendes nicht enthalten:
    • Unscharfe, verpixelte, gedrehte oder Bilder mit schlechter Qualität
    • Nicht lizenzierte oder Stockfotos
    • Nacktheit
    • Illegale Inhalte
  • Wenn Sie MusicPlaylist aktualisieren, aktualisieren Sie das Bild, damit es den neuen Inhalten entspricht.

Beispielbild

"image": {
  "@type": "ImageObject",
  "contentUrl" : "http://www.example.com/artist/my_favorite_artist/1x1/photo1.jpg",
  "dateModified" : "2019-01-05T22:11:33+00:00",
  "regionsAllowed" : ["US","UK","MX"]
}

Feedbeispiele

Die folgenden Beispiele zeigen den Unterschied in der Feedstruktur zwischen Wiedergabeaktionen und Wiedergabeaktionen.

Beispiel für Watch Actions

{
  "@context": "http://schema.org",
  "@type": "DataFeed",
  "dateModified": "2018-07-20T00:44:51Z",
  "dataFeedElement": [
    {
      "@context": ["http://schema.org", {"@language": "en"}],
      "@type": "Movie",
      "@id": "http://www.example.com/my_favorite_movie",
      "url": "http://www.example.com/my_favorite_movie",
      "name": "My Favorite Movie",
      "potentialAction": {
        "@type": "WatchAction",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "http://www.example.com/my_favorite_movie?autoplay=true",
          "inLanguage": "en",
          "actionPlatform": [
            "http://schema.org/DesktopWebPlatform",
            "http://schema.org/MobileWebPlatform",
            "http://schema.org/AndroidPlatform",
            "http://schema.org/AndroidTVPlatform",
            "http://schema.org/IOSPlatform",
            "http://schema.googleapis.com/GoogleVideoCast"
          ]
        },
         "actionAccessibilityRequirement": {
           "@type": "ActionAccessSpecification",
           "category": "subscription",
           "availabilityStarts": "2018-07-21T10:35:29Z",
           "availabilityEnds": "2019-10-21T10:35:29Z",
           "eligibleRegion": [
             {
                "@type": "Country",
                "name": "US"
             },
             {
                "@type": "Country",
                "name": "CA"
             }
           ],
        }
      },
      "sameAs": "https://en.wikipedia.org/wiki/my_favorite_movie",
      "releasedEvent": {
        "@type": "PublicationEvent",
        "startDate": "2008-01-20",
        "location": {
          "@type": "Country",
          "name": "US"
        }
      },
      "description": "This is my favorite movie.",
      "actor": [
        {
          "@type": "Person",
          "name": "John Doe",
          "sameAs": "https://en.wikipedia.org/wiki/John_Doe"
        },
        {
          "@type": "Person",
          "name": "Jane Doe",
          "sameAs": "https://en.wikipedia.org/wiki/Jane_Doe"
        }
      ],
      "identifier": [
        {
          "@type": "PropertyValue",
          "propertyID": "IMDB_ID",
          "value":  "tt0123456"
        }
      ]
    }
  ]
}

Beispiel für Anhör-Aktionen

{
  "@context": "http://schema.org",
  "@type": "DataFeed",
  "dateModified": "2018-07-20T00:44:51Z",
  "dataFeedElement": [
    {
      "@context":"http://schema.googleapis.com/",
      "@type":"MusicGroup",
      "@id":"http://www.example.com/artist/my_favorite_artist/",
      "url":"http://www.example.com/artist/my_favorite_artist/",
      "name":"My Favorite Artist",
      "sameAs":"https://en.wikipedia.org/wiki/my_favorite_artist",
      "description":"This is my favorite pop music artist.",
      "potentialAction": {
        "@type":"ListenAction",
        "target": {
          "@type":"EntryPoint",
          "urlTemplate":"http://www.example.com/artist/my_favorite_artist?autoplay=true",
          "actionPlatform":[
            "http://schema.org/DesktopWebPlatform",
            "http://schema.org/IOSPlatform",
            "http://schema.org/AndroidPlatform",
            "http://schema.org/AndroidTVPlatform",
            "http://schema.googleapis.com/GoogleAudioCast",
            "http://schema.googleapis.com/GoogleVideoCast"
          ]
        },
        "expectsAcceptanceOf":{
          "@type":"Offer",
          "category":"subscription",
          "eligibleRegion": {
            "@type":"Country",
            "name":"US"
          },
          "price": 8.99,
          "priceCurrency": "USD"
        }
      },
      "subjectOf": {
        "@type":"MusicPlaylist",
        "@id":"http://www.example.com/artist_mix/my_favorite_artist/",
        "url":"http://www.example.com/artist_mix/my_favorite_artist/",
        "name":"My Favorite Artist Mix",
        "description":"A mix of music similar to My Favorite Artist",
        "potentialAction":{
          "@type":"ListenAction",
          "target": {
            "@type":"EntryPoint",
            "urlTemplate":"http://www.example.com/artist_mix/my_favorite_artist?autoplay=true",
            "actionPlatform":[
              "http://schema.org/DesktopWebPlatform",
              "http://schema.org/IOSPlatform",
              "http://schema.org/AndroidPlatform",
              "http://schema.org/AndroidTVPlatform",
              "http://schema.googleapis.com/GoogleAudioCast",
              "http://schema.googleapis.com/GoogleVideoCast"
            ]
          },
          "expectsAcceptanceOf":{
            "@type":"Offer",
            "category":"free",
            "eligibleRegion": {
              "@type":"Country",
              "name":"US"
            }
          }
        }
      }
    }
  ]
}