Slide 1

Slide 1 text

動画配信アプリでの Engage SDK 導⼊ TVer Android が Play ストアにコンテンツを届けるまで 株式会社TVer 2026/09/03 © 2026 TVer INC. 根岸 拓郎

Slide 2

Slide 2 text

⾃⼰紹介 根岸 拓郎 株式会社TVer サービスプロダクト本部フロントエンド開発部 Androidアプリエンジニア DroidKaigiでの登壇は2024年以来2回⽬ 「Android Autoアプリ開発の今」@DroidKaigi2024 https://2024.droidkaigi.jp/timetable/693416/ © 2026 TVer INC. 2

Slide 3

Slide 3 text

🥅このセッションのゴール ● Engage SDKとは何かを知る ● 導⼊するまでの流れを理解する ● つまずきポイントを知る © 2026 TVer INC. 3

Slide 4

Slide 4 text

⚠注意点 ● Engage SDKはデベロッパー プレビュー版 ○ 最新情報は変わる可能性があります ● 動画配信アプリ(TVerアプリ)を事例としてお話しします ● 記載しているソースコードはサンプルです © 2026 TVer INC. 4

Slide 5

Slide 5 text

⽬次 1. Engage SDK とは 2. 設計‧実装の仕⽅ 3. 検証と申請のステップ 4. リリースと運⽤ 5. 注意点‧つまずきポイント 6. リリース後の効果とこれからの展望 © 2026 TVer INC. 5

Slide 6

Slide 6 text

01 Engage SDK とは © 2026 TVer INC.

Slide 7

Slide 7 text

Engage SDK とは Engage SDK とは > ユーザーが利⽤している場所にリーチして、アプリのエンゲージメント を⾼めます。Engage SDK を統合すると、コレクション、エンターテイメ ント スペース、Google Play ストアなど、複数のオンデバイスの Google サーフェスで、パーソナライズされたおすすめや継続コンテンツをユー ザーに直接配信できます。統合により、平均的な APK に追加されるサイズ は 50 KB 未満(圧縮後)で、ほとんどのアプリで開発者の作業時間は 1 週 間程度です。 https://developer.android.com/guide/playcore/engage?hl=ja © 2026 TVer INC. 7

Slide 8

Slide 8 text

Engage SDK とは 「コンテンツをユーザーに直接配信できます」 アプリ外でコンテンツそのものを訴求できる⼿段 ● 特定コンテンツを推すプッシュ通知 ● SNSでコンテンツとアプリを知る ● Engage SDK コンテンツ接触の機会を作れる! © 2026 TVer INC. 踊り⼦の⼈⽣ あなたに会えたから あの⽇の彼⼥ お疲れさまは⾔わない 8

Slide 9

Slide 9 text

Engage SDK とは 導⼊すると表⽰される場所 © 2026 TVer INC. Play ストア Play ストア アプリ ウィジェット Play ストア エンターテイメント コレクション スペース 9

Slide 10

Slide 10 text

Engage SDK とは Play ストア アプリ内 Play ストアアプリ内で表⽰される ストアでアプリを探している時に ユーザーの⽬に⼊る © 2026 TVer INC. 踊り⼦の⼈⽣ あなたに会えたから 10

Slide 11

Slide 11 text

Engage SDK とは Play ストアアプリのウィジェット Play ストアのウィジェットを ホーム画⾯に設置する ホーム画⾯を開いたら⽬に⼊る © 2026 TVer INC. 踊り⼦の⼈⽣ あなたに会えたから あの⽇の彼⼥ お疲れさまは⾔わない 11

Slide 12

Slide 12 text

Engage SDK とは Play ストアコレクション Play ストアのウィジェットなどから遷移可能 ⾒る‧聴くなど⽬的ごとに アプリとコンテンツが並ぶ © 2026 TVer INC. 踊り⼦の⼈⽣ あなたに会 12

Slide 13

Slide 13 text

Engage SDK とは タブレットの エンターテイメント スペース ホーム画⾯で左にスワイプすると表⽰ (⼀部デバイスでのみ) 踊り⼦の⼈⽣ © 2026 TVer INC. あなたに会えたから 13

Slide 14

Slide 14 text

Engage SDK を導⼊するメリット © 2026 TVer INC.

Slide 15

Slide 15 text

Engage SDK とは 従来のコンテンツ体験 きっかけ アプリを開いて 動画を⾒つける ● ⾒逃した番組を⾒たい ● Push通知 動画 動画 動画 動画 動画 動画 動画 動画 動画 ● SNSで知る ● など... © 2026 TVer INC. 15

Slide 16

Slide 16 text

Engage SDK とは ❌従来のコンテンツ体験の課題 ● パーソナライズが困難(SNS‧メルマガなど) ○ 全ユーザーへ⼀律の情報発信 ● 訴求⼒の限界(Push通知など) ○ 通知できるコンテンツ数に限りがある(⼀度に1つが限界) ● 導線のレッドオーシャン化 ○ アプリ外の既存導線は飽和している © 2026 TVer INC. 16

Slide 17

Slide 17 text

Engage SDK とは Engage SDK導⼊後の流れ きっかけが増えます! ● Play ストアアプリ ● Play ストアアプリのウィジェット ● Play ストアコレクション ● エンターテイメント スペース © 2026 TVer INC. 17

Slide 18

Slide 18 text

Engage SDK とは Engage SDK導⼊後の流れ アプリから情報を送る ユーザーの情報を利⽤可能 Engage SDK © 2026 TVer INC. 踊り⼦の⼈⽣ あなたに会えたから あの⽇の彼⼥ お疲れさまは⾔わない 18

Slide 19

Slide 19 text

Engage SDK とは 💪Engage SDKで解決できること ● ユーザーに適したコンテンツを表⽰ できない ○ パーソナライズ可能 ● 訴求できるコンテンツ数が少ない ○ 多くのコンテンツを表⽰可能 ● 新しい導線を⽣み出せる! © 2026 TVer INC. 19

Slide 20

Slide 20 text

Engage SDK とは 💡Tips:対応できるアプリの代表例 ● Watch:動画を視聴するアプリ ● Travel:旅⾏とイベントの情報を扱うアプリ ● Food:料理、⾷品、レシピなどを表⽰するアプリ https://developer.android.com/guide/playcore/engage/travel?hl=ja https://developer.android.com/guide/playcore/engage/food?hl=ja © 2026 TVer INC. 20

Slide 21

Slide 21 text

02 設計‧実装の仕⽅ © 2026 TVer INC.

Slide 22

Slide 22 text

設計‧実装の仕⽅ Engage SDK とは > ユーザーが利⽤している場所にリーチして、アプリのエンゲージメント を⾼めます。Engage SDK を統合すると、コレクション、エンターテイメ ント スペース、Google Play ストアなど、複数のオンデバイスの Google サーフェスで、パーソナライズされたおすすめや継続コンテンツをユー ザーに直接配信できます。統合により、平均的な APK に追加されるサイズ は 50 KB 未満(圧縮後)で、ほとんどのアプリで開発者の作業時間は 1 週 間程度です。詳しくは、ビジネスサイトをご覧ください。 https://developer.android.com/guide/playcore/engage?hl=ja © 2026 TVer INC. 22

Slide 23

Slide 23 text

設計‧実装の仕⽅ まずはフォームから申請 Engage SDKを導⼊‧アプリリリース Play ストアなどにコンテンツを表⽰ するには申請‧承認が必要 https://support.google.com/googleplay/contact/Engage_SDK_Developer_Preview?hl=ja © 2026 TVer INC. 23

Slide 24

Slide 24 text

設計‧実装の仕⽅ Engage SDKの利⽤資格 https://developer.android.com/guide/playcore/engage/preview?hl=ja © 2026 TVer INC. 24

Slide 25

Slide 25 text

設計‧実装の仕⽅ 🎉承認されたら開発スタート! 晴れて承認されたら開発スタート! まずはサンプルアプリを⾒て全体像を理解するのがおすすめ ● Read Sample App ● Watch Sample App https://developer.android.com/guide/playcore/engage/samples?hl=ja © 2026 TVer INC. 25

Slide 26

Slide 26 text

設計‧実装の仕⽅ アプリがやることの概要 Engage SDKを組み込み情報を送信する SDKのメソッドを呼ぶ Play ストアに反映 Engage SDK © 2026 TVer INC. 踊り⼦の⼈⽣ あなたに会えたから あの⽇の彼⼥ お疲れさまは⾔わない 26

Slide 27

Slide 27 text

設計‧実装の仕⽅ 実装すべき主な機能4つ トリガー DB‧API Entity Engage の制御 情報取得 Clusterに SDKへ 変換 publish © 2026 TVer INC. 27

Slide 28

Slide 28 text

設計‧実装の仕⽅ 実装すべき主な機能4つ トリガー DB‧API Entity Engage の制御 情報取得 Clusterに SDKへ 変換 publish © 2026 TVer INC. 28

Slide 29

Slide 29 text

設計‧実装の仕⽅ トリガーの制御 トリガーには2つのパターンがある ● アプリ起動後の任意のタイミング ○ アプリ開発者がタイミングを決められる ● Engage ServiceからIntentを受け取ったタイミング ○ タイミングは制御不能 ○ Engage Serviceが必要なタイミングでIntentを送信する © 2026 TVer INC. 29

Slide 30

Slide 30 text

設計‧実装の仕⽅ 1.アプリ起動後の任意のタイミング 任意のタイミングで実⾏可能 ● 例:アプリがバックグラウンドに移⾏後、24時間毎に1回 ○ サンプルアプリはこちら ● 例:有料コンテンツを購⼊した 定期実⾏ 情報取得 アプリ © 2026 TVer INC. DB‧API 30

Slide 31

Slide 31 text

設計‧実装の仕⽅ Q.トリガータイミングはどうやって決める? ● 基本的には24時間毎に1回が推奨されている ○ コンテンツの情報鮮度 ○ 情報を取得するAPI負荷 アプリ © 2026 TVer INC. API 31

Slide 32

Slide 32 text

設計‧実装の仕⽅ 2.Engage ServiceからIntentを受け取ったタイミング なぜIntentを受け取ったタイミングでpublishしなければいけない? Engage Serviceが「コンテンツが古くなっている可能性がある」 と判定した場合にIntentが送信される Intent受信時に1度publishすればOK © 2026 TVer INC. 32

Slide 33

Slide 33 text

設計‧実装の仕⽅ トリガーは2種類ある アプリ起動後いつでも 定期実行 DB‧API Intent受信 © 2026 TVer INC. アプリ 実行 情報取得 33

Slide 34

Slide 34 text

設計‧実装の仕⽅ ⚠トリガーの受信後の処理 ● 受信以降の処理はWorkManagerで⾏うことが推奨 ○ データ取得〜Engage SDKにpublishまで ● バックグラウンドでの確実で安全な実⾏ ● 定期実⾏も可能 https://developer.android.com/guide/playcore/engage/publish?hl=ja#broadcast-intents © 2026 TVer INC. 34

Slide 35

Slide 35 text

設計‧実装の仕⽅ トリガー制御のまとめ WorkManager アプリ起動後いつでも 定期実行 Intent受信 アプリ 実行 DB‧API Engage 情報取得 SDKへ publish https://developer.android.com/guide/playcore/engage/publish?hl=ja#broadcast-intents © 2026 TVer INC. 35

Slide 36

Slide 36 text

設計‧実装の仕⽅ 実装すべき主な機能4つ トリガー DB‧API Entity Engage の制御 情報取得 Clusterに SDKへ 変換 publish © 2026 TVer INC. 36

Slide 37

Slide 37 text

設計‧実装の仕⽅ DBやAPIから情報取得 ● コンテンツの情報を取得する ● アプリ内の既存のAPI取得処理を流⽤するのが近道 ○ UseCase/Repository DB アプリ API © 2026 TVer INC. 37

Slide 38

Slide 38 text

設計‧実装の仕⽅ 実装すべき主な機能4つ トリガー DB‧API Entity Engage の制御 情報取得 Clusterに SDKへ 変換 publish © 2026 TVer INC. 38

Slide 39

Slide 39 text

設計‧実装の仕⽅ EntityとCluster Cluster Entity https://developer.android.com/guide/playcore/engage/watch?hl=ja © 2026 TVer INC. 39

Slide 40

Slide 40 text

設計‧実装の仕⽅ Entityの種類 - 動画配信アプリの場合 主要なEntityは以下 適したEntityインスタンスを⽣成し、プロパティを埋める TvEpisodeEntity 1話(再生可能な単体の動画) TvSeasonEntity 1シーズン(話の集合) TvShowEntity 番組シリーズ全体 VideoClipEntity 短尺クリップ動画 https://developer.android.com/guide/playcore/engage/watch?hl=ja#provide-entity-data © 2026 TVer INC. 40

Slide 41

Slide 41 text

設計‧実装の仕⽅ 例:TvEpisodeEntityの場合 APIから取得したデータを Entityクラスにsetする アプリ内の Modelクラス https://developer.android.com/guide/playcore/engage/watch?hl=ja#provide-entity-data © 2026 TVer INC. 41

Slide 42

Slide 42 text

設計‧実装の仕⽅ 例:TvEpisodeEntityの必須フィールド name タイトル poster images ポスター画像(アスペクト比指定必須) playback uri アプリ内コンテンツへのディープリンク air date 放送日(epoch milliseconds) availability 提供状況(定数) duration 再生時間(milliseconds) genre ジャンル(free text) https://developer.android.com/guide/playcore/engage/watch?hl=ja#provide-entity-data © 2026 TVer INC. 42

Slide 43

Slide 43 text

設計‧実装の仕⽅ Q.Entityは何を使ったら良い? 公式ドキュメントのクラスの説明 各クラスの必須フィールドから推測 ● 例:TvEpisodeEntityはDuration(動画の⻑さ)が必須フィールド ○ 各Episode=⼀つの動画コンテンツ ● 例:TvSeasonEntityはEpisode countが必須フィールド ○ Episodeを束ねるシーズン © 2026 TVer INC. 43

Slide 44

Slide 44 text

設計‧実装の仕⽅ EntityとCluster Cluster Entity https://developer.android.com/guide/playcore/engage/watch?hl=ja © 2026 TVer INC. 44

Slide 45

Slide 45 text

設計‧実装の仕⽅ Clusterの種類 ● RecommendationCluster ○ アプリがユーザーにおすすめするコンテンツ群 ● ContinuationCluster ○ 未視聴‧視聴途中のコンテンツ群 ● FeaturedCluster ○ ピックアップされたコンテンツ群 ○ どのRecommendationClusterよりも優先されて表⽰ © 2026 TVer INC. 45

Slide 46

Slide 46 text

設計‧実装の仕⽅ Q.Clusterは何を使ったら良い? ほとんどはRecommendationCluster Googleは、全てのClusterを設定することを推奨 なぜならコンテンツに接触する機会が増えるから 今月のピックアップ 動画 続きから視聴動画 あなたにおすすめ © 2026 TVer INC. 今月の人気ランキング 46

Slide 47

Slide 47 text

設計‧実装の仕⽅ Q.Cluster何を使ったら良い? - TVerでは 3つのRecommendationClusterで静的なコンテンツ配信からスタート バラエティ‧ドラマ‧アニメのランキング(ジャンル別) © 2026 TVer INC. 47

Slide 48

Slide 48 text

設計‧実装の仕⽅ 例:RecommendationClusterの場合 Clusterインスタンスを⽣成する setActionUri:タップした時に起動するDeeplink © 2026 TVer INC. 48

Slide 49

Slide 49 text

設計‧実装の仕⽅ 例:RecommendationClusterの場合 ClusterにEntity群を追加する Requestに設定 Clusterイン スタンスを ⽣成 © 2026 TVer INC. 49

Slide 50

Slide 50 text

設計‧実装の仕⽅ 実装すべき主な機能4つ トリガー DB‧API Entity Engage の制御 情報取得 Clusterに SDKへ 変換 publish © 2026 TVer INC. 50

Slide 51

Slide 51 text

設計‧実装の仕⽅ 例:RecommendationClusterの場合 Requestを送信 PublishStatusを更新 Requestを 作成 © 2026 TVer INC. 51

Slide 52

Slide 52 text

設計‧実装の仕⽅ Q.PublishStatus(公開ステータス)とは? 「アプリがコンテンツを出せている / 出せていない、そしてその理 由」を Google に伝える API ● 「想定内」なのか「壊れている」のかを伝える ● 不要なGoogleからのアラートを防げる https://developer.android.com/guide/playcore/engage/publish?hl=ja#update-publish-status © 2026 TVer INC. 52

