コンテンツの準備

オファーとコンテンツ階層の設定

コンテンツをApple TVアプリで配信できるようにするためには、現在が対象期間となっている有効なオファーがコンテンツアイテムに関連付けられている必要があります。オファーの内容はアベイラビリティフィードで記述します。またオファーには、それぞれ対応するカタログアイテムが必要となります。オファーの記述方法の全容は「UMCカタログおよびアベイラビリティデータインターフェイス仕様」をご覧ください。

アベイラビリティフィードに適用されるオファーは、提供するサービスの種類によって異なります。

  • VODオファー<offer>:VOD サービスで提供されるコンテンツのオファー期間と制限について示す際に、無料、サブスクリプションなどオファーのタイプを指定するために使用します。なおVODオファーは、コンテンツタイプがテレビ番組エピソードと映画の場合のみに使用します。
  • リニアオファー<linearOffer>:リニアサービスとして提供される生中継のコンテンツに対し、オファー期間と制限を示す際に使用します。
  • サービスオファー<serviceOffers>:リニアサービスで提供されるコンテンツのオファー期間と制限について示す際に、無料、サブスクリプションなどオファーのタイプを指定するために使用します。これはサービス全体に適用されます。

オファーのタイプは、視聴者のアクセス権を示すもので複数あります。

  • freeは、アカウント登録やサブスクリプション登録が必要なく、すべてのユーザがアクセスできるアイテムに使用します。
  • accountは、無料ではあるものの、アクセスにアカウント登録が必要なアイテムに使用します(ビデオアプリ統合のアイテムのみが該当)。
  • subscriptionは、アクセスするにはサービスへのサブスクリプション登録が必要なアイテムに使用します。
  • coming_soonは、今後公開予定のもので、公開に先立ち、検索のみ可能とするアイテムに使用します。

現在coming_soonは、Appleの承認を受けたAppleサブスクリプションビデオサービスのVODコンテンツのみ、かつテレビ番組と映画のみに使用できます。なおテレビ番組については、coming_soon以外のオファータイプは使用できません。これは、各テレビ番組内のテレビ番組エピソードにオファータイプが適用されると、各番組全体に適用されたアベイラビリティが無効となるためです。

一つのコンテンツアイテムに対し、同一のオファータイプは一つのみ使用できますが、異なるオファータイプであれば複数使用できます。たとえば、すでにsubscriptionのオファータイプが適用されているアイテムを、短期間のみ全ユーザが視聴可能とする場合、freeのオファータイプを追加で適用できます。

<item contentType="tv_episode" contentId="EPI10054611" catalogId="com.catalog.acme">
         <pubDate>2016-06-29T10:13:10+01:00</pubDate>
         <locators>
            <locator platform="web" action="open" url="http://www.acme.com/open/10054611"/>
            <locator platform="web" action="play" url="http://www.acme.com/play/10054611"/>
            <locator platform="atv" action="open" url="myATVApp://media/open/10054611"/>
            <locator platform="atv" action="play" url="myATVApp://media/play/10054611"/>
            <locator platform="ios" action="open" url="myApp://media/open/10054611"/>
            <locator platform="ios" action="play" url="myApp://media/play/10054611"/>
         </locators>
         <playableProperties>
            <closedCaptioning>en-US</closedCaptioning>
            <audioFormats>DD5.1,DD7.1,AAC</audioFormats>
            <primaryLocale>en-US</primaryLocale>
            <videoQuality>uhd</videoQuality>
         </playableProperties>
         <offers>
            <offer>
               <offeringType>subscription</offeringType>
               <windowStart>2020-06-30T10:00:00+01:00</windowStart>
               <windowEnd>2045-10-13T10:00:00+01:00</windowEnd>
            </offer>
            <offer>
               <offeringType>free</offeringType>
               <windowStart>2022-07-01T10:00:00+01:00</windowStart>
               <windowEnd>2022-07-30T10:00:00+01:00</windowEnd>
            </offer>
         </offers>

コンテンツオファーへの階層の適用 

階層は、ビデオアプリ統合のコンテンツのみでサポートされます。Appleサブスクリプションビデオサービスでは使用できません。階層型のサブスクリプションモデルは、UMCアベイラビリティ仕様の3.0以降でサポートされるもので、要素としてavailabilityTypeを使用します。階層の情報は、サブスクリプション登録用のAPI経由でAppleに提供いただきクライアントアプリ側に設定するだけでなく、サービスのアベイラビリティフィードの<offer>ブロック内でも、他の関連アイテムとともに記述する必要があります。

ユーザによるアドオンの新規購入、アドオンの削除、サブスクリプションのキャンセル、アプリからのサインアウトなど、ユーザエンタイトルメントに変更があった場合のサブスクリプション更新の責任は、デベロッパ側にあります。サブスクリプションに階層をつける場合は、アクセスレベルや階層、さらに請求先住所も必要な場合は設定してください。

請求先住所を示すbillingIdentifierは、コンテンツの制限を地域別とする場合にのみ使用します。たとえば、ライブスポーツのコンテンツで、同一国内の特定地域にいる視聴者のみに配信する場合が該当します。通常これは、ハッシュ化された郵便番号となります。

階層とアクセスレベルの値は、アベイラビリティフィードで記述した値と大文字小文字も含め、完全に一致している必要があります。

subscription.accessLevel = .paid
subscription.tierIdentifiers= [“Tier1”, “Tier2”]
subscription.billingIdentifier= hashedBillingIdentifier

詳細は、VSSubscriptionヘッダーファイルや、あるいはサブスクリプションのtierIdentifiersに関する内容を直接ご確認ください。また、「Apple TVアプリおよびユニバーサルサーチガイド」の「Apple TVアプリおよびユニバーサルサーチのAPIの実装」セクションや、「UMCカタログおよびアベイラビリティデータインターフェイス仕様」の「制限事項のスキーマ定義」セクションも合わせてご確認ください。