Ejemplo n.º 1
0
        public AndroidNativeAdView(NativeAdView view) : base(UIRuntime.CurrentActivity)
        {
            try
            {
                View = view;
                View.RotateRequested += LoadNext;

                EscalatePanningEvent();

                AddView(NativeView = new UnifiedNativeAdView(UIRuntime.CurrentActivity)
                {
                    LayoutParameters = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent),
                    AdChoicesView    = new AdChoicesView(UIRuntime.CurrentActivity)
                    {
                        LayoutParameters = new ViewGroup.LayoutParams(25, 25)
                    }
                });

                View.WhenShown(ConfigureAdView).RunInParallel();

                Agent = view.Agent ?? throw new Exception(".NativeAdView.Agent is null");

                LoadNext();
            }
            catch (Exception ex)
            {
                Log.For(this).Error(ex, "[Zebble.Admob]");
            }
        }
Ejemplo n.º 2
0
        protected override void OnFinishInflate()
        {
            try
            {
                base.OnFinishInflate();

                NativeAdView = (UnifiedNativeAdView)FindViewById(Resource.Id.native_ad_view);

                if (!AppSettings.ShowAdMobNative)
                {
                    if (NativeAdView != null)
                    {
                        NativeAdView.Visibility = ViewStates.Gone;
                    }
                }
                else
                {
                    PrimaryView   = (TextView)FindViewById(Resource.Id.primary);
                    SecondaryView = (TextView)FindViewById(Resource.Id.secondary);
                    TertiaryView  = (TextView)FindViewById(Resource.Id.body);

                    //RatingBar = (RatingBar)FindViewById(Resource.Id.rating_bar);
                    //RatingBar.Enabled=false;

                    //CallToActionView = (Button)FindViewById(Resource.Id.cta);
                    IconView   = (ImageView)FindViewById(Resource.Id.icon);
                    MediaView  = (MediaView)FindViewById(Resource.Id.media_view);
                    Background = (LinearLayout)FindViewById(Resource.Id.background);
                }
            }
            catch (Exception e)
            {
                Methods.DisplayReportResultTrack(e);
            }
        }
Ejemplo n.º 3
0
        protected override void OnFinishInflate()
        {
            base.OnFinishInflate();

            NativeAdView = (UnifiedNativeAdView)FindViewById(Resource.Id.native_ad_view);

            if (!AppSettings.ShowAdMobNative)
            {
                NativeAdView.Visibility = ViewStates.Gone;
            }
            else
            {
                if (TemplateType != Resource.Layout.gnt_big_template_view)
                {
                    PrimaryView   = (TextView)FindViewById(Resource.Id.primary);
                    SecondaryView = (TextView)FindViewById(Resource.Id.secondary);
                    TertiaryView  = (TextView)FindViewById(Resource.Id.body);

                    //RatingBar = (RatingBar)FindViewById(Resource.Id.rating_bar);
                    //RatingBar.Enabled=false;

                    //CallToActionView = (Button)FindViewById(Resource.Id.cta);
                    IconView   = (ImageView)FindViewById(Resource.Id.icon);
                    MediaView  = (MediaView)FindViewById(Resource.Id.media_view);
                    Background = (ConstraintLayout)FindViewById(Resource.Id.background);
                }
            }
        }
Ejemplo n.º 4
0
        protected override void OnElementChanged(ElementChangedEventArgs <Xamarin.Forms.View> e)
        {
            base.OnElementChanged(e);

            var adLoader = new AdLoader.Builder(Context, AppConfig.ADMOB_NATIVE_ADS_ID);

            var listener = new UnifiedNativeAdLoadedListener();

            listener.OnNativeAdLoaded += (s, ad) =>
            {
                // Load ad Completed
                try
                {
                    ButtonColor = (e.NewElement as AdmobSmallNativeAdsView).ButtonColor.ToAndroid();
                    nativeAd    = ad;
                    var root     = new UnifiedNativeAdView(Context);
                    var inflater = (LayoutInflater)Context.GetSystemService(Context.LayoutInflaterService);

                    var nativeAdView = (UnifiedNativeAdView)inflater.Inflate(Resource.Layout.gnt_small_template_view, root);

                    populateUnifiedNativeAdView(ad, nativeAdView);
                    SetNativeControl(nativeAdView);
                }
                catch
                {
                }
            };

            adLoader.ForUnifiedNativeAd(listener);
            var requestBuilder = new AdRequest.Builder();

            adLoader.Build().LoadAd(requestBuilder.Build());
        }
