Hỗ trợ dàn xếp trong Thời gian chạy SDK

Dàn xếp là một cách phổ biến để các nền tảng quảng cáo bên bán cung cấp tính năng quản lý lợi nhuận. Trong quy trình dàn xếp, SDK dàn xếp ("trình dàn xếp") sẽ gọi nhiều mạng quảng cáo ("bên được dàn xếp") để nhận được quảng cáo phù hợp nhất cho một vị trí nhất định. Trong một số trường hợp, cả đơn vị trung gian và mạng quảng cáo mà đơn vị này gọi đều cần SDK của chúng trên thiết bị và tương tác.

Tài liệu này trình bày những thay đổi chính đối với quy trình làm việc dàn xếp trong Thời gian chạy SDK. Nội dung như sau:

  • Sự khác biệt giữa quy trình dàn xếp trước đây và tính năng hỗ trợ dàn xếp SDK Runtime hiện tại
  • Thiết lập các thao tác cho quy trình làm việc dàn xếp trong Thời gian chạy SDK và các giai đoạn chuyển đổi khác nhau
  • Hướng dẫn về cách xử lý các trường hợp không phải tất cả SDK đều đã di chuyển sang Thời gian chạy

Bạn có thể hỗ trợ Quảng cáo được dàn xếp trong Thời gian chạy SDK từ AGP 8.5 và từ các phiên bản sau của thư viện Jetpack Thời gian chạy SDK:

Thư viện Androidx Phiên bản
androidx.privacysandbox.activity 1.0.0-alpha01
androidx.privacysandbox.sdkruntime 1.0.0-alpha13
androidx.privacysandbox.tools 1.0.0-alpha08
androidx.privacysandbox.ui 1.0.0-alpha09

Bảng thuật ngữ

Các thuật ngữ sau đây là chìa khoá để hiểu hoạt động dàn xếp trong Thời gian chạy SDK:

  • SDK hỗ trợ thời gian chạy (RE SDK): Một SDK được tạo để chạy trong môi trường Thời gian chạy SDK và giao tiếp với ứng dụng qua giao tiếp giữa các quy trình (IPC).
  • SDK nhận biết thời gian chạy (RA SDK): Một SDK không hỗ trợ thời gian chạy, được liên kết với ứng dụng một cách tĩnh, có thể chứa mã SDK hiện có cũng như mã mới để gọi vào SDK hỗ trợ thời gian chạy.
  • SDK trong ứng dụng: Một SDK chạy được liên kết tĩnh với ứng dụng và không nhận biết được Thời gian chạy SDK. Đây có thể là một mạng quảng cáo chưa chuyển sang Thời gian chạy SDK hoặc bộ chuyển đổi tuỳ chỉnh của nhà xuất bản.
  • Bên dàn xếp: SDK dàn xếp quảng cáo cung cấp dịch vụ dàn xếp trên thiết bị bằng cách tương tác với các SDK mạng quảng cáo khác.
  • Bên được dàn xếp: SDK mạng quảng cáo được Bên dàn xếp gọi để cung cấp và hiển thị quảng cáo.
  • Bộ tiếp hợp dàn xếp: SDK do Mediator SDK sử dụng để cung cấp bản dịch giao diện API nhằm tương tác với nhiều SDK được dàn xếp, thường do bên dàn xếp cung cấp. Các thành phần này có thể nhận biết hoặc không nhận biết thời gian chạy.

Quy trình dàn xếp thông thường

Nếu SDK của bạn cần hỗ trợ các trường hợp sử dụng dàn xếp trong Thời gian chạy SDK, thì bạn sẽ cần triển khai một số thay đổi. Phần này xem xét các thành phần chính của luồng dàn xếp để chúng ta có thể giải quyết những thay đổi cần thiết cho bên dàn xếp và bên được dàn xếp.

Các luồng mà chúng tôi mô tả là phiên bản đơn giản hoá của hoạt động dàn xếp trên thiết bị bằng nhiều SDK mạng quảng cáo và đóng vai trò là cơ sở để thảo luận về những thay đổi cần thiết để hành trình dàn xếp tương thích với Thời gian chạy SDK.

Do có sự khác biệt trong việc triển khai quy trình dàn xếp, nên chúng tôi tập trung vào 2 quy trình chính sau:

  • Khởi chạy (bao gồm cả việc khám phá mạng quảng cáo và hoạt động giao tiếp)
  • Bản trình bày về giao diện người dùng (UI) của quảng cáo

Khởi chạy

