Android Google AdMob 廣告接入示例

Android Google AdMob 廣告接入示例

[TOC]java

首先請你們放心,雖然 Google搜索等服務被qiang了,可是 廣告服務國內仍是能夠用的,真是普天同慶啊~~~噗!android

其實這篇文章也只是記錄我接入 AdMob 的過程,更具體的其實 Google 官方給的更詳細(配圖和視頻還有GitHub 的demo 示例等),因此不想看官方(畢竟大部分英文)的能夠看我寫的,若是已經看了官方或者有了解了能夠重點看我 加粗 的地方,方便你快速找到你想要的信息。git

Google 官方引導:https://firebase.google.com/docs/admob/?hl=zh-cngithub

0. 什麼是 AdMob ?

AdMob by Google 是一種移動廣告平臺,藉助該平臺您可從您的應用中得到可觀的收入。將 AdMob 與 Firebase Analytics 相結合,您不只可獲得更多的應用使用量數據,並且能夠提高分析能力。無需更改現有 AdMob 配置,Firebase 即可與 AdMob 集成在一塊兒。json

1. AdMob 廣告的類型 ?

總共分四種。
分別爲:Banner(橫幅廣告)Interstitial(插頁廣告)Rewarded Video(應用內購買廣告)Native(原生廣告)app

  • Banner(橫幅廣告):最多見的,就是平時看到的屏幕的底部或者頂部有一個橫條的廣告條。ide

  • Interstitial(插頁廣告):相似啓動頁廣告,整個屏幕顯示一副廣告。佈局

  • Rewarded Video(應用內購買廣告):這個玩國外遊戲常常會看到,你看完一個廣告視頻,遊戲會獎勵你一些道具或者其餘的什麼(這個獎勵是一個整數,在AdMob中能夠設置數量,用戶看完視頻會獲得這個數量的獎勵,好比獎勵3瓶藥水,3條生命等。)。測試

  • Native(原生廣告):這個是體驗最好的廣告形式,和原生app無縫對接,也許你已經見過一個列表的某個item內容展現的是廣告,就是這種形式。gradle

2. 以 Banner 廣告爲例,接入AdMob

2-1.帳號

你須要 Google 帳號,而後註冊AdMob,若是有 Google 帳號是能夠直接登陸的。
有了帳號之後你才能繼續!

NOTICE:若是 AdMob 登陸頁面打不開(其餘頁面是能夠打開的),請務必禁止 AdBlock 等屏蔽廣告的插件,或者手動添加白名單!!!

2-2. 在 AdMob 上建立新的項目

推薦你把 Google 官方的示例寫一遍,不費事的。

在 AdMob 上建立新的項目,https://apps.admob.com/,中間提示你填寫包名、項目名等,如實填寫就能夠。

最後完成時你的界面應該是這樣的:

AdMob 控制檯

注意你的 APP id ,ad unit id,,並 下載 google-service.json配置文件。

2-3. Android Studio 項目配置

配置 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

2-4. Eclipse 項目配置

go-home

2-5. xml 佈局編寫

主頁面佈局: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>

2-6. Activity 加載 Banner 廣告

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"/>

2-7. Google AdMob Demo 地址

官方demo地址: https://github.com/googleads/googleads-mobile-android-examples

3. 效果圖

在頁面底部展現 Banner 廣告條:

admob-banner

4. 注意事項

<: 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

5. 總結

Google 的廣告據說比較用心,實際效果不知如何,本文描述不全的或者往後有改動的都以官網爲準。

官網:http://www.google.cn/admob/

enjoy!

相關文章
相關標籤/搜索