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

相关推荐
&岁月不待人&6 小时前
⏺ Android 录屏缩放异常排查:Pixel 3 XL 上的完美风暴
android
a3158238066 小时前
Android 大图显示策略优化显示(一)
android·算法·图片加载·大图片
tangweiguo030519876 小时前
从零开始:在 Windows 上使用命令行编译 Android .so 动态库(NDK + CMake + Ninja)
android
阿波罗尼亚6 小时前
Tcp SSE Utils
android·java·tcp/ip
知行合一。。。10 小时前
Python--03--函数入门
android·数据库·python
大、男人11 小时前
python之contextmanager
android·python·adb
不法13 小时前
java查看安卓证书信息
android
儿歌八万首13 小时前
Jetpack Compose 动画实战:让你的 UI 动起来
android·kotlin·动画·compose
千里马学框架14 小时前
如何改进车载三分屏SplitScreen启动交互方式?
android·智能手机·分屏·aaos·安卓framework开发·车载开发·3分屏
REDcker15 小时前
Android WebView 版本升级方案详解
android·音视频·实时音视频·webview·js·编解码