Android不影响用户体验的广告

移动开发 Android
还在担心广告问题影响用户体验从而降低应用的使用率么,接下来为您介绍如何如何插入Android广告并且不影响用户体验。

广告是货币化(赚钱)你的移动应用程序的方法之一。在本文中你将学习如何在你的Android应用程序中放置横幅广告。 尽管我们的课程和样例使用AdMob 的广告服务,但是Android 平台不对移动广告网络的选择施加任何的限制。在一定程度上,这门课程统称强调的概念是类似的广告网络。 例如,每一个广告网络可能有一些特定的配置设置,比如地理定位和广告文字的字体大小,这可能是在某些网络中配置,而不在其他网络中配置。这节课程并没有深入触及这些话题,您应该查阅您选择的网络所提供的文档。

获得发布商帐户和广告SDK

为了整合在您的应用程序中的广告,首先你必须通过注册一个发布账户成为移动广告网络发布商。通常情况下,一个标识符配置的每个应用程序服务的广告。这是广告网络相关应用程序服务中的广告。在AdMob的样例中,标识符被称为发布者ID。您应该咨询您的广告网络的详细信息。 移动广告网络通常发布一个特殊的Android SDK, 包含照顾交流,广告刷新,外观和感觉的定制等的代码。 大部分的广告网络分发他们的SDK作为一个JAR文件。在你的Android项目中设置广告网络的JAR文件,和集成其它第三方JAR文件没有什么不同。首先把JAR文件复制到你项目中的libs文件夹。如果你使用Eclipse IDE,务必将JAR文件添加到Build Path。你可以通过Properties > Java Build Path > Libraries > Add JARs 实现。

图1. Eclipse构建路径设置。

声明适当的权限

因为移动广告通过网络获得,移动广告SDK通常需要在Android manifet中的声明相关的权限。可能还需要其他种类的权限。

例如,这里是你如何能要求INTERNET权限:

</manifest> 

    <uses-permission android:name="android.permission.INTERNET" /> 

    ... 

    <application>...</application> 

</manifest> 

设置广告位置

横幅广告通常被实现为一个自定义的WebView(一个用来查看网页的视图)。广告也有不同的尺寸和形状。一旦你决定了一个特定的屏幕上放一个广告,你可以把它添加在你的Activity的XML布局。下面的XML片段说明了一个显示在屏幕顶部的横幅广告。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 

        android:id="@+id/ad_catalog_layout" 

        android:orientation="vertical" 

        android:layout_width="match_parent" 

        android:layout_height="match_parent" > 

    <com.google.ads.AdView 

        xmlns:googleads="http://schemas.android.com/apk/lib/com.google.ads" 

        android:id="@+id/ad" 

        android:layout_width="fill_parent" 

        android:layout_height="wrap_content" 

        googleads:adSize="BANNER" 

        googleads:adUnitId="@string/admob_id" /> 

    <TextView android:id="@+id/title" 

        android:layout_width="match_parent" 

        android:layout_height="wrap_content" 

        android:text="@string/banner_top" /> 

    <TextView android:id="@+id/status" 

        android:layout_width="match_parent" 

        android:layout_height="wrap_content" /> 

</LinearLayout> 

图2. 在移动广告样本的广告布局的屏幕截图。

您应该根据不同的配置考虑使用替代广告的大小,如屏幕尺寸,屏幕方向。这可以很容易地通过 providing alternative resources解决。举例来说,上面的示例布局可能放置在<b><font colorgreen>res/layout-large/</font></b>目录,这使得“大”屏幕尺寸较大的广告。

... 

<com.google.ads.AdView 

    xmlns:googleads="http://schemas.android.com/apk/lib/com.google.ads" 

    android:id="@+id/ad" 

    android:layout_width="fill_parent" 

    android:layout_height="wrap_content" 

    googleads:adSize="IAB_LEADERBOARD" 

    googleads:adUnitId="@string/admob_id" /> 

... 

请注意,自定义视图的名称和它的配置属性是特定网络。广告网络可能会支持XML布局属性(如上图所示),或者实时APIs,或两者皆可。在示例应用程序,移动广告,googleads:adSize),和发行商ID(googleads:adUnitId)是在XML布局中建立。

