0
0
Lập trình
NM

AWS MediaTailor: Tích Hợp Quảng Cáo Tại Máy Chủ (SSAI)

Đăng vào 2 ngày trước

• 6 phút đọc

Giới thiệu về SSAI

Tích hợp quảng cáo tại máy chủ (SSAI) là một công nghệ cho phép quảng cáo được ghép nối trực tiếp vào luồng video trên máy chủ trước khi đến thiết bị của người xem. Với SSAI, trình phát video nhận được một luồng liên tục duy nhất bao gồm cả nội dung chính và quảng cáo, giúp việc chuyển đổi giữa chúng trở nên mượt mà.

Tại sao chọn SSAI?

  • Trải nghiệm phát sóng mượt mà: Không có độ trễ hay chuyển tiếp khó chịu giữa nội dung và quảng cáo.
  • Vượt qua bộ lọc quảng cáo: Vì quảng cáo là một phần của luồng chính, việc lọc chúng trở nên khó khăn hơn cho các bộ lọc quảng cáo.
  • Hiệu suất nhất quán trên nhiều thiết bị: Hoạt động trơn tru trên các nền tảng và thiết bị khác nhau mà không cần logic nặng nề ở phía khách hàng.
  • Đo lường và phân tích tốt hơn: Cung cấp theo dõi chính xác thông qua việc gửi tín hiệu từ máy chủ và máy khách.
  • Khả năng mở rộng: Dễ dàng quản lý quy trình quảng cáo trên máy chủ thay vì từng ứng dụng khách.

Bài viết này sẽ hướng dẫn bạn cách tích hợp AWS MediaTailor SSAI với trình phát video của bạn, tập trung vào các khía cạnh frontend.

Giới thiệu về Video.js

Video.js là một trình phát video mã nguồn mở dựa trên JavaScript, được sử dụng bởi khoảng 800.000 trang web.

Phần thưởng: Bao gồm một plugin tùy chỉnh hỗ trợ các dấu hiệu quảng cáo, bộ đếm quảng cáo với đồng hồ đếm ngược và việc gửi tín hiệu.

Để có thêm thông tin chi tiết về tích hợp backend, hãy tham khảo bài viết này, nơi đi sâu vào các khía cạnh máy chủ của SSAI.


📘 Các bước tích hợp quy trình SSAI

Dưới đây là các bước cần thiết để thiết lập AWS MediaTailor SSAI với trình phát video của bạn:

1. Tạo URL phiên

Điều đầu tiên cần làm là tạo URL phiên, đây là cuộc gọi API POST được khởi tạo từ trình phát đến dịch vụ ghép nối (MediaTailor) và được chuyển tiếp đến máy chủ quảng cáo (ví dụ: FreeWheel).

Bạn thường tạo URL phiên bằng cách thay thế một số phần trong URL của manifest:

  • Thay thế '/dash/' bằng '/session/' cho tài sản MPD (DASH).
  • Thay thế '/master/' bằng '/session/' cho tài sản HLS.

Ví dụ về URL phiên cuối cùng:

https://domain.example.com/v1/session/aesdnsjdsk/Renditions_asset/20250805/1754403862031_sample_HD_TVE_SAMPLE_ASSET_07172025_7830k_mp4_CUSTOM_CODEC_TS_DRM_DASH_DRM/dash/stream.mpd

Bạn cũng có thể kiểm tra với nhóm backend của bạn về cách tạo liên kết phiên vì điều này có thể được thực hiện khác nhau dựa trên CDN và các ánh xạ khác. Cũng có khả năng không thực hiện điều này trên trình phát mà để máy chủ thực hiện sử dụng ID video, sau đó máy chủ sẽ chỉ cần gửi bạn manifest và URL theo dõi.

2. Gửi yêu cầu POST để lấy manifest và URL theo dõi

Khi bạn đã có URL phiên, bạn cần gửi URL đó dưới dạng yêu cầu POST với các cặp key:value cần thiết mà máy chủ quyết định quảng cáo yêu cầu.

Lưu ý rằng user-agent là một header thiết yếu cần phải được gửi để đảm bảo rằng máy chủ quyết định quảng cáo ghép quảng cáo một cách mượt mà.

Đối với trình duyệt web, chúng ta không cần gửi một cách rõ ràng vì nó được quản lý bởi trình duyệt.

3. Phân tích phản hồi

Khi bạn gửi URL phiên, bạn sẽ nhận được phản hồi như sau:

Ví dụ phản hồi:

Copy
{
manifestUrl:"/v1/dash/a2769ff6f508fb0f68aca8782209ab59ae7a5db0/sample/Renditions/20250805/1754403862031_sample_mp4_CUSTOM_CODEC_TS_DRM_DASH_DRM/dash/stream.mpd?aws.sessionId=dz2d6359-4302-4fb2-a3c4-7cefa9468d42",
trackingUrl:"/v1/tracking/a2769ff6f508fb5f68aca8782209ab59ae7a5db0/samoke/eb7d6e59-4302-4fb2-a3c4-7cefa9468d32"
}

Trong phản hồi, bạn sẽ nhận được các đường dẫn của tracking URLmanifest URL.

