-
Notifications
You must be signed in to change notification settings - Fork 82
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(AdMob): add interstitial examples to Internal test app #328
- Loading branch information
1 parent
96e77f2
commit 5f3094f
Showing
6 changed files
with
272 additions
and
10 deletions.
There are no files selected for viewing
106 changes: 106 additions & 0 deletions
106
...va/org/prebid/mobile/renderingtestapp/plugplay/bidding/admob/AdMobInterstitialFragment.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,106 @@ | ||
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.AdRequest | ||
import com.google.android.gms.ads.LoadAdError | ||
import com.google.android.gms.ads.interstitial.InterstitialAd | ||
import com.google.android.gms.ads.interstitial.InterstitialAdLoadCallback | ||
import kotlinx.android.synthetic.main.events_admob_rewarded.* | ||
import kotlinx.android.synthetic.main.fragment_bidding_banner.* | ||
import org.prebid.mobile.admob.AdMobInterstitialMediationUtils | ||
import org.prebid.mobile.admob.PrebidInterstitialAdapter | ||
import org.prebid.mobile.rendering.bidding.display.MediationInterstitialAdUnit | ||
import org.prebid.mobile.rendering.bidding.enums.AdUnitFormat | ||
import org.prebid.mobile.renderingtestapp.AdFragment | ||
import org.prebid.mobile.renderingtestapp.R | ||
import org.prebid.mobile.renderingtestapp.plugplay.config.AdConfiguratorDialogFragment | ||
|
||
open class AdMobInterstitialFragment : AdFragment() { | ||
|
||
companion object { | ||
private const val TAG = "AdMobInterstitial" | ||
} | ||
|
||
protected var extras: Bundle? = null | ||
protected var interstitialAd: InterstitialAd? = null | ||
protected var adUnit: MediationInterstitialAdUnit? = null | ||
|
||
override val layoutRes = R.layout.fragment_admob_rewarded | ||
|
||
override fun initUi(view: View, savedInstanceState: Bundle?) { | ||
super.initUi(view, savedInstanceState) | ||
|
||
adIdLabel.text = getString(R.string.label_auid, configId) | ||
btnLoad.setOnClickListener { | ||
handleLoadButtonClick() | ||
} | ||
} | ||
|
||
override fun initAd(): Any? { | ||
extras = Bundle() | ||
val mediationUtils = AdMobInterstitialMediationUtils(extras) | ||
adUnit = MediationInterstitialAdUnit(activity, configId, AdUnitFormat.DISPLAY, mediationUtils) | ||
return adUnit | ||
} | ||
|
||
open override fun loadAd() { | ||
val request = AdRequest | ||
.Builder() | ||
.addCustomEventExtrasBundle(PrebidInterstitialAdapter::class.java, extras!!) | ||
.build() | ||
|
||
adUnit?.fetchDemand { result -> | ||
Log.d("Prebid", "Fetch demand result: $result") | ||
|
||
InterstitialAd.load(requireContext(), adUnitId, request, object : InterstitialAdLoadCallback() { | ||
override fun onAdLoaded(ad: InterstitialAd) { | ||
btnAdLoaded?.isEnabled = true | ||
btnLoad?.isEnabled = true | ||
btnLoad?.text = getString(R.string.text_show) | ||
|
||
interstitialAd = ad | ||
} | ||
|
||
override fun onAdFailedToLoad(adError: LoadAdError) { | ||
btnAdFailed?.isEnabled = true | ||
Log.e(TAG, adError.message) | ||
interstitialAd = null | ||
} | ||
}) | ||
} | ||
|
||
} | ||
|
||
override fun configuratorMode() = AdConfiguratorDialogFragment.AdConfiguratorMode.INTERSTITIAL | ||
|
||
override fun onDestroy() { | ||
super.onDestroy() | ||
|
||
interstitialAd = null | ||
|
||
adUnit?.destroy() | ||
adUnit = null | ||
} | ||
|
||
private fun resetAdEvents() { | ||
btnAdLoaded?.isEnabled = false | ||
btnAdFailed?.isEnabled = false | ||
} | ||
|
||
private fun handleLoadButtonClick() { | ||
if (btnLoad?.text == getString(R.string.text_show)) { | ||
interstitialAd?.show(requireActivity()) | ||
btnLoad?.text = getString(R.string.text_retry) | ||
resetAdEvents() | ||
} else if (btnLoad.text == getString(R.string.text_retry)) { | ||
resetAdEvents() | ||
btnLoad?.isEnabled = false | ||
btnLoad?.text = "Loading..." | ||
loadAd() | ||
} | ||
} | ||
|
||
|
||
} |
66 changes: 66 additions & 0 deletions
66
.../prebid/mobile/renderingtestapp/plugplay/bidding/admob/AdMobInterstitialRandomFragment.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
package org.prebid.mobile.renderingtestapp.plugplay.bidding.admob | ||
|
||
import android.util.Log | ||
import com.google.android.gms.ads.AdRequest | ||
import com.google.android.gms.ads.LoadAdError | ||
import com.google.android.gms.ads.interstitial.InterstitialAd | ||
import com.google.android.gms.ads.interstitial.InterstitialAdLoadCallback | ||
import kotlinx.android.synthetic.main.events_admob_rewarded.* | ||
import kotlinx.android.synthetic.main.fragment_bidding_banner.* | ||
import org.prebid.mobile.admob.PrebidInterstitialAdapter | ||
import org.prebid.mobile.rendering.bidding.display.BidResponseCache | ||
import org.prebid.mobile.renderingtestapp.R | ||
import kotlin.random.Random | ||
|
||
class AdMobInterstitialRandomFragment : AdMobInterstitialFragment() { | ||
|
||
companion object { | ||
private const val TAG = "AdMobInterstitial" | ||
} | ||
|
||
private val random = Random.Default | ||
|
||
override fun loadAd() { | ||
val request = AdRequest | ||
.Builder() | ||
.addCustomEventExtrasBundle(PrebidInterstitialAdapter::class.java, extras!!) | ||
.build() | ||
|
||
adUnit?.fetchDemand { result -> | ||
Log.d("Prebid", "Fetch demand result: $result") | ||
|
||
randomRemovingBidResponseFromCache() | ||
|
||
InterstitialAd.load(requireContext(), adUnitId, request, object : InterstitialAdLoadCallback() { | ||
override fun onAdLoaded(ad: InterstitialAd) { | ||
btnAdLoaded?.isEnabled = true | ||
btnLoad?.isEnabled = true | ||
btnLoad?.text = getString(R.string.text_show) | ||
|
||
interstitialAd = ad | ||
} | ||
|
||
override fun onAdFailedToLoad(adError: LoadAdError) { | ||
btnAdFailed?.isEnabled = true | ||
Log.e(TAG, adError.message) | ||
interstitialAd = null | ||
} | ||
}) | ||
} | ||
} | ||
|
||
private fun randomRemovingBidResponseFromCache() { | ||
val randomValue = random.nextInt(0, 2) | ||
val doRemove = randomValue == 1 | ||
if (doRemove) { | ||
Log.d("RandomAdMobRewarded", "Random removing response!") | ||
val responseId = extras?.getString(PrebidInterstitialAdapter.EXTRA_RESPONSE_ID) ?: "" | ||
if (responseId.isNotBlank()) { | ||
BidResponseCache.getInstance().popBidResponse(responseId) | ||
} | ||
} else { | ||
Log.d("RandomAdMobRewarded", "Without removing.") | ||
} | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters