Медиация — распространенный способ управления доходностью для рекламных платформ, работающих на стороне продавца. В процессе медиации SDK медиации («медиатор») обращается к нескольким рекламным сетям («получатель медиации» или «получатели медиации»), чтобы получить наилучшую рекламу для заданного временного слота. В некоторых случаях SDK медиатора и вызываемых им рекламных сетей должны быть установлены на устройстве и взаимодействовать друг с другом.
В этом документе изложены ключевые изменения в рабочих процессах посредничества в среде выполнения SDK. Он охватывает следующие темы:
- Различия между предыдущими алгоритмами обработки запросов и поддержкой обработки запросов в текущей среде выполнения SDK.
- Настройка действий для рабочих процессов медиации в среде выполнения SDK, а также различных этапов перехода.
- Рекомендации по обработке ситуаций, когда не все SDK были перенесены в среду выполнения.
Поддержка медийной рекламы в среде выполнения SDK доступна начиная с AGP 8.5 и следующих версий библиотек Jetpack среды выполнения SDK:
| Библиотека Androidx | Версия |
|---|---|
| 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 |
Глоссарий
Следующие термины являются ключевыми для понимания процесса посредничества в среде выполнения SDK:
- SDK с поддержкой среды выполнения (RE SDK): SDK, предназначенный для работы в среде выполнения SDK и взаимодействия с приложением посредством межпроцессного взаимодействия (IPC).
- SDK, поддерживающий среду выполнения (RA SDK): SDK, не поддерживающий среду выполнения, статически связанный с приложением, который может содержать как существующий код вашего SDK, так и новый код для вызова функций SDK, поддерживающего среду выполнения.
- Встроенный SDK: SDK, который работает в статическом режиме и не знает о среде выполнения SDK. Это может быть рекламная сеть, которая еще не перешла на использование среды выполнения SDK, или пользовательский адаптер издателя.
- Медиатор: SDK для медиации рекламы, предоставляющий на устройстве услугу медиации путем взаимодействия с другими SDK рекламных сетей.
- Mediatee: SDK рекламной сети, который вызывается посредником для предоставления и отображения рекламы.
- Адаптер посредничества: SDK, используемые SDK посредника для обеспечения преобразования API-интерфейса и взаимодействия с различными SDK получателей, обычно предоставляемыми посредником. Они могут учитывать или не учитывать время выполнения.
Типичные схемы медиации
Если вашему SDK необходимо поддерживать сценарии посредничества в среде выполнения SDK, вам потребуется внести некоторые изменения. В этом разделе рассматриваются ключевые элементы потоков посредничества, чтобы мы могли рассмотреть изменения, необходимые для посредников и получателей посредничества.
Описанные нами процессы представляют собой упрощенную версию посредничества на устройстве с использованием нескольких SDK рекламных сетей и служат основой для обсуждения изменений, необходимых для обеспечения совместимости процессов посредничества с средой выполнения SDK.
Учитывая разнообразие реализаций процессов медиации, мы сосредоточимся на следующих двух основных потоках:
- Инициализация (включая обнаружение рекламных сетей и коммуникаций)
- Презентация пользовательского интерфейса рекламы
Инициализация
Ниже представлена стандартная схема инициализации, обнаружения рекламной сети и обмена данными:
- Клиентское приложение инициирует работу посредника.
- Посредник обнаруживает и инициализирует соответствующих участников процесса и адаптеров.
- Посредник использует свои адаптеры для связи с каждым участником посредника.
- Клиентское приложение запрашивает у посредника загрузку рекламы.
- Клиентское приложение запрашивает у посредника показ этой рекламы.
Презентация рекламного пользовательского интерфейса
Что касается отображения рекламы после последнего запроса на предыдущем шаге, то последовательность действий зависит от типа рекламы:
| Баннерная реклама | Полноэкранная реклама | Нативная реклама |
|---|---|---|
| SDK посредника создает представление объявления, которое оборачивает представление объявления победившего участника посредника. Также может быть настроено автоматическое обновление объявления (с использованием того же или другого медиа-объекта). | SDK посредника запрашивает у получателя рекламы полноэкранную рекламу, которая, в свою очередь, запускает Activity. | Издатель управляет обработкой и созданием представлений, используя компоненты, возвращаемые SDK посредника. |
Потоки посредничества в среде выполнения SDK
Принцип работы медиации внутри среды выполнения SDK различается в зависимости от того, поддерживает ли среда выполнения процесс медиации для получателя данных или нет. Исходя из этого, возможны следующие сценарии:
- И посредник, и посредник находятся в среде выполнения SDK: RE mediatee
- Посредник находится в среде выполнения SDK, а получатель посредника — внутри приложения: получатель посредника внутри приложения.
RE Медиатор
На следующей архитектурной диаграмме представлен общий обзор взаимодействия SDK посредника, поддерживающих и учитывающих среду выполнения (RE и RA), адаптеров посредничества RE и SDK RE получателей.
Адаптеры-посредники должны находиться в том же процессе, что и объект взаимодействия, поэтому им также потребуется перейти на среду выполнения SDK.

Инициализация
При рассмотрении инициализации, обнаружения и взаимодействия как посредника, поддерживающего работу в среде выполнения, так и получателя информации, процесс будет проходить в следующие этапы:
- Приложение (или SDK RA) загружает и инициализирует SDK посредника с помощью
SdkSandboxManager#loadSdk. - В процессе инициализации SDK посредника загружает и инициализирует все необходимые объекты-посредники в среде выполнения SDK с помощью
SdkSandboxController#loadSdk. - RE SDK может обнаружить все загруженные SDK в среде выполнения, вызвав метод
SdkSandboxController#getSandboxedSdks.