Ejemplo n.º 5
0
        void PostInflate()
        {
            nativeAdView  = FindViewById <UnifiedNativeAdView>(Resource.Id.native_ad_view);
            primaryView   = FindViewById <TextView>(Resource.Id.primary);
            secondaryView = FindViewById <TextView>(Resource.Id.secondary);
            tertiaryView  = FindViewById <TextView>(Resource.Id.body);

            ratingBar         = FindViewById <RatingBar>(Resource.Id.rating_bar);
            ratingBar.Enabled = false;

            callToActionView = FindViewById <Button>(Resource.Id.cta);
            iconView         = FindViewById <ImageView>(Resource.Id.icon);
            mediaView        = FindViewById <MediaView>(Resource.Id.media_view);
            background       = FindViewById <ConstraintLayout>(Resource.Id.background);
        }
Ejemplo n.º 6
0
        public IOSNativeAdView(NativeAdView view)
        {
            try
            {
                View = view;
                View.RotateRequested += LoadNext;

                NativeView = new UnifiedNativeAdView {
                    Frame = View.GetFrame()
                };
                Add(NativeView);
                View.WhenShown(ConfigureAdView).RunInParallel();

                Agent = view.Agent ?? throw new Exception(".NativeAdView.Agent is null");
                LoadNext();
            }
            catch (Exception ex)
            {
                Log.For(this).Error(ex, "[Zebble.Admob]");
            }
        }
