admob 广告增加

简介: 引用:http://www.cnblogs.com/xuling/archive/2012/02/11/2346942.html IOS下比较简单,加入storekit,添加三行代码就成功了(摘自 @冬天的林  新浪微博)   2:Android--Admob Android下陷阱较多。

引用:http://www.cnblogs.com/xuling/archive/2012/02/11/2346942.html

IOS下比较简单,加入storekit,添加三行代码就成功了(摘自 @冬天的林  新浪微博

 

2:Android--Admob

Android下陷阱较多发火

我按照网上的教程还是遇到了一些问题。

下面大多摘录自http://www.pin5i.com/showtopic-admob-android-tutorial.html。比较特殊的地方用蓝色标记了

 

(1)首先,当然是需要注册一个Admob的帐号。Admob 的主页是:http://www.admob.com/ 。 当然,如果你对于浏览英文网页还有些障碍的话,可以登录中文网站:http://zhcn.admob.com/ 。如果网站的文字还是英文,你可以在网站主页的右下角的“Language”处,选择“中文(简体)”。点击进入注册页面后,有一些栏目需要填写,不要太过疑虑,就像你注册一个论坛一样,随便填下就好了。最关键的是保证填写的email地址有效,另外就是填上姓名,选择语言。帐户类型我选择的“不确定”,语言“中文(简体)”~ 提交注册申请之后,不久你就会收到用于确认并激活帐号的电子邮件,点击激活链接,就可以了激活你的Admob帐号了~


(2)        第二步就是设置你的Android应用程序信息,并获得Admob的插入代码。登录你的Admob帐号后,在主页的左上方(Logo上面)点击 “Marketplace(手机广告市场)”,进入页面后,在“Sites&Apps(站点和应用程序)”标签下,点击“Add Site/App”。选择我们熟悉的图标——" Android App ” 。这时会出现需要你填写一个“详细信息”,随便填上一些信息。(不要太过在意现在填写的东西,因为这些以后都是可以修改的)。比如“Android Package URL” 我到现在都还没有填写,描述之类的,想写就写点吧。填好详细信息后,点击“继续”,就可以到AdMob Android SDK 的下载页面了。下载这个SDK(当然,这个很重要)。


        The AdMob Android SDK includes:


        README: Get started with AdMob Android ads! 
        AdMob Jar file: Required for publishing ads. Follow the documentation in javadoc/index.html and drop the AdMob Jar file into your project. 
        Sample Projects: Examples of AdMob Android ads shown in the LunarLander application.


(3)       第三步获取你的应用程序对应的Publisher ID。在下载页面点击"Go to Sites/Apps"就可以到你应用程序的管理界面了。这时你会发现在这个页面醒目的位置会有一个叫你填写详细信息的提示:


          在我们发送任何有待收入之前,您需要填写技术联系详细信息和付款首选项。


        我们暂时可以不用管它,因为钱是会存在我们的Admob的账户上的,等我们需要提现的时候,或者你想填的时候再填就可以了。在下面的列表中,选择你的应用程序并进入。这个界面就是你的应用程序广告的管理界面了,里面有比较多的功能,以后可以慢慢了解,现在我们只需要知道两个东西,一个是发布者 ID(Publisher ID),一个是你程序的状态。Publisher ID是一个15个字符的字符串,而你程序的状态现在应该还是不活动(Inactive)。我们下面要做的就是怎么让它变为Active。


(4)      第四步代码编写——在你的应用程序中插入Admob广告。经过上面的步骤,我们在网站上的设置就告一个段落了,现在我们终于要进入主题了,如何在自己的Android应用程序中插入Admob广告。如果你不健忘的话,一定还记得我们之前下载的那个AdMob Android SDK 。解压它,看看里面有些什么东西。这里面最重要的就是那个名为“admob-sdk-android.jar”的包啦,Admob将如何把广告加载到 Android应用程序中的代码集成在这个包里,我们编写程序的时候就需要将这个包导入到我们的工程里面去。另外,解压出来的文件夹中还有一个名为 “javadoc”的文件夹,打开它里面的index.html。它是关于Admob Android SDK的帮助文档,在Package 下的Setup下,有详细完整的在自己的应用程序中插入广告的方法介绍,在这里我就偷懒,引用一下~


        Including the Jar


        Add the Jar file included with the SDK to your Android project as an external library. In your project's root directory create a subdirectory libs (this will already be done for you if you used Android's activitycreator). Copy the AdMob Jar file into that directory. For Eclipse projects:


        Go to the Properties of your project (right-click on your project from the Package Explorer tab and select Properties) 
        Select "Java Build Path" from left panel 
        Select "Libraries" tab from the main window 
        Click on "Add JARs..." 
        Select the JAR copied to the libs directory 
        Click "OK" to add the SDK to your android project


        注意:需要首先在你工程的根目录下新建一个叫做“libs”的文件夹,并把之前所说的最重要的东西“admob-sdk- android.jar”复制到里面。

 

