Рекламные баннеры AdMob не отображаются и не отображаются объяснения - PullRequest
0 голосов
/ 23 февраля 2019

Я создал приложение и связал его с admob.Это работало нормально в течение одной недели.Тогда .. это просто остановилось на Android?Я создал пример приложения со своей реализацией 1: 1 с помощью моего базового приложения, чтобы посмотреть, связано ли это с чем-то другим, кроме admob?Ниже я поместил свой код для admob, который я использовал.

Контроллер в PCL:

public class AdMobView : View
{
    public enum Sizes { Standardbanner, LargeBanner, MediumRectangle, FullBanner, Leaderboard, SmartBannerPortrait }
    public Sizes Size { get; set; }
    public AdMobView()
    {
        this.BackgroundColor = Color.Accent;
    }
}

Android adrenderer

public class AdMobRenderer : ViewRenderer
{
    Context context;

    public AdMobRenderer(Context context) : base(context) { }

    protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.View> e)
    {
        base.OnElementChanged(e);
        if(e.OldElement == null)
        {
            var adView = new AdView(Context);
            switch ((Element as AdMobView).Size)
            {
                case AdMobView.Sizes.Standardbanner:
                    adView.AdSize = AdSize.Banner;
                    break;
                case AdMobView.Sizes.LargeBanner:
                    adView.AdSize = AdSize.LargeBanner;
                    break;
                case AdMobView.Sizes.MediumRectangle:
                    adView.AdSize = AdSize.MediumRectangle;
                    break;
                case AdMobView.Sizes.FullBanner:
                    adView.AdSize = AdSize.FullBanner;
                    break;
                case AdMobView.Sizes.Leaderboard:
                    adView.AdSize = AdSize.Leaderboard;
                    break;
                case AdMobView.Sizes.SmartBannerPortrait:
                    adView.AdSize = AdSize.SmartBanner;
                    break;
                default:
                    adView.AdSize = AdSize.Banner;
                    break;
            }
            adView.AdUnitId = "ca-app-pub-3940256099942544/6300978111";
            var testDeviceId = Android.Provider.Settings.Secure.GetString(Context.ContentResolver, Android.Provider.Settings.Secure.AndroidId);
            var requestBuilder = new AdRequest.Builder().AddTestDevice("c793762db79ab2c6");
            Console.WriteLine("Android device id is: {0}", testDeviceId);
            adView.LoadAd(requestBuilder.Build());
            SetNativeControl(adView);
        }
    }
}

MainActivity Andorid

 public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
    protected override void OnCreate(Bundle savedInstanceState)
    {
        TabLayoutResource = Resource.Layout.Tabbar;
        ToolbarResource = Resource.Layout.Toolbar;
        var id = "my-app-id-with-~"; 
        MobileAds.Initialize(ApplicationContext, id);
        base.OnCreate(savedInstanceState);
        global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
        LoadApplication(new App());
    }
}

MainPage

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         xmlns:local="clr-namespace:AdMobFixed"
         xmlns:adMob="Ad"
         x:Class="AdMobFixed.MainPage">

<StackLayout>
    <!-- Place new controls here -->
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>
        <Label 
            Grid.Row="0"
            Text="Welcome to Xamarin.Forms!" 
       HorizontalOptions="Center"
       VerticalOptions="CenterAndExpand" />

        <local:AdMobView 
                         MinimumWidthRequest="400"
                         MinimumHeightRequest="100"
                         HorizontalOptions="CenterAndExpand"
                         VerticalOptions="EndAndExpand"/>
    </Grid>

</StackLayout>

Неделю назад мне не приходилось использовать минимальные запросы.К сожалению, я сломал свой телефон с ОС Android, поэтому я не могу проверить его на своем ПК.Ниже я прикрепил свой вывод:

02-23 17: 14: 47.015 D / DynamitePackage (19883): создание экземпляра com.google.android.gms.ads.ChimeraAdManagerCreatorImpl

02-23 17:14: 47.025 I / Ads (19883): этот запрос отправляется с тестового устройства.

02-23 17: 14: 47.096 I / DynamiteModule (19883): с учетом локального модуля com.google.android.gms.ads.dynamite: 0 и удаленный модуль com.google.android.gms.ads.dynamite: 11140

02-23 17: 14: 47.097 I / DynamiteModule (19883): выбранная удаленная версия com.google.android.gms.ads.dynamite, версия> = 11140

Манифест Android также обновляется с учетом разрешения доступа в Интернет и состояния сети.Я также добавил тег активности между тегами приложения.

Я использовал nuget Ads lite из Google и проверил его на полном play.ads от Google.

За любую помощь я был бы очень рад,Заранее спасибо !:)

1 Ответ

0 голосов
/ 23 февраля 2019

попробуйте добавить этот код: MobileAds.Initialize (ApplicationContext, id);в строке ниже: base.OnCreate (saveInstanceState);

...