Member 14673641 Ответов: 1

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, ограничен.

1 Ответов

Рейтинг:
2

charithrasanga

Пожалуйста, проверьте ссылку ниже.
это обеспечивает очень хороший пример

Ксамарин.Android - AdMobExample Sample - Примеры Кода | Microsoft Docs[^]