Hỗ trợ phiên đấu giá cho nhiều người bán bằng chức năng Dàn xếp của Protected Audience

Gửi ý kiến phản hồi

Các nền tảng quảng cáo bên bán thường đa dạng hoá nguồn nhu cầu quảng cáo để tối ưu hoá doanh thu từ quảng cáo. Với chức năng dàn xếp quảng cáo, một mạng quảng cáo hoặc dịch vụ sẽ gọi nhiều mạng quảng cáo để xác định quảng cáo phù hợp nhất cho một vùng quảng cáo nhất định. Đề xuất này giới thiệu cách mở rộng Protected Audience API trên Android để triển khai chức năng dàn xếp kiểu thác nước theo cách bảo đảm quyền riêng tư. Hiện nay, mạng quảng cáo cung cấp nhiều cách để nhà phát triển ứng dụng dàn xếp các phiên đấu giá quảng cáo từ nhiều người bán quảng cáo:

  1. Dàn xếp kiểu thác nước: Nhà phát triển ứng dụng xác định danh sách mạng quảng cáo theo thứ tự, thường xếp hạng theo chi phí hiệu quả trên mỗi nghìn lượt hiển thị (eCPM) trước đây cho mạng cụ thể. Danh sách này gọi là chuỗi dàn xếp. Nền tảng dàn xếp của nhà phát triển ứng dụng dùng danh sách này để gọi các mạng quảng cáo theo thứ tự trong danh sách, nhằm xác định các nguồn nhu cầu quảng cáo có liên quan.
  2. Dàn xếp có lập trình: Nhiều mạng quảng cáo được nhà phát triển ứng dụng định cấu hình để tham gia đặt giá thầu cho các cơ hội quảng cáo. Các mạng này được phép đặt giá thầu theo thời gian thực dựa trên cách họ đánh giá cơ hội.
  3. Dàn xếp kết hợp: Sự kết hợp của các kỹ thuật dàn xếp kiểu thác nước và có lập trình.

Dàn xếp kiểu thác nước

Trong quy trình dàn xếp kiểu thác nước, khi một cơ hội quảng cáo xuất hiện, SDK quảng cáo sẽ gửi yêu cầu đến máy chủ phụ trợ. Thay vì phản hồi yêu cầu bằng một mẫu quảng cáo chiến thắng, máy chủ phản hồi bằng một chuỗi dàn xếp chứa danh sách mạng quảng cáo được sắp xếp theo eCPM trước đây.

Biểu đồ mô hình dàn xếp kiểu thác nước
Hình 1. Mô hình dàn xếp kiểu thác nước.

Trong mô hình thác nước truyền thống, SDK quảng cáo gọi từng mạng quảng cáo (hoặc SDK đấu giá của riêng mạng quảng cáo đó) theo thứ tự do chuỗi dàn xếp xác định. Nếu một mạng quảng cáo có thể thực hiện yêu cầu quảng cáo, thì mạng quảng cáo đó sẽ hiển thị quảng cáo. Nếu không, yêu cầu sẽ được gửi đến mạng tiếp theo trong chuỗi. Quá trình này lặp lại cho đến khi yêu cầu được thực hiện hoặc hết chuỗi.

Quy trình dàn xếp kiểu thác nước thường được tối ưu hoá bằng cách thường xuyên sắp xếp lại chuỗi dàn xếp dựa trên kết quả đánh giá lại eCPM từ các nguồn nhu cầu quảng cáo của bên thứ nhất.

Dàn xếp có lập trình

Chức năng dàn xếp có lập trình (còn gọi là "đặt giá thầu dựa vào tiêu đề") là một giải pháp thay thế cho việc sử dụng eCPM trước đây để xác định mạng quảng cáo có cơ hội phân phát yêu cầu quảng cáo. Với chức năng dàn xếp có lập trình, nhà cung cấp sử dụng giá trị giá thầu trực tiếp để tìm quảng cáo chiến thắng.

Biểu đồ của mô hình dàn xếp có lập trình
Hình 2: Mô hình dàn xếp có lập trình

Dàn xếp kết hợp

Một số giải pháp dàn xếp có lập trình kết hợp các mạng quảng cáo ở chế độ kết hợp giữa thác nước với quy trình đặt giá thầu, nhằm cung cấp nhiều quyền kiểm soát quảng cáo hơn trong khi khai thác eCPM trực tiếp để tăng tối đa doanh thu của các mạng quảng cáo tham gia.

Trong mô hình dàn xếp kết hợp, mạng quảng cáo và nhà cung cấp giải pháp dàn xếp có thể giúp nhà phát triển ứng dụng linh hoạt hơn bằng cách kết hợp các phần tử của thác nước và quy trình đặt giá thầu theo thời gian thực. Với mô hình kết hợp, nhà phát triển ứng dụng có thể định cấu hình mạng quảng cáo dựa trên eCPM trước đây. Nhờ đó, họ có cơ hội hiển thị quảng cáo trước khi chạy quy trình đặt giá thầu theo thời gian thực với các mạng tham gia để đáp ứng cơ hội quảng cáo.

Dàn xếp kiểu thác nước của Protected Audience

Protected Audience API trên Android hỗ trợ chức năng dàn xếp kiểu thác nước nhờ có nhiều phiên đấu giá, mỗi phiên dành cho một nút riêng lẻ trong biểu đồ dàn xếp. Nếu không có quảng cáo chiến thắng trong phiên đấu giá, nút đấu giá của mạng tiếp theo sẽ được gọi cho đến khi hết chuỗi. Quy trình dàn xếp kiểu thác nước như sau:

  1. SDK dàn xếp tìm nạp chuỗi dàn xếp từ điểm cuối của máy chủ quảng cáo theo bối cảnh. Quá trình này có thể trả về quảng cáo theo bối cảnh hoặc chuỗi dàn xếp.
  2. Nếu điểm cuối của máy chủ quảng cáo trả về một chuỗi dàn xếp, thì SDK dàn xếp sẽ lặp lại qua từng mục trong chuỗi theo thứ tự, gọi SDK của mạng quảng cáo tham gia để chạy một lựa chọn quảng cáo theo bối cảnh và tái tiếp thị. Mỗi mục trong chuỗi biểu thị một yêu cầu mua không gian quảng cáo của một mạng quảng cáo với một mức giá cụ thể cho số lượt hiển thị, lượt nhấp hoặc thời gian quảng cáo cụ thể.
  3. Nếu không có mục hàng nào trong chuỗi chọn quảng cáo chiến thắng, thì SDK dàn xếp có thể chọn hiển thị một quảng cáo từ mạng quảng cáo riêng bằng cách chạy một lựa chọn quảng cáo Protected Audience sẽ xem xét cả quảng cáo tái tiếp thị và quảng cáo theo bối cảnh.

Biểu đồ quy trình dàn xếp kiểu thác nước của Protected Audience
Hình 3. Dàn xếp kiểu thác nước bằng Protected Audience API.

Biểu đồ trên cho thấy ví dụ về một thuật toán dàn xếp kiểu thác nước mà SDK dàn xếp có thể triển khai, khi mạng quảng cáo của bên thứ nhất không thể tối ưu hoá. Protected Audience API hỗ trợ tối ưu hoá mạng quảng cáo của bên thứ nhất bằng cách cho phép tạo chuỗi quy trình lựa chọn quảng cáo và báo cáo lượt hiển thị chiến thắng.

Kết quả AdSelection

Loại dữ liệu trả về của selectAds() là một đối tượng AdSelectionOutcome. AdSelectionOutcome chứa URI kết xuất của quảng cáo chiến thắng và AdSelectionId – một số nguyên không rõ ràng xác định mẫu quảng cáo chiến thắng của mục hàng.

AdSelectionOutcome {
  Uri renderUri;
  Long AdSelectionId;
}

AdSelectionId đóng vai trò là con trỏ đến AdSelectionOutcome. Hiện tại, AdSelectionId được truyền vào phương thức reportResult() dưới dạng thông số ReportImpressionInput để giúp xác định đúng quảng cáo mà các phương thức reportWin()reportResult() được gọi.

Đề xuất lựa chọn quảng cáo theo chuỗi

Chúng tôi đề xuất phương thức nạp chồng selectAds() bằng AdSelectionFromOutcomesConfig.

val config = AdSelectionFromOutcomesConfig.Builder()
        .setSeller(seller)
        .setAdSelectionIds(listOf(outcome1pAdSelectionId))
        .setSelectionSignals({"bid_floor": bidFloorOfNextNetworkInline})
        .setSelectionLogicUri(selectionLogicUri)
        .build()
adSelectionClient.selectAds(config)

Điều này cho phép SDK dàn xếp so sánh giá thầu của quảng cáo giành chiến thắng với giá thầu sàn của hệ thống mạng nội tuyến tiếp theo.

