安卓接入Max广告源

官方文档地址:gMAX | SDK 集成指南 | Android / Amazon | 选择要集成的广告平台 | Support Center | AppLovin

目录

一、新建一个Kotlin的安卓项目

二、导入max相应资源

1.在应用层级的build.gradle(app)中

2.在根层级的build.gradle(project)中

3.在settings中添加仓库

三、具体使用

1.新建自己的广告监听器

2.写一个简单布局

[3.初始化sdk 和展示广告](#3.初始化sdk 和展示广告)


一、新建一个Kotlin的安卓项目
二、导入max相应资源
1.在应用层级的build.gradle(app)中
Kotlin 复制代码
plugins {
  ...
  id("applovin-quality-service")
}
applovin {
  apiKey = "<<ad-review-key>>"
}

...
dependencies {
  implementation("com.applovin:applovin-sdk:+")
  ⋮
}
2.在根层级的build.gradle(project)中
Kotlin 复制代码
buildscript {
    dependencies {
        classpath ("com.applovin.quality:AppLovinQualityServiceGradlePlugin:+")  //新增这行
    }
}
plugins {
    alias(libs.plugins.android.application) apply false
    alias(libs.plugins.kotlin.android) apply false
}
3.在settings中添加仓库

新增下面注释标注的那行,其余的是国内镜像,看自己情况加

Kotlin 复制代码
pluginManagement {
    repositories {
        maven( url ="https://maven.aliyun.com/repository/public" )
        maven( url ="https://maven.aliyun.com/repository/google" )
        maven( url ="https://maven.aliyun.com/repository/central" )
        maven( url ="https://maven.aliyun.com/repository/gradle-plugin" )
        google {
            content {
                includeGroupByRegex("com\\.android.*")
                includeGroupByRegex("com\\.google.*")
                includeGroupByRegex("androidx.*")
            }
        }
        maven (url = "https://artifacts.applovin.com/android")  //主要是这行
        mavenCentral()
        gradlePluginPortal()
    }
}
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        maven( url ="https://maven.aliyun.com/repository/public" )
        maven( url ="https://maven.aliyun.com/repository/google" )
        maven( url ="https://maven.aliyun.com/repository/central" )
        maven( url ="https://maven.aliyun.com/repository/gradle-plugin" )
        maven (url = "https://artifacts.applovin.com/android")  //主要是这行
        google()
        mavenCentral()
    }
}

rootProject.name = "AdProject"
include(":app")
 
三、具体使用
1.新建自己的广告监听器
Kotlin 复制代码
import android.util.Log
import com.applovin.mediation.MaxAd
import com.applovin.mediation.MaxAdListener
import com.applovin.mediation.MaxError

//MaxAdListener 是max广告中最基础的广告监听器,别的监听器都是继承他的
open class MyMaxAdListener : MaxAdListener {
    //广告加载成功
    override fun onAdLoaded(maxAd: MaxAd) {
        Log.d("AppLovin", "Ad loaded.")
    }

    //广告加载失败
    override fun onAdLoadFailed(adUnitId: String, error: MaxError) {
        Log.d("AppLovin", "Ad failed to load: $error")
    }

    //广告展示失败
    override fun onAdDisplayFailed(ad: MaxAd, error: MaxError) {
        Log.d("AppLovin", "Ad failed to display: $error")
    }
    //广告被点击
    override fun onAdClicked(maxAd: MaxAd) {
        Log.d("AppLovin", "Ad clicked.")
    }
    //广告展示成功
    override fun onAdDisplayed(maxAd: MaxAd) {
        Log.d("AppLovin", "Ad displayed.")
    }
    //广告被隐藏(关闭)
    override fun onAdHidden(maxAd: MaxAd) {
        Log.d("AppLovin", "Ad hidden.")
    }
}
Kotlin 复制代码
import android.util.Log
import com.applovin.mediation.MaxAd
import com.applovin.mediation.MaxAdViewAdListener


//横幅广告的监听器,新增了扩大和缩小回调
class  MyMaxAdViewAdListener : MyMaxAdListener(), MaxAdViewAdListener {
    override fun onAdExpanded(p0: MaxAd) {
        Log.d("AppLovin", "Ad expanded.")
    }

