安卓接入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成功

相关推荐
nvvas1 小时前
Android Studio JAVA开发按钮跳转功能
android·java·android studio
怪兽20141 小时前
Android多进程通信机制
android·面试
叶羽西2 小时前
Android CarService调试操作
android
千里马-horse2 小时前
在android中 spdlog库的log如何在控制台上输出
android·c++·spdlog
Zender Han2 小时前
《从零搭建现代 Android 模块化架构项目(2025 最新实践)》
android·架构
Digitally2 小时前
如何从电脑上卸载安卓应用程序
android·电脑
Mr YiRan3 小时前
多线程性能优化基础
android·java·开发语言·性能优化
liyi_hz20083 小时前
O2OA (翱途)开发平台新版本发布预告:架构升级、性能跃迁、功能全面进化
android·java·javascript·开源软件
Huangyi3 小时前
第一节:Flow的基础知识
android·前端·kotlin
hweiyu004 小时前
Android基础入门教程(视频教程)
android