[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!