(5)修改AndroidManifest.xml
        Your AdMob publisher ID was given to you when creating your publisher account on www.admob.com before downloading this code. It is a 15-character code like a1496ced2842262. Just before the closing </application> tag add a line to set your publisher ID:

 

[html]  view plain copy
  1. <meta-data android:value="a14eafbb0936d03" android:name="ADMOB_PUBLISHER_ID" />  

 

 

必出需要修改value值为admob上显示的用户ID

Set any permissions not already included just before the closing </manifest> tag:

 

[html]  view plain copy
  1. <uses-permission android:name="android.permission.INTERNET"></uses-permission>  
  2. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>  

 

Setting ACCESS_COARSE_LOCATION (and/or ACCESS_FINE_LOCATION) allows narrowly geo-targeted ads be shown.


 

添加AdActivity属性

 

[html]  view plain copy
  1. <activity android:name="com.google.ads.AdActivity"  
  2.                 android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>  


此处需要注意了,我在这儿折腾了很久,报的错误就是screenSize|smallestScreenSize 三个属性不支持,如果将其删除,则在Admob上显示 "You must have AdActivity declared in AndroidManifest.xml with configChanges."

 

 

追究其原因,就是因为这三个属性是在最新的SDK(>=13)上支持的,而我的project属性中设置的是Android2.2,解决方法如下:

a:升级ADT,下载最新的SDK

b:修改Project Build Target的API Level,其值必须>=13,我选择的是Android 4.0。修改步骤:右键点击项目,选择Properties-->Android-->Android 4.0

c:修改AndroidManifest.xml中的targetSdkVersion和minSdkVersion值为自己需要的值

 

[html]  view plain copy
  1. <uses-sdk android:targetSdkVersion="8" android:minSdkVersion="7"/>  


(6) 添加attrs.xml

 

The attrs.xml file specifies custom AdView attributes in XML layout files. If your application does not already have an /res/values/attrs.xml file then create one and copy-and-paste the following into it. If you do have that file then just add the declare-styleable element:

 

[html]  view plain copy
  1.         <?xml version="1.0" encoding="utf-8"?>  
  2.         <resources>  
  3.                 <declare-styleable name="com.admob.android.ads.AdView">  
  4.                         <attr name="testing" format="boolean" />  
  5.                         <attr name="backgroundColor" format="color" />  
  6.                         <attr name="textColor" format="color" />  
  7.                         <attr name="keywords" format="string" />  
  8.                         <attr name="refreshInterval" format="integer" />  
  9.                         <attr name="isGoneWithoutAd" format="boolean" />  
  10.                 </declare-styleable>  
  11.         </resources>  

 

7:显示

下面两种方法选择一种即可

(7.1)添加显示代码(一)

这是写代码添加

 

[java]  view plain copy
  1. import com.google.ads.*;  
  2.   
  3. ........  
  4.     protected void onCreate(Bundle savedInstanceState){  
  5.         .......  
  6.        setupAds();  
  7.     }  
  8.    
  9.     private void setupAds()  
  10.     {  
  11.         LinearLayout layout = new LinearLayout(this);  
  12.         layout.setOrientation(LinearLayout.VERTICAL);  
  13.         addContentView(layout, new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));  
  14.         AdView adView = new AdView(this, AdSize.BANNER, "a14eafbb0936d03");  
  15.         layout.addView(adView);  
  16.         adView.loadAd(new AdRequest());  
  17.     }     

 

(7.2)xml文件修改

 

[html]  view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"  
  4.     android:layout_width="fill_parent"  
  5.     android:layout_height="fill_parent"  
  6.     android:orientation="vertical">  
  7.   
  8.     <EditText android:id="@+id/textField"  
  9.         android:layout_height="wrap_content"  
  10.         android:layout_width="fill_parent"  
  11.         android:background="@null"/>  
  12.   
  13.   
  14.     <org.cocos2dx.lib.Cocos2dxGLSurfaceView  
  15.         android:id="@+id/game_gl_surfaceview"  
  16.         android:layout_width="fill_parent"  
  17.         android:layout_height="fill_parent"/>  
  18.   
  19.   
  20.     <RelativeLayout   
  21.                 android:id="@+id/ADLayout"  
  22.                 android:layout_width="wrap_content"  
  23.                 android:layout_height="wrap_content">  
  24.           
  25.   
  26.             <com.google.ads.AdView   
  27.                         android:id="@+id/adView"  
  28.                         android:layout_width="wrap_content"  
  29.                         android:layout_height="wrap_content"  
  30.                         android:layout_alignParentRight="true"  
  31.                         android:layout_alignParentBottom="true"  
  32.                         ads:adUnitId="a14eafbb0936d03"  
  33.                         ads:adSize="BANNER"  
  34.                         ads:loadAdOnCreate="true"/>  
  35.         </RelativeLayout>  
  36.       
  37. </FrameLayout>  



 

 

