android 個人開發(fā)者接廣告admob以及需要注意的錯誤細(xì)節(jié)

各位知道其他路子的求分享啊灾部,我實在想不到什么方法了绷蹲,可惜谷歌被屏蔽了堂油,但是總比不能賺1毛錢好修档。我相信我的粉絲都是極客,

注冊admob

https://apps.admob.com

快速開始教程

https://developers.google.com/admob/android/quick-start?hl=zh-CN

創(chuàng)建應(yīng)用

image.png

image.png

創(chuàng)建banner

image.png

得到Y(jié)OUR_ADMOB_APP_ID
https://developers.google.com/admob/android/quick-start?hl=zh-CN#import_the_mobile_ads_sdk

添加xml代碼

       android:id="@+id/ad_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true"
        ads:adSize="BANNER"
        ads:adUnitId="ca-app-pub-6391307239504132/6102840431" />

添加java代碼

package ...
import ...
import com.google.android.gms.ads.MobileAds;

public class MainActivity extends AppCompatActivity {
    
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
//全局appid
  MobileAds.initialize(this, "ca-app-pub-6391307239504132~6124388718");
//        MobileAds.initialize(this, "ca-app-pub-3940256099942544~3347511713");
        adView = findViewById(R.id.ad_view);
    
        // 建立發(fā)送廣告請求
        AdRequest adRequest = new AdRequest.Builder()
                .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
                .build();

        // 添加廣告監(jiān)聽.
        adView.setAdListener(new AdListener(){
            @Override
            public void onAdFailedToLoad(int i) {
                Log.w(TAG,"load fail :"+i);
            }
        });
//加載請求
        adView.loadAd(adRequest);    }
    
}

}

橫幅實現(xiàn)的官方教程在這里
https://developers.google.com/admob/android/banner?hl=zh-CN
或者用代碼添加banner的方法

adView adView = new AdView(this);
adView.setAdSize(AdSize.BANNER);
adView.setAdUnitId("ca-app-pub-6391307239504132/6102840431");

規(guī)范細(xì)節(jié)
不要忘記代理一下聲明周期府框。


    /** Called when returning to the activity */
    @Override
    public void onResume() {
        super.onResume();
        if (adView != null) {
            adView.resume();
        }
    }

    /** Called before the activity is destroyed */
    @Override
    public void onDestroy() {
        if (adView != null) {
            adView.destroy();
        }
        super.onDestroy();
    }

各位測試沒效果的可以先直接把我的代碼copy測試效果如何吱窝。

插屏廣告

InterstitialAd mInterstitialAd = new InterstitialAd(this);//插頁廣告
        mInterstitialAd.setAdUnitId("xxxxx");

激勵廣告


        RewardedVideoAd mRewardedVideoAd = MobileAds.getRewardedVideoAdInstance(this);
        mRewardedVideoAd.setRewardedVideoAdListener(this);
        mRewardedVideoAd.loadAd("ca-app-pub-6391307239504132/8306864775", new AdRequest.Builder().build());



        AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
                .forAppInstallAd(new NativeAppInstallAd.OnAppInstallAdLoadedListener() {
                    @Override
                    public void onAppInstallAdLoaded(NativeAppInstallAd appInstallAd) {
                        // Show the app install ad.
                    }
                })
                .forContentAd(new NativeContentAd.OnContentAdLoadedListener() {
                    @Override
                    public void onContentAdLoaded(NativeContentAd contentAd) {
                        // Show the content ad.
                    }
                })
                .withAdListener(new AdListener() {
                    @Override
                    public void onAdFailedToLoad(int errorCode) {
                        // Handle the failure by logging, altering the UI, and so on.
                    }
                })
                .withNativeAdOptions(new NativeAdOptions.Builder()
                        // Methods in the NativeAdOptions.Builder class can be
                        // used here to specify individual options settings.
                        .build())
                .build();

        adLoader.loadAd(new AdRequest.Builder().build());

原生廣告