    override fun onAdCollapsed(p0: MaxAd) {
        Log.d("AppLovin", "Ad collapsed.")
    }
}
Kotlin 复制代码
//激励广告的监听器,新增一个获得奖励的回调,代表可以给用户发放奖励了
class MyMaxRewardedAdListener  : MyMaxAdListener(), MaxRewardedAdListener  {
    override fun onUserRewarded(
        p0: MaxAd,
        p1: MaxReward
    ) {
        Log.d("AppLovin", "User rewarded.")
    }
}
2.写一个简单布局
XML 复制代码
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingTop="20dp">


    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_gravity="center">

        <Button
            android:id="@+id/bannerBt"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="横幅广告"/>

        <Button
            android:id="@+id/interBt"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="插屏广告"/>
        <Button
            android:id="@+id/rewardedBt"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="激励广告"/>

    </LinearLayout>

</FrameLayout>
3.初始化sdk 和展示广告

将下面代码中<< >>标注的参数换成自己的

Kotlin 复制代码
import android.app.Activity
import android.os.Bundle
import android.util.Log
import android.view.ViewGroup
import android.widget.FrameLayout
import com.applovin.mediation.ads.MaxAdView
import com.applovin.mediation.ads.MaxInterstitialAd
import com.applovin.mediation.ads.MaxRewardedAd
import com.applovin.sdk.AppLovinMediationProvider
import com.applovin.sdk.AppLovinSdk
import com.applovin.sdk.AppLovinSdkInitializationConfiguration

class MaxActivity : Activity() {

    val binding by lazy { ActivityMaxBinding.inflate(layoutInflater) }

    private var adView: MaxAdView? = null  //横幅广告
    private lateinit var interstitialAd: MaxInterstitialAd //插屏广告
    private lateinit var rewardedAd: MaxRewardedAd //激励视频

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(binding.root)

        //初始化max
        val initConfig =
            AppLovinSdkInitializationConfiguration.builder("<<SDK-key>>")
                .setMediationProvider(AppLovinMediationProvider.MAX)
                .build()

        AppLovinSdk.getInstance(this).initialize(initConfig) { sdkConfig ->
            //初始化成功,开始加载广告
            Log.d("AppLovin", "AppLovin SDK has been initialized")
            createInterstitialAd()
            createRewardedAd()
        }

        binding.bannerBt.setOnClickListener {
            createBannerAd()
        }
        binding.interBt.setOnClickListener {
            if (interstitialAd.isReady) {
                interstitialAd.showAd()
            } else {
                createInterstitialAd()
            }
        }
        binding.rewardedBt.setOnClickListener {
            if (rewardedAd.isReady) {
                rewardedAd.showAd()
            } else {
                createRewardedAd()
            }
        }

    }

    fun createBannerAd() {
        adView = MaxAdView("<<banner 广告id>>", this)
        adView?.setListener(MyMaxAdViewAdListener())

        adView?.layoutParams = FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 300)
        binding.main.addView(adView)
        adView?.loadAd()
    }

    fun createInterstitialAd() {
        interstitialAd = MaxInterstitialAd("<<插屏广告id>>", this)
        interstitialAd.setListener(MyMaxAdListener())
        interstitialAd.loadAd()
    }

    fun createRewardedAd() {
        rewardedAd = MaxRewardedAd.getInstance("<<激励广告id>>")
        rewardedAd.setListener(MyMaxRewardedAdListener())
        rewardedAd.loadAd()
    }


}

注:max广告是国外的,加载广告会特别慢,要收到load结果回调,大概要一分钟,有条件用外网,没有的话,很难load成功

相关推荐
阿巴斯甜12 小时前
Android 报错:Zip file '/Users/lyy/develop/repoAndroidLapp/l-app-android-ble/app/bu
android
Kapaseker13 小时前
实战 Compose 中的 IntrinsicSize
android·kotlin
xq952714 小时前
Andorid Google 登录接入文档
android
黄林晴15 小时前
告别 Modifier 地狱,Compose 样式系统要变天了
android·android jetpack
冬奇Lab1 天前
Android触摸事件分发、手势识别与输入优化实战
android·源码阅读
城东米粉儿1 天前
Android MediaPlayer 笔记
android
Jony_1 天前
Android 启动优化方案
android
阿巴斯甜1 天前
Android studio 报错:Cause: error=86, Bad CPU type in executable
android
张小潇1 天前
AOSP15 Input专题InputReader源码分析
android
_小马快跑_1 天前
Kotlin | 协程调度器选择:何时用CoroutineScope配置,何时用launch指定?
android