From b1b9717d95a9b25eba4268297dbc3c913825d33c Mon Sep 17 00:00:00 2001 From: Alexander Boriskov Date: Wed, 4 Mar 2020 20:57:59 +0300 Subject: [PATCH] [iOS] Changed NativeAd to NativeBannerAd in Facebook SDK --- .../Core/Ads/Facebook/FacebookBanner.swift | 14 ++++---- iphone/Maps/Core/Ads/Mopub/MPNativeAd+MWM.h | 9 ++--- iphone/Maps/Core/Ads/Mopub/MPNativeAd+MWM.m | 19 ++++++----- iphone/Maps/Core/Ads/Mopub/MopubBanner.swift | 2 +- iphone/Maps/UI/Ads/AdBanner.swift | 6 ++-- iphone/Maps/UI/Ads/AdBanner.xib | 34 +++++++++---------- partners_api/facebook_ads.cpp | 4 +-- partners_api/mopub_ads.cpp | 8 ++--- 8 files changed, 45 insertions(+), 51 deletions(-) diff --git a/iphone/Maps/Core/Ads/Facebook/FacebookBanner.swift b/iphone/Maps/Core/Ads/Facebook/FacebookBanner.swift index 3f8cd49819..7527943665 100644 --- a/iphone/Maps/Core/Ads/Facebook/FacebookBanner.swift +++ b/iphone/Maps/Core/Ads/Facebook/FacebookBanner.swift @@ -11,7 +11,7 @@ final class FacebookBanner: NSObject, Banner { fileprivate var failure: Banner.Failure! fileprivate var click: Banner.Click! - let nativeAd: FBNativeAd + let nativeAd: FBNativeBannerAd func reload(success: @escaping Banner.Success, failure: @escaping Banner.Failure, click: @escaping Click) { FBAdSettings.clearTestDevices() @@ -87,7 +87,7 @@ final class FacebookBanner: NSObject, Banner { } init(bannerID: String) { - nativeAd = FBNativeAd(placementID: bannerID) + nativeAd = FBNativeBannerAd(placementID: bannerID) super.init() nativeAd.delegate = self let center = NotificationCenter.default @@ -118,15 +118,15 @@ final class FacebookBanner: NSObject, Banner { } } -// MARK: FacebookBanner: FBNativeAdDelegate -extension FacebookBanner: FBNativeAdDelegate { +// MARK: FacebookBanner: FBNativeBannerAdDelegate +extension FacebookBanner: FBNativeBannerAdDelegate { - func nativeAdDidLoad(_ nativeAd: FBNativeAd) { + func nativeBannerAdDidLoad(_ nativeBannerAd: FBNativeBannerAd) { guard nativeAd === self.nativeAd else { return } success(self) } - func nativeAd(_ nativeAd: FBNativeAd, didFailWithError error: Error) { + func nativeBannerAd(_ nativeBannerAd: FBNativeBannerAd, didFailWithError error: Error) { guard nativeAd === self.nativeAd else { return } // https://developers.facebook.com/docs/audience-network/testing @@ -144,7 +144,7 @@ extension FacebookBanner: FBNativeAdDelegate { failure(type, event, params, e) } - func nativeAdDidClick(_ nativeAd: FBNativeAd) { + func nativeBannerAdDidClick(_ nativeBannerAd: FBNativeBannerAd) { guard nativeAd === self.nativeAd else { return } click(self) } diff --git a/iphone/Maps/Core/Ads/Mopub/MPNativeAd+MWM.h b/iphone/Maps/Core/Ads/Mopub/MPNativeAd+MWM.h index 9a6dff2341..ca383b82ed 100644 --- a/iphone/Maps/Core/Ads/Mopub/MPNativeAd+MWM.h +++ b/iphone/Maps/Core/Ads/Mopub/MPNativeAd+MWM.h @@ -3,18 +3,13 @@ #import "MPNativeView.h" @class FBNativeAd; +@class FBMediaView; @interface MPNativeAd (MWM) -- (void)setAdView:(UIView *)view actionButtons:(NSArray *)buttons; +- (void)setAdView:(UIView *)view iconView:(UIImageView *)iconImageView actionButtons:(NSArray *)buttons; - (void)unregister; @property(nonatomic, readonly) id adAdapter; @end - -@interface FacebookNativeAdAdapter () - -@property(nonatomic, readonly) FBNativeAd * fbNativeAd; - -@end diff --git a/iphone/Maps/Core/Ads/Mopub/MPNativeAd+MWM.m b/iphone/Maps/Core/Ads/Mopub/MPNativeAd+MWM.m index aee705f551..22d3f3ac67 100644 --- a/iphone/Maps/Core/Ads/Mopub/MPNativeAd+MWM.m +++ b/iphone/Maps/Core/Ads/Mopub/MPNativeAd+MWM.m @@ -11,13 +11,12 @@ - (void)willAttachToView:(UIView *)view withAdContentViews:(NSArray *)adContentViews; - (void)adViewTapped; - (void)nativeViewWillMoveToSuperview:(UIView *)superview; -- (UIViewController *)viewControllerForPresentingModalView; @end @implementation MPNativeAd (MWM) -- (void)setAdView:(UIView *)view actionButtons:(NSArray *)buttons +- (void)setAdView:(UIView *)view iconView:(UIImageView *)iconImageView actionButtons:(NSArray *)buttons { self.associatedView = (MPNativeView *)view; ((MWMAdBanner *)view).mpNativeAd = self; @@ -25,12 +24,14 @@ id adapter = self.adAdapter; if ([adapter isKindOfClass:[FacebookNativeAdAdapter class]]) { - FacebookNativeAdAdapter *fbAdapter = (FacebookNativeAdAdapter *)adapter; - [fbAdapter.fbNativeAd registerViewForInteraction:self.associatedView - mediaView:[[FBMediaView alloc] init] - iconView:Nil - viewController:[self viewControllerForPresentingModalView] - clickableViews:buttons]; + FacebookNativeAdAdapter *fbAdapter = (FacebookNativeAdAdapter *)adapter; + FBNativeBannerAd *fbNativeAd = (FBNativeBannerAd *)(fbAdapter.fbNativeAdBase); + if (fbNativeAd) { + [fbNativeAd registerViewForInteraction:self.associatedView + iconImageView:iconImageView + viewController:[MapViewController sharedController] + clickableViews:buttons]; + } } else { @@ -56,7 +57,7 @@ if ([adapter isKindOfClass:[FacebookNativeAdAdapter class]]) { FacebookNativeAdAdapter *fbAdapter = (FacebookNativeAdAdapter *)adapter; - [fbAdapter.fbNativeAd unregisterView]; + [fbAdapter.fbNativeAdBase unregisterView]; } } diff --git a/iphone/Maps/Core/Ads/Mopub/MopubBanner.swift b/iphone/Maps/Core/Ads/Mopub/MopubBanner.swift index d272176f54..fa4d4d7742 100644 --- a/iphone/Maps/Core/Ads/Mopub/MopubBanner.swift +++ b/iphone/Maps/Core/Ads/Mopub/MopubBanner.swift @@ -137,7 +137,7 @@ final class MopubBanner: NSObject, Banner { guard let nativeAd = nativeAd else { return nil } if nativeAd.adAdapter is FacebookNativeAdAdapter { - return (nativeAd.adAdapter as! FacebookNativeAdAdapter).fbNativeAd.adChoicesLinkURL + return (nativeAd.adAdapter as! FacebookNativeAdAdapter).fbNativeAdBase.adChoicesLinkURL } return URL(string: kPrivacyIconTapDestinationURL) diff --git a/iphone/Maps/UI/Ads/AdBanner.swift b/iphone/Maps/UI/Ads/AdBanner.swift index 80cd916ba0..827aa8a521 100644 --- a/iphone/Maps/UI/Ads/AdBanner.swift +++ b/iphone/Maps/UI/Ads/AdBanner.swift @@ -147,7 +147,7 @@ final class AdBanner: UITableViewCell { adCallToActionButtonDetailed.isHighlighted = highlighted; } - private func configFBBanner(ad: FBNativeAd) { + private func configFBBanner(ad: FBNativeBannerAd) { adType = .native DAAImageWidth.constant = adPrivacyImage.width; DAAImage.isHidden = false; @@ -159,7 +159,6 @@ final class AdBanner: UITableViewCell { adCallToActionButtons = [adCallToActionButtonCompact, adCallToActionButtonDetailed] } ad.registerView(forInteraction: self, - mediaView: FBMediaView(), iconImageView: adIconImageView, viewController: UIViewController.topViewController(), clickableViews: adCallToActionButtons) @@ -206,8 +205,7 @@ final class AdBanner: UITableViewCell { adCallToActionButtons = [adCallToActionButtonCompact, adCallToActionButtonDetailed] adCallToActionButtons.forEach { $0.setTitle(ad.ctaText, for: .normal) } } - mpNativeAd?.setAdView(self, actionButtons: adCallToActionButtons) - + mpNativeAd?.setAdView(self, iconView: adIconImageView, actionButtons: adCallToActionButtons) adTitleLabel.attributedText = attributedTitle(title: ad.title, indent: adPrivacyImage.width + DAAImageWidth.constant) adBodyLabel.text = ad.text diff --git a/iphone/Maps/UI/Ads/AdBanner.xib b/iphone/Maps/UI/Ads/AdBanner.xib index 4954b5f5ad..a36a484cc9 100644 --- a/iphone/Maps/UI/Ads/AdBanner.xib +++ b/iphone/Maps/UI/Ads/AdBanner.xib @@ -27,18 +27,20 @@ - - + + - - + + + + - + @@ -71,8 +73,8 @@ -