Feed yapısına genel bakış

Medya İşlemleri feed'i, öğe koleksiyonunu içeren bir JSON nesnesidir. Varlık, kataloğunuzdaki bir öğeyi (TV bölümü, TV dizisi, film, şarkı, albüm vb.) temsil eden bir schema.org nesnesidir.

Şekil 1. İzleme İşlemleri ve Dinleme İşlemleri'nin feed yapıları.

Feed yapısı

İzleme İşlemleri ve Dinleme İşlemleri farklı feed yapılarına sahiptir.

İzleme İşlemleri aşağıdaki hiyerarşiye sahiptir:
Dinleme işlemleri aşağıdaki hiyerarşiye sahiptir:

Veri feed'i zarfı

Veri feed'i zarfı, Medya İşlemleri feed'indeki en üst düzey nesnedir. Nesne, kataloğunuzdaki tüm içeriği temsil eden bir içerik işaretleme nesneleri (varlıklar) dizisi içerir.

Veri feed'i zarfı aşağıdaki özellikleri destekler:

Özellik Tür Açıklama
@context URL Zorunlu: http://schema.org olarak ayarlayın
@type Metin Zorunlu: DataFeed olarak ayarlayın.
dateModified DateTime Gerekli: Feed'in ISO 8601 biçiminde (saat dilimi dahil) son değiştirilme tarihi ve saati.
dataFeedElement Thing alt türü Zorunlu: Medya kataloğunuzun varlıkları.

Veri feed'i zarf şablonu

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

İçerik işaretleme

İçerik işaretleme nesnesi, kataloğunuzdaki tek bir varlığı (film, TV bölümü, TV dizisi, şarkı, albüm, radyo istasyonu vb.) temsil eder. Nesne, içeriğin tanımlayıcısını ve standart URL'sini içerir ve meta veriler aracılığıyla içeriğin açıklanmasına yardımcı olur.

İçerik işaretleme şablonu

Bir içerik işaretleme nesnesi, içeriğin birden fazla İşlem işaretleme nesnesiyle ilişkilendirilmesine olanak tanıyan bir İşlem işaretleme nesneleri dizisine sahip olabilir. Örneğin, içeriğin her bölge için farklı bir İşlem işaretleme nesnesi olabilir.

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

İşlem işaretleme

İşlem işaretleme nesnesi, kullanıcıları içeriğe ve içerik için gereken erişim düzeyine yönlendiren derin bağlantıyı açıklar. Nesne, içerik işaretleme nesnesinin özelliğidir (potentialAction).

Erişim kısıtlamalarını belirtmenin iki yolu vardır:

İşlem işaretleme şablonu

İçerikte birden fazla derin bağlantı varsa İşlem işaretleme nesnesi birden çok hedef nesne içerir. Örneğin, içeriğin iOS için derin bağlantısı, Android derin bağlantısından farklı olabilir. Ayrıca, bölgelere ve zaman aralıklarına bağlı olarak farklı erişim kısıtlamaları varsa bir İşlem işaretleme nesnesi, aşağıdaki şablonlarda gösterildiği gibi birden fazla İşlem erişim spesifikasyonu nesnesi veya teklif nesnesine sahip olabilir.

İzleme İşlemleri için işlem işaretleme nesnesi şablonu:

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

Dinleme İşlemleri için işlem işaretleme nesnesi şablonu:

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

Hedef

Hedef nesne, bir derin bağlantının çeşitli Google platformları ile eşlenmesini sağlar. Nesne, bir İşlem işaretleme nesnesinin özelliğidir (target).

Hedef örneği

İçerikte platformlara bağlı olarak birden fazla derin bağlantı varsa farklı eşlemeler sağlamak için birden çok hedef nesne oluşturun. Örneğin, içeriğin Chromecast için derin bağlantısı diğer platformların derin bağlantıları eklemeniz gerekir.

Hedef nesne örneği (temel):

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

İki derin bağlantılı hedef nesne örneği:

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

İşlem erişimi teknik özellikleri

Bir "İşlem erişim spesifikasyonu" nesnesi, bölgeye ve döneme göre belirli içerikler oluşturabilirsiniz. Nesne bir özellikse actionAccessibilityRequirement, İşlem işaretleme nesnesi.

Nesnenin category özelliği aşağıdakilerden herhangi biri olabilir:

Medya aboneliği

Bir medya aboneliği nesnesi, gerekli aboneliğin ayrıntılarını açıklar tercih eder. Nesne, requiresSubscription özelliği İşlem erişim spesifikasyonu nesnesi. Bu actionAccessibilityRequirement.category, subscription veya externalSubscription ve abonelik teklifinizde birden fazla ya da eklenti desteğine sahip olmamalıdır. Abonelik tek katmanlıdır ve kataloğunuzdaki tüm içeriklere erişim sunar.

Medya aboneliği örneği

Medya aboneliği nesnesi örneği:

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

Teklif

Teklif nesnesi, içerikle ilişkili fiyatı açıklar. Nesne şu nesnelerin özelliğidir (expectsAcceptanceOf):

Teklif örneği

İzleme İşlemleri, expectsAcceptanceOf özelliğini İşlem erişim spesifikasyonu nesnesi:

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

Listen Actions, expectsAcceptanceOf özelliğini doğrudan İşlem işaretleme nesnesinde belirtir:

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

Resim

Resim nesnesi, içerikle ilişkili resmi tanımlar.

Resim koşulları şunlardır:

  • İzleme İşlemleri için 2:3 en boy oranına sahip yüksek çözünürlüklü bir resim (en az 140x210 piksel) sağlayın.
    • Resim .jpg veya .png biçiminde olmalıdır.
  • Dinleme İşlemleri için 1x1 en boy oranına sahip yüksek çözünürlüklü bir resim (en az 300x300 piksel) sağlayın.
    • 600x600 piksel veya daha büyük boyutlar önerilir.
    • Resim .jpg, .png veya .gif biçiminde olmalıdır.
  • Resmin URL'si taranabilir ve dizine eklenebilir olmalıdır.
  • Resmi kullanma hakkına sahip olmanız ve resmin Google cihazları ile mülklerinde gösterilmesine izin vermeniz gerekir.
  • Resim şunları içermemelidir:
    • Bulanık, piksellenmiş, döndürülmüş veya düşük kaliteli resim.
    • Lisanssız veya stok fotoğraf.
    • Çıplaklık.
    • Yasa dışı içerik.
  • MusicPlaylist uygulamasını güncellediğinizde görselini, yeni içeriği yansıtacak şekilde güncelleyin.

Resim örneği

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

Feed örnekleri

Aşağıdaki örnekler, feed yapısı arasındaki farkın nasıl ortaya çıktığını gösterir: İzleme İşlemleri ve Dinleme İşlemleri.

İzleme İşlemleri örneği

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

Dinleme İşlemleri örneği

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