Объяснение MoPub #withMediatedNetworkConfiguration - PullRequest
0 голосов
/ 19 февраля 2020

ИМХО в документации MoPub отсутствуют примеры кода, объясняющие использование доступных функций. Эта функция является #withMediatedNetworkConfiguration.

Почему эта функция важна? В инициализации сетевого SDK указано

Обратите внимание, что вы можете вызвать .withMediatedNetworkConfiguration () в своем SdkConfiguration.Builder, чтобы передать сетевые конфигурации, необходимые для предварительной настройки. инициализация. В противном случае ожидайте, что ваша первая попытка предварительной инициализации опосредованных сетей потерпит неудачу, поскольку в этот момент данные сети не кэшируются. Все ваши последующие попытки предварительной инициализации должны быть успешными в течение срока службы приложения.

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

Таким образом, MoPub дает вам возможность вызвать #withMediatedNetworkConfiguration для передачи необходимых параметров даже при первом запуске.

Но как все это достигается?

1 Ответ

0 голосов
/ 19 февраля 2020

На самом деле это отсутствие документации.

Например, Facebook не нужны никакие параметры, опосредованные MoPub, он будет успешно инициирован при первом запуске приложения. AdColony и Vungle (и большинство других) будут NOT init при первом запуске. Это потеря дохода из-за отсутствия конкуренции.

Давайте посмотрим на AdColony, которая доставила мне немного головной боли. Простой MoPubSDK init с AdColony init выглядит следующим образом.

SdkConfiguration sdkConfiguration = new SdkConfiguration.Builder("362da1882dfc49f3a33b92ea1708f3a5")
            .withMediatedNetworkConfiguration(AdColonyAdapterConfiguration.class.getName(), adColonySettings)
            .build();

MoPub.initializeSdk(activity, sdkConfiguration, listener);

Хорошо. Но как выглядит AdColonyAdapterConfiguration # initializeNetwork. Это дает нам некоторые идеи, это содержание переданной конфигурации.

enter image description here

Не сложно. Переданы две строки (appId и zoneId) и один строковый массив (allZoneIds).

Чтение документации MoPub вверх и вниз помогло мне найти руководство по посредничеству AdColony , говорящее enter image description here

Насколько я понимаю, appId и zoneId требуются, а allZoneIds не является обязательным ?! Но какой zoneId, если в моем приложении используется несколько символов? Чтобы сделать вещи короткими. Это все неправильно. В AdColonyAdapterConfiguration # initializeNetwork мы можем узнать, что действительно нужны только appId и allZoneIds.

См. Здесь enter image description here

AllZoneIds извлекается Json .jsonArrayToStringArray , Но как это снова отформатировано ?! Давайте подойдем к концу.

Давайте посмотрим на исчерпывающий ответ, как инициализировать adColony с MoPub при первом запуске :

Map<String, String> adColonySettings = new HashMap<>();
    adColonySettings.put("appId", "yourAppId");
    adColonySettings.put("zoneId", "ANYOfYourZoneIds");
    adColonySettings.put("allZoneIds", "[\"bannerZoneId, interstitialZoneId\"]");

    SdkConfiguration sdkConfiguration = new SdkConfiguration.Builder("moPubId")
 .withMediatedNetworkConfiguration(AdColonyAdapterConfiguration.class.getName(), adColonySettings)
            .build();

    MoPub.initializeSdk(activity, sdkConfiguration, initSdkListener());

Другой пример - Vungle. Инициируйте это так:

Map<String, String> vungleSettings = new HashMap<>();
    vungleSettings.put("appId", "vungleAppId");

    SdkConfiguration sdkConfiguration = new SdkConfiguration.Builder("moPubId")
            .withMediatedNetworkConfiguration(VungleAdapterConfiguration.class.getName(), vungleSettings)
            .build();
...