Sau đây là quy trình khởi chạy, khám phá mạng quảng cáo và giao tiếp tiêu chuẩn:

  1. Ứng dụng khách khởi tạo đối tượng trung gian
  2. Mediator phát hiện và khởi chạy các đối tượng trung gian và bộ chuyển đổi có liên quan
  3. Mediator sử dụng các bộ chuyển đổi của mình để giao tiếp với từng mediatee
  4. Ứng dụng khách yêu cầu trình hoà giải tải một quảng cáo
  5. Ứng dụng khách yêu cầu đối tượng trung gian hiển thị quảng cáo này

Bản trình bày giao diện người dùng của quảng cáo

Khi hiển thị quảng cáo sau yêu cầu cuối cùng ở bước trước, quy trình này sẽ phụ thuộc vào loại quảng cáo:

Quảng cáo biểu ngữ Quảng cáo toàn màn hình Quảng cáo gốc
SDK dàn xếp tạo một Khung hiển thị quảng cáo, bao bọc Khung hiển thị quảng cáo của bên được dàn xếp chiến thắng.

Thao tác này cũng có thể đặt trình nghe trên View này hoặc tự động làm mới quảng cáo (bằng cách sử dụng cùng một hoặc một mediatee khác).
SDK dàn xếp yêu cầu một quảng cáo toàn màn hình từ bên được dàn xếp, từ đó bắt đầu một Hoạt động. Nhà xuất bản quản lý việc xử lý và tăng cường chế độ xem bằng cách sử dụng các thành phần do SDK dàn xếp trả về.

Quy trình dàn xếp trong Thời gian chạy SDK

Cách hoạt động của tính năng dàn xếp trong Thời gian chạy SDK sẽ khác nhau tuỳ thuộc vào việc bên được dàn xếp có được bật thời gian chạy hay không. Dựa vào đó, chúng ta có thể có các trường hợp sau:

  • Cả trình dàn xếp và đối tượng được dàn xếp đều nằm trong Thời gian chạy SDK: Đối tượng được dàn xếp RE
  • Trình dàn xếp nằm trong Thời gian chạy SDK và đối tượng được dàn xếp nằm trong ứng dụng: Đối tượng được dàn xếp trong ứng dụng

RE Mediatee

Sơ đồ cấu trúc sau đây cho thấy thông tin tổng quan cấp cao về hoạt động tương tác của các SDK hỗ trợ thời gian chạy (RE) và nhận biết thời gian chạy (RA) của trình dàn xếp, các bộ chuyển đổi dàn xếp RE và các SDK RE của bên được dàn xếp.

Các bộ chuyển đổi dàn xếp cần nằm trong cùng một quy trình với đối tượng được dàn xếp mà chúng đang tương tác, vì vậy, các bộ chuyển đổi này cũng sẽ phải di chuyển sang Thời gian chạy SDK.

Sơ đồ cấu trúc cho thấy thông tin tổng quan cấp cao về hoạt động tương tác của các SDK có hỗ trợ thời gian chạy (RE) và nhận biết thời gian chạy (RA) của đối tượng trung gian, các bộ chuyển đổi dàn xếp RE và các SDK RE của đối tượng được dàn xếp.
Hình 1. Cả đối tượng trung gian và đối tượng được trung gian đều là SDK RE.

Khởi chạy

Khi xem xét quá trình khởi chạy, khám phá và giao tiếp của cả trình hoà giải và đối tượng được hoà giải có hỗ trợ thời gian chạy, quy trình sẽ tuân theo các bước sau:

  1. Ứng dụng (hoặc RA SDK) tải và khởi chạy SDK trung gian bằng cách sử dụng SdkSandboxManager#loadSdk.
  2. Trong quá trình khởi chạy, SDK dàn xếp sẽ tải và khởi chạy mọi đối tượng được dàn xếp bắt buộc trong Thời gian chạy SDK bằng cách sử dụng SdkSandboxController#loadSdk.
  3. SDK RE có thể phát hiện tất cả các SDK đã tải trong Thời gian chạy bằng cách gọi SdkSandboxController#getSandboxedSdks.
RE – Sơ đồ trình tự dàn xếp RE cho thấy quy trình được mô tả trước đó.
Hình 2. Quy trình khởi tạo một RE mediatee.

Bản trình bày giao diện người dùng của quảng cáo

Phần sau đây trình bày cách tải biểu ngữ và quảng cáo toàn màn hình từ một REmediatee.

RE Mediatee banner ads

Khi ứng dụng đưa ra yêu cầu tải quảng cáo biểu ngữ, quy trình hoàn tất việc hiển thị sẽ như sau:

  1. Bên trung gian chọn bên được trung gian chiến thắng cho quảng cáo này.
  2. Bên trung gian lấy SandboxedUiAdapter từ bên được trung gian.
  3. Mediator chuyển tiếp UiAdapter đến ứng dụng.