Ví dụ 1: .

Ví dụ 2: .

Báo cáo lượt hiển thị giành chiến thắng

Nếu có quảng cáo giành chiến thắng ở selectAds(AdSelectionFromOutcomes), thì quảng cáo đó sẽ thắng hoạt động dàn xếp. Sau đó, reportImpression được gọi bằng mã nhận dạng lựa chọn quảng cáo của quảng cáo giành chiến thắng thuộc selectAds(AdSelectionFromOutcomes)AdSelectionConfig tương ứng.

Nếu kết quả chiến thắng được trả về từ selectAds(AdSelectionConfig) cho hệ thống mạng, thì reportImpression sẽ được gọi bằng mã nhận dạng lựa chọn quảng cáo và cấu hình của lệnh gọi đó.

Chạy quy trình dàn xếp kiểu thác nước

Dưới đây là thứ tự các thao tác cần chạy thông qua quy trình dàn xếp kiểu thác nước.

  1. Chạy lựa chọn quảng cáo của bên thứ nhất.
  2. Lặp lại trên chuỗi dàn xếp. Đối với mỗi hệ thống mạng của bên thứ ba, hãy làm như sau:
    1. Tạo AdSelectionFromOutcomeConfig, bao gồm outcomeId bên thứ nhất và giá thầu sàn của SDK bên thứ ba
    2. Gọi selectAds() bằng config của bước trước.
    3. Nếu kết quả không trống, hãy trả về quảng cáo.
    4. Gọi phương thức selectAds() của bộ chuyển đổi mạng SDK hiện tại. Nếu kết quả không trống, hãy trả về quảng cáo.
  3. Nếu không tìm thấy quảng cáo giành chiến thắng ở trong chuỗi, hãy trả về quảng cáo của bên thứ nhất.

Các phương pháp hay nhất

Chạy phiên đấu giá theo bối cảnh trước khi tối ưu hoá cho bên thứ nhất

Nhu cầu tái tiếp thị có thể tạo ra giá thầu cao, từ đó mang lại kết quả chiến thắng trong chuỗi dàn xếp. Rút ngắn là quy trình thường dùng để hỗ trợ tối ưu hoá cho bên thứ nhất bằng cách tinh chỉnh danh sách đối tượng tái tiếp thị.

Nhu cầu tái tiếp thị của Protected Audience API chỉ dùng được ở phía máy khách với các phiên đấu giá trong Protected Audience. Điều này có thể dẫn đến khó tối ưu hoá cho bên thứ nhất ở phía máy chủ. Để giảm thiểu vấn đề liên quan đến việc tối ưu hoá cho bên thứ nhất, trước tiên, hãy chạy phiên đấu giá theo bối cảnh, sau đó tiến hành tối ưu hoá cho bên thứ nhất dựa trên kết quả quảng cáo chiến thắng như mô tả trên trang này.

Duy trì các chuỗi dàn xếp nhỏ trên thiết bị

Để đạt được hiệu suất tối ưu, bạn nên duy trì các chuỗi dàn xếp nhỏ trên thiết bị. Chi phí tính toán cho quá trình thực thi trên thiết bị có thể tuyến tính theo số lượng phiên đấu giá được đánh giá trong chuỗi dàn xếp. Nói cách khác, càng nhiều nút sẽ dẫn đến càng nhiều yêu cầu về chu kỳ tính toán và độ trễ sẽ tăng lên. Hãy xem xét tác động của độ trễ đối với doanh thu khi bạn truyền các nút đến phần đánh giá dàn xếp trên thiết bị.

Các yếu tố cần cân nhắc khác

Protected Audience API hiện không cung cấp giải pháp toàn diện cho chức năng dàn xếp nhiều vùng quảng cáo. Mỗi vùng quảng cáo phải được xử lý độc lập.

API dàn xếp Protected Audience hỗ trợ chức năng dàn xếp kiểu thác nước và một phần chức năng dàn xếp có lập trình. Trong tương lai, chúng tôi sẽ chia sẻ thêm thông tin chi tiết về việc hỗ trợ các trường hợp sử dụng khác của chức năng dàn xếp có lập trình.

Vì lựa chọn quảng cáo Protected Audience chạy sau khi tìm nạp quảng cáo theo bối cảnh, nên việc gọi Protected Audience API có thể ảnh hưởng đến độ trễ toàn diện của các yêu cầu quảng cáo.