Để xây dựng các URL đầy đủ, thêm cùng miền mà bạn đã sử dụng cho yêu cầu POST.

  • Tracking URL → Chứa chi tiết quảng cáo và tín hiệu.
  • Manifest URL → Chứa nội dung đã được ghép nối với quảng cáo.

Chuyển manifestURL vào video.js để chạy nội dung đã ghép nối.

Ví dụ: Phát tài sản đã ghép nối.

Copy
player.src( {src: ‘manifestUrl’ , type :  ‘application/x-mpegURL“} )

Khi đã thiết lập, trình phát sẽ phát nội dung + quảng cáo như một luồng đơn.

Điều này sẽ cho phép tài sản đã ghép nối phát mượt mà.

Tiếp theo, chúng ta sẽ hiển thị các dấu hiệu quảng cáo trên thanh tìm kiếm và quản lý các tín hiệu quảng cáo.

Tracking URL là nguồn thông tin chính cho việc quản lý bất kỳ điều gì liên quan đến quảng cáo trong trường hợp AWS MediaTailor.

4. Làm việc với Tracking URL

Đảm bảo rằng updatedManifest URL được tải vào trình phát trước khi gọi tracking URL. Đây là một bước quan trọng vì nếu bạn gọi tracking URL trước mà không tải updated manifest url với sessionId, bạn sẽ nhận được phản hồi trống từ dịch vụ ghép nối (aws-mediatailor).

Khi tài sản đã được tải, bạn có thể đơn giản gọi tracking URL như sau:

Ví dụ:

Copy
player.one(‘loadeddata’, async()=>{
    // khởi tạo yêu cầu get cho tracking URL.
    getTrackingData();
})

async function getTrackingData(){
    const res =  await fetch(trackingUrl);
    const data = await res.json();
}

Khởi tạo yêu cầu get để lấy tất cả dữ liệu liên quan đến quảng cáo.

Bạn sẽ nhận được một phản hồi dạng JSON như kết quả.

Khóa ‘avails’ là một mảng các đối tượng bao gồm tất cả các pod quảng cáo hiện có trong tài sản đã ghép nối.

Tại đây, phản hồi có thể không bao gồm quảng cáo trong tất cả các pod và bạn có thể nhận được một mảng trống trong một số trường hợp.

Bạn có thể đánh dấu các pod quảng cáo trên thanh tìm kiếm của trình phát video.js dựa trên dữ liệu này.

Vì mỗi pod quảng cáo có khóa ‘startTimeInSeconds’, chúng ta có thể đánh dấu pod quảng cáo đó trên thanh tìm kiếm.

Bạn cũng có thể sử dụng plugin này, nó thực hiện công việc này với nhiều tính năng khác nữa.

5. Beaconing (Theo dõi phía máy khách)

Bây giờ đến phần theo dõi beaconing phía máy khách.

Trong AWS MediaTailor, các beacon là các tín hiệu theo dõi nhỏ gửi đến máy chủ quảng cáo để báo cáo về sự tương tác của người xem với quảng cáo, chỉ ra các mốc như bắt đầu hoặc hoàn thành một quảng cáo. AWS MediaTailor hỗ trợ cả hai phương pháp theo dõi phía máy chủ (nơi MediaTailor gửi các beacon) và phương pháp theo dõi phía máy khách (nơi trình phát gửi các beacon) để cung cấp các số liệu chi tiết về hiệu suất quảng cáo và đo lường ấn tượng.

Hãy thảo luận về việc xử lý beacon phía máy khách:

Pod quảng cáo chứa khóa ‘ads’ là một mảng các đối tượng.

Bên trong mỗi đối tượng, chúng ta có khóa ‘trackingEvents’ bao gồm tất cả các beacon liên quan đến quảng cáo đó.

Mỗi sự kiện theo dõi có khóa ‘startTimeInSeconds’ cho biết khi nào sự kiện beacon này nên được kích hoạt. Nó cũng có khóa ‘beaconUrls’ chứa URL cho beacon đó.

Đối với một quảng cáo cụ thể, chúng ta cần gửi một yêu cầu get chính xác theo ‘startTimeInSeconds’.

Trong video.js hoặc bất kỳ trình phát web nào khác, chúng ta có thể sử dụng sự kiện player.on('timeupdate', cb) để tạo điều kiện cho logic này.

⚠️ Cảnh báo: Vì timeupdate được kích hoạt 4-5 lần/giây, nên việc xử lý logic cẩn thận là rất quan trọng.

Bạn cũng có thể sử dụng plugin này. Nó xử lý logic beacon cũng như cung cấp các tính năng cơ bản khác cho tích hợp SSAI.

Kết luận

Đó là tất cả!
Bây giờ bạn đã có một tích hợp AWS MediaTailor SSAI hoàn chỉnh với:

  • Tạo URL phiên
  • Tải manifest
  • Xử lý dữ liệu theo dõi
  • Dấu hiệu quảng cáo trên thanh tìm kiếm
  • Theo dõi beacon phía máy khách

Bạn cũng có thể đọc tài liệu chính thức của AWS MediaTailor để có thêm thông tin chi tiết.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào