如何在现有应用中集成AdMob移动广告SDK
2015-11-25 14:30
253 查看
本指南会为您介绍如何在现有应用中集成KeyMob移动广告 SDK,以及在此过程中需要注意的一些重要事项。其中的技术和代码示例适用于Eclipse和Android Studio项目。
一:加入 SDK
要在应用中展示AdMob广告,您首先需要在项目中加入KeyMob移动广告SDK。完成此操作的正确方式会因您使用的 IDE 而稍有不同。以下步骤适合使用Android Studio的开发者:
1:下载 Google Repository
2:配置 Gradle
3:修改清单
以下为在Eclipse项目中加入SDK的步骤:
1:下载 Google Play 服务
2:加入和引用 Google Play 服务库项目
3:修改清单
二:选择横幅广告、插页式广告,还是两者都选?
AdMob广告分为两大类别:横幅广告和插页式广告。作为发布商,您需要做出的第一项决策是:选择最适合应用设计和流程的广告。
插页式广告是全屏广告,展示时会覆盖其宿主应用的界面。它们展示时会让用户选择关闭广告,还是继续访问其目标网址,随后由应用来对其进行控制。它们在偶尔进行任务转换的应用中效果最好,例如关卡之间会暂停的游戏。
而横幅广告则只会占据宿主应用界面的一部分,因此展示的时间更长。它们在空间占用不会影响用户体验的布局中效果最好。例如,新闻阅读器应用可以在布局底部展示横幅广告,并将其余空间留给内容。
您的应用可能特别适合其中一个类别,或者对两种广告来说都是不错的选择。如果适用于两种广告,那么您可以同时加入横幅广告和插页式广告。如果您不确定应选用哪种广告,可以尝试同时投放两种广告,看看它们是否会影响用户体验。如您所见,无论在应用中加入哪种广告,都不需要进行大量编码,因此不必担心会进行多轮构建测试。
三:插页式广告
要将插页式广告纳入应用的某项活动,您需要执行三个主要步骤:
1:构建InterstitialAd对象并设置其广告单元ID。
2:请求广告。
3:确定广告加载后,将其展示出来。
展示多个插页式广告的应用可以重复步骤2和3,以逐个请求并展示多个插页式广告。
在下文中,我们会介绍完成每项任务所需的一些代码段。
四:构建InterstitialAd 对象并设置其广告单元ID
private InterstitialAd mInterstitialAd;
@Override
protected void onCreate(Bundle savedInstanceState) {
mInterstitialAd = new InterstitialAd(this);
mInterstitialAd.setAdUnitId("ca-app-pub-3940256099942544/1033173712");
}
}
此代码会将InterstitialAd对象实例化并为其分配广告单元ID。在活动有效期内,一个InterstitialAd对象就可用于请求并展示多个插页式广告,因此您只需构建该对象一次。
注意:我们在上文使用的广告单元ID 会返回测试广告。您可以在www.keymob.com为自己的应用创建广告单元。
五:请求广告
AdRequest adRequest = new AdRequest.Builder().addTestDevice("YOUR_DEVICE_HASH").build();
mInterstitialAd.loadAd(adRequest);
要请求插页式广告,这些代码会构建AdRequest,并将其传递至loadAd。插页式广告是异步加载的,因此在需要广告前提前请求广告十分重要。
构建请求的调用包括addTestDevice方法。开发和测试应用时,请务必请求测试广告。请参阅我们的广告定位指南,详细了解实现此操作的最佳方法。
六:确定广告加载后,将其展示出来
if (mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
}
此处的代码会检查插页式广告是否已加载,如果已加载,则会展示该广告。
注意,show()不是阻塞调用。即使插页式广告控制了设备屏幕,您的应用也会继续执行。展示插页式广告时,请务必暂停所有音频输出或密集计算(例如游戏主循环)。
七:插页式广告展示位置和时间
如上文提到的,在应用内选择恰当的位置展示插页式广告十分重要。为了尽可能减少广告对用户体验产生的影响,请尽量选择应用流程中的正常转换点。您可以查看插页式广告指南页面,获取这方面的一些建议。
八:横幅广告
横幅广告占据应用屏幕的一部分空间,通常是在应用的XML布局文件内定义,然后会在相应活动或片段的Java代码内加载。
例如,以下是一个非常简单的布局文件,包含“Hello World”TextView以及屏幕底部的横幅广告:
1:activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity">
<TextView android:text="@string/hello_world"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<com.Google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
ads:adSize="BANNER"
ads:adUnitId="ca-app-pub-3940256099942544/6300978111">
</com.Google.android.gms.ads.AdView>
</RelativeLayout>
此文件的以下两个部分与横幅广告有关:
1:添加到RelativeLayout标记中的额外命名空间,它包含AdView所用的属性。
2:AdView标记:定义布局内的横幅广告位置和特点。
注意,ads属性存在于AdView标记中。尺寸是由一种属性定义的,而广告单元 ID 则是由另外一种属性定义的。
2:加载横幅广告
AdView mAdView = (AdView) findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().addTestDevice("YOUR_DEVICE_HASH").build();
mAdView.loadAd(adRequest);
此代码经常置于某项活动或片段的onCreate方法中,可用于定位布局中的横幅广告、构建 AdRequest,以及加载广告。
注意,addTestDevice调用在此处的作用与其在上述插页式广告示例中的作用一样。
3:横幅广告投放位置
确定横幅广告在应用中的投放位置时,您需要考虑一些重要事项。例如:
1:选择合适的尺寸。横幅广告有多种尺寸,因此请务必针对布局和目标设备选择恰当的尺寸。
2:广告应投放在内容外部,而不是内容中。这有助于用户区分广告和应用内容。
3:广告应远离其他互动元素。这可以防止意外点击。
4:与插页式广告不同,横幅广告是同步加载的。如果您通过调用loadAd请求横幅广告,那么您必须在加载AdView的位置展示它。这有助于防止虚假展示,确保点击率正确无误。
5:如果某个广告的显示时间很可能会延长(例如,超过30秒),那么在创建广告单元 ID 时,您可以将其设置为自动刷新。
KeyMob移动广告SDK集成起来非常精细与快捷,可以通过简单的操作轻松实现对多家广告平台的搭配使用。并能辅助开发者过市场审核。KeyMob移动广告SDK是使
4000
用的远程管理,通过云端集成使您随时切换广告平台,包括开发时没计划的用的平台,后面也照样可以使用,无需修改产品;
一:加入 SDK
要在应用中展示AdMob广告,您首先需要在项目中加入KeyMob移动广告SDK。完成此操作的正确方式会因您使用的 IDE 而稍有不同。以下步骤适合使用Android Studio的开发者:
1:下载 Google Repository
2:配置 Gradle
3:修改清单
以下为在Eclipse项目中加入SDK的步骤:
1:下载 Google Play 服务
2:加入和引用 Google Play 服务库项目
3:修改清单
二:选择横幅广告、插页式广告,还是两者都选?
AdMob广告分为两大类别:横幅广告和插页式广告。作为发布商,您需要做出的第一项决策是:选择最适合应用设计和流程的广告。
插页式广告是全屏广告,展示时会覆盖其宿主应用的界面。它们展示时会让用户选择关闭广告,还是继续访问其目标网址,随后由应用来对其进行控制。它们在偶尔进行任务转换的应用中效果最好,例如关卡之间会暂停的游戏。
而横幅广告则只会占据宿主应用界面的一部分,因此展示的时间更长。它们在空间占用不会影响用户体验的布局中效果最好。例如,新闻阅读器应用可以在布局底部展示横幅广告,并将其余空间留给内容。
您的应用可能特别适合其中一个类别,或者对两种广告来说都是不错的选择。如果适用于两种广告,那么您可以同时加入横幅广告和插页式广告。如果您不确定应选用哪种广告,可以尝试同时投放两种广告,看看它们是否会影响用户体验。如您所见,无论在应用中加入哪种广告,都不需要进行大量编码,因此不必担心会进行多轮构建测试。
三:插页式广告
要将插页式广告纳入应用的某项活动,您需要执行三个主要步骤:
1:构建InterstitialAd对象并设置其广告单元ID。
2:请求广告。
3:确定广告加载后,将其展示出来。
展示多个插页式广告的应用可以重复步骤2和3,以逐个请求并展示多个插页式广告。
在下文中,我们会介绍完成每项任务所需的一些代码段。
四:构建InterstitialAd 对象并设置其广告单元ID
private InterstitialAd mInterstitialAd;
@Override
protected void onCreate(Bundle savedInstanceState) {
mInterstitialAd = new InterstitialAd(this);
mInterstitialAd.setAdUnitId("ca-app-pub-3940256099942544/1033173712");
}
}
此代码会将InterstitialAd对象实例化并为其分配广告单元ID。在活动有效期内,一个InterstitialAd对象就可用于请求并展示多个插页式广告,因此您只需构建该对象一次。
注意:我们在上文使用的广告单元ID 会返回测试广告。您可以在www.keymob.com为自己的应用创建广告单元。
五:请求广告
AdRequest adRequest = new AdRequest.Builder().addTestDevice("YOUR_DEVICE_HASH").build();
mInterstitialAd.loadAd(adRequest);
要请求插页式广告,这些代码会构建AdRequest,并将其传递至loadAd。插页式广告是异步加载的,因此在需要广告前提前请求广告十分重要。
构建请求的调用包括addTestDevice方法。开发和测试应用时,请务必请求测试广告。请参阅我们的广告定位指南,详细了解实现此操作的最佳方法。
六:确定广告加载后,将其展示出来
if (mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
}
此处的代码会检查插页式广告是否已加载,如果已加载,则会展示该广告。
注意,show()不是阻塞调用。即使插页式广告控制了设备屏幕,您的应用也会继续执行。展示插页式广告时,请务必暂停所有音频输出或密集计算(例如游戏主循环)。
七:插页式广告展示位置和时间
如上文提到的,在应用内选择恰当的位置展示插页式广告十分重要。为了尽可能减少广告对用户体验产生的影响,请尽量选择应用流程中的正常转换点。您可以查看插页式广告指南页面,获取这方面的一些建议。
八:横幅广告
横幅广告占据应用屏幕的一部分空间,通常是在应用的XML布局文件内定义,然后会在相应活动或片段的Java代码内加载。
例如,以下是一个非常简单的布局文件,包含“Hello World”TextView以及屏幕底部的横幅广告:
1:activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity">
<TextView android:text="@string/hello_world"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<com.Google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
ads:adSize="BANNER"
ads:adUnitId="ca-app-pub-3940256099942544/6300978111">
</com.Google.android.gms.ads.AdView>
</RelativeLayout>
此文件的以下两个部分与横幅广告有关:
1:添加到RelativeLayout标记中的额外命名空间,它包含AdView所用的属性。
2:AdView标记:定义布局内的横幅广告位置和特点。
注意,ads属性存在于AdView标记中。尺寸是由一种属性定义的,而广告单元 ID 则是由另外一种属性定义的。
2:加载横幅广告
AdView mAdView = (AdView) findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().addTestDevice("YOUR_DEVICE_HASH").build();
mAdView.loadAd(adRequest);
此代码经常置于某项活动或片段的onCreate方法中,可用于定位布局中的横幅广告、构建 AdRequest,以及加载广告。
注意,addTestDevice调用在此处的作用与其在上述插页式广告示例中的作用一样。
3:横幅广告投放位置
确定横幅广告在应用中的投放位置时,您需要考虑一些重要事项。例如:
1:选择合适的尺寸。横幅广告有多种尺寸,因此请务必针对布局和目标设备选择恰当的尺寸。
2:广告应投放在内容外部,而不是内容中。这有助于用户区分广告和应用内容。
3:广告应远离其他互动元素。这可以防止意外点击。
4:与插页式广告不同,横幅广告是同步加载的。如果您通过调用loadAd请求横幅广告,那么您必须在加载AdView的位置展示它。这有助于防止虚假展示,确保点击率正确无误。
5:如果某个广告的显示时间很可能会延长(例如,超过30秒),那么在创建广告单元 ID 时,您可以将其设置为自动刷新。
KeyMob移动广告SDK集成起来非常精细与快捷,可以通过简单的操作轻松实现对多家广告平台的搭配使用。并能辅助开发者过市场审核。KeyMob移动广告SDK是使
4000
用的远程管理,通过云端集成使您随时切换广告平台,包括开发时没计划的用的平台,后面也照样可以使用,无需修改产品;
相关文章推荐
- Python学习
- IOS Runtime(一)
- C++结构体对齐
- js验证字节
- String 和List<String> 的互相转换
- 偷懒代码块之数字时钟效果
- 最近学习计划
- 再次理解MVC,MVP 和 MVVM 的图示
- Python之打包一键自动化脚本(针对cmt设备)
- java.io.tmpdir 所指地址
- redis模拟微博用户关系
- Java中需要注意的3个常见集合错误
- Android 开机启动服务
- uva 11825 集合动态规划
- android破解和重新打包
- 【java基础】JPA详解(part2)
- Hibernate Cascade & Inverse
- 关于有偿提供拼图响应式后台的通知
- hdu hdoj 5571 tree
- 使用GifView在android上显示gif图片