Презентация рекламного пользовательского интерфейса
В следующем разделе рассматриваются баннеры загрузки и полноэкранная реклама от посредника в сфере недвижимости.
баннерная реклама RE Mediatee
Получив от приложения запрос на загрузку баннерной рекламы, процесс отрисовки выглядит следующим образом:
- Посредник выбирает победителя в этом деле.
- Посредник получает объект
SandboxedUiAdapterот получателя информации. - Посредник пересылает UiAdapter в приложение.

Наложения на баннерную рекламу
Если посредники захотят добавить наложение к рекламе, им придётся изменить схему следующим образом:
- Посредник создает макет со своим наложением и объектом
SandboxedSdkView. - Посредник выбирает победителя в этом деле.
- Посредник получает объект
SandboxedUiAdapterот получателя информации. - Посредник устанавливает
UiAdapterопосредуемого объекта в значениеSandboxedSdkView. - Посредник предоставляет доступ к заполненному представлению приложению.

Полноэкранная реклама RE Mediatee
Получив от приложения запрос на загрузку полноэкранной рекламы, процесс выглядит следующим образом:
- Приложение (или SDK RA) передает посреднику объект
SdkActivityLauncherс запросом на загрузку рекламы.- Клиент может ограничить создание действий, используя предикат .
- Посредник выбирает победителя в этом деле.
- Посредник просит получателя запроса загрузить рекламу, передавая ему объект
SdkActivityLauncherиз приложения. - Посредник регистрирует обработчик активности и получает идентификационный токен для зарегистрированной активности.
- Посредник использует
SdkActivityLauncherдля запроса запуска действия с использованием этого токена. - Если это разрешено предикатом клиентского приложения, среда выполнения SDK запустит эту активность в выделенном процессе.

Узнайте больше о поддержке полноэкранной рекламы в среде выполнения SDK.
Участник процесса медиации в приложении
На следующей архитектурной диаграмме представлен общий обзор взаимодействия SDK RE и RA посредника, адаптеров посредника, которые не знают о среде выполнения SDK, и SDK получателей, статически связанных с приложением (также не знающих о среде выполнения).

Инициализация
Поскольку в этом сценарии посредники статически связаны с приложением и еще не переведены в среду выполнения SDK, SDK посредника, поддерживающий среду выполнения , должен иметь процесс для их регистрации .
Доступ к этой регистрации должен осуществляться через API посредника, но детали реализации остаются на усмотрение каждого посредника. Мы называем этот API MediationSandboxedSdk#registerInAppMediatee .
При рассмотрении инициализации, обнаружения и взаимодействия SDK-посредника RE и SDK-посредников внутри приложений, процесс будет проходить в следующие этапы:
- Приложение загружает и инициализирует SDK посредника, учитывающий особенности среды выполнения.
- SDK для медиатора по вопросам реагирования на инциденты:
- Инициализирует SDK посредника в RE с помощью
SdkSandboxManager#loadSdk. - Инициализирует все SDK, используемые в качестве посредников в приложении.
- Обнаруживает и регистрирует SDK-ы, используемые в приложении для передачи данных, с помощью API, предоставляемого RE SDK,
MediationSandboxedSdk#registerInAppMediate.
- Инициализирует SDK посредника в RE с помощью
Помимо регистрации всех SDK, используемых в качестве посредника внутри приложения, SDK среды выполнения посредника может обнаружить все SDK, загруженные в среду выполнения SDK, используя SdkSandboxController#getSandboxedSdks .

Презентация рекламного пользовательского интерфейса
В следующем разделе рассматривается загрузка баннеров и полноэкранной рекламы из медиатеки внутри приложения.
Встроенные в приложение баннерные объявления
Получив от приложения запрос на загрузку баннерной рекламы, процесс отрисовки выглядит следующим образом:
- SDK посредника, поддерживающий работу во время выполнения, перенаправляет запрос приложения в свой SDK с поддержкой работы во время выполнения.
- RE SDK посредника выбирает соответствующую сторону, участвующую в посреднике.
- SDK посредника (RE SDK) получает ссылку на получателя медиа-услуг и запрашивает загрузку рекламы через SDK посредника (RA SDK).
- SDK RA получает представление от пользователя, находящегося внутри приложения.
- RA SDK создает
SandboxedUiAdapterдля полученного представления. - RA SDK перенаправляет запрос
UiAdapterв RE SDK. - RE SDK перенаправляет
UiAdapterв приложение.

Встроенная в приложение полноэкранная реклама
Получив от приложения запрос на загрузку полноэкранной рекламы, процесс выглядит следующим образом:
- Приложение передает объект
SdkActivityLauncherв SDK посредника с запросом на загрузку рекламы.- Клиент может ограничить создание действий, используя предикат .
- SDK RA посредника перенаправляет запрос приложения в SDK RE.
- SDK для работы с RE (Research Development Pack) для посредников:
- Выбирает соответствующего посредника.
- Получает ссылку на посредника в приложении.
- Запросы на загрузку рекламы через SDK RA.
- RA SDK запрашивает у получателя рекламы загрузку объявления.
- Участник процесса запускает действие напрямую. Предикат приложения учитываться не будет.

Принимайте участие и делитесь отзывами.
«Песочница конфиденциальности» на Android — это постоянно развивающийся проект, и данный документ отражает его текущий дизайн. Ваши отзывы крайне важны для нас, поскольку мы продолжаем разрабатывать и улучшать его функции. Чтобы оставить отзыв, сообщите об ошибке .