コンテンツのプラットフォーム固有のディープリンクを識別する

ユーザーがコンテンツのメディア アクションをクリックすると(たとえば、Google 検索で該当するアイコンをクリックすると)、コンテンツのディープリンクに基づいてアプリまたはプラットフォームのコンテンツに直接誘導されます。

ディープリンクの要件は次のとおりです。

  • ターゲット オブジェクトurlTemplate にディープリンクを指定する必要があります。
  • ディープリンクは、指定されたすべてのプラットフォームで対象のコンテンツを開く必要があります。
  • ディープリンクには、パラメータ(&)またはアンカータグ(#)を含めることができます。
    • 自動再生がデフォルトで有効になっていない場合は、&autoplay=true などのパラメータをディープリンクに追加して、アプリまたはプラットフォームで自動再生機能を有効にすることをおすすめします。

@idurlurlTemplate の例:

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

次の疑似コードは、ユーザーが再生を開始したときのデフォルトの動作を表しています。

if your app is installed
  open app and initiate playback
elseif your website supports playback
  open your website and initiate playback
else
  take user to your app's install page on the Play or App store and then
  initiate playback after your app is installed

目的の再生動作を実現するには、次のプラットフォーム固有の要件に準拠してください。

iOS
ユニバーサル リンクを使用する必要があります。
Android と Android TV
Android アプリリンクまたはカスタム スキーム リンクを使用できます。

Android と Android TV では、カスタム スキーム リンクを使用することもできます。アプリの package_id をカスタム スキーム URI に含める必要があります。これにより、アプリがインストールされていない場合は、ユーザーが Google Play ストアのアプリのページに移動します。したがって、メディア アクションで使用できるカスタム スキーム形式は、次の URI 形式のみです。

android-app://{package_id}/{scheme}/{path}

次に例を示します。

android-app://com.partner.mynetworkapp/mynetwork/play?series=20114&title=21141&media=e90c89fa4

詳しくは、仕様の全文をご覧ください。

intent://{package_id}/{scheme}/{path}

次に例を示します。

intent://com.partner.mynetworkapp/mynetwork/play?series=20114&title=21141&media=e90c89fa4

次の例のような他の URI 形式は、メディア アクションのカスタム スキーム リンクとして使用できません。

scheme://{path}

次に例を示します。

mynetwork://play?series=20114&title=21141&media=e90c89fa4

ベスト プラクティス

アプリがインストールされておらず、ウェブプレーヤーもない場合は、ユーザーを Android ストアまたは App Store に自動的にリダイレクトしてアプリをインストールするようにウェブサーバーを構成します。リダイレクトには、Firebase ダイナミック リンクまたはサードパーティのスマートリンク プラットフォームを使用します。

アプリがインストールされておらず、ウェブプレーヤーがある場合は、Android ストアまたは App Store へのリンクまたはスマートバナーを表示して、ユーザーがアプリをインストールできるようにします。以下は、実装されたスマートバナーの例です。

実装されたスマートバナーの例

次の表に、iOS、Android、AndroidTV に関連するディープリンクの要件と制限事項を示します。

iOS Android と AndroidTV
http:// または https:// 必須 モバイルウェブサイトが再生をサポートしている場合に推奨されます。
android-app:// または intent:// なし モバイルウェブサイトが再生に対応していない場合におすすめします。
foo://(任意の文字列) 許可されない 許可されない

プラットフォーム型

Google の複数のプラットフォーム(検索、アシスタント、Android TV、Chromecast)でコンテンツを確実に利用できるようにするには、次の要件に従ってください。

次の表に、メディア アクションをサポートしているプラットフォームの一覧を示します。

プラットフォーム 説明
http://schema.org/DesktopWebPlatform デスクトップ ウェブブラウザの検索プラットフォーム。
http://schema.org/MobileWebPlatform モバイル ウェブブラウザの検索プラットフォーム。
http://schema.org/AndroidPlatform Android アプリの検索および PlayGuide プラットフォーム
http://schema.org/AndroidTVPlatform Android TV アプリの Android TV プラットフォーム。
http://schema.org/IOSPlatform iOS アプリの検索プラットフォーム。
http://schema.googleapis.com/GoogleVideoCast Chromecast デバイスのキャストおよびホーム プラットフォーム。
http://schema.googleapis.com/GoogleAudioCast リッスン アクション専用。Chromecast デバイスのキャストおよびホーム プラットフォーム。

2 つの異なるディープリンクを持つエンティティの例:

"potentialAction": {
  "@type": "WatchAction",
  "target": [
    {
      "@type": "EntryPoint",
      "urlTemplate": "http://www.example.com/standardView",
      "actionPlatform": [
        "http://schema.org/DesktopWebPlatform",
        "http://schema.org/MobileWebPlatform"
      ]
    },
    {
      "@type":"EntryPoint",
      "urlTemplate":"http://example.com/multipleViews",
      "actionPlatform": [
        "http://schema.org/IOSPlatform",
        "http://schema.org/AndroidPlatform",
        "http://schema.org/AndroidTVPlatform",
        "http://schema.googleapis.com/GoogleVideoCast"
      ],
      "additionalProperty": [
        {
          "@type": "PropertyValue",
          "name": "videoFormat",
          "value": [ "HD", "4K" ]
        }
      ],
    }
  ],
  ...
}

再生動作

ほとんどのコンテンツについて、ユーザーをアプリまたはプラットフォームに誘導した後、選択されたコンテンツを自動再生する必要があります。そうすることで、ユーザーはすぐにコンテンツを視聴できます。

ウォッチ アクションの再生動作

ウォッチ アクションでは、次の再生動作が必要です。

すべてのディープリンク: 映画、TVEpisode、TVSeries、TVSeason

  • ログインまたは購入の動作: サービスでログインまたは購入が必要な場合は、映画またはエピソードがその種類に応じて再生される必要があります。詳しくは、後述のディープリンク ガイドラインをご覧ください。

  • 再生: サービスがユーザーの状態を追跡している場合は、映画またはエピソードに対して前回設定されたユーザーのマーカーから再生を開始する必要があります。それ以外の場合は、コンテンツの最初から再生する必要があります。

  • 自動再生: プラットフォームによっては、ユーザーが対象のエピソードまたは映画を選択した後に、サービスでコンテンツを目立つように再生することが求められます。

    • 検索: 自動再生は強く推奨されますが、必須ではありません。自動再生がサポートされていない場合は、ユーザーがアプリまたはサービスに移動した後、1 回のクリックでコンテンツを再生する必要があります。
    • Android TV: 映画とエピソードには自動再生が必要です。

TVSeries と TVSeason のディープリンクのみ

  • ターゲット エピソードの選択: 適切なターゲット エピソードを選択する必要があります。サービスがユーザーの状態を追跡している場合、対象エピソードはユーザーが最後に視聴を中断したエピソードである必要があります。ユーザーが最後に視聴したエピソードを完全に視聴し終えた場合は、代わりに次のエピソードをターゲット エピソードにします。それ以外の場合は、任意で次のいずれかのエピソードをターゲットにする必要があります。

    • TVSeries
      • シリーズの最初のエピソード。連続ドラマに推奨されます。
      • 最新シーズンの最初のエピソード。長尺の連続ドラマにおすすめです。
      • 最新エピソード。毎日の番組やニュース関連の番組におすすめです。
    • TVSeason
      • シーズンの最初のエピソード。連続ドラマに推奨されます。
      • 最新エピソード。毎日の番組やニュース関連の番組におすすめです。

    TVSeries または TVSeason のディープリンクは静的リンク(変更されない固定的なリンク)とし、ターゲット エピソードに誘導する必要があります。特定のエピソードに対応するディープリンクを使用しないでください。

    次の表に、TVSeriesTVSeasonTVEpisode エンティティ タイプに必要なターゲット エピソード選択ロジックを示す例を示します。

    ユーザーが最後に視聴したエピソードが S6E24 の場合のターゲット エピソード ユーザーがエピソードを視聴していない場合のターゲット エピソード
    シリーズのディープリンク
    • S6E24(ユーザーが S6E24 を視聴し終えていない場合)
    • S6E25(ユーザーが S6E24 の視聴を終了している場合)

    次のいずれかになります。

    • シリーズの最初のエピソード
    • 最新シーズンの最初のエピソード
    • 最新のエピソード
    シーズンのディープリンク(シーズン 1 ~ 5)
    • ユーザーがそのシーズンで最後に視聴したエピソード、またはそのシーズンで視聴していない場合はそのシーズンの最初のエピソード。
    • シーズンの最初のエピソード
    シーズンのディープリンク(S6)
    • S6E24(ユーザーが S6E24 を視聴し終えていない場合)
    • S6E25(ユーザーが S6E24 の視聴を終了している場合)

    次のいずれかになります。

    • シーズンの最初のエピソード
    • 最新のエピソード
    エピソードのディープリンク
    • クリックされた特定のエピソード。
    • クリックされた特定のエピソード。

リッスン アクションの再生動作

リッスン アクションでは、次の再生動作が必要です。

  • ユーザーがアプリまたはサービスに移動した後、1 回のクリックでコンテンツを再生する必要があります。
  • アプリまたはプラットフォームへのログインが必要な場合は、ログインの直後または 1 回のクリック以内にコンテンツを再生する必要があります。
  • アプリまたはプラットフォームには、すべてのユーザーが特定の曲、アルバム、アーティスト、プレイリストを再生できる方法が少なくとも 1 つ必要です。
    • 特定のコンテンツを再生する資格がないユーザー(必要な定期購入をしていないなど)に対しては、アプリまたはプラットフォームにアクセスしたときに、その特定のコンテンツを再生するための資格を得るためにユーザーが行う必要があることをサービスで説明する必要があります。

アプリまたはプラットフォームにおすすめのベスト プラクティスは次のとおりです。

  • MusicGroup では、ユーザーがある特定のアーティストを選択するたびにそのアーティストの異なるコンテンツを再生します。
  • MusicAlbum では、アルバムの収録順にコンテンツを再生します。
  • MusicPlaylist では、ユーザーがある特定のプレイリストを選択するたびにそのプレイリストの異なるコンテンツを再生します。

次のようにします。

  1. コンテンツごとに、そのディープリンクがプラットフォームによって異なるかどうかを確認します。
  2. ディープリンクごとに、そのエントリ ポイント(ディープリンクの誘導先となるアプリまたはプラットフォーム上のページ)について次のことを確認します。
    • エントリ ポイント(コンテンツではない)は複数の言語をサポートしているか?
    • エントリ ポイントは複数の字幕言語をサポートしているか?
    • エントリ ポイントは複数のカメラアングルをサポートしているか?
    • エントリ ポイントは複数の動画形式をサポートしているか?

これらのいずれかに対する答えが「はい」の場合は、そのディープリンクの additionalProperty プロパティを指定する必要があります。additionalProperty の例をご覧ください。