Chèn quảng cáo bằng tính năng chuyển hướng phân đoạn

Hướng dẫn này trình bày cách định cấu hình trình chỉnh sửa tệp kê khai để yêu cầu các phân đoạn quảng cáo hoặc bảng thông tin bằng phương thức pod segment (phân đoạn nhóm quảng cáo).

Chọn một giao thức truyền trực tuyến:

Điều kiện tiên quyết

Trước khi tiếp tục, bạn phải thiết lập một sự kiện phát trực tiếp cho loại Chèn quảng cáo động (DAI) Chuyển hướng phân phát nhóm và hồ sơ mã hoá. Để thiết lập một sự kiện phát trực tiếp, hãy chọn một trong các phương thức sau:

Sau khi thiết lập sự kiện phát trực tiếp, hãy truy xuất hồ sơ mã hoá của sự kiện đó từ giao diện người dùng hoặc API của Ad Manager bằng cách gọi phương thức DaiEncodingProfileService.getDaiEncodingProfilesByStatement.

Truy xuất luồng nội dung

Khi người dùng chọn một sự kiện phát trực tiếp, ứng dụng khách sẽ gửi một yêu cầu phát trực tiếp đến Google Ad Manager. Trong phản hồi luồng phát, ứng dụng sẽ trích xuất mã phiên DAI của Google và siêu dữ liệu để đưa vào yêu cầu tệp kê khai luồng phát.

Ví dụ sau đây truyền mã phiên DAI của Google đến một trình xử lý tệp kê khai:

https://MANIFEST_MANIPULATOR_URL/manifest.m3u8?DAI_stream_ID=SESSION_ID&network_code=NETWORK_CODE&DAI_custom_asset_key=CUSTOM_ASSET_KEY

Khi xử lý yêu cầu phát nội dung video, hãy lưu trữ mã phiên Google DAI và CUSTOM_ASSET_KEY từ yêu cầu để chuẩn bị cho việc ghép quảng cáo.

Xác định các phân đoạn điểm chèn quảng cáo và chèn các điểm gián đoạn

Khi bạn xử lý từng tệp kê khai biến thể, hãy xác định thẻ EXT-X-CUE-INEXT-X-CUE-OUT trong luồng phát của bạn, cho biết thời điểm bắt đầu và kết thúc một khoảng thời gian chèn quảng cáo.

Thay thế thẻ EXT-X-CUE-INEXT-X-CUE-OUT bằng các phần tử EXT-X-DISCONTINUITY để trình phát video trên máy khách chuyển đổi giữa nội dung và quảng cáo.

Tệp kê khai ví dụ sau đây sẽ thay thế các thẻ EXT-X-CUE-INEXT-X-CUE-OUT:

#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0

#EXTINF:5.000,
contentorigin.com/1.ts
#EXTINF:5.000,
contentorigin.com/2.ts
#EXT-X-CUE-OUT:15.000
#EXTINF:5.000,
contentorigin.com/3.ts
#EXTINF:5.000,
contentorigin.com/4.ts
#EXTINF:5.000,
contentorigin.com/5.ts
#EXT-X-CUE-IN
#EXTINF:5.000,
contentorigin.com/6.ts
#EXTINF:5.000,
contentorigin.com/7.mp4
#EXTINF:5.000,
contentorigin.com/8.mp4

Ví dụ sau đây cho thấy một tệp kê khai được thay thế:

#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0

#EXTINF:5.000,
contentorigin.com/1.ts
#EXTINF:5.000,
contentorigin.com/2.ts
#EXTINF:5.000,
#EXT-X-DISCONTINUITY
{... Insert ad segments here ...}
#EXT-X-DISCONTINUITY
#EXTINF:5.000,
contentorigin.com/6.mp4
#EXTINF:5.000,
contentorigin.com/7.mp4
#EXTINF:5.000,
contentorigin.com/8.mp4

Các phân đoạn quảng cáo DAI của Google không được mã hoá. Nếu nội dung của bạn được mã hoá, hãy xoá lớp mã hoá bằng cách chèn phần tử EXT-X-KEY:METHOD=NONE trước phân đoạn quảng cáo đầu tiên của mỗi khoảng thời gian chèn quảng cáo. Khi điểm chèn quảng cáo kết thúc, hãy thêm lại lớp mã hoá bằng cách chèn một EXT-X-KEY thích hợp.