Quy trình hoàn tất việc hiển thị quảng cáo biểu ngữ trong hoạt động dàn xếp RE-RE.
Hình 3. Quy trình hoàn tất việc hiển thị một quảng cáo biểu ngữ trong một đối tượng được dàn xếp RE.

Tìm hiểu thêm về cách sử dụng SandboxedUiAdapter và Thư viện giao diện người dùng Thời gian chạy SDK.

Lớp phủ cho quảng cáo biểu ngữ

Nếu muốn thêm lớp phủ vào quảng cáo, các đơn vị trung gian sẽ phải sửa đổi quy trình như sau:

  1. Mediator tạo một bố cục có lớp phủ và SandboxedSdkView.
  2. Bên trung gian chọn bên được trung gian chiến thắng cho quảng cáo này.
  3. Bên trung gian lấy một SandboxedUiAdapter từ bên được trung gian.
  4. Bên trung gian đặt UiAdapter của bên được trung gian thành SandboxedSdkView.
  5. Mediator chia sẻ khung hiển thị được điền sẵn với ứng dụng.
Quy trình phủ một khung hiển thị lên quảng cáo biểu ngữ nhận được từ một RE Mediatee.
Luồng để phủ một khung hiển thị lên quảng cáo biểu ngữ nhận được từ một RE Mediatee.
RE Mediatee full-screen ads

Khi ứng dụng đưa ra yêu cầu tải quảng cáo toàn màn hình, quy trình sẽ thực hiện các bước sau:

  1. Ứng dụng (hoặc RA SDK) sẽ truyền một SdkActivityLauncher đến bộ điều phối cùng với yêu cầu tải quảng cáo.
    1. Ứng dụng có thể hạn chế việc tạo các hoạt động bằng cách sử dụng một vị từ.
  2. Bên trung gian chọn bên được trung gian chiến thắng cho quảng cáo này.
  3. Mediator yêu cầu mediatee tải một quảng cáo, chuyển SdkActivityLauncher từ ứng dụng.
  4. Đăng ký trình xử lý hoạt động và nhận mã thông báo giá trị nhận dạng cho hoạt động đã đăng ký.
  5. Bên được uỷ quyền sử dụng SdkActivityLauncher để yêu cầu bắt đầu một hoạt động bằng mã thông báo này.
  6. Nếu vị từ của ứng dụng khách cho phép, Thời gian chạy SDK sẽ bắt đầu hoạt động này trong quy trình chuyên dụng.
Quy trình hiển thị một ứng dụng toàn màn hình được dàn xếp từ một RE Mediatee.
Hình 4. Sơ đồ quy trình minh hoạ cách tải quảng cáo toàn màn hình được dàn xếp từ một RE Mediatee.

Tìm hiểu thêm về tính năng hỗ trợ Hoạt động cho quảng cáo toàn màn hình trong Thời gian chạy SDK.

Mediatee trong ứng dụng

Sơ đồ cấu trúc sau đây cho thấy thông tin tổng quan cấp cao về hoạt động tương tác giữa RE và RA SDK của đơn vị trung gian, các bộ chuyển đổi dàn xếp không nhận biết được Thời gian chạy SDK và các SDK của bên được dàn xếp được liên kết tĩnh với ứng dụng (cũng không nhận biết được thời gian chạy).

Sơ đồ kiến trúc cho thấy thông tin tổng quan cấp cao về hoạt động tương tác giữa RE và RA SDK của đối tượng trung gian, các bộ chuyển đổi dàn xếp không nhận biết được Thời gian chạy SDK và các SDK của đối tượng được dàn xếp được liên kết tĩnh với ứng dụng (cũng không nhận biết được thời gian chạy).
Hình 5. Mediatee được liên kết tĩnh với ứng dụng, ngay cả khi biết về RE SDK.

Khởi chạy

Vì trong trường hợp này, các đối tượng được dàn xếp được liên kết tĩnh với ứng dụng và chưa được di chuyển sang Thời gian chạy SDK, nên SDK hỗ trợ thời gian chạy của đối tượng dàn xếp phải có một quy trình để đăng ký các đối tượng đó.

Bạn có thể truy cập vào thông tin đăng ký này bằng API của đơn vị trung gian, nhưng thông tin chi tiết về cách triển khai sẽ do mỗi đơn vị trung gian quyết định. Chúng ta gọi API này là MediationSandboxedSdk#registerInAppMediatee.

