نمای کلی ساختار خوراک

فید Media Actions یک شی JSON است که شامل مجموعه‌ای از موجودیت‌ها است. یک موجودیت یک شی schema.org است که یک مورد را در کاتالوگ شما نشان می دهد: یک قسمت تلویزیونی، یک سریال تلویزیونی، یک فیلم، یک آهنگ، یک آلبوم و موارد دیگر.

شکل 1. ساختارهای فید Watch Actions و Listen Actions.

ساختار خوراک

Watch Actions و Listen Actions ساختارهای فید متفاوتی دارند.

Watch Actions دارای سلسله مراتب زیر است:
Listen Actions دارای سلسله مراتب زیر است:

پاکت خوراک داده

پاکت فید داده، شی سطح بالایی در فید Media Actions است. شی شامل آرایه ای از اشیاء نشانه گذاری محتوا (موجودات) است که تمام محتوای موجود در کاتالوگ شما را نشان می دهد.

یک پاکت خوراک داده از ویژگی های زیر پشتیبانی می کند:

ویژگی تایپ کنید شرح
@context URL مورد نیاز - روی http://schema.org تنظیم کنید
@type متن مورد نیاز - روی DataFeed تنظیم کنید.
dateModified زمان قرار مورد نیاز - آخرین تاریخ و زمان اصلاح شده فید، در قالب ISO 8601 (شامل منطقه زمانی).
dataFeedElement چیز مورد نیاز - موجودیت های کاتالوگ رسانه شما.

الگوی پاکت خوراک داده

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

نشانه گذاری محتوا

یک شی نشانه گذاری محتوا یک موجودیت واحد را در کاتالوگ شما نشان می دهد: یک فیلم، یک قسمت تلویزیونی، یک سریال تلویزیونی، یک آهنگ، یک آلبوم، یک ایستگاه رادیویی و غیره. شی حاوی شناسه محتوا و URL متعارف است و به توصیف محتوا از طریق کمک می کند. فراداده .

الگوی نشانه گذاری محتوا

یک شی نشانه‌گذاری محتوا می‌تواند آرایه‌ای از اشیاء نشانه‌گذاری Action داشته باشد، که به محتوا اجازه می‌دهد با چندین شی نشانه‌گذاری Action مرتبط شود. به عنوان مثال، محتوا می تواند یک شی نشانه گذاری Action متفاوت در هر منطقه داشته باشد.

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

نشانه گذاری اقدام

یک شی نشانه گذاری Action پیوند عمیقی را توصیف می کند که کاربران را به محتوا و سطح دسترسی مورد نیاز برای محتوا می برد. شیء یک ویژگی ( potentialAction ) از یک شی نشانه گذاری محتوا است.

دو راه برای تعیین محدودیت دسترسی وجود دارد:

الگوی نشانه گذاری اقدام

اگر محتوا دارای چندین پیوند عمیق باشد، یک شی نشانه گذاری Action شامل چندین شی هدف است. به عنوان مثال، پیوند عمیق محتوا برای iOS ممکن است با پیوند عمیق اندروید متفاوت باشد. همچنین، اگر محدودیت‌های دسترسی متفاوتی بر اساس مناطق و دوره‌های زمانی وجود داشته باشد، یک شی نشانه‌گذاری Action می‌تواند چندین شیء مشخصات دسترسی Action داشته باشد، یا اشیاء ارائه دهد، همانطور که در قالب‌های زیر نشان داده شده است.

الگوی شی نشانه گذاری کنش برای Watch Actions:

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

الگوی شی نشانه گذاری کنش برای Listen Actions:

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

هدف

یک شی هدف، نگاشت یک پیوند عمیق به پلتفرم های مختلف گوگل را فراهم می کند. شی یک ویژگی ( target ) از یک شی نشانه گذاری Action است.

نمونه هدف

اگر محتوا دارای چندین پیوند عمیق بر اساس پلتفرم است، چندین شی هدف ایجاد کنید تا نگاشت های مختلف را ارائه دهید. به عنوان مثال، پیوند عمیق محتوا برای Chromecast ممکن است با پیوندهای عمیق سایر پلتفرم ها متفاوت باشد، همانطور که در مثال زیر نشان داده شده است.