Theo dõi thời gian bắt đầu, thời lượng và chỉ mục của điểm chèn quảng cáo sắp tới.

Tạo mã thông báo Mã xác thực thông báo dựa trên hàm băm (HMAC)

Mỗi yêu cầu về phân đoạn được thực hiện bằng cách sử dụng tính năng phân phát nhóm chuyển hướng phân đoạn đều phải có một mã thông báo được ký bằng HMAC để xác thực.

Tính mã thông báo này một lần cho mỗi khoảng chèn quảng cáo và chia sẻ mã thông báo này trên tất cả các phiên phát trực tuyến.

Thu thập các thông số mã thông báo

Để điền vào phần nội dung mã thông báo, hãy thu thập những thông tin sau từ điểm chèn quảng cáo hiện tại:

Tham số mã thông báo
custom_asset_key Bắt buộc Khoá tài sản tuỳ chỉnh của sự kiện phát trực tiếp trong Google Ad Manager.
cust_params Không bắt buộc Thông số nhắm mục tiêu tuỳ chỉnh. Vui lòng xem cust_params.
exp Bắt buộc Dấu thời gian hết hạn của mã thông báo hiện tại tính bằng giây.
network_code Bắt buộc Mã mạng Ad Manager 360.
pod_id Bắt buộc Giá trị nhận dạng cho điểm chèn quảng cáo. Một số nguyên bắt đầu từ 1. Đối với mỗi điểm chèn quảng cáo, giá trị nhận dạng này sẽ tăng thêm một.

Giá trị này phải giống nhau đối với tất cả người dùng xem cùng một khoảng thời gian chèn quảng cáo trong sự kiện hiện tại.

pd Bắt buộc, ngoại trừ những sự kiện đã bật điểm chèn quảng cáo không có thời lượng. Thời lượng của điểm chèn quảng cáo tính bằng mili giây. Được gọi là ad_pod_duration.
scte35 Không bắt buộc Tín hiệu SCTE-35 được mã hoá Base64. Google DAI luôn sao chép tín hiệu vào khoảng thời gian quảng cáo đã tạo, ngay cả khi tín hiệu không chính xác. Nếu không chính xác, bạn sẽ nhận được một thông báo trong tiêu đề HTTP X-Ad-Manager-Dai-Warning trong phản hồi và tín hiệu vẫn tiếp tục tạo một điểm chèn quảng cáo. Để biết thông tin chi tiết về cách DAI sử dụng tín hiệu SCTE-35, hãy xem các điểm đánh dấu quảng cáo được hỗ trợ.

Tạo chuỗi mã thông báo

Để tạo một chuỗi mã thông báo, hãy liệt kê từng tham số theo thứ tự bảng chữ cái, ở định dạng NAME=VALUE, với mỗi cặp tên-giá trị được phân tách bằng ký tự dấu ngã ~.

Đối với các tham số không bắt buộc chưa dùng, hãy dùng một chuỗi trống làm giá trị hoặc xoá hoàn toàn tham số đó.

Ví dụ sau đây định dạng một chuỗi mã thông báo:

custom_asset_key=CUSTOM_ASSET_STRING~exp=EXPIRATION~network_code=NETWORK_CODE~pd=POD_DURATION~pod_id=AD_POD_INDEX~scte35=SCTE35_MESSAGE

Tạo chữ ký HMAC

Chữ ký HMAC là hàm băm SHA-256 của chuỗi mã thông báo ở định dạng HEX. Khoá bí mật là khoá xác thực HMAC được liên kết với sự kiện phát trực tiếp của bạn trong Google Ad Manager.

Chuỗi mã thông báo chữ ký

Sau khi tạo chữ ký HMAC, hãy thêm chữ ký vào chuỗi mã thông báo theo định dạng sau:

~hmac=HMAC_SIGNATURE

Mã hoá chuỗi mã thông báo

Để truyền mã thông báo dưới dạng tham số URL, hãy mã hoá URL để đảm bảo an toàn.

