Chèn quảng cáo có siêu dữ liệu về thời gian của nhóm quảng cáo

Tài liệu hướng dẫn này mô tả cách chèn điểm chèn quảng cáo bằng phương thức Siêu dữ liệu về thời gian của nhóm quảng cáo (ATM) để tìm nạp thời gian và thời lượng chính xác cho điểm chèn quảng cáo, bao gồm cả quảng cáo trước video.

Để chèn quảng cáo chèn trước và quản lý việc quay lại nội dung sau khi kết thúc điểm chèn quảng cáo chèn giữa, bạn nên gọi các API sau:

Bạn có thể gọi API Thông báo điểm chèn quảng cáo sớm (EABN) để lên lịch quyết định về quảng cáo trước khi điểm chèn quảng cáo bắt đầu (đối với các sự kiện phát trực tiếp có tính đồng thời cao).

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

Để bắt đầu, bạn cần thiết lập một sự kiện phát trực tiếp cho loại Lệnh chuyển hướng phân phát nhóm Chèn quảng cáo động (DAI). Chọn một trong các phương thức sau:

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ẽ đưa ra 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 DAI của Google và CUSTOM_ASSET_KEY từ yêu cầu để chuẩn bị cho việc ghép quảng cáo.

Truy xuất siêu dữ liệu về thời gian của nhóm quảng cáo

Để truy xuất thời gian của nhóm quảng cáo, hãy làm theo các bước sau:

  1. Tạo mã thông báo HMAC.
  2. Gọi ATM API bằng mã thông báo HMAC.

Yêu cầu siêu dữ liệu về thời gian cho quảng cáo trước video

Xác minh chế độ cài đặt quảng cáo chèn trước cho sự kiện phát trực tiếp bằng các lựa chọn sau:

Để truy xuất kết quả quyết định về quảng cáo chèn trước, hãy gửi yêu cầu đến ATM API.

Ví dụ sau đây đưa ra yêu cầu ATM cho quảng cáo trước video:

curl "https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/pod.json?stream_id=SESSION_ID&ad_break_id=preroll&auth-token=your_signed_HMAC_token"

Yêu cầu siêu dữ liệu về thời gian cho quảng cáo trong video

Để truy xuất siêu dữ liệu nhóm quảng cáo cho quảng cáo trong video, hãy làm theo các bước sau:

  1. Phân tích cú pháp tệp kê khai sự kiện phát trực tiếp để tìm các điểm đánh dấu quảng cáo có chứa thời gian và thời lượng cho từng điểm chèn quảng cáo chèn giữa.
  2. Gọi điểm cuối ATM API để yêu cầu thời lượng chính xác của nhóm quảng cáo và bảng thông tin. API này trả về một đối tượng JSON có kết quả quyết định của nhóm quảng cáo.

Ví dụ sau đây đưa ra yêu cầu ATM cho quảng cáo trong video:

curl "https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/pod.json?stream_id=SESSION_ID&ad_break_id=AD_BREAK_ID&pd=AD_BREAK_DURATION&auth-token=your_signed_HMAC_token"

Nếu thành công, bạn sẽ thấy kết quả tương tự như đối tượng JSON sau:

{
  "status": "final",
  "ads": [
    {
      "duration_ms": 5046,
      "variants": {
        "devrel1428000": {
          "segment_extension": "ts",
          "segment_durations": {
            "timescale": 1000,
            "values": [
              5045
            ]
          }
        },
        "devrel1928000": {
          "segment_extension": "ts",
          "segment_durations": {
            "timescale": 1000,
            "values": [
              5045
            ]
          }
        }
      }
    }
  ],
  "slate": {
    "duration_ms": 0,
    "variants": {
      "devrel1428000": {
        "segment_extension": "ts",
        "segment_durations": {
          "timescale": 1000,
          "values": [
            5005,
            ...
            5046
          ]
        }
      },
      "devrel1928000": {
        "segment_extension": "ts",
        "segment_durations": {
          "timescale": 1000,
          "values": [
            5005,
            ...
            5046
          ]
        }
      }
    }
  }
}

