业界动态
Android开发-在Android应用里接入AdMob广告进行变现的实现
2024-12-12 17:57
前 言

前段时间,自己开发了一款个人的Android应用想上线,但是由于国内的应用商城对个人开发者不是很友好,即使应用已经申请了软件著作权了也不能上线的了,有些应用只能以企业的名义来上线不能以个人的名义来上线(如影视类、新闻资讯类的应用)。无奈之下自己科学上网花25美元注册一个Google开发者账号上线到Google Play商店上,由于政策的原因,Google Play商店里应用下载大部分都是海外用户,所以在Android里接入Google自家的AdMob广告联盟比较好一点。

Android开发-在Android应用里接入AdMob广告进行变现的实现

AdMob广告联盟是Google为商家和开发者推出的一家广告投放和接入的平台,是专门为Android和IOS以及Web平台进行推送广告的平台。AdMob广告联盟也支持中国大陆地区的广告投放和推送,虽然Google的搜索已经退出了中国大陆,但是Google的广告业务在北京和上海还有办公室。和国内的腾讯广告联盟不同的是,该平台的Android端接入广告主要有四种广告类型,一是banner广告(横幅广告,二是插屏广告,三是原生广告,四是激励广告。这与国内腾讯广告联盟少了开屏广告,不过在开发者广告收益方面AdMob广告收益比腾讯广告联盟还要高,仿作弊方面也做的比较好,而且接入的API也比较简单。

AdMob的激励广告和国内其它的广告平台的积分墙有点类似,比较常见在游戏应用里,比如当用户看了一段10s的广告视频就奖励用户一个金币,或者在应用下载安装某个应用就有相应的积分奖励。

接入前的准备工作
  1. 科学上网(这个没得说,在国内的话只有科学上网才能访问的了AdMob官网
  2. 有Google开发者账号,没有的话注册一个。P.S.如何注册Google开发者账号详情可以看这位大神写的这篇博客:https://www.jianshu.com/p/7c97aa9c5fb6
  3. 应用已经上线到Google Play商店,没有上线的话应用无法关联AdMob创建广告的应用ID。P.S.如何把Android应用上线到Google Play商店详情可以看这位大神写的这篇博客:https://www.jianshu.com/p/e40e78a279b7 。
AdMob广告的配置

首先打开 AdMob广告联盟官网:https://apps.admob.com/ (这个网址在国内必须要科学上网才能访问的了)后使用Google开发者账号进行登录,登录成功后就填写一些个人的信息,比如银行卡收款信息、付款的币种以及个人平邮地址等。初次 登录AdMob是无法添加银行卡收款信息的,需要你的应用的广告收益超过10美元后Google那边会平邮一个快递给你确保你填写的个人地址是否是真实无误,快递里面有一个校验码,当你AdMob官网里面填写这个校验码后就可以添加银行卡收款信息。当你的应用的广告收益超过100美元后才能提现。

创建单元广告后把应用ID和广告单元ID记住,后续广告API接入时需要在代码里用到。

AdMob广告的API的接入

以下的这个模块主要是直接摘抄自AdMob广告的接入文档,如果能科学上网的话可以直接访问:https://developers.google.com/admob/android/quick-start 该网址去看最新的接入文档,如果不能科学上网的话可以看以下精简版的摘抄文档。

导入移动广告 SDK

通过使用指向 Google Maven 代码库的 Gradle 依赖项,应用可以导入 Google 移动广告 SDK。要使用该代码库,您需要在应用的项目级 build.gradle 文件中对其进行引用。请打开该文件,并找到 allprojects 部分

项目级 build.gradle 示例(节选
 

如果上面的 google() 指令不存在,请添加该指令。 接下来,请打开您应用的应用级 build.gradle 文件,并找到“dependencies”部分。

应用级 build.gradle 示例(节选
 

请添加上面的implementation代码行,该代码会指示 Gradle 提取最新版本的移动广告 SDK。添加完该代码后,请保存文件并执行“Gradle sync”。

更新您的 AndroidManifest.xml

通过添加下面显示的 标记,即可将您的 AdMob 应用 ID 添加到您的应用的 AndroidManifest.xml 文件中。您可以在 AdMob 界面中找到您的应用 ID。对于 android:value,请插入 AdMob 应用 ID 并加上引号,如下所示。

 

重要提示:自 Google 移动广告 SDK 17.0.0 版本开始,均须执行此步骤。如果未能添加此 代码,将会导致崩溃,并显示以下消息:“The Google Mobile Ads SDK was initialized incorrectly.”

初始化 MobileAds

加载广告之前,请先使用 AdMob 应用 ID 调用 MobileAds.initialize(),以便让应用初始化移动广告 SDK。此操作仅需执行一次,最好是在应用启动时执行。

警告:在调用 MobileAds.initialize() 时,移动广告 SDK 或中介合作伙伴 SDK 可能会预加载广告。如果您需要获得欧洲经济区 (EEA) 用户的同意,设置任何专门用于特定请求的标记(例如 tagForChildDirectedTreatment 或 tag_for_under_age_of_consent,或者在加载广告之前采取任何其他操作,请确保在初始化移动广告 SDK 之前先完成这些操作。

以下示例说明了如何在 Activity 中调用 initialize() 方法

示例 MainActivity(节选
 
横幅广告的接入

横幅广告是在应用布局中占据一处位置的矩形图片或文字广告。用户与应用互动时,这类广告会停留在屏幕上,并且可在一段时间后自动刷新。如果您刚开始接触移动广告,建议从横幅广告着手。

前提条件

导入 Google 移动广告 SDK(可以只导入其自身,也可以将其作为 Firebase 的一部分加以导入)。

向布局中添加AdView

要展示横幅广告,首先要将AdView放置到要展示广告的 Activity 或 Fragment 布局中。最简单的放置方法是将其添加到相应的 XML 布局文件中。在以下示例中,AdView位于 Activity 的底部

  • main_activity.xml
 

请注意设置以下必需属性

  • ads:adSize - 将此属性设置为要使用的广告尺寸。如果您不想使用该常量定义的标准尺寸,可改为设置一个自定义尺寸。有关详情,请参阅下面的“横幅广告尺寸”部分。
  • ads:adUnitId - 将此属性设置为为您应用中展示广告的广告单元指定的唯一标识符。如果您要在不同的活动中展示横幅广告,则其中每个都需要一个广告单元。

另外,您也可以通过编程方式创建AdView

 

警告:请确保以相同的方式设置广告尺寸和广告单元 ID(即都采用 XML 格式或都以编程方式设置)。

应始终使用测试广告进行测试

在构建和测试应用时,请确保使用的是测试广告,而不是实际投放的广告。否则,可能会导致您的帐号被暂停。

最简便的测试广告加载方法就是使用以下 Android 横幅广告的专用测试广告单元 ID:ca-app-pub-3940256099942544/6300978111 该测试广告单元 ID 已经过专门配置,可为每个请求返回测试广告,您可以在自己应用的编码、测试和调试过程中随意使用该测试广告单元 ID。只需确保您会在发布应用前用自己的广告单元 ID 替换该测试广告单元 ID 即可。

加载广告

注意:请在主线程中进行对移动广告 SDK 的所有调用。

AdView放置好后,下一步是加载广告。可使用AdView类中的 loadAd() 方法完成加载。这需要AdRequest参数,该参数包含有关单个广告请求的运行时信息(如定位信息)。

以下示例显示了如何通过 Activity 的 onCreate() 方法加载广告

  • MainActivity(节选
 

注意:如果您的广告加载失败,只要您已将广告单元配置为刷新,便无需明确请求再次加载;Google 移动广告 SDK 会遵循您在AdMob界面中指定的任何刷新频率。如果您尚未启用刷新,则需要发出新的请求。

大功告成!您的应用现已可以开始展示横幅广告了。

广告事件

要进一步自定义您的广告行为,您可以在广告生命周期内加入许多事件,如加载、打开、关闭等等。您可以通过 AdListener 类监听这些事件。

要将 AdListener 用于AdView,只需调用 setAdListener() 方法即可

 
 
横幅尺寸

注意:横幅广告容器的尺寸必须至少与横幅广告一样大。如果您的容器留有内边距,将会有效减小容器大小。如果容器无法容纳横幅广告,则横幅广告不会展示,并且您的日志中会显示以下警告

 
 
 

智能横幅广告 作为一种广告单元,智能横幅可在任何屏幕尺寸、任何屏幕方向的各种设备上展示与屏幕等宽的横幅广告。智能横幅广告可以检测设备处于当前屏幕方向时的宽度,并据此创建与之等宽的广告视图。

当图片广告不足以占据所分配的整个空间时,系统会居中放置图片,然后填充两侧剩余的空间。

要在 XML 中使用智能横幅广告,请为广告尺寸指定常量 SMART_BANNER,并将 AdView 的宽度设置为 match_parent。例如

 

要以编程方式制作智能横幅广告,请使用 AdSize.SMART_BANNER 作为广告尺寸

 
插页式广告的接入

插页式广告是全屏广告,它会覆盖其托管应用的整个界面。这些广告通常会在应用流程的自然过渡点(例如活动之间或游戏关卡之间的暂停时段)展示。当应用展示插页式广告时,用户可以选择点按广告,访问其目标网址,也可以将其关闭,返回应用。

前提条件

导入 Google 移动广告 SDK(可以只导入其自身,也可以将其作为 Firebase 的一部分加以导入)。

创建插页式广告对象

插页式广告由InterstitialAd对象来请求和展示。第一步是将InterstitialAd实例化并设置其广告单元 ID。这可在 Activity 的 onCreate() 方法中完成

 

在 Activity 的整个生命周期内,只需使用一个InterstitialAd对象,即可请求并展示多个插页式广告,因此该对象只需构建一次。

务必用测试广告进行测试

在构建和测试应用时,请确保使用的是测试广告,而不是实际投放的广告。否则,可能会导致您的帐号被暂停。

对于 Android 插页式广告,加载测试广告最简便的方法就是使用下面的专用测试广告单元 ID:ca-app-pub-3940256099942544/1033173712 该测试广告单元 ID 已经过专门配置,可为每个请求返回测试广告,您可以在自己应用的编码、测试和调试过程中随意使用该测试广告单元 ID。只需确保您会在发布应用前用自己的广告单元 ID 替换该测试广告单元 ID 即可。

加载广告

注意:请在主线程中进行对移动广告 SDK 的所有调用。

要加载插页式广告,请调用InterstitialAd对象的 loadAd() 方法。此方法会接受AdRequest对象,将其作为自己的单个参数

 
展示广告

插页式广告应在应用流程的自然停顿期间(例如,在游戏的不同关卡之间或者在用户完成一项任务之后)展示。要展示插页式广告,请使用 isLoaded() 方法验证广告是否已完成加载,然后再调用 show()。上一个代码示例中的插页式广告可以在按钮的 onClickListener 中展示,如下所示

 
广告事件

要进一步自定义您的广告行为,您可以在广告生命周期内加入许多事件,如加载、打开、关闭等等。您可以通过 AdListener 类监听这些事件。

要将 AdListener 用于InterstitialAd对象,只需调用 setAdListener() 方法

 
 
使用 AdListener 来重新加载

您可以非常方便地使用 AdListener 类的 onAdClosed() 方法,在展示完上一个插页式广告后加载新的插页式广告

 
一些最佳做法
  • 考虑插页式广告是否为适合您应用的恰当广告类型。 在具有自然过渡点的应用中,插页式广告的效果最好。此类过渡点通常存在于应用内的任务结束时,例如分享完图片或完成一个游戏关卡时。用户希望可以在操作过程中休息一下,因此这时展示插页式广告不会影响用户体验。请务必考虑在应用流程的哪些时间点展示插页式广告,以及用户可能会以什么方式响应。
  • 务必在展示插页式广告时暂停操作。 插页式广告类型多样,包括文字广告、图片广告和视频广告等。确保应用在展示插页式广告时,也会暂停使用某些资源,以便供广告使用,这一点十分重要。例如,当您发出展示插页式广告的调用后,请务必暂停应用产生的所有音频输出。您可以在 onAdClosed() 事件处理脚本中恢复声音播放,该处理脚本会在用户结束与广告的互动之后被调用。此外,请考虑在广告展示时暂停所有密集计算任务(例如游戏循环)。这将确保用户不会遇到图像无响应/响应慢或者视频卡顿的现象。
  • 留出充足的加载时间。 确保在恰当的时间展示插页式广告十分重要,同样,确保用户无需等待广告加载也十分重要。在您打算调用 show() 前,请事先通过调用 loadAd() 加载广告,这可确保应用在广告展示时间到来前已将插页式广告完全加载就绪。
  • 不要向用户展示太多广告。 虽然提高插页式广告在应用中的展示频率似乎是增加收入的绝佳方式,但这么做也会影响用户体验并降低点击率。确保用户不会频繁受到干扰,使其可以享受使用应用的过程。
激励广告的接入

所谓激励广告,指的是用户可以选择与之互动来换取应用内奖励的一种广告。

前提条件
  • Google 移动广告 SDK 17.2.0 或更高版本。
创建激励广告对象

激励广告由 RewardedAd 对象请求和展示。第一步是将 RewardedAd 实例化。这可在以下代码段中 Activity 的 onCreate() 方法中完成

 

构造函数需要以下参数

  • 一个 Activity 上下文
  • 用于加载激励广告的广告单元 ID
务必用测试广告进行测试

在构建和测试应用时,请确保使用的是测试广告,而不是实际投放的广告。否则,可能会导致您的帐号被暂停。

对于 Android 激励广告,加载测试广告最简便的方法就是使用下面的专用测试广告单元 ID:ca-app-pub-3940256099942544/5224354917 该测试广告单元 ID 已经过专门配置,可为每个请求返回测试广告,您可以在自己应用的编码、测试和调试过程中随意使用该测试广告单元 ID。只需确保您会在发布应用前用自己的广告单元 ID 替换该测试广告单元 ID 即可。

加载广告

注意:请在主线程中进行对移动广告 SDK 的所有调用。

要加载激励广告,请调用 RewardedAd 对象的 loadAd() 方法。此方法需要将AdRequest和 RewardedAdLoadCallback 的实例作为参数。

 
 
展示广告

在向用户展示激励广告之前,必须为用户提供明确的选项,让用户可以自行选择是否通过观看激励广告内容来换取奖励。激励广告必须始终是一项可由用户自行选择的体验。

要展示 RewardedAd,请使用 isLoaded() 方法来验证广告已加载完成,然后调用 show()。show() 方法需要将 Activity 和 RewardedAdCallback 实例作为参数。Activity 实例应该是在其中展示激励广告的活动。

上一个代码示例中的激励广告可以在按钮的 onClickListener 中展示,如下所示

 
接收广告事件通知

最佳做法是在 RewardedAdCallback 上的 onRewardedAdClosed() 方法中加载另一个激励广告,以便在上一个激励广告关闭后,立即开始加载下一个激励广告

 
加载多个激励广告

要加载多个激励广告,请针对您要加载的每个广告,按照创建激励广告对象和加载广告部分中所述的步骤操作。下面的代码段展示了如何为两个不同的广告展示位置加载两个激励广告。

 
 

一般在一个Android应用里的AdMob单元广告收益由高到低的排序是激励广告、插屏广告、横幅广告,所以要善于优化广告位的展示,比如在应用里有些模块需要看10s的激励视频才能使用该模块,这样每天的收益才比较高一点。不过一个应用想要变现盈利单单靠广告是不行的,因为广告本身就收益比较低,建议在应用里加入内购会员制和接入广告的方式,也就是说办理VIP的用户可以免除广告,非VIP的用户可以通过展示广告来进行收益。

———————— The end ————————


    以上就是本篇文章【Android开发-在Android应用里接入AdMob广告进行变现的实现】的全部内容了,欢迎阅览 ! 文章地址:http://sicmodule.glev.cn/news/12732.html 
     资讯      企业新闻      行情      企业黄页      同类资讯      首页      网站地图      返回首页 歌乐夫资讯移动站 http://sicmodule.glev.cn/mobile/ , 查看更多   
最新新闻
没有对手的李子柒,迟早会“上链接”?
原创 李觐麟 锌刻度每日一篇科技财经深度调查撰文/ 李觐麟编辑/ 李 季排版/ Annalee“白月光”的杀伤力,在李子柒这里得到了最充
李子柒回归后的真相:三年沉淀,热爱与韧性的完美结合
李子柒,一个曾经红遍网络的名字,因与公司纠纷而停更了整整三年。然而,时隔已久,她的强势归来却丝毫没有被遗忘的迹象,反而激
2025年行业前景分析与发展趋势分析
2025年是乙巳蛇年,许多行业将迎来新的发展机遇和挑战。下面将详细分析2025年的行业前景与发展趋势,介绍不同行业的潜在机会与风
警方通报北电赵韦弦事件:其涉嫌违法犯罪 已被刑拘
警方通报北电赵韦弦事件:其涉嫌违法犯罪 已被刑拘:21日晚,海淀警方通报:针对网传某高校学生赵某某(男,20岁)违法情况,经警
2025年运势简析!
天时地利人和,每年都承载着不同的天时和运势。2025乙巳蛇年,不仅是一个时间标记,更承载着深厚的文化内涵。在中国传统文化中,
创维集成灶400全国统一联保电话《2025汇总》
创维集成灶维修服务24小时热线《2025汇总》(2025已更新)创维集成灶维修服务维修电话:(1)400-9963-901(2)400-9963-901创维集成
离开1217天后,李子柒“熹妃归来”被平台疯抢
停更1217天,李子柒终于回来了。归来仍是顶流11月12日下午4时30分,李子柒在微博、抖音、快手、B站等平台发布了一条以中国非物质
计划2025年12月通车!沁伊高速建设如火如荼
原创 伊川县融媒体中心 伊川新闻伊川县广播电视台 伊川县融媒体中心新闻发布官方平台总监制 郭明杰 监 制 胡幸凡编 审 赵伊曼 制
2025年不一般,2个立春2个六月4人躲春,有啥预兆?要躲几次春?
2025年不一般2025年乃是乙巳蛇年,也就是属蛇的本命年,古书籍当中有提到,十二地支,对应着十二生肖,而十天干,则对应着季节。
热搜第一!李子柒身份证已改名
11月12日,李子柒发布视频官宣回归。李子柒更新道:这个大漆视频迟到了四年,“漆”同“柒”,我给这幅雕漆隐花的漆器作品取名“