Xamarin.forms 形成谷歌服务AdMob

Xamarin.forms 形成谷歌服务AdMob,xamarin.forms,admob,controls,ads,adview,Xamarin.forms,Admob,Controls,Ads,Adview,我正在尝试在我的Xamarin.Forms应用程序(现在是Android版本)中实现AdMob。以下是我迄今为止所做的工作: 在我的共享项目中创建了自定义控件AdViewControl: 在显示广告的页面中,我在xaml中添加了自定义控件: 当我跑步时,我会看到红色的背景,但不会加载任何广告。有什么想法吗?在AdControlView类中,我添加了: public static readonly BindableProperty AdUnitIdProperty = BindableP

我正在尝试在我的Xamarin.Forms应用程序(现在是Android版本)中实现AdMob。以下是我迄今为止所做的工作:

  • 在我的共享项目中创建了自定义控件AdViewControl:
  • 在显示广告的页面中,我在xaml中添加了自定义控件:

  • 当我跑步时,我会看到红色的背景,但不会加载任何广告。有什么想法吗?

    在AdControlView类中,我添加了:

    
        public static readonly BindableProperty AdUnitIdProperty = BindableProperty.Create("AdUnitId", typeof(string), typeof(AdControlView));
            
            public string AdUnitId
            {
                get { return (string)GetValue(AdUnitIdProperty); }
                set { SetValue(AdUnitIdProperty, value); }
            }
    
    
    现在我可以在横幅占位符中看到“测试广告”

    xmlns:ads="clr-namespace:MyFeelingBuddyTwo.Views"
    
    <ads:AdControlView BackgroundColor="Red"/> 
    
    
        
    <meta-data
        android:name="com.google.android.gms.ads.APPLICATION_ID"
        android:value="ca-app-pub-myappid"/>
    <activity android:name="com.google.android.gms.ads.AdActivity"
    android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>
    
    
    
        
    [assembly: ExportRenderer(typeof(MyFeelingBuddyTwo.Views.AdControlView), typeof(AdViewRenderer))]
    namespace MyFeelingBuddyTwo.Droid
    {
        class AdViewRenderer : ViewRenderer<Views.AdControlView, AdView>
        {
            string adUnitId = "myadunitid";
            AdSize adSize = AdSize.SmartBanner;
            AdView adView;
    
            AdView CreateAdView()
            {
                if (adView != null)
                    return adView;
    
                adView = new AdView(Forms.Context);
                adView.AdSize = adSize;
                adView.AdUnitId = adUnitId;
                var arParams = new LinearLayout.LayoutParams(LayoutParams.WrapContent, LayoutParams.WrapContent);
                adView.LayoutParameters = arParams;
                adView.LoadAd(new AdRequest.Builder().Build());
    
                return adView;
            }
    
            protected override void OnElementChanged(ElementChangedEventArgs<AdControlView> e)
            {
                base.OnElementChanged(e);
                if(Control == null)
                {
                    CreateAdView();
                    SetNativeControl(adView);
                }
            }
        }
    }
    
    
    
        MobileAds.Initialize(ApplicationContext, "ca-app-pub-appid");
                
    
    
        public static readonly BindableProperty AdUnitIdProperty = BindableProperty.Create("AdUnitId", typeof(string), typeof(AdControlView));
            
            public string AdUnitId
            {
                get { return (string)GetValue(AdUnitIdProperty); }
                set { SetValue(AdUnitIdProperty, value); }
            }