简单来说就是在onCreate中调用setupAds即可,注意修改用户ID ^_^

 

 

好了,一般来说通过上述步骤后,编译运行就可以显示广告窗口了

相关文章
|
存储 JSON Rust
【一起学Rust | 进阶篇 | reqwest库】纯 Rust 编写的 HTTP 客户端——reqwest
【一起学Rust | 进阶篇 | reqwest库】纯 Rust 编写的 HTTP 客户端——reqwest
1973 0
|
机器学习/深度学习 自然语言处理 算法
基于深度学习的语音识别技术应用与发展
在当今数字化时代,语音识别技术已经成为人机交互领域的重要组成部分。本文将介绍基于深度学习的语音识别技术在智能助手、智能家居和医疗健康等领域的应用与发展,同时探讨该技术在未来的潜在应用和发展方向。
388 4
|
人工智能 算法
同步器的介绍
一、同步器的基本原理 同步器是一种电子电路,用于同的电子信号进行同步。它的基本原理是根据输入信号的特征,通过适当的控制和调节,使输出信号与输入信号保持同步。同步器通常由触发器、计数器、时钟等组成,通过这些元件的协同工作,实现信号的同步和精确控制。 二、同步器的应用领域 同步器在各个领域都有广泛的应用。在通信领域,同步器用于确保数据传输的准确性和稳定性。在计算机领域,同步器用于控制和同步各个部件的工作,保证计算机系统的正常运行。在音视频领域,同步器用于音频和视频信号的同步播放,提供更好的观看和听觉体验。在工业自动化领域,同步器用于控制和同步各个机械设备的运行,提高生产效率和精确度。 三、同步器的
409 0
|
Windows
FL Studio20.9.2永久免费中文版水果软件
FL Studio随着近年来摇滚、电音的发展,越来越多的人开始对电子音乐编曲感兴趣,而电音编曲的首要条件,就是需要一个好的DAW(数字音频工作站),常用的DAW有很多,例如Cubase、Nuendo、Pro Tools、 SONAR等等,但以小编的个人体验感而言,最顺手的还是FL Studio。
3400 0
|
12月前
|
安全
教育技术工具盘点:五大免费软件助力教师信息化
随着科技的发展,学校在管理、教学等方面逐步引入信息技术,提升教师专业技能。本文推荐了几款实用的教育技术工具,如草料二维码、101教育PPT、格式工厂、小猿口算和万彩动画大师,以提高教学效率。草料二维码适用于教学资源电子化、信息收集等工作,101教育PPT则提供丰富的PPT资源,方便教师备课和互动教学。其他工具也各具特色,助力教学创新。
400 10
教育技术工具盘点:五大免费软件助力教师信息化
|
11月前
|
小程序 Oracle Java
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
这篇文章是关于JVM基础知识的介绍,包括JVM的跨平台和跨语言特性、Class文件格式的详细解析,以及如何使用javap和jclasslib工具来分析Class文件。
212 0
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
|
弹性计算 数据中心
便宜香港服务器推荐,阿里云24元1个月,288元一年
便宜香港服务器推荐,阿里云24元1个月,288元一年,阿里云香港服务器中国香港数据中心网络线路类型BGP多线精品,中国电信CN2高速网络高质量、大规格BGP带宽,运营商精品公网直连中国内地,时延更低,优化海外回中国内地流量的公网线路,可以提高国际业务访问质量
|
11月前
|
存储 Java 关系型数据库
分库分表专题
分库分表专题
221 0
|
11月前
|
存储 消息中间件 大数据
大数据-126 - Flink State 03篇 状态原理和原理剖析:状态存储 Part1
大数据-126 - Flink State 03篇 状态原理和原理剖析:状态存储 Part1
211 0
|
存储 缓存 数据安全/隐私保护
说一说你对移动应用中的离线模式的实现。
【4月更文挑战第2天】移动应用的离线模式允许用户在无网情况下仍能部分使用应用,依赖于数据缓存和本地存储。应用在联网时缓存关键数据,离线时从本地读取。数据同步通过延迟策略在重连时完成,敏感信息加密存储并定期备份。开发者还需关注用户体验、性能优化及错误处理,确保离线模式的无缝衔接和稳定性。
685 1