說實話原生廣告的,老美的文檔根本不全迫靖,有點亂院峡,根本不知道某個東西如何來的。比如


    private void displayAppInstallAd(ViewGroup parent,NativeAppInstallAd ad) {
        // Inflate a layout and add it to the parent ViewGroup.
        LayoutInflater inflater = (LayoutInflater) parent.getContext()
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        NativeAppInstallAdView adView = (NativeAppInstallAdView) inflater
                .inflate(R.layout.my_ad_layout, parent);

        // Locate the view that will hold the headline, set its text, and call the
        // NativeAppInstallAdView's setHeadlineView method to register it.
        TextView headlineView = adView.findViewById(R.id.ad_headline);
        headlineView.setText(ad.getHeadline());
        adView.setHeadlineView(headlineView);

        // Repeat the above process for the other assets in the NativeAppInstallAd

        // If the app is using a MediaView to display video, it should be
        // instantiated and passed to setMediaView. This view is a little different
        // in that the asset is populated automatically, so there's one less step.
        MediaView mediaView = (MediaView) adView.findViewById(R.id.ad_media);
        adView.setMediaView(mediaView);

        // Call the NativeAppInstallAdView's setNativeAd method to register the
        // NativeAdObject.
        adView.setNativeAd(ad);

        // Place the AdView into the parent.
        parent.addView(adView);
    }

這里需要傳遞一個參數(shù)系宜,文檔并沒有說是怎么出來的照激,我感覺需要找找他們的demo.
https://developers.google.com/admob/android/native-advanced?hl=zh-CN
https://apps.admob.com/v2/home

將 Firebase 添加到您的 Android 項目
https://firebase.google.com/docs/android/setup

buildscript {
    // ...
    dependencies {
        // ...
        classpath 'com.google.gms:google-services:3.2.0' // google-services plugin
    }
}

allprojects {
    // ...
    repositories {
        // ...
        maven {
            url "https://maven.google.com" // Google's Maven repository
        }
    }
}

完整步驟

  1. 請使用此應(yīng)用 ID 完成 Google 移動廣告 SDK 指南中的說明:

  2. 請按照激勵廣告實現(xiàn)指南來集成 SDK。在使用此廣告單元 ID 集成代碼時盹牧,您需要指定廣告類型和展示位置:

  1. 請點擊此處開始從 Firebase 控制臺下載配置文件俩垃。在下一步的最后,您將需要用到此文件汰寓。如果您無法訪問 Firebase 控制臺口柳,請與 Firebase 項目負(fù)責(zé)人聯(lián)系,請其將您添加為項目成員有滑。
  2. 按照 Firebase 集成指南操作跃闹,在您的應(yīng)用中實施 Firebase SDK。
  3. 完成集成后俺孙,請重新發(fā)布您的應(yīng)用辣卒,我們會在應(yīng)用概覽信息中心顯示相關(guān)的分析數(shù)據(jù)。
  4. 請查看 AdMob 政策睛榄,確保您的實現(xiàn)方案符合相關(guān)規(guī)定荣茫。

排錯

on failed for task ':childgit:app:processDebugGoogleServices'.
> File google-services.json is missing. The Google Services Plugin cannot function without it. 
   Searched Location: 
  F:\src\git_project\qq_qqrobot\childgit\app\src\nullnull\debug\google-services.json
  F:\src\git_project\qq_qqrobot\childgit\app\src\debug\nullnull\google-services.json
  F:\src\git_project\qq_qqrobot\childgit\app\src\null
All firebase libraries must be either above or below 14.0.0

fix

    //https://dl.google.com/dl/android/maven2/index.html

   implementation 'com.google.android.gms:play-services-ads:15.0.0'
    //  implementation 'com.google.android.gms:play-services-ads:12.0.1'
    //implementation 'com.google.firebase:firebase-core:11.8.0'
        implementation 'com.google.firebase:firebase-core:15.0.0'

進(jìn)入控制臺點擊firexx 然后點擊下載配置文件。放到這個目錄
https://developers.google.com/android/reference/com/google/android/gms/ads/AdRequest

最終

      classpath 'com.google.gms:google-services:3.2.1' // google-services plugin

錯誤碼
我剛開始的時候是0

