Panoramica della struttura del feed

Il feed Azioni multimediali è un oggetto JSON che contiene un insieme di entità. Un'entità è un oggetto schema.org che rappresenta un elemento nel tuo catalogo: una puntata TV, una serie TV, un film, una canzone, un album e altro ancora.

Figura 1. Le strutture dei feed delle Azioni di visualizzazione e delle Azioni di ascolto.

Struttura del feed

Le azioni di visualizzazione e quelle di ascolto hanno strutture dei feed diverse.

Le azioni di visualizzazione hanno la seguente gerarchia:
Le azioni di ascolto hanno la seguente gerarchia:

Busta del feed di dati

Una busta del feed di dati è l'oggetto di primo livello nel feed Azioni multimediali. L'oggetto contiene un array di oggetti di markup dei contenuti (entità) che rappresentano tutti i contenuti del catalogo.

Una busta del feed di dati supporta le seguenti proprietà:

Proprietà Tipo Descrizione
@context URL Obbligatorio - Impostato su http://schema.org
@type Testo Obbligatorio: imposta su DataFeed.
dateModified DateTime Obbligatorio: la data e l'ora dell'ultima modifica del feed, in formato ISO 8601 (incluso il fuso orario).
dataFeedElement Cosa Obbligatorio: le entità del tuo catalogo di contenuti multimediali.

Modello busta del feed di dati

{
  "@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> },
    ...
  ]
}

Markup dei contenuti

Un oggetto di markup dei contenuti rappresenta una singola entità nel tuo catalogo: un film, una puntata TV, una serie TV, un brano, un album, una stazione radio e così via. L'oggetto contiene l'identificatore e l'URL canonico dei contenuti e aiuta a descrivere i contenuti tramite i metadati.

Modello di markup dei contenuti

Un oggetto di markup dei contenuti può avere un array di oggetti di markup Azione, che consente di associare i contenuti a più oggetti di markup Action. Ad esempio, i contenuti possono avere un oggetto di markup Action diverso per ogni regione.

{
   "@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> }
   ],
   ...
}

Markup dell'azione

Un oggetto di markup Action descrive il link diretto che indirizza gli utenti ai contenuti e il livello di accesso richiesto per i contenuti. L'oggetto è una proprietà (potentialAction) di un oggetto di markup dei contenuti.

Esistono due modi per specificare le limitazioni di accesso:

Modello di markup dell'azione

Se i contenuti hanno più link diretti, un oggetto di markup Azione include più oggetti target. Ad esempio, il link diretto dei contenuti per iOS potrebbe essere diverso dal link diretto per Android. Inoltre, se sono presenti restrizioni di accesso diverse in base alle regioni e ai periodi di tempo, un oggetto di markup Action può avere più oggetti di specifica di accesso all'azione, oppure oggetti offer, come illustrato nei modelli seguenti.

Modello di oggetto di markup delle azioni per le azioni di visualizzazione:

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

Modello di oggetto di markup delle azioni per le azioni di ascolto:

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

Target

Un oggetto target fornisce la mappatura di un link diretto a varie piattaforme Google. L'oggetto è una proprietà (target) di un oggetto di markup Azione.

Esempio di targeting

Se i contenuti hanno più link diretti basati sulle piattaforme, crea più oggetti target per fornire mappature diverse. Ad esempio, il link diretto dei contenuti per Chromecast potrebbe essere diverso da quello delle altre piattaforme i link diretti, come mostrato nell'esempio riportato di seguito.

Esempio di oggetto target (di base):

"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"
  ]
}

Esempio di oggetto target con due link diretti:

"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"
    ]
  }
]

Specifica di Action Access

Un oggetto specifica di accesso all'azione descrive il requisito di accesso per in base alla regione e al periodo di tempo. L'oggetto è una proprietà, actionAccessibilityRequirement, di un Oggetto markup azione:

Il valore category dell'oggetto può essere:

Abbonamento a contenuti multimediali

Un oggetto abbonamento multimediale descrive i dettagli dell'abbonamento richiesto per i contenuti. L'oggetto è una proprietà, requiresSubscription, di un Oggetto specifica dell'accesso alle azioni. Questo è obbligatorio se actionAccessibilityRequirement.category è subscription o externalSubscription e la tua offerta di abbonamento include più di pacchetti o livelli oppure prevede l'assistenza di componenti aggiuntivi. Non includerlo se l'abbonamento è a un livello e dà accesso a tutti i contenuti del catalogo.

Esempio di abbonamento a contenuti multimediali

Esempio di oggetto abbonamento a contenuti multimediali:

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

Offerta

Un oggetto offer descrive il prezzo associato ai contenuti. L'oggetto è una proprietà (expectsAcceptanceOf) dei seguenti oggetti:

Esempio di offerta

Le azioni di visualizzazione specificano la proprietà expectsAcceptanceOf nel Oggetto specifica dell'accesso alle azioni:

"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"
      }
    }
  }
}

Le azioni di ascolto specificano la proprietà expectsAcceptanceOf direttamente nell'oggetto di markup dell'azione:

"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"
    }
  }
}

Immagine

Un oggetto immagine descrive l'immagine associata ai contenuti.

I requisiti per l'immagine sono i seguenti:

  • Per le azioni di visualizzazione, fornisci un'immagine ad alta risoluzione (minimo 140 x 210 pixel) con proporzioni 2:3.
    • L'immagine deve essere nel formato .jpg o .png.
  • Per le Azioni di ascolto, fornisci un'immagine ad alta risoluzione (minimo 300 x 300 pixel) con proporzioni 1 x 1.
    • Le dimensioni consigliate sono 600 x 600 pixel o superiori.
    • L'immagine deve essere nel formato .jpg, .png o .gif.
  • L'URL dell'immagine deve poter essere sottoposto a scansione e indicizzazione.
  • Devi disporre dei diritti per utilizzare l'immagine e consentirne la visualizzazione sui dispositivi e sulle proprietà Google.
  • L'immagine non deve contenere quanto segue:
    • Immagine sfocata, pixelata, ruotata o di scarsa qualità.
    • Foto di stock o senza licenza.
    • Nudità.
    • Contenuti illegali.
  • Quando aggiorni MusicPlaylist, aggiorna la relativa immagine in modo che riflettano i nuovi contenuti.

Esempio di immagine

"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"]
}

Esempi di feed

I seguenti esempi mostrano la differenza nella struttura del feed tra Azioni sull'orologio e Azioni di ascolto.

Esempio di Azioni sull'orologio

{
  "@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"
        }
      ]
    }
  ]
}

Esempio di azioni di ascolto

{
  "@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"
            }
          }
        }
      }
    }
  ]
}