Ejemplo n.º 7
0
        public void PopulateUnifiedNativeAdView(UnifiedNativeAd nativeAd)
        {
            try
            {
                NativeAdView = (UnifiedNativeAdView)FindViewById(Resource.Id.native_ad_view);

                // Set the media view.
                NativeAdView.MediaView = NativeAdView.FindViewById <MediaView>(Resource.Id.ad_media);

                // Set other ad assets.
                NativeAdView.HeadlineView     = NativeAdView.FindViewById(Resource.Id.ad_headline);
                NativeAdView.BodyView         = NativeAdView.FindViewById(Resource.Id.ad_body);
                NativeAdView.CallToActionView = NativeAdView.FindViewById(Resource.Id.ad_call_to_action);
                NativeAdView.IconView         = NativeAdView.FindViewById(Resource.Id.ad_app_icon);
                NativeAdView.PriceView        = NativeAdView.FindViewById(Resource.Id.ad_price);
                //NativeAdView.StarRatingView=NativeAdView.FindViewById(Resource.Id.ad_stars);
                NativeAdView.StoreView      = NativeAdView.FindViewById(Resource.Id.ad_store);
                NativeAdView.AdvertiserView = NativeAdView.FindViewById(Resource.Id.ad_advertiser);

                // The headline and mediaContent are guaranteed to be in every UnifiedNativeAd.
                ((TextView)NativeAdView.HeadlineView).Text = nativeAd.Headline;
                //NativeAdView.MediaView.MediaContent(nativeAd.MediaContent);

                // These assets aren't guaranteed to be in every UnifiedNativeAd, so it's important to
                // check before trying to display them.
                if (string.IsNullOrEmpty(nativeAd.Body))
                {
                    NativeAdView.BodyView.Visibility = ViewStates.Gone;
                }
                else
                {
                    NativeAdView.BodyView.Visibility       = ViewStates.Visible;
                    ((TextView)NativeAdView.BodyView).Text = nativeAd.Body;
                }

                if (string.IsNullOrEmpty(nativeAd.CallToAction))
                {
                    NativeAdView.CallToActionView.Visibility = ViewStates.Gone;
                }
                else
                {
                    NativeAdView.CallToActionView.Visibility     = ViewStates.Visible;
                    ((Button)NativeAdView.CallToActionView).Text = nativeAd.CallToAction;
                }

                if (nativeAd.Icon == null)
                {
                    NativeAdView.IconView.Visibility = ViewStates.Gone;
                }
                else
                {
                    ((ImageView)NativeAdView.IconView).SetImageDrawable(nativeAd.Icon.Drawable);
                    NativeAdView.IconView.Visibility = ViewStates.Visible;
                }

                if (string.IsNullOrEmpty(nativeAd.Price))
                {
                    NativeAdView.PriceView.Visibility = ViewStates.Gone;
                }
                else
                {
                    NativeAdView.PriceView.Visibility       = ViewStates.Visible;
                    ((TextView)NativeAdView.PriceView).Text = nativeAd.Price;
                }

                if (string.IsNullOrEmpty(nativeAd.Store))
                {
                    NativeAdView.StoreView.Visibility = ViewStates.Gone;
                }
                else
                {
                    NativeAdView.StoreView.Visibility       = ViewStates.Visible;
                    ((TextView)NativeAdView.StoreView).Text = nativeAd.Store;
                }

                //if (nativeAd.StarRating == null)
                //{
                //    NativeAdView.StarRatingView.Visibility = ViewStates.Gone;
                //}
                //else
                //{
                //    ((RatingBar)NativeAdView.StarRatingView).Rating=nativeAd.StarRating.FloatValue();
                //    NativeAdView.StarRatingView.Visibility = ViewStates.Gone;
                //}

                if (string.IsNullOrEmpty(nativeAd.Advertiser))
                {
                    NativeAdView.AdvertiserView.Visibility = ViewStates.Gone;
                }
                else
                {
                    ((TextView)NativeAdView.AdvertiserView).Text = nativeAd.Advertiser;
                    NativeAdView.AdvertiserView.Visibility       = ViewStates.Visible;
                }

                // This method tells the Google Mobile Ads SDK that you have finished populating your
                // native ad view with this native ad.
                NativeAdView.SetNativeAd(nativeAd);

                // Get the video controller for the ad. One will always be provided, even if the ad doesn't
                // have a video asset.
                VideoController vc = nativeAd.VideoController;

                // Updates the UI to say whether or not this ad has a video asset.
                if (vc.HasVideoContent)
                {
                    //"Video status: Ad contains a %.2f:1 video asset."

                    // Create a new VideoLifecycleCallbacks object and pass it to the VideoController. The
                    // VideoController will call methods on this object when events occur in the video
                    // lifecycle.
                    vc.SetVideoLifecycleCallbacks(new VideoController.VideoLifecycleCallbacks());
                }
                else
                {
                    //"Video status: Ad does not contain a video asset."
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Ejemplo n.º 8
0
        public void NativeAppInstallAdView(UnifiedNativeAd nativeAppInstallAd)
        {
            try
            {
                NativeAdView = (UnifiedNativeAdView)FindViewById(Resource.Id.nativeInstallAdView);

                VideoController videoController = nativeAppInstallAd.VideoController;
                videoController.SetVideoLifecycleCallbacks(new VideoController.VideoLifecycleCallbacks());
                NativeAdView.HeadlineView     = NativeAdView.FindViewById(Resource.Id.appinstall_headline);
                NativeAdView.BodyView         = NativeAdView.FindViewById(Resource.Id.appinstall_body);
                NativeAdView.CallToActionView = NativeAdView.FindViewById(Resource.Id.appinstall_call_to_action);
                NativeAdView.IconView         = NativeAdView.FindViewById(Resource.Id.appinstall_app_icon);
                NativeAdView.PriceView        = NativeAdView.FindViewById(Resource.Id.appinstall_price);
                NativeAdView.StarRatingView   = NativeAdView.FindViewById(Resource.Id.appinstall_stars);
                NativeAdView.StoreView        = NativeAdView.FindViewById(Resource.Id.appinstall_store);

                ((TextView)NativeAdView.HeadlineView).Text   = nativeAppInstallAd.Headline;
                ((TextView)NativeAdView.BodyView).Text       = nativeAppInstallAd.Body;
                ((Button)NativeAdView.CallToActionView).Text = nativeAppInstallAd.CallToAction;

                if (nativeAppInstallAd.Icon.Drawable != null)
                {
                    ((ImageView)NativeAdView.IconView).SetImageDrawable(nativeAppInstallAd.Icon.Drawable);
                }

                MediaView mediaView = (MediaView)NativeAdView.FindViewById(Resource.Id.appinstall_media);
                ImageView imageView = (ImageView)NativeAdView.FindViewById(Resource.Id.appinstall_image);
                if (videoController.HasVideoContent)
                {
                    NativeAdView.MediaView = (mediaView);
                    imageView.Visibility   = ViewStates.Gone;
                }
                else
                {
                    NativeAdView.ImageView = (imageView);
                    mediaView.Visibility   = ViewStates.Gone;
                    var images = nativeAppInstallAd.Images;
                    if (images != null && images.Count > 0)
                    {
                        imageView.SetImageDrawable(images[0].Drawable);
                    }
                }

                if (nativeAppInstallAd.Price == null)
                {
                    NativeAdView.PriceView.Visibility = ViewStates.Invisible;
                }
                else
                {
                    NativeAdView.PriceView.Visibility       = ViewStates.Visible;
                    ((TextView)NativeAdView.PriceView).Text = (nativeAppInstallAd.Price);
                }

                if (nativeAppInstallAd.Store == null)
                {
                    NativeAdView.StoreView.Visibility = ViewStates.Invisible;
                }
                else
                {
                    NativeAdView.StoreView.Visibility       = ViewStates.Visible;
                    ((TextView)NativeAdView.StoreView).Text = (nativeAppInstallAd.Store);
                }

                //if (nativeAppInstallAd.StarRating == null)
                //{
                //    NativeAdView.StarRatingView.Visibility = ViewStates.Gone;
                //}
                //else
                //{
                //    ((RatingBar) NativeAdView.StarRatingView).Rating = nativeAppInstallAd.StarRating.FloatValue;
                //    NativeAdView.StarRatingView.Visibility = ViewStates.Visible;
                //}

                NativeAdView.SetNativeAd(nativeAppInstallAd);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Ejemplo n.º 9
0
        public void NativeContentAdView(UnifiedNativeAd nativeAd)
        {
            try
            {
                NativeAdView = (UnifiedNativeAdView)FindViewById(Resource.Id.nativeAdView);

                // Set other ad assets.
                NativeAdView.HeadlineView     = NativeAdView.FindViewById(Resource.Id.contentad_headline);
                NativeAdView.BodyView         = NativeAdView.FindViewById(Resource.Id.contentad_body);
                NativeAdView.CallToActionView = NativeAdView.FindViewById(Resource.Id.contentad_call_to_action);
                NativeAdView.IconView         = NativeAdView.FindViewById(Resource.Id.contentad_logo);
                NativeAdView.AdvertiserView   = NativeAdView.FindViewById(Resource.Id.contentad_advertiser);
                NativeAdView.ImageView        = NativeAdView.FindViewById(Resource.Id.contentad_image);

                // The headline and mediaContent are guaranteed to be in every UnifiedNativeAd.
                ((TextView)NativeAdView.HeadlineView).Text = nativeAd.Headline;

                // These assets aren't guaranteed to be in every UnifiedNativeAd, so it's important to
                // check before trying to display them.
                if (string.IsNullOrEmpty(nativeAd.Body))
                {
                    NativeAdView.BodyView.Visibility = ViewStates.Gone;
                }
                else
                {
                    NativeAdView.BodyView.Visibility       = ViewStates.Visible;
                    ((TextView)NativeAdView.BodyView).Text = nativeAd.Body;
                }

                if (string.IsNullOrEmpty(nativeAd.CallToAction))
                {
                    NativeAdView.CallToActionView.Visibility = ViewStates.Gone;
                }
                else
                {
                    NativeAdView.CallToActionView.Visibility     = ViewStates.Visible;
                    ((Button)NativeAdView.CallToActionView).Text = nativeAd.CallToAction;
                }

                if (nativeAd.Icon == null)
                {
                    NativeAdView.IconView.Visibility = ViewStates.Gone;
                }
                else
                {
                    ((ImageView)NativeAdView.IconView).SetImageDrawable(nativeAd.Icon.Drawable);
                    NativeAdView.IconView.Visibility = ViewStates.Visible;
                }

                if (nativeAd.Images?.Count == 0)
                {
                    NativeAdView.IconView.Visibility = ViewStates.Gone;
                }
                else
                {
                    if (nativeAd.Images != null)
                    {
                        ((ImageView)NativeAdView.ImageView).SetImageDrawable(nativeAd.Images[0].Drawable);
                    }

                    NativeAdView.ImageView.Visibility = ViewStates.Visible;
                }

                if (string.IsNullOrEmpty(nativeAd.Advertiser))
                {
                    NativeAdView.AdvertiserView.Visibility = ViewStates.Gone;
                }
                else
                {
                    ((TextView)NativeAdView.AdvertiserView).Text = nativeAd.Advertiser;
                    NativeAdView.AdvertiserView.Visibility       = ViewStates.Visible;
                }

                // This method tells the Google Mobile Ads SDK that you have finished populating your
                // native ad view with this native ad.
                NativeAdView.SetNativeAd(nativeAd);

                // Get the video controller for the ad. One will always be provided, even if the ad doesn't
                // have a video asset.
                VideoController vc = nativeAd.VideoController;

                // Updates the UI to say whether or not this ad has a video asset.
                if (vc.HasVideoContent)
                {
                    //"Video status: Ad contains a %.2f:1 video asset."

                    // Create a new VideoLifecycleCallbacks object and pass it to the VideoController. The
                    // VideoController will call methods on this object when events occur in the video
                    // lifecycle.
                    vc.SetVideoLifecycleCallbacks(new VideoController.VideoLifecycleCallbacks());
                }
                else
                {
                    //"Video status: Ad does not contain a video asset."
                }
            }
            catch (Exception e)
            {
                Methods.DisplayReportResultTrack(e);
            }
        }
Ejemplo n.º 10
0
        private void populateUnifiedNativeAdView(UnifiedNativeAd nativeAd, UnifiedNativeAdView adView)
        {
            // Find View Ctrl
            primaryView   = adView.FindViewById <TextView>(Resource.Id.ad_primary);
            secondaryView = adView.FindViewById <TextView>(Resource.Id.ad_secondary);
            //tertiaryView = adView.FindViewById<TextView>(Resource.Id.ad_body);

            ratingBar         = adView.FindViewById <RatingBar>(Resource.Id.ad_rating);
            ratingBar.Enabled = false;

            callToActionView = adView.FindViewById <Android.Widget.Button>(Resource.Id.ad_call_to_action);
            iconView         = adView.FindViewById <ImageView>(Resource.Id.ad_icon);

            // Ad data
            string   store      = nativeAd.Store;
            string   advertiser = nativeAd.Advertiser;
            string   headline   = nativeAd.Headline;
            string   cta        = nativeAd.CallToAction;
            float    starRating = nativeAd.StarRating?.FloatValue() ?? 0.0f;
            Drawable icon       = nativeAd.Icon?.Drawable ?? null;
            Drawable image      = nativeAd.Images.Count > 0 ? nativeAd.Images[0].Drawable : null;

            // dynamic
            string secondaryText;

            // Set value in view
            adView.CallToActionView = callToActionView;
            adView.HeadlineView     = primaryView;

            secondaryView.Visibility = ViewStates.Visible;
            if (AdHasOnlyStore(nativeAd))
            {
                adView.StoreView = secondaryView;
                secondaryText    = store;
            }
            else if (!string.IsNullOrEmpty(advertiser))
            {
                adView.AdvertiserView = secondaryView;
                secondaryText         = advertiser;
            }
            else
            {
                secondaryText = "";
            }

            primaryView.Text = headline;

            // CallToActionView
            callToActionView.Text = cta;
            callToActionView.SetBackgroundColor(ButtonColor);

            //  Set the secondary view to be the star rating if available.
            if (starRating > 0)
            {
                secondaryView.Visibility = ViewStates.Gone;
                ratingBar.Visibility     = ViewStates.Visible;
                ratingBar.Max            = 5;
                ratingBar.Rating         = starRating;
                ratingBar.StepSize       = 0.1f;
                adView.StarRatingView    = ratingBar;
            }
            else
            {
                secondaryView.Text       = secondaryText;
                secondaryView.Visibility = ViewStates.Visible;
                ratingBar.Visibility     = ViewStates.Gone;
            }

            if (image != null)
            {
                iconView.Visibility = ViewStates.Visible;
                iconView.SetImageDrawable(image);
            }
            else if (icon != null)
            {
                iconView.Visibility = ViewStates.Visible;
                iconView.SetImageDrawable(icon);
            }
            else
            {
                iconView.Visibility = ViewStates.Gone;
            }

            adView.SetNativeAd(nativeAd);
        }