2016-07-11 60 views
0

我遇到了Admob問題,導致廣告加載時滯後很多。我有Android和iOS的Admob設置,並且問題只出現在Android上。即使運行在較老的iPhone上,也幾乎沒有延遲,而高端Android手機(Nexus 6p和LG G4)則有滯後性。我使用Xamarin Studio和Monogame的框架來構建我的應用程序。我也嘗試了分別對廣告進行線索化。Admob僅在Android上延遲

我搜遍了所有的答案,我知道我發現了一些關於android堆的限制/大小?這可能是一個問題嗎?有時我的遊戲沒有收到廣告時就會延遲,但我相信廣告的動畫可能會成爲問題。預先感謝您的幫助!

這是我的代碼:

protected override void OnCreate(Bundle bundle) 
    { 
     base.OnCreate(bundle); 

     // Create our OpenGL view, and display it 

     // !IMPORTANT! 
     var g = new Game1(); 
     //SetContentView((View)g.Services.GetService(typeof(View))); 


     //createAds((View)g.Services.GetService(typeof(View))); 
     createAds(g.Services.GetService<View>()); 

     // !IMPORTANT! 
     g.Run(); 


    } 

    private void createAds(View window) 
    { 
     var frameLayout = new FrameLayout(this); 
     var linearLayout = new LinearLayout(this); 

     frameLayout.AddView(window); 


     adView = new AdView(this); 
     adView.AdUnitId = AD_UNIT_ID; 
     adView.AdSize = AdSize.SmartBanner; 
     adView.SetBackgroundColor(Android.Graphics.Color.Transparent); 


     linearLayout.AddView(adView); 
     frameLayout.AddView(linearLayout); 
     SetContentView(frameLayout); 



     var myThread = new Thread(new ThreadStart(() => 
     { 
      var requestbuilder = new AdRequest.Builder(); 
      RunOnUiThread(() => 
      { 
       adView.LoadAd(requestbuilder.Build()); 
      }); 
     })); 

     myThread.Priority = (System.Threading.ThreadPriority)(Android.OS.ThreadPriority)(-20); 

     myThread.Start(); 

    } 
+0

無需在單獨的線程上運行'adView.LoadAd'。 admob已經爲你做到了。請參閱[這裏](https://developers.google.com/android/reference/com/google/android/gms/ads/AdView.html#loadAd(com.google.android.gms.ads.AdRequest)) – rpattabi

回答

0

一種可能的解決方案可以僅在暫停畫面是使用插播式廣告或當玩家完成了一個電平(例如)。橫幅不應該造成滯後或問題。也許你可以嘗試在遊戲開始之前加載廣告(例如在加載屏幕中),然後顯示它。這裏有我的包含插頁式廣告和橫幅廣告的模板。每一行都有很好的評論,所以它很容易理解:https://github.com/Odle98/MonogameAndroid-BaseApp-Ads 該項目已準備好編譯,所有的東西都添加了。

希望它可能有用:)