広告ストリームのブックマークを保存、読み込む
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
このガイドでは、IMA DAI SDK を使用してブックマークを実装する方法について説明します
(ビデオ オンデマンド(VOD)ストリームでダイナミック広告挿入(DAI)を使用する場合)
これは、
使ってみる。
ブックマークとは
ブックマークは、保存してから特定の時点に戻る機能
コンテンツストリームで通知されます。ユーザーがコンテンツを 5 分間視聴したとします。
動画ストリームから移動して戻ります。ブックマークに登録しておくと、
ストリーム内のユーザーの現在地が
示されます
視聴がシームレスになります
DAI ブックマークの仕組み
DAI ストリームをブックマークする場合は、ストリームの ID と時間を記録する必要がある
ユーザーが動画を終了したときユーザーが戻ったら、
保存された時間までシークできます。リクエストされた各インスタンスは、
ストリームを保存するだけで、再生時間の異なるミッドロール挿入点を設定できます。
時間が機能しないことがあります。本当にやりたいのは、同じマシンから
コンテンツ時間。
その問題を解決するための変換方法
IMA DAI SDK には、コンテンツ時刻をリクエストする 2 つのメソッドが用意されています。
特定の配信時刻と配信時刻の
あります。これらの変換方法を使用すると、ブックマークに追加した
コンテンツ時間を指定してから、そのコンテンツ時間の
ストリームの新しいインスタンスが作成されます(リンクを含む)
動作中のブックマーク実装を示すサンプルアプリにアクセスできます。
ブックマークを保存しています
アクティビティが一時停止しているときにブックマークを保存する。
Saves the current time as a bookmark in the current video.
Function saveBookmarkTime(player as Object, streamManager as Object) as Void
m.videos[player.video.index].bookmarkTime =
streamManager.getContentTime(player.currentTime * 1000)
End Function
ブックマークを読み込んでいます
ストリームを再度リクエストするときにブックマークを読み込みます。これは実装の一部として
VideoStreamPlayer
インターフェース
player.loadUrl = Function(streamInfo as Object)
...
If m.video.bookmarkTime > 0
streamTime = m.streamManager.getStreamTime(m.video.bookmarkTime)
m.videoPlayer.seek(streamTime)
End If
End Function
サンプルアプリ
サンプルアプリ
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2025-08-21 UTC。
[null,null,["最終更新日 2025-08-21 UTC。"],[[["\u003cp\u003eThis guide explains how to implement bookmarking in video-on-demand (VOD) streams using the IMA DAI SDK for Roku, allowing users to resume playback from where they left off.\u003c/p\u003e\n"],["\u003cp\u003eBookmarking with DAI involves saving the content time, not just the stream time, to ensure accurate resumption due to potential ad break variations.\u003c/p\u003e\n"],["\u003cp\u003eThe IMA DAI SDK provides methods to convert between stream time and content time, enabling the storage and retrieval of bookmarks based on content progress.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers can implement bookmarking by saving the content time when the video is paused and retrieving it to seek to the corresponding stream time when the stream is reloaded.\u003c/p\u003e\n"],["\u003cp\u003eA sample app demonstrating a working bookmarking implementation is available on GitHub for reference and further exploration.\u003c/p\u003e\n"]]],[],null,["# Save and load ad stream bookmarks\n\nThis guide shows how to implement bookmarking using the IMA DAI SDK\nwhen using Dynamic Ad Insertion (DAI) for video-on-demand (VOD) streams.\nThis assumes a working IMA DAI implementation, such as the one presented in\n\n\n[Get Started](/interactive-media-ads/docs/sdks/roku/dai).\n\n\nWhat is bookmarking?\n--------------------\n\nBookmarking is the ability to save and then return to a specific point\nin the content stream. Suppose a user watches five minutes of content,\nleaves the video stream, and then returns to it. Bookmarking saves the\nuser's position in the stream so the stream can pick up from where it\nleft off, providing a seamless experience to the viewer.\n\nDAI bookmarking under the hood\n------------------------------\n\nWhen bookmarking a DAI stream, you must record the stream id and time\nwhen the user leaves the video. When the user returns, re-request the\nstream and seek to the saved time. Since each instance of the requested\nstream can have ad breaks of different durations simply saving the stream\ntime won't work. What you really want to do is continue from the same\n**content time**.\n\nConversion methods to the rescue\n--------------------------------\n\nThe IMA DAI SDK provides a pair of methods to request the **content time**\nfor a given **stream time** and the **stream time** for a given **content\ntime** . Using these conversion methods you can store the bookmarked\n**content time** and then seek to the corresponding **stream time** in\nthe new instance of the stream. Here's the approach, including a link\nto a sample app that shows a working bookmarking implementation.\n\nSaving bookmarks\n----------------\n\nSave a bookmark when the Activity is paused. \n\n Saves the current time as a bookmark in the current video.\n Function saveBookmarkTime(player as Object, streamManager as Object) as Void\n m.videos[player.video.index].bookmarkTime =\n streamManager.getContentTime(player.currentTime * 1000)\n End Function\n\nLoading bookmarks\n-----------------\n\nLoad the bookmark when re-requesting a stream. It's part of implementing\nthe `VideoStreamPlayer` interface. \n\n player.loadUrl = Function(streamInfo as Object)\n ...\n If m.video.bookmarkTime \u003e 0\n streamTime = m.streamManager.getStreamTime(m.video.bookmarkTime)\n m.videoPlayer.seek(streamTime)\n End If\n End Function\n\nSample app\n----------\n\n[Sample app](//github.com/googleads/googleads-ima-roku-dai)"]]