public final class AdRequest {
    public static final int ERROR_CODE_INTERNAL_ERROR = 0;
    public static final int ERROR_CODE_INVALID_REQUEST = 1;
    public static final int ERROR_CODE_NETWORK_ERROR = 2;
    public static final int ERROR_CODE_NO_FILL = 3;

https://github.com/googleads/googleads-mobile-android-examples
遇到問題可以提交到谷歌官方的論壇哈
https://groups.google.com/forum/#!forum/google-admob-ads-sdk
2018年05月07日
我現(xiàn)在官方的demo正常顯示场靴,強(qiáng)烈建議大家也下載demo玩啡莉,其實看文檔是很不全的港准。demo的演示比較全,我這里就只給大家做個導(dǎo)師了咧欣,哈哈浅缸,

我這里一直提示0,我以為是要等幾個小時魄咕,過了幾天打開官方網(wǎng)站看了一下衩椒,有一個警告信息。

提供詳細(xì)付款信息
只有在您提供此信息后 AdMob 才能投放您的廣告

這是比較棘手的哮兰,需要信用卡毛萌,而且我上次搞谷歌支付用招商這種雙幣信用卡都不行,雖然可以用來買0.99美元的書喝滞,虧了我不少錢阁将,后面還是不行,最后不得已去淘寶購買了禮品卡才搞定了右遭,然后用來購買開發(fā)者賬號
不過這次很幸運做盅,成功了,ok窘哈,錯誤碼從內(nèi)部錯誤0 變成沒有廣告的錯誤碼3了吹榴。

pulic static final int ERROR_CODE_INTERNAL_ERROR = 0;
    public static final int ERROR_CODE_INVALID_REQUEST = 1;
    public static final int ERROR_CODE_NETWORK_ERROR = 2;
    public static final int ERROR_CODE_NO_FILL = 3;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市宵距,隨后出現(xiàn)的幾起案子腊尚,更是在濱河造成了極大的恐慌,老刑警劉巖满哪,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件婿斥,死亡現(xiàn)場離奇詭異,居然都是意外死亡哨鸭,警方通過查閱死者的電腦和手機(jī)民宿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來像鸡,“玉大人活鹰,你說我怎么就攤上這事≈还溃” “怎么了志群?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蛔钙。 經(jīng)常有香客問我锌云,道長,這世上最難降的妖魔是什么吁脱? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任桑涎,我火速辦了婚禮彬向,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘攻冷。我一直安慰自己娃胆,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布等曼。 她就那樣靜靜地躺著里烦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪禁谦。 梳的紋絲不亂的頭發(fā)上招驴,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天,我揣著相機(jī)與錄音枷畏,去河邊找鬼。 笑死虱饿,一個胖子當(dāng)著我的面吹牛拥诡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播氮发,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼渴肉,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了爽冕?” 一聲冷哼從身側(cè)響起仇祭,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎颈畸,沒想到半個月后乌奇,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡眯娱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年礁苗,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片徙缴。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡试伙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出于样,到底是詐尸還是另有隱情疏叨,我是刑警寧澤,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布穿剖,位于F島的核電站蚤蔓,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏携御。R本人自食惡果不足惜昌粤,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一既绕、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧涮坐,春花似錦凄贩、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至捷雕,卻和暖如春椒丧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背救巷。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工壶熏, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人浦译。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓棒假,卻偏偏與公主長得像,于是被迫代替她去往敵國和親精盅。 傳聞我的和親對象是個殘疾皇子帽哑,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,510評論 25 707
  • 太長了,還是轉(zhuǎn)載吧...今天在看博客的時候叹俏,無意中發(fā)現(xiàn)了@Trinea在GitHub上的一個項目Android開源...
    龐哈哈哈12138閱讀 20,140評論 3 283
  • 獨自走走大街上妻枕,看著不太繁華的大道,想著人人都有陪伴粘驰,卻獨自低頭玩手機(jī)掩飾著尷尬 屡谐,想問問自己真正想要的是什么,我...
    爵憂者閱讀 112評論 0 0
  • all in沖動 也有過投資經(jīng)歷的朋友都有這樣的感覺晴氨,要是能在低點全部買入康嘉,高點全部賣出,甚至再加一點杠桿那用不了...
    草稿記錄閱讀 220評論 0 0
  • 我們生活在一個不可避免跟別人打交道的社會里籽前,社會越是發(fā)展亭珍,需要跟別人協(xié)作共事的時候越多。然而仔細(xì)觀察下你所處的環(huán)境...
    蝶疊落閱讀 414評論 0 0