مثالی از یک شی هدف (اساسی):

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

مثال شی هدف با دو پیوند عمیق:

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

مشخصات دسترسی اقدام

یک شیء مشخصات دسترسی Action، نیاز دسترسی به محتوا را بر اساس منطقه و دوره زمانی توصیف می‌کند. شی یک ویژگی، actionAccessibilityRequirement ، از یک شی نشانه گذاری Action است.

category شی می تواند یکی از موارد زیر باشد:

  • nologinrequired
  • free
  • subscription

    برای توصیف جزئیات اشتراک، یک شیء اشتراک رسانه ایجاد کنید. اگر محتوا نیاز به خرید اضافی برای مشترکین دارد، از شی پیشنهاد برای تعیین قیمت استفاده کنید.

  • externalsubscription

    برای توصیف جزئیات اشتراک، یک شیء اشتراک رسانه ایجاد کنید. اگر محتوا نیاز به خرید اضافی برای مشترکین دارد، از شی پیشنهاد برای تعیین قیمت استفاده کنید.

  • rental

    از یک شیء پیشنهاد برای تعیین قیمت استفاده کنید.

  • purchase

    از یک شیء پیشنهاد برای تعیین قیمت استفاده کنید.

اشتراک رسانه

یک شیء اشتراک رسانه جزئیات اشتراک مورد نیاز برای محتوا را توصیف می کند. شیء یک ویژگی، requiresSubscription ، از یک شیء مشخصات دسترسی Action است. اگر actionAccessibilityRequirement.category subscription یا externalSubscription باشد و پیشنهاد اشتراک شما شامل چندین بسته یا سطوح باشد یا دارای پشتیبانی اضافی باشد، این مورد ضروری است. اگر اشتراک شما یک لایه است و به تمام محتوای کاتالوگ شما دسترسی می دهد، این مورد را درج نکنید.

مثال اشتراک رسانه

مثالی از یک شی اشتراک رسانه:

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

پیشنهاد

یک شیء پیشنهاد قیمت مرتبط با محتوا را توصیف می کند. شیء یک ویژگی ( expectsAcceptanceOf ) از اشیاء زیر است:

نمونه پیشنهاد کنید

Watch Actions خاصیت expectsAcceptanceOf را در شیء Action access specification مشخص می کند:

"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 را مستقیماً در شی نشانه گذاری 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"
    }
  }
}

تصویر

یک شیء تصویری تصویر مرتبط با محتوا را توصیف می کند.

الزامات تصویر به شرح زیر است:

  • برای Watch Actions، تصویری با وضوح بالا (حداقل 140x210 پیکسل) با نسبت تصویر 2:3 ارائه دهید.
    • تصویر باید با فرمت .jpg یا .png باشد.
  • برای Listen Actions، تصویری با وضوح بالا (حداقل 300x300 پیکسل) با نسبت تصویر 1x1 ارائه کنید.
    • ما 600x600 پیکسل یا بالاتر را توصیه می کنیم.
    • تصویر باید با فرمت .jpg ، .png یا .gif باشد.
  • URL تصویر باید قابل خزیدن و فهرست‌بندی باشد.
  • برای استفاده از تصویر باید حقوق داشته باشید و اجازه دهید تصویر در دستگاه‌ها و دارایی‌های Google نشان داده شود.
  • تصویر نباید حاوی موارد زیر باشد:
    • تصویر تار، پیکسلی، چرخیده یا بی کیفیت.
    • عکاسی بدون مجوز یا استوک.
    • برهنگی
    • محتوای غیر قانونی
  • وقتی MusicPlaylist به‌روزرسانی می‌کنید، تصویر آن را به‌روزرسانی کنید تا محتوای جدید را منعکس کند.

نمونه تصویر

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

نمونه های خوراک

مثال‌های زیر تفاوت در ساختار فید بین Watch Actions و Listen 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"
        }
      ]
    }
  ]
}

مثال Listen Actions

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