Siemka. Próbuję zaimplementować do aplikacji reklamy Google AdMob.
Korzystając z poradnika: https://www.c-sharpcorner.com/article/google-admob-display-ads-in-xamarin-forms/.
Napisałem, a raczej przepisałem kod, który kiedyś działał (około roku temu :) ), a teraz nie chce....

**Id reklamy jest testowe (formatu banner): "ca-app-pub-3940256099942544/6300978111" **

Android manifest:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
	<uses-permission android:name="android.permission.INTERNET" />
	<application android:label="xxx.Android">
    <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>

Android Service:

[assembly: Dependency(typeof(AdMob_AndroidService))]
namespace xxx.Droid.Services
{
    public class AdMob_AndroidService : IAdMob
    {
        InterstitialAd interstitialAd;

        public AdMob_AndroidService()
        {
            interstitialAd = new InterstitialAd(Android.App.Application.Context);

            interstitialAd.AdUnitId = AppManager.AdMobId;
            LoadAd();
        }

        void LoadAd()
        {
            var requestbuilder = new AdRequest.Builder();
            interstitialAd.LoadAd(requestbuilder.Build());

        }

        public void ShowAd()
        {
            Device.BeginInvokeOnMainThread(async () =>
            {
                // if(interstitialAd.IsLoading == false && interstitialAd.IsLoaded == false) LoadAd();
                await Task.Delay(3000);
                if (interstitialAd.IsLoaded)
                    interstitialAd.Show();
                else ShowAd();
            });
        }
    }
}

Android Renderer:

[assembly: ExportRenderer(typeof(AdMobBanner), typeof(AdMobBanner_AndroidRenderer))]
namespace xxx.Droid.Renderer
{
    public class AdMobBanner_AndroidRenderer : ViewRenderer
    {
        Context context;
        public AdMobBanner_AndroidRenderer(Context _context) : base(_context)
        {
            context = _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 AdMobBanner).Sizes)
                {
                    case AdMobSizeEnum.Standardbanner:
                        adView.AdSize = AdSize.Banner;
                        break;
                    case AdMobSizeEnum.LargeBanner:
                        adView.AdSize = AdSize.LargeBanner;
                        break;
                    case AdMobSizeEnum.MediumRectangle:
                        adView.AdSize = AdSize.MediumRectangle;
                        break;
                    case AdMobSizeEnum.FullBanner:
                        adView.AdSize = AdSize.FullBanner;
                        break;
                    case AdMobSizeEnum.Leaderboard:
                        adView.AdSize = AdSize.Leaderboard;
                        break;
                    case AdMobSizeEnum.SmartBannerPortrait:
                        adView.AdSize = AdSize.SmartBanner;
                        break;
                    default:
                        adView.AdSize = AdSize.Banner;
                        break;
                }
                // TODO: change this id to your admob id  
                adView.AdUnitId = AppManager.AdMobId;
                var requestbuilder = new AdRequest.Builder();
                adView.LoadAd(requestbuilder.Build());
                SetNativeControl(adView);
            }
        }
        
    }
}

Xamarin.Forms metoda dodająca baner:

  public void DisplayAddMob(StackLayout stack, AdMobBanner banner, string adMobId = "")
        {
            if (Connectivity.NetworkAccess == NetworkAccess.Internet && Device.RuntimePlatform == Device.Android)
            {
                AppManager.Instance.SetAdMobId(adMobId);

                if(banner != null) stack.Children.Add(banner);
                DependencyService.Get<IAdMob>().ShowAd();
            }
        }

i jej użycie:

  ViewManager.Instance.DisplayAddMob(StackLayout, new ViewItems.AdMobBanner()
            {
                VerticalOptions = LayoutOptions.End,
                HorizontalOptions = LayoutOptions.Fill,
                HeightRequest = 60,
                Sizes = Enums.AdMobSizeEnum.Standardbanner
            });

Testowane na emulatorze oraz telefonie. Reklama po prostu się nie wyświetla.
Jakieś pomysły / podpowiedzi co może być problemem? :)