Slide 53

Slide 53 text

設計‧実装の仕⽅ データ作成〜Publishまでのまとめ WorkManager API Entityに変換 トリガー ClusterにEntity を入れる の制御 アプリ内の Modelクラス © 2026 TVer INC. Publish 公開 Requestに Clusterを入れる 53

Slide 54

Slide 54 text

設計‧実装の仕⽅ Q.どこまで実装すれば良いの? ● 定期的に ● RecommendationClusterを1つ ● publishする まででOK © 2026 TVer INC. 54

Slide 55

Slide 55 text

設計‧実装の仕⽅ 💡Tips:タップ遷移と計測 ClusterやEntityをタップしたらDeeplinkでアプリを開く deeplinkにEngage SDK経由であることが分かる パラメータをつけるのがおすすめ https://developer.android.com/guide/playcore/engage/faq?hl=ja#deeplinks-attribution © 2026 TVer INC. 55

Slide 56

Slide 56 text

設計‧実装の仕⽅ 💡Tips:ユーザーごとのパーソナライズ ユーザーごとに適したコンテンツを表⽰する ● 視聴履歴に応じたおすすめ動画 ● 前回⾒た場⾯の続きから視聴 ログイン状態に応じた処理などが必要 © 2026 TVer INC. 56

Slide 57

Slide 57 text

設計‧実装の仕⽅ 💡Tips:導⼊のハードルが低い理由 「情報を送るだけ」のシンプル設計 ● UIデザインや仕様の調整が短縮 Engage SDK ● エンジニアリングのみで実装が完結する 既存のAPI情報を活⽤可能 ● 新規の企画検討やデザイン⼯数を最⼩化 © 2026 TVer INC. 踊り⼦の⼈⽣ あなたに会えたから あの⽇の彼⼥ お疲れさまは⾔わない 57

Slide 58

Slide 58 text

03 検証と申請のステップ © 2026 TVer INC.

Slide 59

Slide 59 text

検証と申請のステップ ところで ここまで実装内容を説明 動作確認‧デバッグはどうやるのか? 公式の検証⽤アプリで動作を確認 https://developer.android.com/guide/playcore/engage/workflow?hl=ja © 2026 TVer INC. 59

Slide 60

Slide 60 text

検証と申請のステップ 専⽤の検証アプリがある apkをダウンロードして起動 アプリのpackage名を⼊⼒する https://developer.android.com/guide/playcore/engage/workflow?hl=ja#verify-app © 2026 TVer INC. 60

Slide 61

Slide 61 text

検証と申請のステップ 検証⽅法 検証アプリを起動後 アプリを開いてpublishされる処理まで実⾏ 検証⽤アプリに戻るとClusterの情報が表⽰ https://developer.android.com/guide/playcore/engage/workflow?hl=ja#verify-app © 2026 TVer INC. 61

Slide 62

Slide 62 text

検証と申請のステップ 検証⽅法 ClusterとEntityの情報が正しいか確認 エラーがあれば解消する ● 例:EntityのTitleが設定されていない ● 例:Action URIが設定されていない ○ Entityをタップした時の遷移先 https://developer.android.com/guide/playcore/engage/workflow?hl=ja#verify-app © 2026 TVer INC. 62

Slide 63

Slide 63 text

検証と申請のステップ BroadcastIntentの検証 Intentを検証アプリから送信できる ● Intent送信 ● アプリがIntentを受信→publishする ● 検証アプリがClusterを表⽰する https://developer.android.com/guide/playcore/engage/workflow?hl=ja#verify-app © 2026 TVer INC. 63

Slide 64

Slide 64 text

検証と申請のステップ 動作確認ができたら aab/apkファイルをGoogleにメールで送信 Google側でも検証を実施 エラーが⾒つかったら修正する ⚠検証‧修正の時間があるので、リリース計画には余裕を持たせる © 2026 TVer INC. 64

Slide 65

Slide 65 text

04 リリースと運⽤ © 2026 TVer INC.

Slide 66

Slide 66 text