Ghép quảng cáo vào tệp kê khai nội dung

Các phần sau đây hướng dẫn bạn cách sửa đổi tệp kê khai sự kiện phát trực tiếp và thêm các phân đoạn 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 điểm 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 URL phân khúc quảng cáo

Thay thế các phân đoạn nội dung giữa thẻ EXT-X-DISCONTINUITY bằng URL cho từng phân đoạn quảng cáo. Để xác định số lượng phân đoạn quảng cáo cần chèn, hãy sử dụng ads.segment_durations.values có trong phản hồi JSON từ ATM API.

Để kết thúc sớm một nhóm quảng cáo khi phát hiện thẻ EXT-X-CUE-IN, hãy thêm tham số d= vào URL của phân đoạn quảng cáo cuối cùng. Tham số này rút ngắn đoạn để tránh ảnh hưởng đến dòng thời gian của trình phát video trên máy khách.

Ví dụ sau đây sẽ tập hợp một URL phân đoạn quảng cáo chèn trước vào tệp kê khai. 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/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/preroll/ad/0/profile/ENCODING_PROFILE/0.ts?stream_id=SESSION_ID

Ví dụ sau đây sẽ tập hợp một URL phân đoạn quảng cáo chèn giữa vào tệp kê khai:

https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/ad/0/profile/ENCODING_PROFILE/0.ts?stream_id=SESSION_ID

Ví dụ sau đây chèn các phân đoạn 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/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/ad/0/profile/ENCODING_PROFILE/0.ts?stream_id=SESSION_ID
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/ad/0/profile/ENCODING_PROFILE/1.ts?stream_id=SESSION_ID
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/ad/0/profile/ENCODING_PROFILE/2.ts?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

Tạo phân đoạn phương tiện chặn

Để lấp đầy khoảng trống giữa quảng cáo và nội dung, hãy chèn các phân đoạn phương tiện chặn. Sử dụng mảng slates.segment_durations.values trong phản hồi JSON của ATM API để xác định thời lượng của từng phân đoạn bảng thông báo. Lặp lại chuỗi thời lượng phân đoạn khi cần để lấp đầy toàn bộ khoảng thời gian chèn quảng cáo.

Ví dụ sau đây minh hoạ cách lắp ráp một phân đoạn bảng thông báo:

https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/slate/0/profile/ENCODING_PROFILE/0.ts?stream_id=SESSION_ID

slate/0 trong ví dụ này biểu thị số lần lặp lại của bảng điều khiển. Tham khảo khả năng tương thích và khả năng lưu vào bộ nhớ đệm của trình phát video trên máy khách để xác định xem có nên bắt đầu từ 0 và tăng số này cho mỗi vòng lặp của bảng quảng cáo hay giữ ở mức 0 cho tất cả các lần lặp.

Quản lý việc quay lại nội dung

Sau khi bạn chèn tất cả các phân đoạn từ nhóm quảng cáo, hãy chọn một trong các phương thức sau để chuyển về luồng nội dung:

Phương thức Mô tả Ảnh hưởng đến trình phát video trên ứng dụng
Lấp đầy bằng các đoạn phương tiện chặn Chèn các phân đoạn bảng tên và lặp lại bảng tên. Điền thời lượng và chèn các phần tử EXT-X-DISCONTINUITY giữa mỗi lần lặp lại của bảng. Không có hiệu ứng.
Trình phát video chuyển về nội dung mà không có dòng thời gian bị thay đổi.
Điều chỉnh lại bằng một phân đoạn bảng duy nhất Chèn một đoạn bảng hiệu duy nhất. Sử dụng tham số d= để điền thời lượng cho đến khi nội dung bắt đầu. Không có hiệu ứng.
Trình phát video chuyển về nội dung mà không có dòng thời gian bị thay đổi.
Trả lại ngay Chèn các đoạn nội dung. Dòng thời gian của trình phát video bị thay đổi.
Trình phát video của ứng dụng phải xử lý dòng thời gian đã thay đổi.

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

Để tăng tỷ lệ đáp ứng, 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 tùy 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.