Cómo utilizar los anuncios de Huawei con la mediación de Google AdMob (anuncios de banner) de Chia Leung Ho | Octubre de 2020

Agregue almacenamiento de Huawei a nivel de proyecto build.gradle

buildscript {
repositories {
google()
jcenter()

//add this line
maven { url 'https://developer.huawei.com/repo/' }
}
}

allprojects {
repositories {
google()
jcenter()

//add this line
maven { url 'https://developer.huawei.com/repo/' }
}
}

Agregue la dependencia de Huawei Ads Kit en el nivel del módulo build.gradle

dependencies {    
...
implementation 'com.google.android.gms:play-services-ads:19.4.0'

//add this line
implementation 'com.huawei.hms:ads-lite:13.4.33.300'
}

Agregue un nuevo paquete y asígnele un nombre (por ejemplo: HuaweiCustomBannerEvent)

Necesitamos un total de 4 clases, vamos a crearlas todas a la vez y repasarlas una por una. Haga clic con el botón derecho en el paquete recién creado y seleccione Nuevo> Archivo / clase Kotlin y crea estos archivos de clase:

  • Adaptador HuaweiCustomBanner
  • HuaweiCustomBannerEventForwarder
  • HuaweiCustomBannerListener
  • HuaweiCustomBannerView

Así es como debería verse su libreta de direcciones en este momento:

Ahora trabajemos en HuaweiCustomBannerListener. Herede la clase com.huawei.hms.ads.AdListener e implemente todas las funciones abstractas necesarias. (Haga clic en Ctrl + o para ver todos los miembros sobrescritos)

//HuaweiCustomBannerListener.kt
import com.huawei.hms.ads.AdListener

open class HuaweiCustomBannerListener : AdListener() {
override fun onAdClosed() {
super.onAdClosed()
}

override fun onAdFailed(errorCode: Int) {
super.onAdFailed(errorCode)
}

override fun onAdLeave() {
super.onAdLeave()
}

override fun onAdOpened() {
super.onAdOpened()
}

override fun onAdLoaded() {
super.onAdLoaded()
}

override fun onAdClicked() {
super.onAdClicked()
}

override fun onAdImpression() {
super.onAdImpression()
}
}

Ahora para HuaweiCustomBannerView, tome el contexto como un constructor y haga que esta clase escriba com.huawei.hms.ads.banner.BannerView. Siga estos pasos para cargar un anuncio

//HuaweiCustomBannerView.kt
import android.content.Context
import com.huawei.hms.ads.AdParam
import com.huawei.hms.ads.BannerAdSize
import com.huawei.hms.ads.banner.BannerView

class HuaweiCustomBannerView(context: Context?) : BannerView(context) {
var bannerAdId: String? = null

fun fetchAd() {
if (bannerAdId == null) {
//when there's no ad id, use Huawei's test banner id
bannerAdId = "testw6vs28auh3"
}
this.adId = bannerAdId
this.bannerAdSize = BannerAdSize.BANNER_SIZE_360_57
val adParam = AdParam.Builder().build()
this.loadAd(adParam)
}
}

Además para HuaweiCustomBannerEvent Forwarder, tome CustomEventBannerListener y nuestro HuaweiCustomBannerView como constructor y herede nuestro HuaweiCustomBannerListener. Nuestro evento personalizado debe notificar a la mediación a través de nuestro HuaweiCustomBannerListener cuando se carga o no se carga. De lo contrario, el evento personalizado expirará y el reenvío de anuncios se moverá a otra red.

//HuaweiCustomBannerEventForwarder.ktimport android.util.Log
import com.google.android.gms.ads.AdError
import com.google.android.gms.ads.mediation.customevent.CustomEventBannerListener
import com.huawei.hms.ads.AdParam

class HuaweiCustomBannerEventForwarder(
listener: CustomEventBannerListener,
adView: HuaweiCustomBannerView
): HuaweiCustomBannerListener() {
private var listener: CustomEventBannerListener? = null
private var adView: HuaweiCustomBannerView? = null

init {
this.listener = listener
this.adView = adView
}

override fun onAdLoaded() {
listener?.onAdLoaded(adView)
}

override fun onAdFailed(errorCode: Int) {
Log.e("error--",errorCode.toString())
listener?.onAdFailedToLoad(
AdError(
AdParam.ErrorCode.INNER,
AdParam.ErrorCode.INNER.toString(),"HuaweiBannerAds")
)
}

override fun onAdClosed() {
listener?.onAdClosed()
}

override fun onAdLeave() {
listener?.onAdLeftApplication()
}

override fun onAdOpened() {
listener?.onAdOpened()
}

override fun onAdClicked() {
listener?.onAdClicked()
}
}

Finalmente nuestro Adaptador HuaweiCustomBanner. Esta clase comienza cuando la mediación decide que se debe mostrar nuestro banner publicitario de Huawei.

//HuaweiCustomBannerAdapter.ktimport com.google.android.gms.ads.AdSize
import com.google.android.gms.ads.mediation.MediationAdRequest
import com.google.android.gms.ads.mediation.customevent.CustomEventBanner
import com.google.android.gms.ads.mediation.customevent.CustomEventBannerListener

class HuaweiCustomBannerAdapter : CustomEventBanner {
private lateinit var huaweiBannerView: HuaweiCustomBannerView
override fun onDestroy() {
TODO("Not yet implemented")
}

override fun onPause() {
TODO("Not yet implemented")
}

override fun onResume() {
TODO("Not yet implemented")
}

override fun requestBannerAd(
context: Context?,
listener: CustomEventBannerListener,
serverParameters: String?,
size: AdSize,
mediationAdRequest: MediationAdRequest,
mediationExtras: Bundle?
) {
huaweiBannerView = HuaweiCustomBannerView(context)
huaweiBannerView.bannerAdId = serverParameters
huaweiBannerView.adListener = HuaweiCustomBannerEventForwarder(listener,huaweiBannerView)
huaweiBannerView.fetchAd()
}
}

¿Sigues esperando? Casi estámos allí. Ahora el último paso.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *