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

相关推荐
齊家治國平天下2 小时前
Android 14 系统 ANR (Application Not Responding) 深度分析与解决指南
android·anr
ZHANG13HAO2 小时前
Android 13.0 Framework 实现应用通知使用权默认开启的技术指南
android
【ql君】qlexcel2 小时前
Android 安卓RIL介绍
android·安卓·ril
写点啥呢2 小时前
android12解决非CarProperty接口深色模式设置后开机无法保持
android·车机·aosp·深色模式·座舱
IT酷盖2 小时前
Android解决隐藏依赖冲突
android·前端·vue.js
努力学习的小廉4 小时前
初识MYSQL —— 数据库基础
android·数据库·mysql
风起云涌~4 小时前
【Android】浅谈androidx.startup.InitializationProvider
android
Monkey-旭4 小时前
Android 注解完全指南:从基础概念到自定义实战
android·java·kotlin·注解·annotation
用户2018792831675 小时前
浅析RecyclerView的DiffUtill实现
android