Android Google AdMob 廣告接入示例

Android Google AdMob 廣告接入示例

[TOC]

首先請大家放心,雖然 Google搜索等服務(wù)被qiang了,但是 廣告服務(wù)國內(nèi)還是可以用的,真是普天同慶啊~~~噗!

其實這篇文章也只是記錄我接入 AdMob 的過程,更具體的其實 Google 官方給的更詳細(xì)(配圖和視頻還有GitHub 的demo 示例等),所以不想看官方(畢竟大部分英文)的可以看我寫的,如果已經(jīng)看了官方或者有了解了可以重點(diǎn)看我** 加粗 **的地方,方便你快速找到你想要的信息。

Google 官方引導(dǎo):https://firebase.google.com/docs/admob/?hl=zh-cn

0. 什么是 AdMob ?

AdMob by Google 是一種移動廣告平臺,借助該平臺您可從您的應(yīng)用中獲得可觀的收入。將 AdMob 與 Firebase Analytics 相結(jié)合,您不僅可得到更多的應(yīng)用使用量數(shù)據(jù),而且可以提升分析能力。無需更改現(xiàn)有 AdMob 配置,F(xiàn)irebase 便可與 AdMob 集成在一起。

1. AdMob 廣告的類型 ?

總共分四種。
分別為:Banner(橫幅廣告)Interstitial(插頁廣告)、Rewarded Video(應(yīng)用內(nèi)購買廣告)、Native(原生廣告)

  • Banner(橫幅廣告):最常見的,就是平時看到的屏幕的底部或者頂部有一個橫條的廣告條。
  • Interstitial(插頁廣告):類似啟動頁廣告,整個屏幕顯示一副廣告。
  • Rewarded Video(應(yīng)用內(nèi)購買廣告):這個玩國外游戲經(jīng)常會看到,你看完一個廣告視頻,游戲會獎勵你一些道具或者其他的什么(這個獎勵是一個整數(shù),在AdMob中可以設(shè)置數(shù)量,用戶看完視頻會得到這個數(shù)量的獎勵,比如獎勵3瓶藥水,3條生命等。)。
  • Native(原生廣告):這個是體驗最好的廣告形式,和原生app無縫對接,也許你已經(jīng)見過一個列表的某個item內(nèi)容展示的是廣告,就是這種形式。

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

2-1.賬號

你需要 Google 賬號,然后注冊AdMob,如果有 Google 賬號是可以直接登錄的。
有了賬號以后你才能繼續(xù)!

NOTICE:如果 AdMob 登錄頁面打不開(其他頁面是可以打開的),請務(wù)必禁止 AdBlock 等屏蔽廣告的插件,或者手動添加白名單!?。?/strong>

2-2. 在 AdMob 上創(chuàng)建新的項目

推薦你把 Google 官方的示例寫一遍,不費(fèi)事的。

在 AdMob 上創(chuàng)建新的項目,https://apps.admob.com/,中間提示你填寫包名、項目名等,如實填寫就可以。

最后完成時你的界面應(yīng)該是這樣的:

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.應(yīng)用級 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

直接粘貼在應(yīng)用級的根目錄下,例如: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);
    }

    ...

}

做完主要不要忘記權(quán)限:

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

當(dāng)你注冊完 AdMob 賬戶,創(chuàng)建完項目,得到對應(yīng)的 id ,準(zhǔn)備進(jìn)行測試時,你可能得到一些錯誤:failed to load ad 3,或者, There was a problem getting an ad response. ErrorCode: 0等。

請注意,你創(chuàng)建的項目需要等待一段時間才能測試使用,所以盡管你的代碼和配置都是正確的,但還是收到錯誤。等待一段時間就好了,我大概過了2個多小時才正常。

<: NOTICE :> 關(guān)于 Rewarded Video(應(yīng)用內(nèi)購買廣告)

你在測試時很大幾率得到錯誤提示----failed to load ad 3,并且方法的失敗回調(diào)響應(yīng)了。

這只是系統(tǒng)沒有什么廣告返回給你而已,也就是應(yīng)用內(nèi)視頻廣告并不總是會有的。

錯誤信息可以在官網(wǎng)得到解釋:

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.
廣告請求已成功,但由于缺少廣告資源,沒有返回任何廣告。

更多錯誤信息可以查看官網(wǎng):https://developers.google.com/android/reference/com/google/android/gms/ads/AdRequest

5. 總結(jié)

Google 的廣告聽說比較用心,實際效果不知如何,本文描述不全的或者日后有改動的都以官網(wǎng)為準(zhǔn)。

官網(wǎng):http://www.google.cn/admob/

enjoy!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,351評論 25 708
  • 他們說人的一生要和五個女人睡過覺才算是精彩的人生我數(shù)了數(shù)手指頭感到自己的人生灰暗無比我曾經(jīng)和他們一樣覺得一生要和五...
    滕吠吠閱讀 1,349評論 1 4
  • 歷來不喜歡參加旅行社的走馬觀花,也不想長途奔襲成都、西藏等熱門景點(diǎn)湊熱鬧,面對九月初的這十幾天假期,我家大王和我一...
    夏洛初閱讀 624評論 0 1
  • 《無條件養(yǎng)育》是美國著名的教育學(xué)著阿爾菲·科恩所著,科恩是美國著名的作家和教育講師,同時也是美國進(jìn)步教育的領(lǐng)軍人物...
    豌豆巫婆閱讀 1,030評論 0 0
  • 心靈它會巧, 還得靠大腦。 勁往一處使, 哪能不叫好。
    草原騎手閱讀 205評論 0 0

友情鏈接更多精彩內(nèi)容