このガイドでは、ネイティブ広告アドオンを使用して AdMob ネイティブ広告を実装する方法について説明します およびその過程で考慮すべき重要な事項についても学びました。
ネイティブ広告は、広告のデザインと機能の両方に 表示されます。使用するアプリのビジュアル デザインともマッチしている。 AdMob のネイティブ広告フォーマットを使用すると、パブリッシャー様はシームレスな広告を配信できます 説明します。このテクノロジーを使用すると、高度にカスタマイズされたレンダリングを実装できます。 Unity アプリのネイティブ コードを最大限に活用できます。
ネイティブ広告は、お客様が使用しているものと同じタイプのGameObjects
を使用して表示されます
アプリのビジュアル デザインに合わせてフォーマットできます。
ユーザーエクスペリエンスを損ねますネイティブ広告が読み込まれると
アセットを含むネイティブ オブジェクトと Unity アプリを受け取る
表示されます。
前提条件
ネイティブ広告フォーマットを読み込む
ネイティブ広告は、独自の AdLoader
クラスを介して読み込まれます。
AdLoader.Builder
クラスを使用して、作成時にカスタマイズすることもできます。ForNativeAd()
メソッドにより、ネイティブ広告を処理するように AdLoader が設定されます。
private void RequestNativeAd() {
AdLoader adLoader = new AdLoader.Builder(INSERT_AD_UNIT_HERE)
.ForNativeAd()
.Build();
}
AdLoader 広告イベントに登録する
ネイティブ広告の読み込みの成功時または失敗時に通知を受け取るには、
下記のイベントの AdLoader
クラスにデリゲートします。
OnNativeAdLoaded
ネイティブ広告が正常に読み込まれたときに呼び出されます。Cloud Storage バケットの 読み込まれた広告にアクセスするための、このイベントのデリゲート。
OnAdFailedToLoad
ネイティブ広告の読み込みに失敗したときに呼び出されます。
広告を読み込む
AdLoader
の作成が完了したら、その LoadAd()
メソッドを呼び出して、
広告をリクエストします。
adLoader.LoadAd(new AdRequest.Builder().Build());
広告リクエストを 1 つにまとめる
以下のコード スニペットは、AdLoader
をビルドする方法を示しています。
ネイティブ広告をリクエストするように設定できます。成功した広告と失敗した広告の代理人を設定します
広告がリクエストされます
private void RequestNativeAd() {
AdLoader adLoader = new AdLoader.Builder(INSERT_AD_UNIT_HERE)
.ForNativeAd()
.Build();
adLoader.OnNativeAdLoaded += this.HandleNativeAdLoaded;
adLoader.OnAdFailedToLoad += this.HandleAdFailedToLoad;
adLoader.LoadAd(new AdRequest.Builder().Build());
}
失敗した広告の読み込みを処理する
OnAdFailedToLoad
イベントのタイプは EventHandle<AdFailedToLoadEventArgs>
です。
このイベントから広告の読み込みが失敗した理由を解析する方法は以下のとおりです。
private void RequestNativeAd() {
...
adLoader.OnAdFailedToLoad += this.HandleNativeAdFailedToLoad;
}
private void HandleNativeAdFailedToLoad(object sender, AdFailedToLoadEventArgs args) {
Debug.Log("Native ad failed to load: " + args.Message);
}
ネイティブ広告を表示する
ネイティブ広告が読み込まれると、対応する広告フォーマットの広告イベントが呼び出されます。 広告を表示するのはアプリの役割ですが、表示されるのはアプリではありません。 すぐに行う必要があります。
広告掲載数を処理する
OnNativeAdLoaded
イベントのタイプは EventHandler<NativeAdEventArgs>
です。「
NativeAd
オブジェクトにカプセル化された広告は、
次に示すように、NativeAdEventArgs
:
private NativeAd nativeAd;
...
private void HandleNativeAdLoaded(object sender, NativeAdEventArgs args) {
Debug.Log("Native ad loaded.");
this.nativeAd = args.nativeAd;
}
ネイティブ広告のアセットを取得する
広告が読み込まれると、以下のようにアセットにアクセスできるようになります。グラフィカル
アセットは Texture2D
オブジェクトとして返され、テキスト アセットは
string
オブジェクト。
private bool nativeAdLoaded;
private NativeAd nativeAd;
void Update() {
...
if (this.nativeAdLoaded) {
this.nativeAdLoaded = false;
// Get Texture2D for the icon asset of native ad.
Texture2D iconTexture = this.nativeAd.GetIconTexture();
// Get string for headline asset of native ad.
string headline = this.nativeAd.GetHeadlineText();
}
}
private void HandleNativeAdLoaded(object sender, NativeAdEventArgs args) {
Debug.Log("Native ad loaded.");
this.nativeAd = args.nativeAd;
this.nativeAdLoaded = true;
}
なお、広告アセットにはメインスレッドでのみアクセスしてください(例:
Unity スクリプトの Update()
メソッドから呼び出す。また、以下のアセットは
常に存在するとは限らないため、検出する前に確認する必要がある
表示:
GetStarRating()
GetStore()
GetPrice()
GetAdvertiser()
GetIconTexture()
AdChoices アセット
AdChoices 広告アセットはネイティブ広告の一部として表示することが必須。 また、AdChoices 広告アセットは見やすいことも重要です。 適切な背景色と画像を使用します。
広告アセットの GameObject を登録する
広告アセットを表示するには、GameObject
を登録する必要があります。
Unity アプリ登録が成功すると、イベントの登録に使用されたメソッドが
GameObject
は bool
を返します。List<GameObject>
の場合、メソッドは
int
は、正常に登録された GameObject
の数を示します。
広告アセットの登録に失敗した場合、 対応するネイティブ広告は認識されません
if (!this.nativeAd.RegisterIconImageGameObject(icon))
{
// Handle failure to register the icon ad asset.
}
広告アセットに登録する GameObject
には、コンベックス コライダーが必要です
GameObject
のサイズと形状を表すコンポーネント。条件
広告アセットに登録されている GameObject
個のオブジェクトに Collider
個のコンポーネントがありません
正しく設定されていない場合、ネイティブ広告は正しく動作しません。
以下のコード スニペットでは、BoxCollider
が GameObject
に追加されています。
TextMesh
: ネイティブ広告の広告見出しアセットを表示します。完了後
BoxCollider
は GameObject
に接続されており、自動スケーリングされます。
TextMesh
コンポーネントのテキストに対応します。
// Create GameObject that will display the headline ad asset.
GameObject headline = new GameObject();
headline.AddComponent<TextMesh>();
headline.GetComponent<TextMesh>().characterSize = 0.5 f;
headline.GetComponent<TextMesh>().anchor = TextAnchor.MiddleCenter;
headline.GetComponent<TextMesh>().color = Color.black;
// Get string of the headline asset.
string headlineText = this.nativeAd.GetHeadlineText();
headline.GetComponent<TextMesh>().text = headlineText;
// Add box collider to the GameObject which will automatically scale.
headline.AddComponent<BoxCollider>();
デモ
次のコードは、
読み込まれたネイティブ広告、Quad
のテクスチャを設定してアイコン広告アセットを表示する
アセットの表示に使用する GameObject
を登録します。このプロセスは、
広告アセットを取得してネイティブ広告クラスに登録する場合、
アプリが表示するアセットごとに、同じことが繰り返されます。
private GameObject icon;
private bool nativeAdLoaded;
private NativeAd nativeAd;
...
void Update() {
...
if (this.nativeAdLoaded) {
this.nativeAdLoaded = false;
// Get Texture2D for icon asset of native ad.
Texture2D iconTexture = this.nativeAd.GetIconTexture();
icon = GameObject.CreatePrimitive(PrimitiveType.Quad);
icon.transform.position = new Vector3(1, 1, 1);
icon.transform.localScale = new Vector3(1, 1, 1);
icon.GetComponent<Renderer>().material.mainTexture = iconTexture;
// Register GameObject that will display icon asset of native ad.
if (!this.nativeAd.RegisterIconImageGameObject(icon))
{
// Handle failure to register ad asset.
}
}
}
...
private void HandleNativeAdLoaded(object sender, NativeAdEventArgs args) {
Debug.Log("Native ad loaded.");
this.nativeAd = args.nativeAd;
this.nativeAdLoaded = true;
}