[TOC]java
首先请你们放心,虽然 Google搜索等服务被qiang了,可是 广告服务国内仍是能够用的,真是普天同庆啊~~~噗!android
其实这篇文章也只是记录我接入 AdMob 的过程,更具体的其实 Google 官方给的更详细(配图和视频还有GitHub 的demo 示例等),因此不想看官方(毕竟大部分英文)的能够看我写的,若是已经看了官方或者有了解了能够重点看我 加粗 的地方,方便你快速找到你想要的信息。git
Google 官方引导:https://firebase.google.com/docs/admob/?hl=zh-cngithub
AdMob by Google 是一种移动广告平台,借助该平台您可从您的应用中得到可观的收入。将 AdMob 与 Firebase Analytics 相结合,您不只可获得更多的应用使用量数据,并且能够提高分析能力。无需更改现有 AdMob 配置,Firebase 即可与 AdMob 集成在一块儿。json
总共分四种。
分别为:Banner(横幅广告) 、Interstitial(插页广告)、Rewarded Video(应用内购买广告)、Native(原生广告)。app
Banner(横幅广告):最多见的,就是平时看到的屏幕的底部或者顶部有一个横条的广告条。ide
Interstitial(插页广告):相似启动页广告,整个屏幕显示一副广告。布局
Rewarded Video(应用内购买广告):这个玩国外游戏常常会看到,你看完一个广告视频,游戏会奖励你一些道具或者其余的什么(这个奖励是一个整数,在AdMob中能够设置数量,用户看完视频会获得这个数量的奖励,好比奖励3瓶药水,3条生命等。)。测试
Native(原生广告):这个是体验最好的广告形式,和原生app无缝对接,也许你已经见过一个列表的某个item内容展现的是广告,就是这种形式。gradle
你须要 Google 帐号,而后注册AdMob,若是有 Google 帐号是能够直接登陆的。
有了帐号之后你才能继续!
NOTICE:若是 AdMob 登陆页面打不开(其余页面是能够打开的),请务必禁止 AdBlock 等屏蔽广告的插件,或者手动添加白名单!!!
推荐你把 Google 官方的示例写一遍,不费事的。
在 AdMob 上建立新的项目,https://apps.admob.com/,中间提示你填写包名、项目名等,如实填写就能够。
最后完成时你的界面应该是这样的:
注意你的 APP id ,ad unit id,
,并 下载 google-service.json配置文件。
配置 Gradle
1.项目级 build.gradle
dependencies { classpath 'com.android.tools.build:gradle:x.x.x' classpath 'com.google.gms:google-services:3.0.0' }
2.应用级 build.gradle
... dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:xx.x.x' compile 'com.google.firebase:firebase-ads:10.2.1' } ... //apply plugin 语句位于底部 apply plugin: 'com.google.gms.google-services'
3.google-service.json
直接粘贴在应用级的根目录下,例如:YourProject/app/google-service.json
主页面布局:activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" xmlns:ads="http://schemas.android.com/apk/res-auto" 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="@string/banner_ad_unit_id"> </com.google.android.gms.ads.AdView> </RelativeLayout>
MainActivity.java 部分代码:
package ... import ... import ... import com.google.android.gms.ads.AdRequest; import com.google.android.gms.ads.AdView; public class MainActivity extends ActionBarActivity { ... protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //加载广告 AdView mAdView = (AdView) findViewById(R.id.adView); AdRequest adRequest = new AdRequest.Builder().build(); mAdView.loadAd(adRequest); } ... }
作完主要不要忘记权限:
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
官方demo地址: https://github.com/googleads/googleads-mobile-android-examples
在页面底部展现 Banner 广告条:
<: NOTICE :>
当你注册完 AdMob 帐户,建立完项目,获得对应的 id ,准备进行测试时,你可能获得一些错误:failed to load ad 3,或者, There was a problem getting an ad response. ErrorCode: 0等。
请注意,你建立的项目须要等待一段时间才能测试使用,因此尽管你的代码和配置都是正确的,但仍是收到错误。等待一段时间就行了,我大概过了2个多小时才正常。
<: NOTICE :> 关于 Rewarded Video(应用内购买广告)
你在测试时很大概率获得错误提示----failed to load ad 3,而且方法的失败回调响应了。
这只是系统没有什么广告返回给你而已,也就是应用内视频广告并不老是会有的。
错误信息能够在官网获得解释:
public static final int ERROR_CODE_NO_FILL --> Constant Value: 3 The ad request was successful, but no ad was returned due to lack of ad inventory. 广告请求已成功,但因为缺乏广告资源,没有返回任何广告。
更多错误信息能够查看官网:https://developers.google.com/android/reference/com/google/android/gms/ads/AdRequest
Google 的广告据说比较用心,实际效果不知如何,本文描述不全的或者往后有改动的都以官网为准。
官网:http://www.google.cn/admob/
enjoy!