橫幅廣告

橫幅廣告在應用佈局中佔據一個位置,位於設備屏幕的頂部或底部。當用戶與應用程序交互時,它們會停留在屏幕上,並且可以在一段時間後自動刷新。如果您不熟悉移動廣告,那麼這是一個很好的起點。案例

本指南向您介紹如何從橫幅廣告整合AdMob 到Android應用程序。除了代碼片段和說明外,它還包括有關正確調整橫幅大小的信息以及指向其他資源的鏈接。

先決條件

添加 AdView 佈局

朝向顯示橫幅的第一步是將AdView在佈局為ActivityFragment ,其中要顯示它。最簡單的方法是在相應的 XML 佈局文件中添加一個。下面是一個例子來展示活動的AdView

# main_activity.xml
...
  <com.google.android.gms.ads.AdView
      xmlns:ads="http://schemas.android.com/apk/res-auto"
      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="ca-app-pub-3940256099942544/6300978111">
  </com.google.android.gms.ads.AdView>
...

請注意以下必需屬性:

  • ads:adSize -將其設置為你想要使用的廣告尺寸。如果不想使用常量定義的標準尺寸,則可以設置自定義尺寸。看到橫幅尺寸段下面的詳細資料。
  • ads:adUnitId設置這給予了唯一標識符-廣告單元將顯示在您的應用程序,其中的廣告。如果您在不同的活動中展示橫幅廣告,則每個活動都需要一個廣告單元。

或者,您可以創建AdView編程方式:

爪哇

AdView adView = new AdView(this);

adView.setAdSize(AdSize.BANNER);

adView.setAdUnitId("ca-app-pub-3940256099942544/6300978111");
// TODO: Add adView to your view hierarchy.

科特林

val adView = AdView(this)

adView.adSize = AdSize.BANNER

adView.adUnitId = "ca-app-pub-3940256099942544/6300978111"
// TODO: Add adView to your view hierarchy.

始終使用測試廣告進行測試

在構建和測試您的應用程序時,請確保您使用的是測試廣告,而不是實況廣告。否則可能會導致您的帳戶被暫停。

加載測試廣告的最簡單方法是使用我們專用的 Android 橫幅測試廣告單元 ID:

ca-app-pub-3940256099942544/6300978111

它經過專門配置,可為每個請求返回測試廣告,您可以在編碼、測試和調試時在自己的應用中自由使用它。在發布應用之前,請確保將其替換為您自己的廣告單元 ID。

有關移動廣告SDK的測試廣告如何工作的詳細信息,請參見測試廣告

加載廣告

一旦 AdView 到位,下一步就是加載廣告。這與做loadAd()的方法AdView類。它需要一個AdRequest參數,它保存關於一個廣告請求運行時信息(作為靶向信息這樣)。

下面是一個例子,說明如何在加載廣告onCreate()的方法Activity

主要活動(摘錄)

爪哇

package ...

import ...
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;

public class MainActivity extends AppCompatActivity {
    private AdView mAdView;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        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);
    }
}

科特林

package ...

import ...
import com.google.android.gms.ads.AdRequest
import com.google.android.gms.ads.AdView

class MainActivity : AppCompatActivity() {

    lateinit var mAdView : AdView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        MobileAds.initialize(this) {}

        mAdView = findViewById(R.id.adView)
        val adRequest = AdRequest.Builder().build()
        mAdView.loadAd(adRequest)
    }
}

就是這樣!您的應用現在可以顯示橫幅廣告了。

廣告活動

要進一步自定義廣告的行為,您可以掛鉤廣告生命週期中的許多事件:加載、打開、關閉等。您可以偵聽通過這些活動AdListener類。

要使用AdListenerAdView ,調用setAdListener()方法:

爪哇

