質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
AdMob

AdMobは、事前に指定した条件に従ってアプリに広告を表示するGoogleのサービス。開発者の向けのサービスで、広告を掲載することにより、収益を得ることが可能です。その他、見た目や雰囲気などアプリに合う広告に変更したり、広告表示の場所を指定することもできます。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

0回答

2756閲覧

Unity: AdmobのNative広告をprefabを通して自動生成(Instantiate)出来ない。(Prefab Instantiation)

Kotaro22

総合スコア21

AdMob

AdMobは、事前に指定した条件に従ってアプリに広告を表示するGoogleのサービス。開発者の向けのサービスで、広告を掲載することにより、収益を得ることが可能です。その他、見た目や雰囲気などアプリに合う広告に変更したり、広告表示の場所を指定することもできます。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2020/08/10 06:53

閲覧ありがとうございます。

概要
Admob Native広告を自動生成しようとしているのですが、アプリ起動中に広告が表示されるべき場所で表示されない。

動作環境
unity バージョン: 2019.2.9f1
参照: Unity Admob Native Ad Advanced, 8 steps
Google AdMob ネイティブ アドバンス広告

内容
まず、下記コード内のRequestNativeAd()メソッドStart内で使用しtest用の広告を読み込んでいます。その後Adマーク用のImageUI 1つ, 広告画像と広告チョイスアイコン画像用のRawImage UI 2つ、ヘッドライン、アドバタイザー、広告ボタンテキスト用のテキストUI 3つで構成される広告用prefabをコード内1番下のメソッドでインスタンシエイトしてTwitterやInstagramの投稿の間に表示される広告の様にNaitive広告を表示したいのですが HandleUnifiedNativedAdLoadedメソッド内に設定したboolean(unifiedNativeAdLoaded)がちゃんとtrueになっていないのかprefabが自動生成されない状態になっています。

1番下のメソッドで広告prefabを自動生成していますが、コンソールで確認してみるとメソッド内のif文前まで(Debug.Log("method reached"))は動いているのですがif文内のコードは実行されていません。

もしprefab、またはSerializeFieldなどを使用してNaitive広告の表示機能の導入をした経験がある方、もしくはAdmob広告導入に詳しい方がいましたらアドバイスをしていただけないでしょうか?

広告用クラス

public class AdsManager : MonoBehaviour { private static AdsManager _instance; public static AdsManager Instance { get { return _instance; } } private bool unifiedNativeAdLoaded; private UnifiedNativeAd nativeAd; public string headline; public string advertiser; public string cta; public Texture2D iconTexture; public Texture2D adChoice; //Advertisement public RectTransform AdsPrefab;    public GameObject AdsClone; public void Awake() { _instance = this; } // Use this for initialization void Start() { #if UNITY_ANDROID string appId = "ca-app-pub-3940256099942544~3347511713"; //ca-app-pub-3940256099942544/6300978111 #elif UNITY_IPHONE string appId = "ca-app-pub-3940256099942544/2934735716"; // test id : ca-app-pub-3940256099942544/2934735716 string nativeID = "ca-app-pub-3940256099942544/3986624511"; #else string appId = "unexpected_platform"; #endif // Initialize the Google Mobile Ads SDK. MobileAds.Initialize(initStatus => { }); RequestNativeAd(); } #region Native Ad Methods----------------------------------- private void RequestNativeAd() { #if UNITY_ANDROID string appId = "ca-app-pub-3940256099942544~3347511713"; #elif UNITY_IPHONE string appId = "ca-app-pub-3940256099942544/2934735716"; // test id : ca-app-pub-3940256099942544/2934735716 string nativeID = "ca-app-pub-3940256099942544/3986624511"; //test native ads id #else string appId = "unexpected_platform"; #endif AdLoader adloader = new AdLoader.Builder(nativeID).ForUnifiedNativeAd().Build(); adloader.OnUnifiedNativeAdLoaded += this.HandleUnifiedNativeAdLoaded; adloader.LoadAd(new AdRequest.Builder().Build()); } private void HandleNativeAdFailedToLoad(object sender, AdFailedToLoadEventArgs args) { MonoBehaviour.print("Native ad failed to load: " + args.Message); } private void HandleUnifiedNativeAdLoaded(object sender, UnifiedNativeAdEventArgs args) { MonoBehaviour.print("Unified Native ad loaded."); this.nativeAd = args.nativeAd; this.unifiedNativeAdLoaded = true; } #endregion private void Update() { if (this.unifiedNativeAdLoaded) { headline = this.nativeAd.GetHeadlineText(); advertiser = this.nativeAd.GetAdvertiserText(); cta = this.nativeAd.GetCallToActionText(); iconTexture = this.nativeAd.GetIconTexture(); adChoice = this.nativeAd.GetAdChoicesLogoTexture(); } } public void AdsAdd() { Debug.Log("method reached"); if (this.unifiedNativeAdLoaded) { Debug.Log("concrete content activated"); AdsClone = Instantiate(AdsPrefab.gameObject, prefabActions.Instance.secretListContent.transform, false); AdsClone.gameObject.tag = "ListClone"; Text[] text_array = AdsClone.GetComponentsInChildren<Text>(); text_array[0].text = headline; text_array[1].text = advertiser; text_array[2].text = cta; RawImage[] image_array = AdsClone.GetComponentsInChildren<RawImage>(); image_array[0].texture = iconTexture; image_array[1].texture = adChoice; nativeAd.RegisterIconImageGameObject(image_array[1].gameObject); nativeAd.RegisterAdChoicesLogoGameObject(image_array[2].gameObject); nativeAd.RegisterHeadlineTextGameObject(text_array[0].gameObject); nativeAd.RegisterAdvertiserTextGameObject(text_array[1].gameObject); nativeAd.RegisterCallToActionGameObject(text_array[2].gameObject); this.unifiedNativeAdLoaded = false; } } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問