ネイティブ広告は、広告の管理画面で表示される UI コンポーネントを通じて表示される広告アセットです。 ネイティブに実装されています同じタイプのビューを使用して表示され、 レイアウトはすでに作成中ですが、 アプリのデザインを改善できます。
ネイティブ広告が読み込まれると、アプリはその広告のアセットを含む広告オブジェクトを受け取ります。 Google Mobile Ads SDK ではなく 表示を担います
ネイティブ広告を効果的に実装するには、大きく分けて次の 2 つの要素があります。 SDK を使用して広告を読み込み、アプリに広告コンテンツを表示する。
このページでは、SDK を使用して読み込む方法について説明します。 ネイティブ広告。
前提条件
- スタートガイドを完了している。
必ずテスト広告でテストする
アプリを作成、テストする際は、テスト広告ではなく、 配信します。
テスト広告を読み込むには、専用のテスト広告ユニット ID を使う方法が最も簡単です Android のネイティブ広告の場合:
ca-app-pub-3940256099942544/2247696110
すべてのリクエストに対してテスト広告を返すように特別に構成されており、 独自のアプリでコーディング、テスト、デバッグの際に使用できます。必ず これを実際の広告ユニット ID に置き換えてから、アプリを公開してください。
Google Mobile Ads SDK のテスト広告の仕組みについて詳しくは、 テスト広告。
広告を読み込む
ネイティブ広告は
AdLoader
クラス、
それぞれ独自の
Builder
作成時にカスタマイズできます。AdLoader
にリスナーを追加する
アプリでは、作成可能なネイティブ広告のタイプをアプリで指定する
受信します。その後、AdLoader
はそれらのタイプのみをリクエストします。
AdLoader を作成する
次のコードは、ネイティブを読み込める AdLoader
のビルド方法を示しています。
広告:
Java
AdLoader adLoader = new AdLoader.Builder(context, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
@Override
public void onNativeAdLoaded(NativeAd nativeAd) {
// Show the ad.
}
})
.withAdListener(new AdListener() {
@Override
public void onAdFailedToLoad(LoadAdError adError) {
// 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();
Kotlin
val adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd { ad : NativeAd ->
// Show the ad.
}
.withAdListener(object : AdListener() {
override fun onAdFailedToLoad(adError: LoadAdError) {
// Handle the failure by logging, altering the UI, and so on.
}
})
.withNativeAdOptions(NativeAdOptions.Builder()
// Methods in the NativeAdOptions.Builder class can be
// used here to specify individual options settings.
.build())
.build()
「
forNativeAd()
メソッドが AdLoader
を NativeAd
形式用に準備します。
広告が正常に読み込まれると、リスナー オブジェクトの onNativeAdLoaded()
メソッドが呼び出されます。
AdLoader を使用して AdListener を設定する(省略可)
AdLoader
を作成すると、
withAdListener
関数が
AdListener
:
できます。このメソッドは、唯一のパラメータとして AdListener
を受け取り、
広告のライフサイクル イベントが発生したときの AdLoader
からのコールバック:
Java
.withAdListener(new AdListener() {
// AdListener callbacks can be overridden here.
})
Kotlin
.withAdListener(object : AdListener() {
// AdListener callbacks can be overridden here.
})
広告をリクエスト
AdLoader
の作成が完了したら、それを使用して広告のリクエストを行います。
これには、loadAd()
と loadAds()
の 2 つのメソッドがあります。
loadAd()
このメソッドは、1 つの広告に対してリクエストを送信します。
Java
adLoader.loadAd(new AdRequest.Builder().build());
Kotlin
adLoader.loadAd(AdRequest.Builder().build())
loadAds()
このメソッドは、複数の広告(最大 5 つ)のリクエストを送信します。
Java
adLoader.loadAds(new AdRequest.Builder().build(), 3);
Kotlin
adLoader.loadAds(AdRequest.Builder().build(), 3)
どちらの方法でも、
AdRequest
最初のパラメータとして渡します同じ
バナーとインタースティシャルで使用される AdRequest
クラス
また、AdRequest
クラスのメソッドを使用して、
ターゲティング情報を追加する
他の広告フォーマットの場合とほぼ同じです
複数の広告を読み込む(省略可)
loadAds()
メソッドは追加のパラメータを受け取ります。これは、SDK が受け取る広告の数です。
リクエストの読み込みが試行されます。上限は 5 で、
リクエストされた数の広告数が SDK から返されるという保証はありません。
返される Google 広告はそれぞれ異なりますが、 予約広告枠や第三者購入者は、必ずしも一意であるとは限りません。
メディエーションを使用している場合は、loadAds()
メソッドを
複数のネイティブ広告は、現時点では
設定されていることを確認できます
コールバック
loadAd()
の呼び出しの後、以前に定義された
リスナー メソッドを使ってネイティブ広告オブジェクトを配信するか、エラーを報告します。
loadAds()
の呼び出しの後、このようなコールバックが複数回(少なくとも 1 回、
リクエストする広告の数までです。複数の広告をリクエストするアプリ
コールバックの実装で AdLoader.isLoading()
を呼び出して、
読み込みプロセスが完了したかどうかを判別します。
次の例は、isLoading()
onNativeAdLoaded()
コールバック:
Java
final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
@Override
public void onNativeAdLoaded(NativeAd nativeAd) {
...
// some code that displays the ad.
...
if (adLoader.isLoading()) {
// The AdLoader is still loading ads.
// Expect more adLoaded or onAdFailedToLoad callbacks.
} else {
// The AdLoader has finished loading ads.
}
}
}).build();
adLoader.loadAds(new AdRequest.Builder().build(), 3);
Kotlin
lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd {
...
// some code that displays the ad.
...
if (adLoader.isLoading) {
// The AdLoader is still loading ads.
// Expect more adLoaded or onAdFailedToLoad callbacks.
} else {
// The AdLoader has finished loading ads.
}
}.build()
adLoader.loadAds(AdRequest.Builder().build(), 3)
リソースを解放する
読み込まれたネイティブ広告では、必ず destroy()
メソッドを使用してください。このリリース
メモリリークを防止できます。
アクティビティの NativeAd
で、すべての参照が破棄されるようにしてください。
onDestroy()
メソッドを使用します。
onNativeAdLoaded
コールバックで、既存の依存関係をすべて破棄し、
指定することもできます。
もう 1 つの重要なチェックは、アクティビティが破棄されたかどうかです。破棄されている場合は destroy()
を呼び出します。
すぐに返すことができます:
Java
final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
@Override
public void onNativeAdLoaded(NativeAd nativeAd) {
// If this callback occurs after the activity is destroyed, you
// must call destroy and return or you may get a memory leak.
// Note `isDestroyed()` is a method on Activity.
if (isDestroyed()) {
nativeAd.destroy();
return;
}
...
}
}).build();
Kotlin
lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd { nativeAd ->
// If this callback occurs after the activity is destroyed, you
// must call destroy and return or you may get a memory leak.
// Note `isDestroyed` is a method on Activity.
if (isDestroyed) {
nativeAd.destroy()
return@forNativeAd
}
...
}.build()
ベスト プラクティス
広告を読み込む際は以下のルールを守ってください。
リスト内のネイティブ広告を使用するアプリでは、広告のリストを事前キャッシュに保存する必要があります。
広告を事前キャッシュする場合は、キャッシュをクリアして、1 時間後に再読み込みしてください。
loadAd()
または 最初のloadAds()
日までAdLoader
で リクエストの読み込みが完了しました。
動画広告のハードウェア アクセラレーション
ネイティブ広告のビューで動画広告を適切に表示するには、 ハードウェア 加速 を有効にする必要があります。
ハードウェア アクセラレーションはデフォルトで有効になっていますが、アプリによってはハードウェア アクセラレーションが 無効にすることもできます。該当する場合は、ハードウェアの有効化をおすすめします。 広告を使用する Activity クラスの高速化。
ハードウェア アクセラレーションを有効にする
ハードウェア アクセラレーションをオンにしてアプリが正しく動作しない場合
個々のアクティビティに対しても制御できます。Google Cloud コンソールで
ハードウェア アクセラレーションを無効にする(android:hardwareAccelerated
属性を使用)
の
<application>
および
<activity>
AndroidManifest.xml
内の要素。次の例では、ハードウェア サービス
1 つのアクティビティでは無効にします。
<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>
HW アクセラレーション ガイド ハードウェア アクセラレーションを制御するオプションの詳細をご覧ください。備考 ハードウェア アクセラレーションが無効な場合は個々の広告ビューを有効にできない アクティビティが無効になっているため、アクティビティ自体にハードウェア アクセラレーションが必要 有効にします。
広告を表示する
広告を読み込んだら、あとはユーザーに表示するだけです。 ネイティブ アドバンス ガイドをご覧ください。