Khi xem xét quá trình khởi chạy, khám phá và giao tiếp của SDK hoà giải RE và các SDK hoà giải trong ứng dụng, quy trình sẽ tuân theo các bước sau:

  1. Ứng dụng tải và khởi chạy SDK nhận biết thời gian chạy của đơn vị trung gian.
  2. RA SDK của đơn vị trung gian:
    1. Khởi chạy RE SDK của đối tượng hoà giải bằng SdkSandboxManager#loadSdk.
    2. Khởi chạy tất cả các SDK trung gian trong ứng dụng.
    3. Khám phá và đăng ký các SDK bên trung gian trong ứng dụng bằng API do SDK RE cung cấp, MediationSandboxedSdk#registerInAppMediate.

Ngoài việc đăng ký tất cả các SDK được dàn xếp trong ứng dụng, SDK RE của đơn vị trung gian có thể phát hiện tất cả các SDK được tải trong Thời gian chạy SDK bằng cách sử dụng SdkSandboxController#getSandboxedSdks.

Trình tự minh hoạ quy trình được mô tả để khởi chạy một Mediatee trong ứng dụng.
Hình 6. Xin lưu ý rằng chúng ta sử dụng API của đối tượng trung gian được đề xuất để đăng ký thông tin tham chiếu đến các đối tượng được hoà giải trong ứng dụng.

Bản trình bày giao diện người dùng của quảng cáo

Phần sau đây trình bày cách tải biểu ngữ và quảng cáo toàn màn hình từ một đối tượng được hoà giải trong ứng dụng.

Quảng cáo biểu ngữ bên được dàn xếp trong ứng dụng

Khi ứng dụng đưa ra yêu cầu tải quảng cáo biểu ngữ, quy trình hoàn tất việc hiển thị sẽ như sau:

  1. SDK nhận biết thời gian chạy của đơn vị trung gian chuyển tiếp yêu cầu của ứng dụng đến SDK hỗ trợ thời gian chạy.
  2. SDK RE của đối tượng trung gian sẽ chọn đối tượng được dàn xếp có liên quan.
  3. SDK RE của đơn vị trung gian truy xuất thông tin tham chiếu đến đơn vị được dàn xếp và yêu cầu tải một quảng cáo thông qua SDK RA.
  4. RA SDK lấy một Khung hiển thị từ mediatee trong ứng dụng.
  5. RA SDK tạo SandboxedUiAdapter cho Chế độ xem mà SDK nhận được.
  6. SDK RA chuyển tiếp UiAdapter đến SDK RE.
  7. SDK RE chuyển tiếp UiAdapter đến ứng dụng.
Quy trình hoàn tất việc hiển thị quảng cáo biểu ngữ từ một bên được dàn xếp trong ứng dụng
Hình 7. Xin lưu ý rằng bên dàn xếp không được phủ các khung hiển thị lên V1 khi nhận được V1 từ một bên được dàn xếp trong ứng dụng.
Quảng cáo toàn màn hình của mediatee trong ứng dụng

Khi ứng dụng đưa ra yêu cầu tải quảng cáo toàn màn hình, quy trình sẽ thực hiện các bước sau:

  1. Ứng dụng truyền một SdkActivityLauncher đến RA SDK của đơn vị trung gian cùng với yêu cầu tải quảng cáo.
    1. Ứng dụng có thể hạn chế việc tạo các hoạt động bằng cách sử dụng một vị từ.
  2. SDK RA của đơn vị trung gian chuyển tiếp yêu cầu của ứng dụng đến SDK RE.
  3. RE SDK của đơn vị trung gian:
    1. Chọn bên được hoà giải có liên quan.
    2. Truy xuất thông tin tham chiếu đến đối tượng được dàn xếp trong ứng dụng.
    3. Yêu cầu tải quảng cáo thông qua RA SDK.
  4. RA SDK yêu cầu bên được dàn xếp tải một quảng cáo.
  5. Người được giám sát sẽ bắt đầu hoạt động này trực tiếp. Vị từ của ứng dụng sẽ không được tuân thủ.
Quy trình tải quảng cáo toàn màn hình khi bên được quảng cáo nằm trong quy trình ứng dụng.
Hình 8. Vị từ này sẽ bị bỏ qua bởi đối tượng trung gian trong ứng dụng.

Tương tác và chia sẻ ý kiến phản hồi

Hộp cát về quyền riêng tư trên Android là một dự án đang được triển khai và tài liệu này phản ánh thiết kế hiện tại của dự án. Ý kiến phản hồi của bạn là yếu tố cần thiết để chúng tôi tiếp tục phát triển và cải thiện các tính năng của công cụ này. Báo cáo lỗi để gửi ý kiến phản hồi.