Bản phát hành Beta của Hộp cát về quyền riêng tư trên Android đã ra mắt! Tìm hiểu cách bắt đầu và tiếp tục đưa ra ý kiến phản hồi.

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

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

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 FLEDGE trên Android để triển khai chức năng dàn xếp kiểu thác nước sao cho 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 FLEDGE

FLEDGE dành cho 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á FLEDGE, 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 FLEDGE 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 FLEDGE
Hình 3. Dàn xếp kiểu thác nước với FLEDGE.

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, nhưng mạng quảng cáo của bên thứ nhất không thể tối ưu hoá. FLEDGE 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 mở rộng selectAds() để xem xét kết quả của các lần chạy lựa chọn quảng cáo trước, từ đó chọn một quảng cáo chiến thắng thông qua đối tượng AdSelectionOutcome. Điều này cho phép mạng quảng cáo chạy quy trình dàn xếp xem xét quảng cáo theo bối cảnh và quảng cáo tái tiếp thị từ nhiều mạng quảng cáo.

ChainedAdSelections được thêm vào AdSelectionConfig. ChainedAdSelections dưới dạng thông số không bắt buộc, có thể chứa danh sách kết quả lựa chọn quảng cáo từ các lệnh gọi trước của phương thức selectAds() trong chuỗi dàn xếp. Dưới đây là ví dụ về một SDK chạy AdSelection bằng kết quả từ SDK A và SDK B trên thiết bị. SDK A và B đều chia sẻ AdSelectionOutcome rõ ràng từ các lệnh gọi selectAds() tương ứng đến SDK chạy lựa chọn quảng cáo theo chuỗi.

AdSelectionConfig myAdSelectionConfig = new AdSelectionConfig {
    Seller = "example-ssp1.com",
    DecisionLogicURL = Uri.parse("https://..."),
    CustomAudienceBuyerList = Arrays.asList("example-dsp1.com","example-dsp2.com"),
    AdSelectionSignals = "{"min_price": 10,"auction_attempts": 3}"
    SellerSignals = "{"seller_type": "news", "content_category": "sports","mature_ads_accepted" :"false"}"
    PerBuyerSignals = "{"example-dsp1.com": {"key1" : "value1"},
                        "example-dsp2.com": {"key1" : "value1", "key2" : "value2"}"
    ChainedAdSelections = {network_a_selection_outcome, network_b_selection_outcome}
};

// Invoke ad services API to initiate ad selection workflow.
AdSelectionOutcome winningAd = selectAds(myAdSelectionConfig);

Biều đồ tạo chuỗi lựa chọn quảng cáo
Hình 4. Tạo chuỗi lựa chọn quảng cáo bằng selectAds().

Lưu ý rằng giá trị trả về của lệnh gọi selectAds() này là một đối tượng AdSelectionOutcome khác.

  • Giá trị của null sẽ được trả về trong trường hợp không lựa chọn quảng cáo nào.
  • Hệ thống sẽ trả về đối tượng AdSelectionOutcome mới trong trường hợp có bất kỳ quảng cáo nào được ChainedAdSelections gọi đến không phải là quảng cáo chiến thắng.
  • Một trong những kết quả được truyền vào AdSelection sẽ được trả về trong trường hợp đó là quảng cáo đã chọn.

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

Trong trường hợp không có quảng cáo chiến thắng trong lựa chọn quảng cáo theo chuỗi, thì lượt hiển thị chiến thắng sẽ không được báo cáo.

Nếu chọn một trong các đối tượng AdSelectionOutcome được truyền vào AdSelectionConfig, thì SDK đang chạy lựa chọn quảng cáo theo chuỗi sẽ giao tiếp với SDK quảng cáo chiến thắng về kết quả. Tiếp đến, SDK quảng cáo chiến thắng có thể gọi báo cáo lượt hiển thị chiến thắng giống như sau khi chạy AdSelection riêng. Điều này sẽ đảm bảo logic quyết định SDK là JavaScript của quảng cáo chiến thắng được sử dụng để báo cáo kết quả. Trong trường hợp này, SDK chạy lựa chọn quảng cáo theo chuỗi có thể báo cáo SDK quảng cáo nào có lượt hiển thị chiến thắng.

Nếu không có kết quả AdSelectionOutcome nào được chọn, thì SDK chạy lựa chọn quảng cáo theo chuỗi sẽ gọi báo cáo lượt hiển thị chiến thắng.

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

Với khả năng tạo chuỗi các phiên bản của AdSelectionOutcome, như đã mô tả trên trang này, một SDK dàn xếp có thể chạy quy trình dàn xếp kiểu thác nước trong khi cho phép mạng quảng cáo của bên thứ nhất tối ưu hoá. Có thể tóm tắt quy trình này như sau:

  1. SDK dàn xếp lấy một chuỗi dàn xếp từ máy chủ dàn xếp thông qua yêu cầu quảng cáo theo bối cảnh.
  2. SDK dàn xếp chạy lựa chọn quảng cáo xem xét cả quảng cáo tái tiếp thị và quảng cáo theo bối cảnh.
  3. SDK dàn xếp chạy một phiên đấu giá xem xét kết quả lựa chọn quảng cáo của bên thứ nhất và eCPM trước đây của mục đủ điều kiện đầu tiên trong chuỗi dàn xếp.

  4. Nếu chọn một quảng cáo, quảng cáo chiến thắng sẽ được xác định và quy trình kết thúc.

  5. Nếu không chọn quảng cáo nào, SDK dàn xếp sẽ chọn mục đủ điều kiện đầu tiên từ chuỗi dàn xếp và gọi SDK tương ứng để chạy lựa chọn quảng cáo tái tiếp thị và theo bối cảnh.

  6. Nếu chọn một quảng cáo, quảng cáo đó sẽ hiển thị và quy trình kết thúc.

  7. Nếu không chọn quảng cáo, mục tiếp theo trong chuỗi sẽ được xem xét và bước 3 được thực thi.

  8. Nếu không còn mục khác trong chuỗi, SDK dàn xếp sẽ hiển thị quảng cáo của bên thứ nhất bằng cách chạy lựa chọn quảng cáo FLEDGE xem xét cả quảng cáo tái tiếp thị và quảng cáo theo bối cảnh, tương tự như bước 2.

Quy trình dàn xếp kiểu thác nước FLEDGE
Hình 5. Quy trình dàn xếp kiểu thác nước FLEDGE.

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ị FLEDGE chỉ dùng được ở phía máy khách với các phiên đấu giá FLEDGE. Đ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

Đề xuất dành cho chức năng dàn xếp FLEDGE này đang trong quá trình hoàn thiện và chúng tôi hoan nghênh các ý kiến phản hồi.

FLEDGE 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 FLEDGE hiện 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 FLEDGE chạy sau khi tìm nạp quảng cáo theo bối cảnh, nên việc gọi FLEDGE có thể ảnh hưởng đến độ trễ toàn diện của các yêu cầu quảng cáo.