From 76dc9d4166e1a175372a0ae8f8a047a7bf80deee Mon Sep 17 00:00:00 2001 From: Valentin Petrovych Date: Thu, 13 Jan 2022 15:30:12 +0200 Subject: [PATCH] feat(AdMob): add AdMob banner examples to InternalTestApp #323 Added 320x50, 300x250 and flexible examples. --- .../ads/inappadmob/InAppAdMobBanner.kt | 26 +- .../src/main/AndroidManifest.xml | 19 +- .../mobile/renderingtestapp/AdFragment.kt | 7 +- .../mobile/renderingtestapp/data/DemoItem.kt | 1 + .../bidding/admob/AdMobBannerFragment.kt | 141 ++ .../admob/FlexibleAdMobBannerFragment.kt | 51 + .../admob/RandomAdMobBannerFragment.kt | 34 + .../utils/DemoItemProvider.kt | 1600 ++++++++++++++--- .../src/main/res/layout/events_admob.xml | 65 + .../layout/fragment_bidding_banner_admob.xml | 78 + .../res/navigation/bidding_navigation.xml | 80 +- .../src/main/res/values/strings.xml | 21 + 12 files changed, 1837 insertions(+), 286 deletions(-) create mode 100644 Example/PrebidInternalTestApp/src/main/java/org/prebid/mobile/renderingtestapp/plugplay/bidding/admob/AdMobBannerFragment.kt create mode 100644 Example/PrebidInternalTestApp/src/main/java/org/prebid/mobile/renderingtestapp/plugplay/bidding/admob/FlexibleAdMobBannerFragment.kt create mode 100644 Example/PrebidInternalTestApp/src/main/java/org/prebid/mobile/renderingtestapp/plugplay/bidding/admob/RandomAdMobBannerFragment.kt create mode 100644 Example/PrebidInternalTestApp/src/main/res/layout/events_admob.xml create mode 100644 Example/PrebidInternalTestApp/src/main/res/layout/fragment_bidding_banner_admob.xml diff --git a/Example/PrebidDemoKotlin/src/main/java/org/prebid/mobile/prebidkotlindemo/ads/inappadmob/InAppAdMobBanner.kt b/Example/PrebidDemoKotlin/src/main/java/org/prebid/mobile/prebidkotlindemo/ads/inappadmob/InAppAdMobBanner.kt index 6ff69c676..26ad9715d 100644 --- a/Example/PrebidDemoKotlin/src/main/java/org/prebid/mobile/prebidkotlindemo/ads/inappadmob/InAppAdMobBanner.kt +++ b/Example/PrebidDemoKotlin/src/main/java/org/prebid/mobile/prebidkotlindemo/ads/inappadmob/InAppAdMobBanner.kt @@ -5,6 +5,7 @@ import android.os.Bundle import android.util.Log import android.view.ViewGroup import com.google.android.gms.ads.* +import com.google.android.gms.ads.initialization.InitializationStatus import org.prebid.mobile.admob.AdMobBannerMediationUtils import org.prebid.mobile.admob.PrebidBannerAdapter import org.prebid.mobile.rendering.bidding.display.MediationBannerAdUnit @@ -26,16 +27,8 @@ object InAppAdMobBanner { configId: String ) { MobileAds.initialize(wrapper.context) { status -> - val statusMap = status.adapterStatusMap - for (adapterClass in statusMap.keys) { - val adapterStatus = statusMap[adapterClass] - val adapterDescription = adapterStatus?.description ?: "" - if (adapterDescription.isNotBlank()) { - Log.e("MobileAds", "Mediation adapter: $adapterClass $adapterDescription") - } else { - Log.d("MobileAds", "Mediation adapter: $adapterClass") - } - } + Log.d("MobileAds", "Initialization complete.") + logAdaptersInitializationStatus(status) } /** Google recommends put activity for mediation ad networks */ @@ -81,4 +74,17 @@ object InAppAdMobBanner { adUnit = null } + private fun logAdaptersInitializationStatus(status: InitializationStatus) { + val statusMap = status.adapterStatusMap + for (adapterClass in statusMap.keys) { + val adapterStatus = statusMap[adapterClass] + val adapterDescription = adapterStatus?.description ?: "" + if (adapterDescription.isNotBlank()) { + Log.e("MobileAds", "Mediation adapter: $adapterClass $adapterDescription") + } else { + Log.d("MobileAds", "Mediation adapter: $adapterClass") + } + } + } + } \ No newline at end of file diff --git a/Example/PrebidInternalTestApp/src/main/AndroidManifest.xml b/Example/PrebidInternalTestApp/src/main/AndroidManifest.xml index 5b4b1f601..e0597a8f7 100755 --- a/Example/PrebidInternalTestApp/src/main/AndroidManifest.xml +++ b/Example/PrebidInternalTestApp/src/main/AndroidManifest.xml @@ -20,6 +20,7 @@ package="org.prebid.mobile.renderingtestapp"> + + android:name="com.google.android.gms.version" + android:value="@integer/google_play_services_version"/> + android:name="com.google.android.gms.ads.AD_MANAGER_APP" + android:value="true"/> - + + + + diff --git a/Example/PrebidInternalTestApp/src/main/java/org/prebid/mobile/renderingtestapp/AdFragment.kt b/Example/PrebidInternalTestApp/src/main/java/org/prebid/mobile/renderingtestapp/AdFragment.kt index a627d100e..977504325 100644 --- a/Example/PrebidInternalTestApp/src/main/java/org/prebid/mobile/renderingtestapp/AdFragment.kt +++ b/Example/PrebidInternalTestApp/src/main/java/org/prebid/mobile/renderingtestapp/AdFragment.kt @@ -37,9 +37,12 @@ import org.prebid.mobile.rendering.sdk.PrebidRenderingSettings import org.prebid.mobile.renderingtestapp.plugplay.config.* import org.prebid.mobile.renderingtestapp.utils.* -const val CONFIGURATOR_REQUEST_CODE = 0 - abstract class AdFragment : BaseFragment() { + + companion object { + const val CONFIGURATOR_REQUEST_CODE = 0 + } + var idlingResource = CountingIdlingResource(AdFragment::class.java.simpleName) protected var mockAssetName: String? = null diff --git a/Example/PrebidInternalTestApp/src/main/java/org/prebid/mobile/renderingtestapp/data/DemoItem.kt b/Example/PrebidInternalTestApp/src/main/java/org/prebid/mobile/renderingtestapp/data/DemoItem.kt index e82e9e279..4365b1785 100644 --- a/Example/PrebidInternalTestApp/src/main/java/org/prebid/mobile/renderingtestapp/data/DemoItem.kt +++ b/Example/PrebidInternalTestApp/src/main/java/org/prebid/mobile/renderingtestapp/data/DemoItem.kt @@ -33,6 +33,7 @@ enum class Tag(val tagName: String) { IN_APP("In-App"), GAM("GAM"), MOPUB("MoPub"), + ADMOB("AdMob"), ALL("All") } \ No newline at end of file diff --git a/Example/PrebidInternalTestApp/src/main/java/org/prebid/mobile/renderingtestapp/plugplay/bidding/admob/AdMobBannerFragment.kt b/Example/PrebidInternalTestApp/src/main/java/org/prebid/mobile/renderingtestapp/plugplay/bidding/admob/AdMobBannerFragment.kt new file mode 100644 index 000000000..63b43db4b --- /dev/null +++ b/Example/PrebidInternalTestApp/src/main/java/org/prebid/mobile/renderingtestapp/plugplay/bidding/admob/AdMobBannerFragment.kt @@ -0,0 +1,141 @@ +package org.prebid.mobile.renderingtestapp.plugplay.bidding.admob + +import android.os.Bundle +import android.util.Log +import android.view.View +import com.google.android.gms.ads.* +import kotlinx.android.synthetic.main.events_admob.* +import kotlinx.android.synthetic.main.events_mopub_banner.* +import kotlinx.android.synthetic.main.events_mopub_banner.btnAdClicked +import kotlinx.android.synthetic.main.events_mopub_banner.btnAdFailed +import kotlinx.android.synthetic.main.fragment_bidding_banner.* +import org.prebid.mobile.admob.AdMobBannerMediationUtils +import org.prebid.mobile.admob.PrebidBannerAdapter +import org.prebid.mobile.rendering.bidding.data.AdSize +import org.prebid.mobile.rendering.bidding.display.MediationBannerAdUnit +import org.prebid.mobile.renderingtestapp.AdFragment +import org.prebid.mobile.renderingtestapp.R +import org.prebid.mobile.renderingtestapp.plugplay.config.AdConfiguratorDialogFragment + +open class AdMobBannerFragment : AdFragment() { + + companion object { + private const val TAG = "AdMobBannerFragment" + } + + protected var adRequest: AdRequest? = null + protected var adUnit: MediationBannerAdUnit? = null + protected var bannerView: AdView? = null + protected var adRequestExtras: Bundle? = null + + override fun initUi(view: View, savedInstanceState: Bundle?) { + super.initUi(view, savedInstanceState) + + adIdLabel.text = getString(R.string.label_auid, configId) + btnLoad?.setOnClickListener { + resetAdEvents() + it.isEnabled = false + loadAd() + } + + btnStopRefresh?.setOnClickListener { + adUnit?.stopRefresh() + resetEventButtons() + btnLoad?.isEnabled = true + } + } + + override fun initAd(): Any? { + MobileAds.initialize(requireContext()) { + Log.d("MobileAds", "Initialization complete.") + } + + bannerView = AdView(requireActivity()) + bannerView?.adSize = com.google.android.gms.ads.AdSize(width, height) + bannerView?.adUnitId = adUnitId + bannerView?.adListener = getListener() + viewContainer.addView(bannerView) + + adRequestExtras = Bundle() + adRequest = AdRequest + .Builder() + .addCustomEventExtrasBundle(PrebidBannerAdapter::class.java, adRequestExtras!!) + .build() + val mediationUtils = AdMobBannerMediationUtils(adRequestExtras) + + + adUnit = MediationBannerAdUnit( + requireContext(), + configId, + AdSize(width, height), + mediationUtils + ) + adUnit?.setRefreshInterval(refreshDelay) + return adUnit + } + + override fun loadAd() { + adUnit?.fetchDemand { result -> + Log.d("Prebid", "Fetch demand result: $result") + bannerView?.loadAd(adRequest!!) + } + } + + override fun configuratorMode(): AdConfiguratorDialogFragment.AdConfiguratorMode? { + return AdConfiguratorDialogFragment.AdConfiguratorMode.BANNER + } + + override val layoutRes = R.layout.fragment_bidding_banner_admob + + private fun resetAdEvents() { + btnAdDidLoad?.isEnabled = false + btnAdFailed?.isEnabled = false + btnAdClicked?.isEnabled = false + btnAdExpanded?.isEnabled = false + btnAdCollapsed?.isEnabled = false + } + + override fun onDestroyView() { + super.onDestroyView() + adUnit?.destroy() + bannerView?.destroy() + } + + protected fun getListener() = object : AdListener() { + override fun onAdLoaded() { + Log.d(TAG, "onAdLoaded") + resetAdEvents() + btnLoad?.isEnabled = true + btnAdLoaded?.isEnabled = true + } + + override fun onAdClicked() { + Log.d(TAG, "onAdClicked") + btnAdClicked?.isEnabled = true + } + + override fun onAdOpened() { + Log.d(TAG, "onAdOpened") + btnAdOpened?.isEnabled = true + } + + override fun onAdImpression() { + Log.d(TAG, "onAdImpression") + btnAdImpression?.isEnabled = true + } + + override fun onAdClosed() { + Log.d(TAG, "onAdClosed") + btnAdClosed?.isEnabled = true + } + + override fun onAdFailedToLoad(p0: LoadAdError) { + Log.d(TAG, "onAdFailedToLoad - ${p0.message}") + resetAdEvents() + btnLoad?.isEnabled = true + btnAdFailed?.isEnabled = true + } + + } + +} \ No newline at end of file diff --git a/Example/PrebidInternalTestApp/src/main/java/org/prebid/mobile/renderingtestapp/plugplay/bidding/admob/FlexibleAdMobBannerFragment.kt b/Example/PrebidInternalTestApp/src/main/java/org/prebid/mobile/renderingtestapp/plugplay/bidding/admob/FlexibleAdMobBannerFragment.kt new file mode 100644 index 000000000..b877f9c63 --- /dev/null +++ b/Example/PrebidInternalTestApp/src/main/java/org/prebid/mobile/renderingtestapp/plugplay/bidding/admob/FlexibleAdMobBannerFragment.kt @@ -0,0 +1,51 @@ +package org.prebid.mobile.renderingtestapp.plugplay.bidding.admob + +import android.os.Bundle +import android.util.Log +import com.google.android.gms.ads.AdRequest +import com.google.android.gms.ads.AdView +import com.google.android.gms.ads.MobileAds +import kotlinx.android.synthetic.main.fragment_bidding_banner.* +import org.prebid.mobile.admob.AdMobBannerMediationUtils +import org.prebid.mobile.admob.PrebidBannerAdapter +import org.prebid.mobile.rendering.bidding.data.AdSize +import org.prebid.mobile.rendering.bidding.display.MediationBannerAdUnit +import com.google.android.gms.ads.AdSize as GamAdSize + + +class FlexibleAdMobBannerFragment : AdMobBannerFragment() { + + companion object { + private const val TAG = "FlexibleAdMobBanner" + } + + override fun initAd(): Any? { + MobileAds.initialize(requireContext()) { + Log.d("MobileAds", "Initialization complete.") + } + + bannerView = AdView(requireActivity()) + bannerView?.adSize = GamAdSize.getLandscapeInlineAdaptiveBannerAdSize(requireContext(), GamAdSize.FULL_WIDTH) + bannerView?.adUnitId = adUnitId + bannerView?.adListener = getListener() + viewContainer.addView(bannerView) + + adRequestExtras = Bundle() + adRequest = AdRequest + .Builder() + .addCustomEventExtrasBundle(PrebidBannerAdapter::class.java, adRequestExtras!!) + .build() + val mediationUtils = AdMobBannerMediationUtils(adRequestExtras) + + + adUnit = MediationBannerAdUnit( + requireContext(), + configId, + AdSize(width, height), + mediationUtils + ) + adUnit?.setRefreshInterval(refreshDelay) + return adUnit + } + +} \ No newline at end of file diff --git a/Example/PrebidInternalTestApp/src/main/java/org/prebid/mobile/renderingtestapp/plugplay/bidding/admob/RandomAdMobBannerFragment.kt b/Example/PrebidInternalTestApp/src/main/java/org/prebid/mobile/renderingtestapp/plugplay/bidding/admob/RandomAdMobBannerFragment.kt new file mode 100644 index 000000000..00b0ec947 --- /dev/null +++ b/Example/PrebidInternalTestApp/src/main/java/org/prebid/mobile/renderingtestapp/plugplay/bidding/admob/RandomAdMobBannerFragment.kt @@ -0,0 +1,34 @@ +package org.prebid.mobile.renderingtestapp.plugplay.bidding.admob + +import android.util.Log +import org.prebid.mobile.admob.PrebidBannerAdapter +import org.prebid.mobile.rendering.bidding.display.BidResponseCache +import kotlin.random.Random + +class RandomAdMobBannerFragment : AdMobBannerFragment() { + + private val random = Random.Default + + override fun loadAd() { + adUnit?.fetchDemand { result -> + Log.d("Prebid", "Fetch demand result: $result") + randomRemovingBidResponseFromCache() + bannerView?.loadAd(adRequest!!) + } + } + + private fun randomRemovingBidResponseFromCache() { + val randomValue = random.nextInt(0, 2) + val doRemove = randomValue == 1 + if (doRemove) { + Log.d("RandomAdMobBanner", "Random removing response!") + val responseId = adRequestExtras?.getString(PrebidBannerAdapter.EXTRA_RESPONSE_ID) ?: "" + if (responseId.isNotBlank()) { + BidResponseCache.getInstance().popBidResponse(responseId) + } + } else { + Log.d("RandomAdMobBanner", "Without removing.") + } + } + +} \ No newline at end of file diff --git a/Example/PrebidInternalTestApp/src/main/java/org/prebid/mobile/renderingtestapp/utils/DemoItemProvider.kt b/Example/PrebidInternalTestApp/src/main/java/org/prebid/mobile/renderingtestapp/utils/DemoItemProvider.kt index 329e410cd..db5035a2e 100644 --- a/Example/PrebidInternalTestApp/src/main/java/org/prebid/mobile/renderingtestapp/utils/DemoItemProvider.kt +++ b/Example/PrebidInternalTestApp/src/main/java/org/prebid/mobile/renderingtestapp/utils/DemoItemProvider.kt @@ -43,6 +43,10 @@ class DemoItemProvider private constructor() { private const val mopubInterstitialAction = R.id.action_header_bidding_to_mopub_interstitial private const val mopubRewardedAction = R.id.action_header_bidding_to_mopub_rewarded_video + private const val adMobBannerAction = R.id.action_header_bidding_to_admob_banner + private const val adMobRandomBannerAction = R.id.action_header_bidding_to_admob_random_banner + private const val adMobFlexibleBannerAction = R.id.action_header_bidding_to_admob_flexible_banner + fun init(context: Context) { if (demoList.isNotEmpty()) { return @@ -70,89 +74,332 @@ class DemoItemProvider private constructor() { val ppmNativeTagList = listOf(Tag.ALL, Tag.IN_APP, Tag.NATIVE, Tag.MOCK) // In-App Banner - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_banner_320_50), ppmBannerAction, - ppmBannerTagList, createBannerBundle(R.string.mock_config_id_banner_320x50, null, 320, 50))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_banner_320_50_mock_random_bid), ppmBannerAction, - ppmBannerTagList, createBannerBundle(R.string.mock_config_id_banner_320x50, null, 320, 50))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_banner_300_250), ppmBannerAction, ppmBannerTagList, - createBannerBundle(R.string.mock_config_id_banner_300x250, null, 300, 250))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_banner_728_90), ppmBannerAction, - ppmBannerTagList, createBannerBundle(R.string.mock_config_id_banner_728x90, null, 728, 90))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_banner_320_50_vast), ppmBannerAction, - ppmBannerTagList, createBannerBundle(R.string.mock_config_id_banner_320x50_vast, null, 320, 50))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_banner_320_50_scrollable), R.id.action_header_bidding_to_in_app_banner_scrollable, - ppmBannerTagList, createBannerBundle(R.string.mock_config_id_banner_320x50, null, 320, 50))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_banner_320_50_deeplink), ppmBannerAction, - ppmBannerTagList, createBannerBundle(R.string.mock_config_id_banner_320x50_deeplink, null, 320, 50))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_banner_layout), R.id.action_header_bidding_to_in_app_banner_in_layout, ppmBannerTagList, - createBannerBundle(null, null, 320, 50))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_banner_multisize), R.id.action_header_bidding_to_in_app_multisize_banner, - ppmBannerTagList, createBannerBundle(R.string.mock_config_id_banner_multisize, null, 320, 50))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_banners_and_interstitial), R.id.action_header_bidding_to_in_app_banners_and_interstitial, ppmBannerTagList, - createBannerBundle(null, null, 0, 0))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_mraid_expand), ppmBannerAction, - ppmMraidTagList, createBannerBundle(R.string.mock_config_id_mraid_expand, null, 320, 50))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_mraid_expand_2), ppmBannerAction, - ppmMraidTagList, createBannerBundle(R.string.mock_config_id_mraid_expand_two_part, null, 320, 50))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_mraid_resize), ppmBannerAction, - ppmMraidTagList, createBannerBundle(R.string.mock_config_id_mraid_resize, null, 320, 50))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_mraid_resize_with_errors), ppmBannerAction, - ppmMraidTagList, createBannerBundle(R.string.mock_config_id_mraid_resize_with_errors, null, 300, 100))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_mraid_fullscreen), ppmBannerAction, - ppmMraidTagList, createBannerBundle(R.string.mock_config_id_mraid_fullscreen, null, 320, 480))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_mraid_fullscreen_video), ppmInterstitialAction, ppmMraidTagList, - createBannerBundle(R.string.mock_config_id_mraid_video_interstitial, null, MIN_WIDTH_PERC, MIN_HEIGHT_PERC))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_mraid_viewability_compliance), ppmBannerAction, - ppmMraidTagList, createBannerBundle(R.string.mock_config_id_mraid_3_viewability_compliance, null, 320, 480))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_mraid_resize_negative), ppmBannerAction, - ppmMraidTagList, createBannerBundle(R.string.mock_config_id_mraid_3_resize_negative, null, 320, 480))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_mraid_load_and_events), ppmBannerAction, - ppmMraidTagList, createBannerBundle(R.string.mock_config_id_mraid_3_load_and_events, null, 320, 50))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_mraid_test_properties), ppmBannerAction, - ppmMraidTagList, createBannerBundle(R.string.mock_config_id_mraid_ox_test_properties, null, 320, 50))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_mraid_test_methods), ppmBannerAction, - ppmMraidTagList, createBannerBundle(R.string.mock_config_id_mraid_ox_test_methods, null, 320, 50))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_mraid_resize_scroll), R.id.action_header_bidding_to_in_app_banner_scrollable, - ppmMraidTagList, createBannerBundle(R.string.mock_config_id_mraid_resize, null, 320, 50))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_mraid_resize_expandable), R.id.action_header_bidding_to_in_app_banner, - ppmMraidTagList, createBannerBundle(R.string.mock_config_id_mraid_ox_resize_expandable, null, 320, 50))) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_banner_320_50), ppmBannerAction, + ppmBannerTagList, createBannerBundle(R.string.mock_config_id_banner_320x50, null, 320, 50) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_banner_320_50_mock_random_bid), ppmBannerAction, + ppmBannerTagList, createBannerBundle(R.string.mock_config_id_banner_320x50, null, 320, 50) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_banner_300_250), ppmBannerAction, ppmBannerTagList, + createBannerBundle(R.string.mock_config_id_banner_300x250, null, 300, 250) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_banner_728_90), ppmBannerAction, + ppmBannerTagList, createBannerBundle(R.string.mock_config_id_banner_728x90, null, 728, 90) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_banner_320_50_vast), ppmBannerAction, + ppmBannerTagList, createBannerBundle(R.string.mock_config_id_banner_320x50_vast, null, 320, 50) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_banner_320_50_scrollable), + R.id.action_header_bidding_to_in_app_banner_scrollable, + ppmBannerTagList, + createBannerBundle(R.string.mock_config_id_banner_320x50, null, 320, 50) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_banner_320_50_deeplink), ppmBannerAction, + ppmBannerTagList, createBannerBundle(R.string.mock_config_id_banner_320x50_deeplink, null, 320, 50) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_banner_layout), + R.id.action_header_bidding_to_in_app_banner_in_layout, + ppmBannerTagList, + createBannerBundle(null, null, 320, 50) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_banner_multisize), + R.id.action_header_bidding_to_in_app_multisize_banner, + ppmBannerTagList, + createBannerBundle(R.string.mock_config_id_banner_multisize, null, 320, 50) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_banners_and_interstitial), + R.id.action_header_bidding_to_in_app_banners_and_interstitial, + ppmBannerTagList, + createBannerBundle(null, null, 0, 0) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_mraid_expand), ppmBannerAction, + ppmMraidTagList, createBannerBundle(R.string.mock_config_id_mraid_expand, null, 320, 50) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_mraid_expand_2), ppmBannerAction, + ppmMraidTagList, createBannerBundle(R.string.mock_config_id_mraid_expand_two_part, null, 320, 50) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_mraid_resize), ppmBannerAction, + ppmMraidTagList, createBannerBundle(R.string.mock_config_id_mraid_resize, null, 320, 50) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_mraid_resize_with_errors), + ppmBannerAction, + ppmMraidTagList, + createBannerBundle(R.string.mock_config_id_mraid_resize_with_errors, null, 300, 100) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_mraid_fullscreen), ppmBannerAction, + ppmMraidTagList, createBannerBundle(R.string.mock_config_id_mraid_fullscreen, null, 320, 480) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_mraid_fullscreen_video), + ppmInterstitialAction, + ppmMraidTagList, + createBannerBundle( + R.string.mock_config_id_mraid_video_interstitial, + null, + MIN_WIDTH_PERC, + MIN_HEIGHT_PERC + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_mraid_viewability_compliance), + ppmBannerAction, + ppmMraidTagList, + createBannerBundle(R.string.mock_config_id_mraid_3_viewability_compliance, null, 320, 480) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_mraid_resize_negative), ppmBannerAction, + ppmMraidTagList, createBannerBundle(R.string.mock_config_id_mraid_3_resize_negative, null, 320, 480) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_mraid_load_and_events), ppmBannerAction, + ppmMraidTagList, createBannerBundle(R.string.mock_config_id_mraid_3_load_and_events, null, 320, 50) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_mraid_test_properties), ppmBannerAction, + ppmMraidTagList, createBannerBundle(R.string.mock_config_id_mraid_ox_test_properties, null, 320, 50) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_mraid_test_methods), ppmBannerAction, + ppmMraidTagList, createBannerBundle(R.string.mock_config_id_mraid_ox_test_methods, null, 320, 50) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_mraid_resize_scroll), + R.id.action_header_bidding_to_in_app_banner_scrollable, + ppmMraidTagList, + createBannerBundle(R.string.mock_config_id_mraid_resize, null, 320, 50) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_mraid_resize_expandable), + R.id.action_header_bidding_to_in_app_banner, + ppmMraidTagList, + createBannerBundle(R.string.mock_config_id_mraid_ox_resize_expandable, null, 320, 50) + ) + ) // In-App Interstitial - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_interstitial_320_480), ppmInterstitialAction, ppmInterstitialTagList, - createBannerBundle(R.string.mock_config_id_interstitial_320_480, null, MIN_WIDTH_PERC, MIN_HEIGHT_PERC))) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_interstitial_320_480), + ppmInterstitialAction, + ppmInterstitialTagList, + createBannerBundle( + R.string.mock_config_id_interstitial_320_480, + null, + MIN_WIDTH_PERC, + MIN_HEIGHT_PERC + ) + ) + ) /// In-App Video - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_interstitial_video_320_480), ppmInterstitialAction, ppmVideoTagList, - createBannerBundle(R.string.mock_config_id_video_interstitial_320_480, null, MIN_WIDTH_PERC, MIN_HEIGHT_PERC))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_interstitial_video_320_480_skipoffset), ppmInterstitialAction, ppmVideoTagList, - createBannerBundle(R.string.mock_config_id_video_interstitial_skipoffset, null, MIN_WIDTH_PERC, MIN_HEIGHT_PERC))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_interstitial_video_320_480_deeplink), ppmInterstitialAction, ppmVideoTagList, - createBannerBundle(R.string.mock_config_id_video_interstitial_deeplink, null, MIN_WIDTH_PERC, MIN_HEIGHT_PERC))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_interstitial_video_320_480_end_card), ppmInterstitialAction, ppmVideoTagList, - createBannerBundle(R.string.mock_config_id_video_rewarded_end_card_320_480, null, MIN_WIDTH_PERC, MIN_HEIGHT_PERC))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_interstitial_video_320_480_mraid_end_card), ppmInterstitialAction, ppmMraidTagList, - createBannerBundle(R.string.mock_config_id_video_interstitial_mraid_end_card, null, MIN_WIDTH_PERC, MIN_HEIGHT_PERC))) - - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_video_rewarded_320_480), ppmRewardedAction, ppmVideoTagList, - createBannerBundle(R.string.mock_config_id_video_rewarded_320_480, null, MIN_WIDTH_PERC, MIN_HEIGHT_PERC))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_video_rewarded_end_card_320_480), ppmRewardedAction, ppmVideoTagList, - createBannerBundle(R.string.mock_config_id_video_rewarded_end_card_320_480, null, MIN_WIDTH_PERC, MIN_HEIGHT_PERC))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_banner_video_outstream), R.id.action_header_bidding_to_in_app_banner_video, ppmVideoTagList, - createBannerBundle(R.string.mock_config_id_video_outstream, null, 300, 250))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_banner_video_outstream_feed), R.id.action_header_bidding_to_in_app_banner_video_feed, ppmVideoTagList, - createBannerBundle(R.string.mock_config_id_video_outstream, null, 300, 250))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_banner_video_outstream_end_card), R.id.action_header_bidding_to_in_app_banner_video, ppmVideoTagList, - createBannerBundle(R.string.mock_config_id_video_outstream_end_card, null, 300, 250))) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_interstitial_video_320_480), + ppmInterstitialAction, + ppmVideoTagList, + createBannerBundle( + R.string.mock_config_id_video_interstitial_320_480, + null, + MIN_WIDTH_PERC, + MIN_HEIGHT_PERC + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_interstitial_video_320_480_skipoffset), + ppmInterstitialAction, + ppmVideoTagList, + createBannerBundle( + R.string.mock_config_id_video_interstitial_skipoffset, + null, + MIN_WIDTH_PERC, + MIN_HEIGHT_PERC + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_interstitial_video_320_480_deeplink), + ppmInterstitialAction, + ppmVideoTagList, + createBannerBundle( + R.string.mock_config_id_video_interstitial_deeplink, + null, + MIN_WIDTH_PERC, + MIN_HEIGHT_PERC + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_interstitial_video_320_480_end_card), + ppmInterstitialAction, + ppmVideoTagList, + createBannerBundle( + R.string.mock_config_id_video_rewarded_end_card_320_480, + null, + MIN_WIDTH_PERC, + MIN_HEIGHT_PERC + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_interstitial_video_320_480_mraid_end_card), + ppmInterstitialAction, + ppmMraidTagList, + createBannerBundle( + R.string.mock_config_id_video_interstitial_mraid_end_card, + null, + MIN_WIDTH_PERC, + MIN_HEIGHT_PERC + ) + ) + ) + + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_video_rewarded_320_480), ppmRewardedAction, ppmVideoTagList, + createBannerBundle( + R.string.mock_config_id_video_rewarded_320_480, + null, + MIN_WIDTH_PERC, + MIN_HEIGHT_PERC + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_video_rewarded_end_card_320_480), + ppmRewardedAction, + ppmVideoTagList, + createBannerBundle( + R.string.mock_config_id_video_rewarded_end_card_320_480, + null, + MIN_WIDTH_PERC, + MIN_HEIGHT_PERC + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_banner_video_outstream), + R.id.action_header_bidding_to_in_app_banner_video, + ppmVideoTagList, + createBannerBundle(R.string.mock_config_id_video_outstream, null, 300, 250) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_banner_video_outstream_feed), + R.id.action_header_bidding_to_in_app_banner_video_feed, + ppmVideoTagList, + createBannerBundle(R.string.mock_config_id_video_outstream, null, 300, 250) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_banner_video_outstream_end_card), + R.id.action_header_bidding_to_in_app_banner_video, + ppmVideoTagList, + createBannerBundle(R.string.mock_config_id_video_outstream_end_card, null, 300, 250) + ) + ) // Native - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_native_styles_map), R.id.action_header_bidding_to_in_app_native_styles, - ppmNativeTagList, createBannerBundle(R.string.mock_config_id_native_styles, null, 300, 250))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_native_styles_keys), R.id.action_header_bidding_to_in_app_native_styles, - ppmNativeTagList, createBannerBundle(R.string.mock_config_id_native_styles, null, 300, 250))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_native_styles_no_assets), R.id.action_header_bidding_to_in_app_native_styles_no_assets, - ppmNativeTagList, createBannerBundle(R.string.mock_config_id_native_styles, null, 300, 250))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_native_styles_no_creative), R.id.action_header_bidding_to_in_app_native_styles, - ppmNativeTagList, createBannerBundle(R.string.mock_config_id_native_styles, null, 300, 250))) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_native_styles_map), + R.id.action_header_bidding_to_in_app_native_styles, + ppmNativeTagList, + createBannerBundle(R.string.mock_config_id_native_styles, null, 300, 250) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_native_styles_keys), + R.id.action_header_bidding_to_in_app_native_styles, + ppmNativeTagList, + createBannerBundle(R.string.mock_config_id_native_styles, null, 300, 250) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_native_styles_no_assets), + R.id.action_header_bidding_to_in_app_native_styles_no_assets, + ppmNativeTagList, + createBannerBundle(R.string.mock_config_id_native_styles, null, 300, 250) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_native_styles_no_creative), + R.id.action_header_bidding_to_in_app_native_styles, + ppmNativeTagList, + createBannerBundle(R.string.mock_config_id_native_styles, null, 300, 250) + ) + ) // TODO: Uncomment when native module will be merged @@ -173,58 +420,290 @@ class DemoItemProvider private constructor() { val gamNativeTagList = listOf(Tag.ALL, Tag.GAM, Tag.NATIVE, Tag.MOCK) /// GAM Banner - demoList.add(DemoItem(getString(R.string.demo_bidding_gam_banner_320_50_app_event), gamBannerAction, gamBannerTagList, - createBannerBundle(R.string.mock_config_id_banner_320x50, R.string.adunit_gam_banner_320_50_app_event, 320, 50))) - demoList.add(DemoItem(getString(R.string.demo_bidding_gam_banner_320_50_gam_ad), gamBannerAction, gamBannerTagList, - createBannerBundle(R.string.mock_config_id_banner_320x50, R.string.adunit_gam_banner_320_50_gam_ad, 320, 50))) - demoList.add(DemoItem(getString(R.string.demo_bidding_gam_banner_320_50_random), gamBannerAction, gamBannerTagList, - createBannerBundle(R.string.mock_config_id_banner_320x50, R.string.adunit_gam_banner_320_50_random, 320, 50))) - demoList.add(DemoItem(getString(R.string.demo_bidding_gam_banner_300_250), gamBannerAction, gamBannerTagList, - createBannerBundle(R.string.mock_config_id_banner_300x250, R.string.adunit_gam_banner_300_250, 300, 250))) - demoList.add(DemoItem(getString(R.string.demo_bidding_gam_banner_728_90), gamBannerAction, gamBannerTagList, - createBannerBundle(R.string.mock_config_id_banner_728x90, R.string.adunit_gam_banner_728_90, 728, 90))) - demoList.add(DemoItem(getString(R.string.demo_bidding_gam_banner_multisize), R.id.action_header_bidding_to_gam_multisize_banner, gamBannerTagList, - createBannerBundle(R.string.mock_config_id_banner_multisize, R.string.adunit_gam_banner_multisize, 320, 50))) - demoList.add(DemoItem(getString(R.string.demo_bidding_gam_banners_and_interstitial), R.id.action_header_bidding_to_gam_banners_and_interstitial, gamBannerTagList, - createBannerBundle(null, null, 0, 0))) - demoList.add(DemoItem(getString(R.string.demo_bidding_gam_mraid_expand), gamBannerAction, gamMraidTagList, - createBannerBundle(R.string.mock_config_id_mraid_expand, R.string.adunit_gam_banner_320_50_app_event, 320, 50))) - demoList.add(DemoItem(getString(R.string.demo_bidding_gam_mraid_resize), gamBannerAction, gamMraidTagList, - createBannerBundle(R.string.mock_config_id_mraid_resize, R.string.adunit_gam_banner_320_50_app_event, 320, 50))) - demoList.add(DemoItem(getString(R.string.demo_bidding_gam_mraid_fullscreen_video), gamInterstitialAction, gamMraidTagList, - createBannerBundle(R.string.mock_config_id_mraid_video_interstitial, R.string.adunit_gam_interstitial_320_480_app_event, MIN_WIDTH_PERC, MIN_HEIGHT_PERC))) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_gam_banner_320_50_app_event), gamBannerAction, gamBannerTagList, + createBannerBundle( + R.string.mock_config_id_banner_320x50, + R.string.adunit_gam_banner_320_50_app_event, + 320, + 50 + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_gam_banner_320_50_gam_ad), gamBannerAction, gamBannerTagList, + createBannerBundle( + R.string.mock_config_id_banner_320x50, + R.string.adunit_gam_banner_320_50_gam_ad, + 320, + 50 + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_gam_banner_320_50_random), gamBannerAction, gamBannerTagList, + createBannerBundle( + R.string.mock_config_id_banner_320x50, + R.string.adunit_gam_banner_320_50_random, + 320, + 50 + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_gam_banner_300_250), gamBannerAction, gamBannerTagList, + createBannerBundle( + R.string.mock_config_id_banner_300x250, + R.string.adunit_gam_banner_300_250, + 300, + 250 + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_gam_banner_728_90), gamBannerAction, gamBannerTagList, + createBannerBundle( + R.string.mock_config_id_banner_728x90, + R.string.adunit_gam_banner_728_90, + 728, + 90 + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_gam_banner_multisize), + R.id.action_header_bidding_to_gam_multisize_banner, + gamBannerTagList, + createBannerBundle( + R.string.mock_config_id_banner_multisize, + R.string.adunit_gam_banner_multisize, + 320, + 50 + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_gam_banners_and_interstitial), + R.id.action_header_bidding_to_gam_banners_and_interstitial, + gamBannerTagList, + createBannerBundle(null, null, 0, 0) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_gam_mraid_expand), gamBannerAction, gamMraidTagList, + createBannerBundle( + R.string.mock_config_id_mraid_expand, + R.string.adunit_gam_banner_320_50_app_event, + 320, + 50 + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_gam_mraid_resize), gamBannerAction, gamMraidTagList, + createBannerBundle( + R.string.mock_config_id_mraid_resize, + R.string.adunit_gam_banner_320_50_app_event, + 320, + 50 + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_gam_mraid_fullscreen_video), gamInterstitialAction, gamMraidTagList, + createBannerBundle( + R.string.mock_config_id_mraid_video_interstitial, + R.string.adunit_gam_interstitial_320_480_app_event, + MIN_WIDTH_PERC, + MIN_HEIGHT_PERC + ) + ) + ) // GAM Interstitial - demoList.add(DemoItem(getString(R.string.demo_bidding_gam_interstitial_320_480_app_event), gamInterstitialAction, gamInterstitialTagList, - createBannerBundle(R.string.mock_config_id_interstitial_320_480, R.string.adunit_gam_interstitial_320_480_app_event, MIN_WIDTH_PERC, MIN_HEIGHT_PERC))) - demoList.add(DemoItem(getString(R.string.demo_bidding_gam_interstitial_320_480_random), gamInterstitialAction, gamInterstitialTagList, - createBannerBundle(R.string.mock_config_id_interstitial_320_480, R.string.adunit_gam_interstitial_320_480_random, MIN_WIDTH_PERC, MIN_HEIGHT_PERC))) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_gam_interstitial_320_480_app_event), + gamInterstitialAction, + gamInterstitialTagList, + createBannerBundle( + R.string.mock_config_id_interstitial_320_480, + R.string.adunit_gam_interstitial_320_480_app_event, + MIN_WIDTH_PERC, + MIN_HEIGHT_PERC + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_gam_interstitial_320_480_random), + gamInterstitialAction, + gamInterstitialTagList, + createBannerBundle( + R.string.mock_config_id_interstitial_320_480, + R.string.adunit_gam_interstitial_320_480_random, + MIN_WIDTH_PERC, + MIN_HEIGHT_PERC + ) + ) + ) ///GAM Video - demoList.add(DemoItem(getString(R.string.demo_bidding_gam_interstitial_video_320_480_app_event), gamInterstitialAction, gamVideoTagList, - createBannerBundle(R.string.mock_config_id_video_interstitial_320_480, R.string.adunit_gam_interstitial_video_320_480_app_event, MIN_WIDTH_PERC, MIN_HEIGHT_PERC))) - demoList.add(DemoItem(getString(R.string.demo_bidding_gam_interstitial_video_320_480_random), gamInterstitialAction, gamVideoTagList, - createBannerBundle(R.string.mock_config_id_video_interstitial_320_480, R.string.adunit_gam_interstitial_video_320_480_random, MIN_WIDTH_PERC, MIN_HEIGHT_PERC))) - demoList.add(DemoItem(getString(R.string.demo_bidding_gam_video_rewarded_320_480_metadata), gamRewardedAction, gamVideoTagList, - createBannerBundle(R.string.mock_config_id_video_rewarded_320_480, R.string.adunit_gam_video_rewarded_320_480_metadata, MIN_WIDTH_PERC, MIN_HEIGHT_PERC))) - demoList.add(DemoItem(getString(R.string.demo_bidding_gam_video_rewarded_end_card_320_480_metadata), gamRewardedAction, gamVideoTagList, - createBannerBundle(R.string.mock_config_id_video_rewarded_end_card_320_480, R.string.adunit_gam_video_rewarded_320_480_metadata, MIN_WIDTH_PERC, MIN_HEIGHT_PERC))) - demoList.add(DemoItem(getString(R.string.demo_bidding_gam_video_rewarded_end_card_320_480_random), gamRewardedAction, gamVideoTagList, - createBannerBundle(R.string.mock_config_id_video_rewarded_end_card_320_480, R.string.adunit_gam_video_rewarded_320_480_random, MIN_WIDTH_PERC, MIN_HEIGHT_PERC))) - demoList.add(DemoItem(getString(R.string.demo_bidding_gam_video_oustream_app_event), R.id.action_header_bidding_to_gam_banner_video, gamVideoTagList, - createBannerBundle(R.string.mock_config_id_video_outstream, R.string.adunit_gam_banner_300_250, 300, 250))) - demoList.add(DemoItem(getString(R.string.demo_bidding_gam_video_outstream_random), R.id.action_header_bidding_to_gam_banner_video, gamVideoTagList, - createBannerBundle(R.string.mock_config_id_video_outstream, R.string.adunit_gam_video_300_250_random, 300, 250))) - demoList.add(DemoItem(getString(R.string.demo_bidding_gam_video_outstream_feed), R.id.action_header_bidding_to_gam_banner_video_feed, gamVideoTagList, - createBannerBundle(R.string.mock_config_id_video_outstream, R.string.adunit_gam_video_300_250_random, 300, 250))) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_gam_interstitial_video_320_480_app_event), + gamInterstitialAction, + gamVideoTagList, + createBannerBundle( + R.string.mock_config_id_video_interstitial_320_480, + R.string.adunit_gam_interstitial_video_320_480_app_event, + MIN_WIDTH_PERC, + MIN_HEIGHT_PERC + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_gam_interstitial_video_320_480_random), + gamInterstitialAction, + gamVideoTagList, + createBannerBundle( + R.string.mock_config_id_video_interstitial_320_480, + R.string.adunit_gam_interstitial_video_320_480_random, + MIN_WIDTH_PERC, + MIN_HEIGHT_PERC + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_gam_video_rewarded_320_480_metadata), + gamRewardedAction, + gamVideoTagList, + createBannerBundle( + R.string.mock_config_id_video_rewarded_320_480, + R.string.adunit_gam_video_rewarded_320_480_metadata, + MIN_WIDTH_PERC, + MIN_HEIGHT_PERC + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_gam_video_rewarded_end_card_320_480_metadata), + gamRewardedAction, + gamVideoTagList, + createBannerBundle( + R.string.mock_config_id_video_rewarded_end_card_320_480, + R.string.adunit_gam_video_rewarded_320_480_metadata, + MIN_WIDTH_PERC, + MIN_HEIGHT_PERC + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_gam_video_rewarded_end_card_320_480_random), + gamRewardedAction, + gamVideoTagList, + createBannerBundle( + R.string.mock_config_id_video_rewarded_end_card_320_480, + R.string.adunit_gam_video_rewarded_320_480_random, + MIN_WIDTH_PERC, + MIN_HEIGHT_PERC + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_gam_video_oustream_app_event), + R.id.action_header_bidding_to_gam_banner_video, + gamVideoTagList, + createBannerBundle( + R.string.mock_config_id_video_outstream, + R.string.adunit_gam_banner_300_250, + 300, + 250 + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_gam_video_outstream_random), + R.id.action_header_bidding_to_gam_banner_video, + gamVideoTagList, + createBannerBundle( + R.string.mock_config_id_video_outstream, + R.string.adunit_gam_video_300_250_random, + 300, + 250 + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_gam_video_outstream_feed), + R.id.action_header_bidding_to_gam_banner_video_feed, + gamVideoTagList, + createBannerBundle( + R.string.mock_config_id_video_outstream, + R.string.adunit_gam_video_300_250_random, + 300, + 250 + ) + ) + ) // Native - demoList.add(DemoItem(getString(R.string.demo_bidding_gam_native_styles_mrect), R.id.action_header_bidding_to_gam_native_styles, - gamNativeTagList, createBannerBundle(R.string.mock_config_id_native_styles, R.string.adunit_gam_native_mrect, 300, 250))) - demoList.add(DemoItem(getString(R.string.demo_bidding_gam_native_styles_no_assets), R.id.action_header_bidding_to_gam_native_styles_no_assets, - gamNativeTagList, createBannerBundle(R.string.mock_config_id_native_styles, R.string.adunit_gam_native_mrect, 300, 250))) - demoList.add(DemoItem(getString(R.string.demo_bidding_gam_native_styles_fluid), R.id.action_header_bidding_to_gam_native_styles, - gamNativeTagList, createBannerBundle(R.string.mock_config_id_native_styles, R.string.adunit_gam_native_fluid, AdSize.FLUID.width, AdSize.FLUID.height))) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_gam_native_styles_mrect), + R.id.action_header_bidding_to_gam_native_styles, + gamNativeTagList, + createBannerBundle( + R.string.mock_config_id_native_styles, + R.string.adunit_gam_native_mrect, + 300, + 250 + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_gam_native_styles_no_assets), + R.id.action_header_bidding_to_gam_native_styles_no_assets, + gamNativeTagList, + createBannerBundle( + R.string.mock_config_id_native_styles, + R.string.adunit_gam_native_mrect, + 300, + 250 + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_gam_native_styles_fluid), + R.id.action_header_bidding_to_gam_native_styles, + gamNativeTagList, + createBannerBundle( + R.string.mock_config_id_native_styles, + R.string.adunit_gam_native_fluid, + AdSize.FLUID.width, + AdSize.FLUID.height + ) + ) + ) // TODO: Uncomment when native module will be merged // var gamNativeBundle = createBannerBundle(R.string.mock_config_id_native_styles, R.string.adunit_gam_native_custom_template) @@ -262,62 +741,325 @@ class DemoItemProvider private constructor() { val mopubNativeTagList = listOf(Tag.ALL, Tag.MOPUB, Tag.NATIVE, Tag.MOCK) /// Mopub Banner - demoList.add(DemoItem(getString(R.string.demo_bidding_mopub_banner_320_50_adapter), mopubBannerAction, - mopubBannerTagList, createBannerBundle(R.string.mock_config_id_banner_320x50, R.string.mopub_banner_bidding_ad_unit_id_adapter, 320, 50))) - demoList.add(DemoItem(getString(R.string.demo_bidding_mopub_banner_320_50_random), mopubBannerAction, - mopubBannerTagList, createBannerBundle(R.string.mock_config_id_banner_320x50, R.string.mopub_banner_bidding_ad_unit_id_random, 320, 50))) - demoList.add(DemoItem(getString(R.string.demo_bidding_mopub_banner_300_250), mopubBannerAction, - mopubBannerTagList, createBannerBundle(R.string.mock_config_id_banner_300x250, R.string.mopub_banner_bidding_ad_unit_id_adapter, 300, 250))) - demoList.add(DemoItem(getString(R.string.demo_bidding_mopub_banner_728_90), mopubBannerAction, - mopubBannerTagList, createBannerBundle(R.string.mock_config_id_banner_728x90, R.string.mopub_banner_bidding_ad_unit_id_adapter, 728, 90))) - demoList.add(DemoItem(getString(R.string.demo_bidding_mopub_banner_multisize), R.id.action_header_bidding_to_mopub_banner_multisize, - mopubBannerTagList, createBannerBundle(R.string.mock_config_id_banner_multisize, R.string.mopub_banner_bidding_ad_unit_id_adapter, 320, 50))) - demoList.add(DemoItem(getString(R.string.demo_bidding_mopub_banners_and_interstitial), R.id.action_header_bidding_to_mopub_banners_and_interstitial, mopubBannerTagList, - createBannerBundle(null, null, 0, 0))) - demoList.add(DemoItem(getString(R.string.demo_bidding_mopub_mraid_expand), mopubBannerAction, - mopubMraidTagList, createBannerBundle(R.string.mock_config_id_mraid_expand, R.string.mopub_banner_bidding_ad_unit_id_adapter, 320, 50))) - demoList.add(DemoItem(getString(R.string.demo_bidding_mopub_mraid_resize), mopubBannerAction, - mopubMraidTagList, createBannerBundle(R.string.mock_config_id_mraid_resize, R.string.mopub_banner_bidding_ad_unit_id_adapter, 320, 50))) - demoList.add(DemoItem(getString(R.string.demo_bidding_mopub_mraid_fullscreen_video), + demoList.add( + DemoItem( + getString(R.string.demo_bidding_mopub_banner_320_50_adapter), + mopubBannerAction, + mopubBannerTagList, + createBannerBundle( + R.string.mock_config_id_banner_320x50, + R.string.mopub_banner_bidding_ad_unit_id_adapter, + 320, + 50 + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_mopub_banner_320_50_random), + mopubBannerAction, + mopubBannerTagList, + createBannerBundle( + R.string.mock_config_id_banner_320x50, + R.string.mopub_banner_bidding_ad_unit_id_random, + 320, + 50 + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_mopub_banner_300_250), + mopubBannerAction, + mopubBannerTagList, + createBannerBundle( + R.string.mock_config_id_banner_300x250, + R.string.mopub_banner_bidding_ad_unit_id_adapter, + 300, + 250 + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_mopub_banner_728_90), + mopubBannerAction, + mopubBannerTagList, + createBannerBundle( + R.string.mock_config_id_banner_728x90, + R.string.mopub_banner_bidding_ad_unit_id_adapter, + 728, + 90 + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_mopub_banner_multisize), + R.id.action_header_bidding_to_mopub_banner_multisize, + mopubBannerTagList, + createBannerBundle( + R.string.mock_config_id_banner_multisize, + R.string.mopub_banner_bidding_ad_unit_id_adapter, + 320, + 50 + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_mopub_banners_and_interstitial), + R.id.action_header_bidding_to_mopub_banners_and_interstitial, + mopubBannerTagList, + createBannerBundle(null, null, 0, 0) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_mopub_mraid_expand), + mopubBannerAction, + mopubMraidTagList, + createBannerBundle( + R.string.mock_config_id_mraid_expand, + R.string.mopub_banner_bidding_ad_unit_id_adapter, + 320, + 50 + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_mopub_mraid_resize), + mopubBannerAction, + mopubMraidTagList, + createBannerBundle( + R.string.mock_config_id_mraid_resize, + R.string.mopub_banner_bidding_ad_unit_id_adapter, + 320, + 50 + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_mopub_mraid_fullscreen_video), mopubInterstitialAction, mopubMraidTagList, - createBannerBundle(R.string.mock_config_id_mraid_video_interstitial, R.string.mopub_interstitial_bidding_ad_unit_id_ok, MIN_WIDTH_PERC, MIN_HEIGHT_PERC))) + createBannerBundle( + R.string.mock_config_id_mraid_video_interstitial, + R.string.mopub_interstitial_bidding_ad_unit_id_ok, + MIN_WIDTH_PERC, + MIN_HEIGHT_PERC + ) + ) + ) // MoPub Interstitial - demoList.add(DemoItem(getString(R.string.demo_bidding_mopub_interstitial_320_480_adapter), + demoList.add( + DemoItem( + getString(R.string.demo_bidding_mopub_interstitial_320_480_adapter), mopubInterstitialAction, mopubInterstitialTagList, - createBannerBundle(R.string.mock_config_id_interstitial_320_480, R.string.mopub_interstitial_bidding_ad_unit_id_ok, MIN_WIDTH_PERC, MIN_HEIGHT_PERC))) - demoList.add(DemoItem(getString(R.string.demo_bidding_mopub_interstitial_320_480_random), + createBannerBundle( + R.string.mock_config_id_interstitial_320_480, + R.string.mopub_interstitial_bidding_ad_unit_id_ok, + MIN_WIDTH_PERC, + MIN_HEIGHT_PERC + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_mopub_interstitial_320_480_random), mopubInterstitialAction, mopubInterstitialTagList, - createBannerBundle(R.string.mock_config_id_interstitial_320_480, R.string.mopub_interstitial_bidding_ad_unit_id_random, MIN_WIDTH_PERC, MIN_HEIGHT_PERC))) + createBannerBundle( + R.string.mock_config_id_interstitial_320_480, + R.string.mopub_interstitial_bidding_ad_unit_id_random, + MIN_WIDTH_PERC, + MIN_HEIGHT_PERC + ) + ) + ) // MoPub Video - demoList.add(DemoItem(getString(R.string.demo_bidding_mopub_video_interstitial_320_480_adapter), + demoList.add( + DemoItem( + getString(R.string.demo_bidding_mopub_video_interstitial_320_480_adapter), R.id.action_header_bidding_to_mopub_interstitial, mopubVideoTagList, - createBannerBundle(R.string.mock_config_id_video_interstitial_320_480, R.string.mopub_video_interstitial_bidding_adapter))) - demoList.add(DemoItem(getString(R.string.demo_bidding_mopub_video_interstitial_320_480_random), + createBannerBundle( + R.string.mock_config_id_video_interstitial_320_480, + R.string.mopub_video_interstitial_bidding_adapter + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_mopub_video_interstitial_320_480_random), R.id.action_header_bidding_to_mopub_interstitial, mopubVideoTagList, - createBannerBundle(R.string.mock_config_id_video_interstitial_320_480, R.string.mopub_video_interstitial_bidding_random))) - demoList.add(DemoItem(getString(R.string.demo_bidding_mopub_rewarded_video_320_480_adapter), + createBannerBundle( + R.string.mock_config_id_video_interstitial_320_480, + R.string.mopub_video_interstitial_bidding_random + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_mopub_rewarded_video_320_480_adapter), mopubRewardedAction, mopubVideoTagList, - createBannerBundle(R.string.mock_config_id_video_rewarded_320_480, R.string.mopub_rewarded_video_bidding_adapter))) - demoList.add(DemoItem(getString(R.string.demo_bidding_mopub_rewarded_video_end_card_320_480_adapter), + createBannerBundle( + R.string.mock_config_id_video_rewarded_320_480, + R.string.mopub_rewarded_video_bidding_adapter + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_mopub_rewarded_video_end_card_320_480_adapter), mopubRewardedAction, mopubVideoTagList, - createBannerBundle(R.string.mock_config_id_video_rewarded_end_card_320_480, R.string.mopub_rewarded_video_bidding_adapter))) - demoList.add(DemoItem(getString(R.string.demo_bidding_mopub_rewarded_video_end_card_320_480_random), + createBannerBundle( + R.string.mock_config_id_video_rewarded_end_card_320_480, + R.string.mopub_rewarded_video_bidding_adapter + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_mopub_rewarded_video_end_card_320_480_random), mopubRewardedAction, mopubVideoTagList, - createBannerBundle(R.string.mock_config_id_video_rewarded_end_card_320_480, R.string.mopub_rewarded_video_bidding_random))) + createBannerBundle( + R.string.mock_config_id_video_rewarded_end_card_320_480, + R.string.mopub_rewarded_video_bidding_random + ) + ) + ) // Native - demoList.add(DemoItem(getString(R.string.demo_bidding_mopub_native_styles), R.id.action_header_bidding_to_mopub_native_styles, - mopubNativeTagList, createBannerBundle(R.string.mock_config_id_native_styles, R.string.mopub_native_styles, 300, 250))) - demoList.add(DemoItem(getString(R.string.demo_bidding_mopub_native_styles_no_assets), R.id.action_header_bidding_to_mopub_native_styles_no_assets, - mopubNativeTagList, createBannerBundle(R.string.mock_config_id_native_styles, R.string.mopub_native_styles, 300, 250))) - demoList.add(DemoItem(getString(R.string.demo_bidding_mopub_native_adapter), R.id.action_header_bidding_to_mopub_native, - mopubNativeTagList, createBannerBundle(R.string.mock_config_id_native_styles, R.string.mopub_native_adapter))) - demoList.add(DemoItem(getString(R.string.demo_bidding_mopub_native_adapter_video), R.id.action_header_bidding_to_mopub_native_video, - mopubNativeTagList, createBannerBundle(R.string.mock_config_id_native_video, R.string.mopub_native_adapter))) - demoList.add(DemoItem(getString(R.string.demo_bidding_mopub_native_feed_no_bids), R.id.action_header_bidding_to_mopub_native_feed, - mopubNativeTagList, createBannerBundle(R.string.mock_config_id_no_bids, R.string.mopub_native_no_bids))) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_mopub_native_styles), + R.id.action_header_bidding_to_mopub_native_styles, + mopubNativeTagList, + createBannerBundle(R.string.mock_config_id_native_styles, R.string.mopub_native_styles, 300, 250) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_mopub_native_styles_no_assets), + R.id.action_header_bidding_to_mopub_native_styles_no_assets, + mopubNativeTagList, + createBannerBundle(R.string.mock_config_id_native_styles, R.string.mopub_native_styles, 300, 250) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_mopub_native_adapter), + R.id.action_header_bidding_to_mopub_native, + mopubNativeTagList, + createBannerBundle(R.string.mock_config_id_native_styles, R.string.mopub_native_adapter) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_mopub_native_adapter_video), + R.id.action_header_bidding_to_mopub_native_video, + mopubNativeTagList, + createBannerBundle(R.string.mock_config_id_native_video, R.string.mopub_native_adapter) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_mopub_native_feed_no_bids), + R.id.action_header_bidding_to_mopub_native_feed, + mopubNativeTagList, + createBannerBundle(R.string.mock_config_id_no_bids, R.string.mopub_native_no_bids) + ) + ) + + // AdMob Integration + val adMobBannerTagList = listOf(Tag.ALL, Tag.ADMOB, Tag.BANNER, Tag.MOCK) + + demoList.add( + DemoItem( + getString(R.string.demo_bidding_admob_banner_320_50_adapter), + adMobBannerAction, + adMobBannerTagList, + createBannerBundle( + R.string.mock_config_id_banner_320x50_high_price, + R.string.admob_banner_bidding_ad_unit_id_adapter, + 320, 50 + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_admob_banner_320_50_ok_random), + adMobBannerAction, + adMobBannerTagList, + createBannerBundle( + R.string.mock_config_id_banner_320x50, + R.string.admob_banner_bidding_ad_unit_id_adapter, + 320, 50 + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_admob_banner_320_50_no_bids), + adMobBannerAction, + adMobBannerTagList, + createBannerBundle( + R.string.prebid_config_id_no_bids, + R.string.admob_banner_bidding_ad_unit_id_adapter, + 320, 50 + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_admob_banner_320_50_random_respectively), + adMobRandomBannerAction, + adMobBannerTagList, + createBannerBundle( + R.string.mock_config_id_banner_320x50_high_price, + R.string.admob_banner_bidding_ad_unit_id_adapter, + 320, 50 + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_admob_banner_300_250_adapter), + adMobBannerAction, + adMobBannerTagList, + createBannerBundle( + R.string.mock_config_id_banner_300x250_high_price, + R.string.admob_banner_bidding_ad_unit_id_adapter, + 300, 250 + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_admob_banner_300_250_ok_random), + adMobBannerAction, + adMobBannerTagList, + createBannerBundle( + R.string.mock_config_id_banner_300x250, + R.string.admob_banner_bidding_ad_unit_id_adapter, + 300, 250 + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_admob_flexible_banner_ok_random), + adMobFlexibleBannerAction, + adMobBannerTagList, + createBannerBundle( + R.string.mock_config_id_banner_300x250, + R.string.admob_banner_bidding_ad_unit_id_adapter, + 300, 250 + ) + ) + ) } private fun formProdDemoList() { @@ -327,28 +1069,98 @@ class DemoItemProvider private constructor() { val ppmVideoTagList = listOf(Tag.ALL, Tag.IN_APP, Tag.VIDEO, Tag.REMOTE) val ppmNativeTagList = listOf(Tag.ALL, Tag.IN_APP, Tag.NATIVE, Tag.REMOTE) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_banner_320_50), ppmBannerAction, - ppmBannerTagList, createBannerBundle(R.string.prebid_config_id_banner_320x50, null, 320, 50))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_banner_320_50_no_bids), ppmBannerAction, - ppmBannerTagList, createBannerBundle(R.string.prebid_config_id_no_bids, null, 320, 50))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_mraid_resize), ppmBannerAction, - ppmMraidTagList, createBannerBundle(R.string.prebid_config_id_mraid_resize, null, 320, 50))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_interstitial_320_480), ppmInterstitialAction, ppmInterstitialTagList, - createBannerBundle(R.string.prebid_config_id_interstitial_320_480, null, MIN_WIDTH_PERC, MIN_HEIGHT_PERC))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_interstitial_320_480_no_bids), ppmInterstitialAction, ppmInterstitialTagList, - createBannerBundle(R.string.prebid_config_id_no_bids, null, MIN_WIDTH_PERC, MIN_HEIGHT_PERC))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_video_rewarded_end_card_320_480), ppmRewardedAction, ppmVideoTagList, - createBannerBundle(R.string.prebid_config_id_video_rewarded_320_480, null, MIN_WIDTH_PERC, MIN_HEIGHT_PERC))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_interstitial_video_320_480_no_bids), ppmInterstitialAction, ppmVideoTagList, - createBannerBundle(R.string.prebid_config_id_no_bids, null, MIN_WIDTH_PERC, MIN_HEIGHT_PERC))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_video_rewarded_end_card_320_480_no_bids), ppmRewardedAction, ppmVideoTagList, - createBannerBundle(R.string.prebid_config_id_no_bids, null, MIN_WIDTH_PERC, MIN_HEIGHT_PERC))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_banner_video_outstream), R.id.action_header_bidding_to_in_app_banner_video, ppmVideoTagList, - createBannerBundle(R.string.prebid_config_id_video_outstream_end_card, null, 300, 250))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_banner_video_outstream_no_bids), R.id.action_header_bidding_to_in_app_banner_video, ppmVideoTagList, - createBannerBundle(R.string.prebid_config_id_no_bids, null, 300, 250))) - demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_native_styles_map), R.id.action_header_bidding_to_in_app_native_styles, - ppmNativeTagList, createBannerBundle(R.string.prebid_config_id_native_styles, null, 300, 250))) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_banner_320_50), ppmBannerAction, + ppmBannerTagList, createBannerBundle(R.string.prebid_config_id_banner_320x50, null, 320, 50) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_banner_320_50_no_bids), ppmBannerAction, + ppmBannerTagList, createBannerBundle(R.string.prebid_config_id_no_bids, null, 320, 50) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_mraid_resize), ppmBannerAction, + ppmMraidTagList, createBannerBundle(R.string.prebid_config_id_mraid_resize, null, 320, 50) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_interstitial_320_480), + ppmInterstitialAction, + ppmInterstitialTagList, + createBannerBundle( + R.string.prebid_config_id_interstitial_320_480, + null, + MIN_WIDTH_PERC, + MIN_HEIGHT_PERC + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_interstitial_320_480_no_bids), + ppmInterstitialAction, + ppmInterstitialTagList, + createBannerBundle(R.string.prebid_config_id_no_bids, null, MIN_WIDTH_PERC, MIN_HEIGHT_PERC) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_video_rewarded_end_card_320_480), + ppmRewardedAction, + ppmVideoTagList, + createBannerBundle( + R.string.prebid_config_id_video_rewarded_320_480, + null, + MIN_WIDTH_PERC, + MIN_HEIGHT_PERC + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_interstitial_video_320_480_no_bids), + ppmInterstitialAction, + ppmVideoTagList, + createBannerBundle(R.string.prebid_config_id_no_bids, null, MIN_WIDTH_PERC, MIN_HEIGHT_PERC) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_video_rewarded_end_card_320_480_no_bids), + ppmRewardedAction, + ppmVideoTagList, + createBannerBundle(R.string.prebid_config_id_no_bids, null, MIN_WIDTH_PERC, MIN_HEIGHT_PERC) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_banner_video_outstream), + R.id.action_header_bidding_to_in_app_banner_video, + ppmVideoTagList, + createBannerBundle(R.string.prebid_config_id_video_outstream_end_card, null, 300, 250) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_banner_video_outstream_no_bids), + R.id.action_header_bidding_to_in_app_banner_video, + ppmVideoTagList, + createBannerBundle(R.string.prebid_config_id_no_bids, null, 300, 250) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_in_app_native_styles_map), + R.id.action_header_bidding_to_in_app_native_styles, + ppmNativeTagList, + createBannerBundle(R.string.prebid_config_id_native_styles, null, 300, 250) + ) + ) // GAM integration val gamBannerTagList = listOf(Tag.ALL, Tag.GAM, Tag.BANNER, Tag.REMOTE) @@ -357,28 +1169,138 @@ class DemoItemProvider private constructor() { val gamVideoTagList = listOf(Tag.ALL, Tag.GAM, Tag.VIDEO, Tag.REMOTE) val gamNativeTagList = listOf(Tag.ALL, Tag.GAM, Tag.NATIVE, Tag.REMOTE) - demoList.add(DemoItem(getString(R.string.demo_bidding_gam_banner_320_50_app_event), gamBannerAction, gamBannerTagList, - createBannerBundle(R.string.prebid_config_id_banner_320x50, R.string.adunit_gam_banner_320_50_app_event, 320, 50))) - demoList.add(DemoItem(getString(R.string.demo_bidding_gam_banner_320_50_no_bids), gamBannerAction, gamBannerTagList, - createBannerBundle(R.string.prebid_config_id_no_bids, R.string.adunit_gam_banner_320_50_no_bids, 320, 50))) - demoList.add(DemoItem(getString(R.string.demo_bidding_gam_mraid_resize), gamBannerAction, gamMraidTagList, - createBannerBundle(R.string.prebid_config_id_mraid_resize, R.string.adunit_gam_banner_320_50_app_event, 320, 50))) - demoList.add(DemoItem(getString(R.string.demo_bidding_gam_interstitial_320_480_app_event), gamInterstitialAction, gamInterstitialTagList, - createBannerBundle(R.string.prebid_config_id_interstitial_320_480, R.string.adunit_gam_interstitial_320_480_app_event, MIN_WIDTH_PERC, MIN_HEIGHT_PERC))) - demoList.add(DemoItem(getString(R.string.demo_bidding_gam_interstitial_320_480_no_bids), gamInterstitialAction, gamInterstitialTagList, - createBannerBundle(R.string.prebid_config_id_no_bids, R.string.adunit_gam_interstitial_320_480_no_bids, MIN_WIDTH_PERC, MIN_HEIGHT_PERC))) - demoList.add(DemoItem(getString(R.string.demo_bidding_gam_video_oustream_app_event), R.id.action_header_bidding_to_gam_banner_video, gamVideoTagList, - createBannerBundle(R.string.prebid_config_id_video_outstream_end_card, R.string.adunit_gam_banner_300_250, 300, 250))) - demoList.add(DemoItem(getString(R.string.demo_bidding_gam_video_outstream_no_bids), R.id.action_header_bidding_to_gam_banner_video, gamVideoTagList, - createBannerBundle(R.string.prebid_config_id_no_bids, R.string.adunit_gam_video_300_250, 300, 250))) - demoList.add(DemoItem(getString(R.string.demo_bidding_gam_video_rewarded_end_card_320_480_metadata), gamRewardedAction, gamVideoTagList, - createBannerBundle(R.string.prebid_config_id_video_rewarded_320_480, R.string.adunit_gam_video_rewarded_320_480_metadata, MIN_WIDTH_PERC, MIN_HEIGHT_PERC))) - demoList.add(DemoItem(getString(R.string.demo_bidding_gam_video_rewarded_end_card_320_480_no_bids), gamRewardedAction, gamVideoTagList, - createBannerBundle(R.string.prebid_config_id_no_bids, R.string.adunit_gam_video_rewarded_320_480, MIN_WIDTH_PERC, MIN_HEIGHT_PERC))) - demoList.add(DemoItem(getString(R.string.demo_bidding_gam_interstitial_video_320_480_no_bids), gamInterstitialAction, gamVideoTagList, - createBannerBundle(R.string.prebid_config_id_no_bids, R.string.adunit_gam_interstitial_video_320_480_no_bids, MIN_WIDTH_PERC, MIN_HEIGHT_PERC))) - demoList.add(DemoItem(getString(R.string.demo_bidding_gam_native_styles_mrect), R.id.action_header_bidding_to_gam_native_styles, - gamNativeTagList, createBannerBundle(R.string.prebid_config_id_native_styles, R.string.adunit_gam_native_mrect, 300, 250))) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_gam_banner_320_50_app_event), gamBannerAction, gamBannerTagList, + createBannerBundle( + R.string.prebid_config_id_banner_320x50, + R.string.adunit_gam_banner_320_50_app_event, + 320, + 50 + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_gam_banner_320_50_no_bids), gamBannerAction, gamBannerTagList, + createBannerBundle( + R.string.prebid_config_id_no_bids, + R.string.adunit_gam_banner_320_50_no_bids, + 320, + 50 + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_gam_mraid_resize), gamBannerAction, gamMraidTagList, + createBannerBundle( + R.string.prebid_config_id_mraid_resize, + R.string.adunit_gam_banner_320_50_app_event, + 320, + 50 + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_gam_interstitial_320_480_app_event), + gamInterstitialAction, + gamInterstitialTagList, + createBannerBundle( + R.string.prebid_config_id_interstitial_320_480, + R.string.adunit_gam_interstitial_320_480_app_event, + MIN_WIDTH_PERC, + MIN_HEIGHT_PERC + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_gam_interstitial_320_480_no_bids), + gamInterstitialAction, + gamInterstitialTagList, + createBannerBundle( + R.string.prebid_config_id_no_bids, + R.string.adunit_gam_interstitial_320_480_no_bids, + MIN_WIDTH_PERC, + MIN_HEIGHT_PERC + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_gam_video_oustream_app_event), + R.id.action_header_bidding_to_gam_banner_video, + gamVideoTagList, + createBannerBundle( + R.string.prebid_config_id_video_outstream_end_card, + R.string.adunit_gam_banner_300_250, + 300, + 250 + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_gam_video_outstream_no_bids), + R.id.action_header_bidding_to_gam_banner_video, + gamVideoTagList, + createBannerBundle(R.string.prebid_config_id_no_bids, R.string.adunit_gam_video_300_250, 300, 250) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_gam_video_rewarded_end_card_320_480_metadata), + gamRewardedAction, + gamVideoTagList, + createBannerBundle( + R.string.prebid_config_id_video_rewarded_320_480, + R.string.adunit_gam_video_rewarded_320_480_metadata, + MIN_WIDTH_PERC, + MIN_HEIGHT_PERC + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_gam_video_rewarded_end_card_320_480_no_bids), + gamRewardedAction, + gamVideoTagList, + createBannerBundle( + R.string.prebid_config_id_no_bids, + R.string.adunit_gam_video_rewarded_320_480, + MIN_WIDTH_PERC, + MIN_HEIGHT_PERC + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_gam_interstitial_video_320_480_no_bids), + gamInterstitialAction, + gamVideoTagList, + createBannerBundle( + R.string.prebid_config_id_no_bids, + R.string.adunit_gam_interstitial_video_320_480_no_bids, + MIN_WIDTH_PERC, + MIN_HEIGHT_PERC + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_gam_native_styles_mrect), + R.id.action_header_bidding_to_gam_native_styles, + gamNativeTagList, + createBannerBundle( + R.string.prebid_config_id_native_styles, + R.string.adunit_gam_native_mrect, + 300, + 250 + ) + ) + ) // TODO: Uncomment when native module will be merged // val gamNativeBundle = createBannerBundle(R.string.prebid_config_id_qa_native_styles, R.string.adunit_gam_native_custom_template, 300, 250) @@ -396,60 +1318,244 @@ class DemoItemProvider private constructor() { val mopubVideoTagList = listOf(Tag.ALL, Tag.MOPUB, Tag.VIDEO, Tag.REMOTE) val mopubNativeTagList = listOf(Tag.ALL, Tag.MOPUB, Tag.NATIVE, Tag.REMOTE) - demoList.add(DemoItem(getString(R.string.demo_bidding_mopub_banner_320_50_adapter), mopubBannerAction, - mopubBannerTagList, createBannerBundle(R.string.prebid_config_id_banner_320x50, R.string.mopub_banner_bidding_ad_unit_id_adapter, 320, 50))) - demoList.add(DemoItem(getString(R.string.demo_bidding_mopub_banner_320_50_no_bids), mopubBannerAction, - mopubBannerTagList, createBannerBundle(R.string.prebid_config_id_no_bids, R.string.mopub_banner_bidding_ad_unit_id_no_bids, 320, 50))) - demoList.add(DemoItem(getString(R.string.demo_bidding_mopub_mraid_resize), mopubBannerAction, - mopubMraidTagList, createBannerBundle(R.string.prebid_config_id_mraid_resize, R.string.mopub_banner_bidding_ad_unit_id_adapter, 320, 50))) - demoList.add(DemoItem(getString(R.string.demo_bidding_mopub_interstitial_320_480_adapter), + demoList.add( + DemoItem( + getString(R.string.demo_bidding_mopub_banner_320_50_adapter), + mopubBannerAction, + mopubBannerTagList, + createBannerBundle( + R.string.prebid_config_id_banner_320x50, + R.string.mopub_banner_bidding_ad_unit_id_adapter, + 320, + 50 + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_mopub_banner_320_50_no_bids), + mopubBannerAction, + mopubBannerTagList, + createBannerBundle( + R.string.prebid_config_id_no_bids, + R.string.mopub_banner_bidding_ad_unit_id_no_bids, + 320, + 50 + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_mopub_mraid_resize), + mopubBannerAction, + mopubMraidTagList, + createBannerBundle( + R.string.prebid_config_id_mraid_resize, + R.string.mopub_banner_bidding_ad_unit_id_adapter, + 320, + 50 + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_mopub_interstitial_320_480_adapter), mopubInterstitialAction, mopubInterstitialTagList, - createBannerBundle(R.string.prebid_config_id_interstitial_320_480, R.string.mopub_interstitial_bidding_ad_unit_id_ok, MIN_WIDTH_PERC, MIN_HEIGHT_PERC))) - demoList.add(DemoItem(getString(R.string.demo_bidding_mopub_interstitial_320_480_no_bids), + createBannerBundle( + R.string.prebid_config_id_interstitial_320_480, + R.string.mopub_interstitial_bidding_ad_unit_id_ok, + MIN_WIDTH_PERC, + MIN_HEIGHT_PERC + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_mopub_interstitial_320_480_no_bids), mopubInterstitialAction, mopubInterstitialTagList, - createBannerBundle(R.string.prebid_config_id_no_bids, R.string.mopub_interstitial_bidding_ad_unit_id_no_bids, MIN_WIDTH_PERC, MIN_HEIGHT_PERC))) - demoList.add(DemoItem(getString(R.string.demo_bidding_mopub_video_interstitial_320_480_no_bids), + createBannerBundle( + R.string.prebid_config_id_no_bids, + R.string.mopub_interstitial_bidding_ad_unit_id_no_bids, + MIN_WIDTH_PERC, + MIN_HEIGHT_PERC + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_mopub_video_interstitial_320_480_no_bids), R.id.action_header_bidding_to_mopub_interstitial, mopubVideoTagList, - createBannerBundle(R.string.prebid_config_id_no_bids, R.string.mopub_video_interstitial_bidding_no_bids))) - demoList.add(DemoItem(getString(R.string.demo_bidding_mopub_rewarded_video_end_card_320_480_adapter), + createBannerBundle( + R.string.prebid_config_id_no_bids, + R.string.mopub_video_interstitial_bidding_no_bids + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_mopub_rewarded_video_end_card_320_480_adapter), mopubRewardedAction, mopubVideoTagList, - createBannerBundle(R.string.prebid_config_id_video_rewarded_320_480, R.string.mopub_rewarded_video_bidding_adapter))) - demoList.add(DemoItem(getString(R.string.demo_bidding_mopub_rewarded_video_end_card_320_480_no_bids), + createBannerBundle( + R.string.prebid_config_id_video_rewarded_320_480, + R.string.mopub_rewarded_video_bidding_adapter + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_mopub_rewarded_video_end_card_320_480_no_bids), mopubRewardedAction, mopubVideoTagList, - createBannerBundle(R.string.prebid_config_id_no_bids, R.string.mopub_rewarded_video_bidding_no_bids))) - demoList.add(DemoItem(getString(R.string.demo_bidding_mopub_native_styles), R.id.action_header_bidding_to_mopub_native_styles, - mopubNativeTagList, createBannerBundle(R.string.prebid_config_id_native_styles, R.string.mopub_native_styles, 300, 250))) - demoList.add(DemoItem(getString(R.string.demo_bidding_mopub_native_adapter), R.id.action_header_bidding_to_mopub_native, - mopubNativeTagList, createBannerBundle(R.string.prebid_config_id_qa_native_styles, R.string.mopub_native_adapter))) - demoList.add(DemoItem(getString(R.string.demo_bidding_mopub_native_no_bids), R.id.action_header_bidding_to_mopub_native, - mopubNativeTagList, createBannerBundle(R.string.prebid_config_id_no_bids, R.string.mopub_native_no_bids))) - demoList.add(DemoItem(getString(R.string.demo_bidding_mopub_native_feed_no_bids), R.id.action_header_bidding_to_mopub_native_feed, - mopubNativeTagList, createBannerBundle(R.string.prebid_config_id_no_bids, R.string.mopub_native_no_bids))) + createBannerBundle(R.string.prebid_config_id_no_bids, R.string.mopub_rewarded_video_bidding_no_bids) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_mopub_native_styles), + R.id.action_header_bidding_to_mopub_native_styles, + mopubNativeTagList, + createBannerBundle(R.string.prebid_config_id_native_styles, R.string.mopub_native_styles, 300, 250) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_mopub_native_adapter), + R.id.action_header_bidding_to_mopub_native, + mopubNativeTagList, + createBannerBundle(R.string.prebid_config_id_qa_native_styles, R.string.mopub_native_adapter) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_mopub_native_no_bids), + R.id.action_header_bidding_to_mopub_native, + mopubNativeTagList, + createBannerBundle(R.string.prebid_config_id_no_bids, R.string.mopub_native_no_bids) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_mopub_native_feed_no_bids), + R.id.action_header_bidding_to_mopub_native_feed, + mopubNativeTagList, + createBannerBundle(R.string.prebid_config_id_no_bids, R.string.mopub_native_no_bids) + ) + ) /// Vanilla - demoList.add(DemoItem(getString(R.string.demo_bidding_gam_banner_320_50_vanilla), gamBannerAction, gamBannerTagList, - createBannerBundle(R.string.prebid_config_id_banner_320x50, R.string.adunit_gam_banner_320_50_vanilla, 320, 50))) - demoList.add(DemoItem(getString(R.string.demo_bidding_mopub_banner_320_50_vanilla), mopubBannerAction, - mopubBannerTagList, createBannerBundle(R.string.prebid_config_id_banner_320x50, R.string.mopub_banner_bidding_ad_unit_id_vanilla, 320, 50))) - - demoList.add(DemoItem(getString(R.string.demo_bidding_gam_interstitial_320_480_vanilla), gamInterstitialAction, gamInterstitialTagList, - createBannerBundle(R.string.prebid_config_id_interstitial_320_480, R.string.adunit_gam_interstitial_320_480_vanilla, MIN_WIDTH_PERC, MIN_HEIGHT_PERC))) - demoList.add(DemoItem(getString(R.string.demo_bidding_mopub_interstitial_320_480_vanilla), + demoList.add( + DemoItem( + getString(R.string.demo_bidding_gam_banner_320_50_vanilla), gamBannerAction, gamBannerTagList, + createBannerBundle( + R.string.prebid_config_id_banner_320x50, + R.string.adunit_gam_banner_320_50_vanilla, + 320, + 50 + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_mopub_banner_320_50_vanilla), + mopubBannerAction, + mopubBannerTagList, + createBannerBundle( + R.string.prebid_config_id_banner_320x50, + R.string.mopub_banner_bidding_ad_unit_id_vanilla, + 320, + 50 + ) + ) + ) + + demoList.add( + DemoItem( + getString(R.string.demo_bidding_gam_interstitial_320_480_vanilla), + gamInterstitialAction, + gamInterstitialTagList, + createBannerBundle( + R.string.prebid_config_id_interstitial_320_480, + R.string.adunit_gam_interstitial_320_480_vanilla, + MIN_WIDTH_PERC, + MIN_HEIGHT_PERC + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_mopub_interstitial_320_480_vanilla), R.id.action_header_bidding_to_mopub_interstitial, mopubInterstitialTagList, - createBannerBundle(R.string.prebid_config_id_interstitial_320_480, R.string.mopub_interstitial_bidding_ad_unit_id_vanilla, 30, 30))) + createBannerBundle( + R.string.prebid_config_id_interstitial_320_480, + R.string.mopub_interstitial_bidding_ad_unit_id_vanilla, + 30, + 30 + ) + ) + ) - demoList.add(DemoItem(getString(R.string.demo_bidding_gam_interstitial_video_320_480_vanilla), gamInterstitialAction, gamVideoTagList, - createBannerBundle(R.string.prebid_config_id_video_rewarded_320_480, R.string.adunit_gam_interstitial_video_320_480_vanilla, MIN_WIDTH_PERC, MIN_HEIGHT_PERC))) - demoList.add(DemoItem(getString(R.string.demo_bidding_mopub_video_interstitial_320_480_vanilla), + demoList.add( + DemoItem( + getString(R.string.demo_bidding_gam_interstitial_video_320_480_vanilla), + gamInterstitialAction, + gamVideoTagList, + createBannerBundle( + R.string.prebid_config_id_video_rewarded_320_480, + R.string.adunit_gam_interstitial_video_320_480_vanilla, + MIN_WIDTH_PERC, + MIN_HEIGHT_PERC + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_mopub_video_interstitial_320_480_vanilla), R.id.action_header_bidding_to_mopub_interstitial, mopubVideoTagList, - createBannerBundle(R.string.prebid_config_id_video_rewarded_320_480, R.string.mopub_video_interstitial_bidding_vanilla))) + createBannerBundle( + R.string.prebid_config_id_video_rewarded_320_480, + R.string.mopub_video_interstitial_bidding_vanilla + ) + ) + ) // Native Ad // demoList.add(DemoItem(getString(R.string.demo_bidding_in_app_native), R.id.action_header_bidding_to_in_app_native, // ppmNativeTagList, createBannerBundle(R.string.prebid_config_id_qa_native_styles))) + + // AdMob Integration + val adMobBannerTagList = listOf(Tag.ALL, Tag.ADMOB, Tag.BANNER, Tag.REMOTE) + + demoList.add( + DemoItem( + getString(R.string.demo_bidding_admob_banner_320_50_ok_random), + adMobBannerAction, + adMobBannerTagList, + createBannerBundle( + R.string.prebid_config_id_banner_320x50, + R.string.admob_banner_bidding_ad_unit_id_adapter, + 320, 50 + ) + ) + ) + demoList.add( + DemoItem( + getString(R.string.demo_bidding_admob_banner_320_50_no_bids), + adMobBannerAction, + adMobBannerTagList, + createBannerBundle( + R.string.prebid_config_id_no_bids, + R.string.admob_banner_bidding_ad_unit_id_adapter, + 320, 50 + ) + ) + ) } - private fun createBannerBundle(configIdRes: Int?, adUnitIdRes: Int? = null, width: Int = 0, height: Int = 0): Bundle { + private fun createBannerBundle( + configIdRes: Int?, + adUnitIdRes: Int? = null, + width: Int = 0, + height: Int = 0 + ): Bundle { return Bundle().apply { if (configIdRes != null) { putString(getString(R.string.key_bid_config_id), getString(configIdRes)) diff --git a/Example/PrebidInternalTestApp/src/main/res/layout/events_admob.xml b/Example/PrebidInternalTestApp/src/main/res/layout/events_admob.xml new file mode 100644 index 000000000..4e04e32b7 --- /dev/null +++ b/Example/PrebidInternalTestApp/src/main/res/layout/events_admob.xml @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Example/PrebidInternalTestApp/src/main/res/layout/fragment_bidding_banner_admob.xml b/Example/PrebidInternalTestApp/src/main/res/layout/fragment_bidding_banner_admob.xml new file mode 100644 index 000000000..228633329 --- /dev/null +++ b/Example/PrebidInternalTestApp/src/main/res/layout/fragment_bidding_banner_admob.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + +