Android Studio 廣告 - 橫幅廣告

今天拿之前寫的廣告原始碼,稍微修改一下為測試 ID,放到俄羅斯方塊 APP,結果模擬器有出現廣告,然後安裝到手機一直載入失敗,所以決定重新研究一下 android studio 的廣告。

開了一個空白的專案,然後參照官網寫的步驟,官網雖然寫的得很詳細,可是在模擬器一直出不來。上網查為什麼會有錯誤,都找不到答案,因為大家都能執行 😔。最後直接拿手機執行看看,結果就可以了,暈倒,整整浪費了3小時之多。。。

這邊照著官網的步驟 + 我自己的步調做個紀錄,以下寫的在手機可以執行!

  1. AndroidManifest.xml
    • <!-- 使用網路權限 -->
      <uses-permission android:name="android.permission.INTERNET" />
      <uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
    • <!--廣告-->
      <!-- Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713 -->
      <meta-data
      android:name="com.google.android.gms.ads.APPLICATION_ID"
      android:value="ca-app-pub-3940256099942544~3347511713"/>
  2. MainActivity.java
    • //廣告
      import com.google.android.gms.ads.AdListener;
      import com.google.android.gms.ads.AdRequest;
      import com.google.android.gms.ads.AdView;
      import com.google.android.gms.ads.LoadAdError;
      import com.google.android.gms.ads.MobileAds;
      import com.google.android.gms.ads.initialization.AdapterStatus;
      import com.google.android.gms.ads.initialization.InitializationStatus;
      import com.google.android.gms.ads.initialization.OnInitializationCompleteListener;
    • //廣告初始化
      MobileAds.initialize(this, new OnInitializationCompleteListener() {
      @Override
      public void onInitializationComplete(InitializationStatus initializationStatus) {
      }
      });

      //廣告開始
      mAdView = findViewById(R.id.adView);
      AdRequest adRequest = new AdRequest.Builder().build();
      mAdView.loadAd(adRequest);
      Toast.makeText(MainActivity.this, "loadAd", Toast.LENGTH_SHORT).show();

      //廣告監聽 使用 alt + ins 產生 Override 語法
      mAdView.setAdListener(new AdListener() { ... }
  3. activity_main.xml
    • <?xml version="1.0" encoding="utf-8"?>
      <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto"
      xmlns:tools="http://schemas.android.com/tools"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      tools:context=".MainActivity">

      <LinearLayout
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:orientation="vertical">

      <!-- 廣告 -->
      <com.google.android.gms.ads.AdView
      android:id="@+id/adView"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      app:adSize="SMART_BANNER"
      app:adUnitId="ca-app-pub-3940256099942544/6300978111">

      </com.google.android.gms.ads.AdView>

      <TextView
      android:id="@+id/textView2"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:text="TextView" />
      </LinearLayout>
      </FrameLayout>
  4. build.gradle (Project)
    • //廣告
      buildscript {
      repositories {
      google()
      mavenCentral()
      }
      }
    • //注意 !! Android Studio 3.1 不用照官網加入以下內容就可以執行
      //很奇怪加了反而會錯誤,目前查不到為什麼
      allprojects {
          repositories {
              google()
              mavenCentral()
          }
      }
      
  5. build.gradle (App)
    • //廣告
      implementation 'com.google.android.gms:play-services-ads:21.2.0'
  6. 手機的執行狀態

  7. 最後再把寫好的丟回到俄羅斯方塊,右邊模擬器完全沒有廣告出現...
    •  



留言

這個網誌中的熱門文章

Javascript Dialog 自訂輸入視窗 (五) 回傳資料事件及處理

RMMV 雜記 - 角色及劇情