Поддержка медиации в среде выполнения SDK

Медиация — распространенный способ управления доходностью для рекламных платформ, работающих на стороне продавца. В процессе медиации 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.

Учитывая разнообразие реализаций процессов медиации, мы сосредоточимся на следующих двух основных потоках:

  • Инициализация (включая обнаружение рекламных сетей и коммуникаций)
  • Презентация пользовательского интерфейса рекламы

Инициализация

Ниже представлена ​​стандартная схема инициализации, обнаружения рекламной сети и обмена данными:

  1. Клиентское приложение инициирует работу посредника.
  2. Посредник обнаруживает и инициализирует соответствующих участников процесса и адаптеров.
  3. Посредник использует свои адаптеры для связи с каждым участником посредника.
  4. Клиентское приложение запрашивает у посредника загрузку рекламы.
  5. Клиентское приложение запрашивает у посредника показ этой рекламы.

Презентация рекламного пользовательского интерфейса

Что касается отображения рекламы после последнего запроса на предыдущем шаге, то последовательность действий зависит от типа рекламы:

Баннерная реклама Полноэкранная реклама Нативная реклама
SDK посредника создает представление объявления, которое оборачивает представление объявления победившего участника посредника.

Также может быть настроено автоматическое обновление объявления (с использованием того же или другого медиа-объекта).
SDK посредника запрашивает у получателя рекламы полноэкранную рекламу, которая, в свою очередь, запускает Activity. Издатель управляет обработкой и созданием представлений, используя компоненты, возвращаемые SDK посредника.

Потоки посредничества в среде выполнения SDK

Принцип работы медиации внутри среды выполнения SDK различается в зависимости от того, поддерживает ли среда выполнения процесс медиации для получателя данных или нет. Исходя из этого, возможны следующие сценарии:

  • И посредник, и посредник находятся в среде выполнения SDK: RE mediatee
  • Посредник находится в среде выполнения SDK, а получатель посредника — внутри приложения: получатель посредника внутри приложения.

RE Медиатор

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

Адаптеры-посредники должны находиться в том же процессе, что и объект взаимодействия, поэтому им также потребуется перейти на среду выполнения SDK.

Архитектурная схема, показывающая общий обзор взаимодействия SDK посредника, поддерживающих и учитывающих среду выполнения (RE и RA), адаптеров посредничества RE и SDK RE получателей.
Рисунок 1. И посредник, и получатель информации представляют собой SDK для репозиториев.

Инициализация

При рассмотрении инициализации, обнаружения и взаимодействия как посредника, поддерживающего работу в среде выполнения, так и получателя информации, процесс будет проходить в следующие этапы:

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

Презентация рекламного пользовательского интерфейса

В следующем разделе рассматриваются баннеры загрузки и полноэкранная реклама от посредника в сфере недвижимости.

баннерная реклама RE Mediatee

Получив от приложения запрос на загрузку баннерной рекламы, процесс отрисовки выглядит следующим образом:

  1. Посредник выбирает победителя в этом деле.
  2. Посредник получает объект SandboxedUiAdapter от получателя информации.
  3. Посредник пересылает UiAdapter в приложение.
Последовательность действий для завершения отображения баннерной рекламы в рамках посредничества RE-RE.
Рисунок 3. Схема завершения рендеринга баннерной рекламы от посредника в сфере недвижимости.

Узнайте больше об использовании SandboxedUiAdapter и библиотеки пользовательского интерфейса среды выполнения SDK.

Наложения на баннерную рекламу

Если посредники захотят добавить наложение к рекламе, им придётся изменить схему следующим образом:

  1. Посредник создает макет со своим наложением и объектом SandboxedSdkView .
  2. Посредник выбирает победителя в этом деле.
  3. Посредник получает объект SandboxedUiAdapter от получателя информации.
  4. Посредник устанавливает UiAdapter опосредуемого объекта в значение SandboxedSdkView .
  5. Посредник предоставляет доступ к заполненному представлению приложению.
Схема для наложения изображения поверх баннерной рекламы, полученной от посредника в сфере недвижимости.
Схема для наложения изображения поверх баннерной рекламы, полученной от посредника в сфере недвижимости.
Полноэкранная реклама RE Mediatee

Получив от приложения запрос на загрузку полноэкранной рекламы, процесс выглядит следующим образом:

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

Узнайте больше о поддержке полноэкранной рекламы в среде выполнения SDK.

Участник процесса медиации в приложении

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

Архитектурная диаграмма, показывающая общий обзор взаимодействия SDK RE и RA посредника, адаптеров посредника, которые не знают о среде выполнения SDK, и SDK получателей, статически связанных с приложением (также не знающих о среде выполнения).
Рисунок 5. Получатель информации статически связан с приложением, даже если ему известно о наличии SDK RE.

Инициализация

Поскольку в этом сценарии посредники статически связаны с приложением и еще не переведены в среду выполнения SDK, SDK посредника, поддерживающий среду выполнения , должен иметь процесс для их регистрации .

Доступ к этой регистрации должен осуществляться через API посредника, но детали реализации остаются на усмотрение каждого посредника. Мы называем этот API MediationSandboxedSdk#registerInAppMediatee .

При рассмотрении инициализации, обнаружения и взаимодействия SDK-посредника RE и SDK-посредников внутри приложений, процесс будет проходить в следующие этапы:

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

Помимо регистрации всех SDK, используемых в качестве посредника внутри приложения, SDK среды выполнения посредника может обнаружить все SDK, загруженные в среду выполнения SDK, используя SdkSandboxController#getSandboxedSdks .

Последовательность действий, иллюстрирующая описанный процесс инициализации объекта взаимодействия внутри приложения.
Рисунок 6. Обратите внимание, что мы используем API предлагаемого посредника для регистрации ссылки на участников посредника внутри приложения.

Презентация рекламного пользовательского интерфейса

В следующем разделе рассматривается загрузка баннеров и полноэкранной рекламы из медиатеки внутри приложения.

Встроенные в приложение баннерные объявления

Получив от приложения запрос на загрузку баннерной рекламы, процесс отрисовки выглядит следующим образом:

  1. SDK посредника, поддерживающий работу во время выполнения, перенаправляет запрос приложения в свой SDK с поддержкой работы во время выполнения.
  2. RE SDK посредника выбирает соответствующую сторону, участвующую в посреднике.
  3. SDK посредника (RE SDK) получает ссылку на получателя медиа-услуг и запрашивает загрузку рекламы через SDK посредника (RA SDK).
  4. SDK RA получает представление от пользователя, находящегося внутри приложения.
  5. RA SDK создает SandboxedUiAdapter для полученного представления.
  6. RA SDK перенаправляет запрос UiAdapter в RE SDK.
  7. RE SDK перенаправляет UiAdapter в приложение.
Процесс завершения отрисовки баннерной рекламы из приложения-посредника.
Рисунок 7. Обратите внимание, что посредник не должен накладывать представления поверх V1 при получении его от получателя данных внутри приложения.
Встроенная в приложение полноэкранная реклама

Получив от приложения запрос на загрузку полноэкранной рекламы, процесс выглядит следующим образом:

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

Принимайте участие и делитесь отзывами.

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