Ví dụ sau đây tạo ra một mã thông báo HMAC đã ký và được mã hoá, trong đó các tham số không bắt buộc không dùng đến là các chuỗi trống:

custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g~cust_params=~exp=1489680000~network_code=6062~pd=180000~pod_id=5~scte35=

Secret key:
A7490591290583E4B93189DEE7E287C299FC686872ABC7ADC9F9F536443505F

HMAC signature:
86d7e5f8c96fe4c83141d764df376ae14a0e2066f2e6b2ccfb9e1e2d3c869a88

Signed token:
custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g~cust_params=~exp=1489680000~network_code=6062~pd=180000~pod_id=5~scte35=~hmac=86d7e5f8c96fe4c83141d764df376ae14a0e2066f2e6b2ccfb9e1e2d3c869a88

URL-encoded signed token:
custom_asset_key%3DiYdOkYZdQ1KFULXSN0Gi7g~cust_params%3D~exp%3D1489680000~network_code%3D6062~pd%3D180000~pod_id%3D5~scte35%3D~hmac%3D86d7e5f8c96fe4c83141d764df376ae14a0e2066f2e6b2ccfb9e1e2d3c869a88

Ví dụ sau đây tạo ra một mã thông báo HMAC đã ký và mã hoá mà không có các tham số không bắt buộc không dùng đến:

custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g3~exp=1489680000~network_code=6062~pd=180000~pod_id=5

Secret key:
A7490591290583E4B93189DEE7E287C299FC686872ABC7ADC9F9F536443505F

HMAC signature:
6a8c44c72e4718ff63ad2284edf2a8b9e319600b430349d31195c99b505858c9

Signed token:
custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g~exp=1489680000~network_code=6062~pd=180000~pod_id=5~hmac=6a8c44c72e4718ff63ad2284edf2a8b9e319600b430349d31195c99b505858c9

URL-encoded signed token:
custom_asset_key%3DiYdOkYZdQ1KFULXSN0Gi7g~exp%3D1489680000~network_code%3D6062~pd%3D180000~pod_id%3D5~hmac%3D6a8c44c72e4718ff63ad2284edf2a8b9e319600b430349d31195c99b505858c9

Tạo URL phân khúc quảng cáo

Thay thế từng phân đoạn nội dung giữa các thẻ EXT-X-DISCONTINUITY bằng một URL trỏ đến phương thức phân đoạn nhóm quảng cáo.

Ví dụ sau đây sẽ tập hợp một phân đoạn nhóm quảng cáo. Xin lưu ý rằng các phân đoạn quảng cáo sử dụng chỉ mục dựa trên 0:

https://dai.google.com/linear/pods/v1/seg/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/0.ts?sd=AD_SEGMENT_DURATION&pd=AD_BREAK_DURATION&stream_id=SESSION_ID&auth-token=HMAC

Ví dụ sau đây chèn các phân đoạn nhóm quảng cáo vào tệp kê khai:

#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0

#EXTINF:5.00,
contentorigin.com/1.ts
#EXTINF:5.00,
contentorigin.com/2.ts
#EXT-X-DISCONTINUITY
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/seg/network/
NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/0.ts?sd=5000&so=0&pd=15000&stream_id=SESSION_ID
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/seg/network/
NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/1.ts?sd=5000&so=5000&pd=15000&stream_id=SESSION_ID
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/seg/network/
NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/2.ts?sd=5000&so=10000&pd=15000&stream_id=SESSION_ID
#EXT-X-DISCONTINUITY
#EXTINF:5.00,
contentorigin.com/6.mp4
#EXTINF:5.00,
contentorigin.com/7.mp4
#EXTINF:5.00,
contentorigin.com/8.mp4

Không bắt buộc: Lên lịch điểm chèn quảng cáo

Để tăng tỷ lệ lấp đầy, hãy gửi Early Ad Break Notification (EABN) (Thông báo sớm về điểm chèn quảng cáo) cùng với thời lượng nhóm quảng cáo, các thông số nhắm mục tiêu tuỳ chỉnh và dữ liệu tín hiệu SCTE-35. Để biết thêm thông tin chi tiết, hãy xem phần Gửi thông báo sớm về điểm chèn quảng cáo.