リリースと運⽤ 🎉無事Googleの動作確認が問題無く終わると …ついに!リリースの準備が整いました! Engage SDKを導⼊したアプリをGoogle Play ストアでリリースします © 2026 TVer INC. 66

Slide 67

Slide 67 text

リリースと運⽤ Googleに連絡 Engage SDK対応したアプリをリリース後 Googleにメールでお知らせ Google側でPlay ストアなどへの掲載を進めてくれる 💡掲載スケジュールは事前に相談しておくのがおすすめ © 2026 TVer INC. 67

Slide 68

Slide 68 text

リリースと運⽤ ロールアウトの設定 Engage SDKに情報を送信するか、 有効‧無効をコントロール可能にするのがおすすめ ● 例:Firebase Remote Config 💡アプリ内でロールアウト設定を⾏うこともGoogleと連携しておく © 2026 TVer INC. 68

Slide 69

Slide 69 text

05 注意点‧つまずきポイント © 2026 TVer INC.

Slide 70

Slide 70 text

注意点‧つまずきポイント その1:パラメータ設定に悩む TvSeasonEntity 17個のプロパティ ● 具体的な⼊れるべき値が何か 💡検証アプリで何度も試す Googleのレビューも早めに出す https://developer.android.com/guide/playcore/engage/watch © 2026 TVer INC. 70

Slide 71

Slide 71 text

注意点‧つまずきポイント その2:画像サイズ Engage SDK専⽤のImageクラスに情報を設定 画像URIと画像サイズを同時に渡す必要がある 画像サイズは正確でないとエラーになる © 2026 TVer INC. 71

Slide 72

Slide 72 text

注意点‧つまずきポイント その3:Intentを受け取った後のpublish 即時発⽕が良い ● Engage ServiceはコンテンツをpublishしてほしいのでIntent発⽕ している ● 検証やGoogle側のレビューのしやすさの観点でも © 2026 TVer INC. 72

Slide 73

Slide 73 text

06 リリース後の効果とこれからの展望 © 2026 TVer INC.

Slide 74

Slide 74 text

リリース後の効果とこれからの展望 🎉ついに公開! Google側の作業が完了すると公開されます! ● Play ストア ● Play ストアのウィジェット ● エンターテイメント スペース 踊り⼦の⼈⽣ あなたに会えたから 踊り⼦の⼈⽣ © 2026 TVer INC. 踊り⼦の⼈⽣ あなたに会えたから あの⽇の彼⼥ お疲れさまは⾔わない あなたに会えたから 74

Slide 75

Slide 75 text

リリース後の効果とこれからの展望 レポート Googleからレポートが隔週で届く © 2026 TVer INC. 75

Slide 76

Slide 76 text

リリース後の効果とこれからの展望 レポート 先週‧今週のImpression、Click、CTRなど © 2026 TVer INC. 76

Slide 77

Slide 77 text

リリース後の効果とこれからの展望 レポートから集計したグラフ 導⼊後 ⼀定の流⼊あり 新しい流⼊経路の 開拓に成功! © 2026 TVer INC. 77

Slide 78

Slide 78 text

リリース後の効果とこれからの展望 今後の展望(検討中) ● パーソナライズコンテンツの表⽰ ○ 続きから視聴 ● Android TV版アプリへの導⼊も進⾏中 © 2026 TVer INC. 78

Slide 79

Slide 79 text

リリース後の効果とこれからの展望 💡Tips:Engage SDKを導⼊するためのSkill Android skillsにengage-sdk-integration skillが誕⽣ https://developer.android.com/guide/playcore/engage?hl=ja#skill-title_integrate-engage-sdk © 2026 TVer INC. 79

Slide 80

Slide 80 text

まとめ © 2026 TVer INC.

Slide 81

Slide 81 text

まとめ まとめ ● Engage SDKとは ○ Play ストア等でコンテンツを直接訴求できる、新しい導線 ● 導⼊の流れ ○ 実装、検証、リリースまで、エンジニアリングで完結 ● つまずきポイント ○ 画像サイズや検証アプリの活⽤など、細かな注意が必要 © 2026 TVer INC. 81

Slide 82

Slide 82 text

ご清聴ありがとうございました © 2026 TVer INC.