Panoramica della struttura del feed

Il feed Azioni multimediali è un oggetto JSON che contiene una raccolta di entità. Un'entità è un oggetto schema.org che rappresenta un elemento del tuo catalogo: una puntata TV, una serie TV, un film, un brano, un album e così via.

Figura 1. Le strutture dei feed di WatchActions e ListenActions.

Struttura del feed

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

Le azioni relative alla visione hanno la seguente gerarchia:
Le azioni di ascolto hanno la seguente gerarchia:

Intestazione del feed di dati

Un'intestazione 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 tuo catalogo.

Un'intestazione del feed di dati supporta le seguenti proprietà:

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

Modello di intestazione 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 di un programma 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 descriverli tramite i metadata.

Modello di markup dei contenuti

Un oggetto di markup dei contenuti può avere un array di oggetti di markup dell'azione, che consente di associare i contenuti a più oggetti di markup dell'azione. Ad esempio, i contenuti possono avere un oggetto markup di azioni diverso per 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 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 markup di azioni include più oggetti target. Ad esempio, il link diretto dei contenuti per iOS potrebbe essere diverso da quello per Android. Inoltre, se esistono limitazioni di accesso diverse in base alle regioni e ai periodi di tempo, un oggetto di markup dell'azione può avere più oggetti di specifica di accesso all'azione o oggetti di offerta, come mostrato nei modelli di seguito.

Modello di oggetto di markup di azioni per le azioni sullo smartwatch:

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

Modello di oggetto di markup di 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 dell'azione.

Esempio di target

Se i contenuti hanno più link diretti in base alle 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, come mostrato nell'esempio seguente.

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 dell'accesso alle azioni

Un oggetto Specifica dell'accesso alle azioni descrive il requisito di accesso per i contenuti in base alla regione e al periodo di tempo. L'oggetto è una proprietà, actionAccessibilityRequirement, di un oggetto di markup dell'azione.

category dell'oggetto può essere uno dei seguenti:

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 di specifica di accesso alle azioni. Questo valore è obbligatorio se actionAccessibilityRequirement.category è subscription o externalSubscription e l'offerta in abbonamento include più pacchetti o livelli oppure supporta componenti aggiuntivi. Non includerla se il tuo abbonamento è a un livello e consente l'accesso a tutti i contenuti del tuo catalogo.

Esempio di abbonamento a contenuti multimediali

Esempio di oggetto di abbonamento ai 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 offerta descrive il prezzo associato ai contenuti. L'oggetto è una proprietà (expectsAcceptanceOf) dei seguenti oggetti:

Esempio di offerta

Azioni su Google TV specificano la proprietà expectsAcceptanceOf nell'oggetto della specifica di 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 del markup di Action:

"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 sullo smartwatch, fornisci un'immagine ad alta risoluzione (minimo 140 x 210 pixel) con proporzioni 2:3.
    • L'immagine deve essere in 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.
    • Consigliamo dimensioni minime pari a 600 x 600 pixel.
    • L'immagine deve essere in formato .jpg, .png o .gif.
  • L'URL dell'immagine deve essere scansionabile e indicizzabile.
  • Devi disporre dei diritti per utilizzare l'immagine e consentirne la visualizzazione su dispositivi e proprietà di Google.
  • L'immagine non deve contenere quanto segue:
    • Immagine sfocata, pixelata, ruotata o di scarsa qualità.
    • Fotografie senza licenza o di stock.
    • Nudità.
    • Contenuti illegali.
  • Quando aggiorni MusicPlaylist, aggiorna l'immagine in modo che rifletta 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

Gli esempi riportati di seguito mostrano la differenza nella struttura del feed tra le azioni di visualizzazione e le azioni di ascolto.

Esempio di azioni di visualizzazione

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