Xamarin forms simple Google admob не отображается
Я работаю над этим уже 3 недели и понятия не имею, почему он не появляется.
Когда я запускаю этот код... баннерная реклама не появляется. Что я здесь делаю не так?
Что я уже пробовал:
project folder structure <pre> Discount_Calculator Controls AdControlview.cs MainPage.xaml ... Discount_Calculator.Android Helper AdViewRenderer.cs ... ...
AdViewRenderer.в CS
[assembly: ResolutionGroupName("Discount_Calculator")] [assembly: ExportEffect(typeof(AdViewRenderer), "AdControlview")] namespace Discount_Calculator.Droid.Helper { public class AdViewRenderer : ViewRenderer { Context context; public AdViewRenderer(Context _context) : base(_context) { context = _context; } protected override void OnElementChanged(ElementChangedEventArgs<View> e) { base.OnElementChanged(e); if (e.OldElement == null) { var adView = new AdView(Context); switch ((Element as Discount_Calculator.Controls.AdControlview).Size) { case Discount_Calculator.Controls.AdControlview.Sizes.Standardbanner: adView.AdSize = AdSize.Banner; break; case Discount_Calculator.Controls.AdControlview.Sizes.LargeBanner: adView.AdSize = AdSize.LargeBanner; break; case Discount_Calculator.Controls.AdControlview.Sizes.MediumRectangle: adView.AdSize = AdSize.MediumRectangle; break; case Discount_Calculator.Controls.AdControlview.Sizes.FullBanner: adView.AdSize = AdSize.FullBanner; break; case Discount_Calculator.Controls.AdControlview.Sizes.Leaderboard: adView.AdSize = AdSize.Leaderboard; break; case Discount_Calculator.Controls.AdControlview.Sizes.SmartBannerPortrait: adView.AdSize = AdSize.SmartBanner; break; default: adView.AdSize = AdSize.Banner; break; }//end switch // TODO: change this id to your ad-unit-id adView.AdUnitId = "ca-app-pub-423232323232323231"; var requestbuilder = new AdRequest.Builder(); adView.LoadAd(requestbuilder.Build()); SetNativeControl(adView); } //end if }//end func }//end class }//end namespace
AdControlview.в CS
namespace Discount_Calculator.Controls { public class AdControlview : Xamarin.Forms.View { public enum Sizes { Standardbanner, LargeBanner, MediumRectangle, FullBanner, Leaderboard, SmartBannerPortrait } public Sizes Size { get; set; } public AdControlview() { this.BackgroundColor = Color.Accent; } } }
Файл MainPage.язык XAML
<ContentPage ...> <StackLayout> <Controls:AdControlview Size="Standardbanner" VerticalOptions="EndAndExpand" /> </StackLayout> </ContentPage>
AndroidManifiest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="2" android:versionName="2.0" package="com.wolfTech.discount_calculator" android:installLocation="auto"> <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="28" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <application android:label="Discount_Calculator.Android"> <meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ca-app-pub-76543245678567~1212345354" /> <activity android:name="com.google.android.gms.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" android:theme="@android:style/Theme.Translucent" /> </application> </manifest>
Kris Lantz
Это значения.AdUnitId задание намеренно? Номер выглядит фальшивым и не соответствует тому, что Google предоставляет здесь https://developers.google.com/admob/android/banner
Из того, что я смог собрать, adLoad() должен быть вызван в классе, который собирается сделать запрос, а не в самом рендерере, но мой опыт работы с тем, как Xamarin делает вещи против Android Studio, ограничен.