mAdView.setAdListener(new AdListener() {
    @Override
    public void onAdLoaded() {
        // Code to be executed when an ad finishes loading.
    }

    @Override
    public void onAdFailedToLoad(LoadAdError adError) {
        // Code to be executed when an ad request fails.
    }

    @Override
    public void onAdOpened() {
        // Code to be executed when an ad opens an overlay that
        // covers the screen.
    }

    @Override
    public void onAdClicked() {
        // Code to be executed when the user clicks on an ad.
    }

    @Override
    public void onAdClosed() {
        // Code to be executed when the user is about to return
        // to the app after tapping on an ad.
    }
});

科特林

mAdView.adListener = object: AdListener() {
    override fun onAdLoaded() {
        // Code to be executed when an ad finishes loading.
    }

    override fun onAdFailedToLoad(adError : LoadAdError) {
        // Code to be executed when an ad request fails.
    }

    override fun onAdOpened() {
        // Code to be executed when an ad opens an overlay that
        // covers the screen.
    }

    override fun onAdClicked() {
        // Code to be executed when the user clicks on an ad.
    }

    override fun onAdClosed() {
        // Code to be executed when the user is about to return
        // to the app after tapping on an ad.
    }
}

每個在重寫的方法AdListener對應於廣告的生命週期事件。

可覆蓋的方法
onAdLoaded()所述onAdLoaded()當廣告完成加載時執行方法。如果你想拖延添加AdView到您的活動或片段,直到你確定的廣告將被加載,例如,你可以在這裡完成。
onAdFailedToLoad()所述onAdFailedToLoad()方法是唯一一個包含參數。型的誤差參數LoadAdError描述發生了什麼錯誤。欲了解更多信息,請參閱調試廣告加載錯誤文檔
onAdOpened()當用戶點擊廣告時調用此方法。
onAdClosed()當用戶在查看廣告的目標網址後返回應用程序時,將調用此方法。您的應用程序可以使用它來恢復暫停的活動或執行任何其他必要的工作,以使其自身準備好進行交互。參考AdMob的AdListener例子為在Android API演示應用程序中的廣告監聽方法的實現。

下表列出了標準橫幅尺寸。

dp 大小 (WxH)描述可用性AdSize 常數
320x50橫幅手機和平板電腦BANNER
320x100大橫幅手機和平板電腦LARGE_BANNER
300x250 IAB 中矩形手機和平板電腦MEDIUM_RECTANGLE
468x60 IAB 全尺寸橫幅平板電腦FULL_BANNER
728x90 IAB排行榜平板電腦LEADERBOARD
提供寬×高度自適應自適應橫幅手機和平板電腦不適用
屏幕寬度×32 | 50 | 90智能橫幅手機和平板電腦SMART_BANNER
了解更多關於自適應橫幅,目的是取代智能橫幅

要定義自定義橫幅大小,設置所需的AdSize ,如下所示:

爪哇

AdSize adSize = new AdSize(300, 50);

科特林

val adSize = AdSize(300, 50)

視頻廣告的硬件加速

為了讓視頻廣告在您的橫幅廣告的看法成功展示,硬件加速功能必須啟用。

默認情況下啟用硬件加速,但某些應用程序可能會選擇禁用它。如果這適用於您的應用,我們建議為使用廣告的 Activity 類啟用硬件加速。

啟用硬件加速

如果您的應用程序在全局啟用硬件加速的情況下無法正常運行,您也可以針對單個活動對其進行控制。要啟用或禁用硬件加速,你可以使用android:hardwareAccelerated的屬性<application><activity>在你的元素AndroidManifest.xml 。以下示例為整個應用程序啟用硬件加速,但為一項活動禁用它:

<application android:hardwareAccelerated="true">
    <!-- For activities that use ads, hardwareAcceleration should be true. -->
    <activity android:hardwareAccelerated="true" />
    <!-- For activities that don't use ads, hardwareAcceleration can be false. -->
    <activity android:hardwareAccelerated="false" />
</application>

請參閱硬件加速指南以獲取有關控制硬件加速選項的詳細信息。請注意,如果 Activity 被禁用,則無法為硬件加速啟用單個廣告視圖,因此 Activity 本身必須啟用硬件加速。

其他資源

GitHub 上的示例

移動廣告車庫視頻教程

成功的故事