閲覧ありがとうございます。
概要
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; } } }
あなたの回答
tips
プレビュー