Là nhà xuất bản video, bạn có thể muốn ngăn người xem tìm đến các 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ó tìm đến 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ọ quay về vị trí tìm kiếm ban đầu.
Ở dạng sơ đồ, quá trình 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 người dùng tìm đến một điểm ngắt quảng cáo chưa xem
Kiểm tra xem người dùng có tìm đến 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 đó. Mẫu nâng cao của Roku dựa vào các lần nhấn nút trên điều khiển từ xa để người dùng tìm kiếm - mỗi khi người dùng nhấn nút tiến, họ sẽ chuyển tiếp trong luồng một số giây nhất định. Cùng một phương thức xử lý thao tác chuyển tiếp này cũng kiểm tra xem thao tác chuyển tiếp có đưa người dùng đến một điểm ngắt quảng cáo hay không. Nếu có, phương thức này sẽ đưa người dùng đến điểm bắt đầu của điểm ngắt quảng cáo đó:
Function handleFastForward(player as Object, streamManager as Object, updatedTime As Integer)
previousAd = streamManager.getPreviousCuePoint(updatedTime)
If previousAd = Invalid or previousAd.hasPlayed
player.seek(updatedTime * 1000)
Else If previousAd.start > player.currentTime
player.isSnapback = True
player.timeAfterSnapback = updatedTime
player.seek(previousAd.start * 1000 + 1000)
End If
End Function
Đưa người dùng trở lại vị trí tìm kiếm ban đầu
Trong trình xử lý adBreakEnded, hãy kiểm tra xem điểm ngắt quảng cáo trước đó có được phát do tính năng quay lại quảng cáo hay không. Nếu có, hãy đưa người dùng trở lại vị trí mà họ đang cố gắng tìm đến ban đầu (miễn là vị trí đó không phải là giữa (điểm) chèn quảng cáo vừa phát):
player.adBreakEnded = Function(adBreakInfo as Object)
If m.isSnapback
m.seek(m.timeAfterSnapback * 1000)
m.isSnapback = False
End If
End Function