Là nhà xuất bản video, bạn có thể muốn ngăn người xem tìm đến những quảng cáo trong video. Khi người dùng tìm đến một điểm chèn quảng cáo, bạn có thể đưa họ trở lại điểm bắt đầu của điểm chèn quảng cáo đó, rồi đưa họ quay về vị trí tìm kiếm sau khi điểm chèn quảng cáo đã hiển thị xong. Tính năng này được gọi là "quay lại quảng cáo".
Để xem ví dụ, hãy tham khảo sơ đồ bên dưới. Người xem đang xem một video và quyết định tìm từ phút thứ 5 đến phút thứ 15. Tuy nhiên, có một điểm ngắt quảng cáo ở phút thứ 10 mà bạn muốn họ xem trước khi có thể xem nội dung sau đó:

Để hiển thị (điểm) chèn quảng cáo này, hãy làm theo các bước sau:
- Kiểm tra xem người dùng có thực hiện thao tác tìm kiếm để bỏ qua một điểm ngắt quảng cáo chưa xem hay không. Nếu có, hãy đưa họ trở lại điểm ngắt quảng cáo đó.
- Sau khi điểm chèn quảng cáo hiển thị xong, hãy đưa họ trở lại vị trí tìm kiếm ban đầu.
Ở dạng sơ đồ, thao tác này sẽ có dạng như sau:

Sau đây là cách triển khai tính năng quay lại quảng cáo bằng SDK IMA DAI, như minh hoạ trong Ví dụ nâng cao.
Ngăn thao tác tìm kiếm bỏ qua điểm ngắt quảng cáo chưa xem
Kiểm tra xem người dùng có thực hiện thao tác tìm kiếm để bỏ qua một điểm ngắt quảng cáo chưa xem hay không. Nếu có, hãy đưa họ trở lại điểm ngắt quảng cáo đó.
Trong SDK HTML5, hãy đặt trình nghe sự kiện trên sự kiện seeked của trình phát nội dung để kích hoạt onSeekEnd(). Phương thức đó (trình bày bên dưới) sẽ kiểm tra điểm tín hiệu trước thời gian tìm kiếm của người dùng. Nếu điểm chèn chưa được phát, hãy tìm đến điểm bắt đầu của điểm ngắt quảng cáo đó thay vì điểm tìm kiếm mong muốn ban đầu và lưu điểm tìm kiếm mong muốn đó trong snapForwardTime.
function onSeekEnd() {
if (isLiveStream) { return; }
if (isSnapback) {
isSnapback = false;
return;
}
var currentTime = videoElement.currentTime;
var previousCuePoint =
streamManager.previousCuePointForStreamTime(currentTime);
if (previousCuePoint && !previousCuePoint.played) {
isSnapback = true;
snapForwardTime = currentTime;
videoElement.currentTime = previousCuePoint.start;
}
Đưa người dùng trở lại vị trí tìm kiếm ban đầu
Bây giờ, khi bạn nhận được sự kiện AD_BREAK_ENDED, hãy kiểm tra xem snapForwardTime đã được đặt hay chưa. Nếu có, hãy đưa người dùng đến điểm đó trong luồng, vì (điểm) chèn quảng cáo mà họ vừa xem là kết quả của tính năng quay lại quảng cáo:
function onAdBreakEnded(e) {
videoElement.controls = true;
clickElement.style.display = 'none';
adUiDiv.style.display = 'none';
if (snapForwardTime && snapForwardTime > videoElement.currentTime) {
videoElement.currentTime = snapForwardTime;
snapForwardTime = null;
}
}