На самом деле это отсутствие документации.
Например, 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. Это дает нам некоторые идеи, это содержание переданной конфигурации.
Не сложно. Переданы две строки (appId и zoneId) и один строковый массив (allZoneIds).
Чтение документации MoPub вверх и вниз помогло мне найти руководство по посредничеству AdColony , говорящее
Насколько я понимаю, appId и zoneId требуются, а allZoneIds не является обязательным ?! Но какой zoneId, если в моем приложении используется несколько символов? Чтобы сделать вещи короткими. Это все неправильно. В AdColonyAdapterConfiguration # initializeNetwork мы можем узнать, что действительно нужны только appId и allZoneIds.
См. Здесь
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();