当决定在您的应用程序中何处放置广告,您应该谨慎考虑用户体验。例如,你不想因为用多个广告填补屏幕,而惹恼你的用户。其实,这种做法是被一些广告网络禁止的。此外,避免将广告过于紧密的靠近UI控件,以避免意外点击。

图3. 避免将UI输入过于紧密靠近广告横幅,以防止意外广告点击。

图4. 不要在有用的内容上覆盖广告横幅。

初始化广告

在XML布局设置广告后,你可以进一步根据您的应用程序的架构在Activity.onCreate()或者Fragment.onCreateView()中自定义广告。根据不同的广告网络,可以配置的参数有:广告的大小,字体颜色,关键字,人口统计,地理位置定位,等等。

重要的是要尊重用户的隐私,如人口统计学或位置,如果为了广告推送传递某些参数给广告网络。让您的用户知道,让他们有机会选择退出这些功能。

在下面的代码片断中,关键字定位被使用。关键字设置后,应用程序调用<b><font color=green>loadAd()</font></b>开始投放广告。

public View onCreateView(LayoutInflater inflater, ViewGroup container, 

        Bundle savedInstanceState) { 

    ... 

    View v = inflater.inflate(R.layout.main, container, false); 

    mAdStatus = (TextView) v.findViewById(R.id.status); 

    mAdView = (AdView) v.findViewById(R.id.ad); 

    mAdView.setAdListener(new MyAdListener()); 

    AdRequest adRequest = new AdRequest(); 

    adRequest.addKeyword("sporting goods"); 

    mAdView.loadAd(adRequest); 

    return v; 

启用测试模式

一些广告网络提供测试模式。在开发和测试期间广告展示和点击不计算,是非常有用的。

重要提示:在发布应用程序之前,请确保关闭测试模式。

实施广告事件监听器

例如,这里有一些可从AdMob的AdListener 事件的回调的接口:

private class MyAdListener implements AdListener { 

    ... 

    @Override 

    public void onFailedToReceiveAd(Ad ad, ErrorCode errorCode) { 

        mAdStatus.setText(R.string.error_receive_ad); 

    } 

    @Override 

    public void onReceiveAd(Ad ad) { 

        mAdStatus.setText(""); 

    } 

在有条件的情况下,你应该考虑实施广告事件侦听器,能够提供各种广告服务的广告视图关联的事件回调。根据广告网络,侦听器可能会提供活动,如广告被 加载前,被加载后,该广告是否加载失败,或发生其他事件的通知。您可以选择根据您的具体情况对这些事件做出反应。例如,如果广告加载失败,您可以在应用程 序中显示自定义的条幅或创建一个布局,等其它的内容来填满屏幕。

责任编辑:闫佳明 来源: my.eoe.cn
相关推荐

2022-05-23 09:31:03

MozillaFirefox浏览器

2019-07-10 11:46:39

网络安全DNS云计算

2009-03-11 18:30:15

Windows 7关闭功能

2009-03-26 08:22:49

AndroidGoogle移动OS

2022-04-01 14:00:03

物联网订阅设备

2013-02-21 09:58:36

虚拟桌面VDI

2023-09-06 12:17:19

数字化转型能源成本

2009-03-26 17:10:58

LinuxAndroidWindows 7

2009-01-16 08:17:43

北电破产保护重组

2011-11-17 13:29:44

Android用户体验导向

2015-08-25 08:31:07

用户体验设计问题

2015-03-20 10:34:16

用户体验应用设计

2020-03-26 22:03:06

物联网移动应用用户体验

2020-06-15 07:56:48

物联网移动基于物联网的移动应UX。 物联网为应用

2015-04-23 15:30:08

2012-03-02 09:03:57

VDI虚拟桌面网络

2013-08-19 09:44:59

Android设计指导Android Des

2018-07-05 16:48:45

AI 商业化

2011-06-09 17:18:09

2011-12-05 13:29:39

Android Sto
点赞
收藏

51CTO技术栈公众号