Commit 066578e7 by Demid Merzlyakov

IOS-16: fix ad events.

parent dabbae67
...@@ -146,7 +146,7 @@ public class AdView: UIView { ...@@ -146,7 +146,7 @@ public class AdView: UIView {
log.warning("failed to guess the top view controller.") log.warning("failed to guess the top view controller.")
return return
} }
bannerView = NativeBannerContainerView(adUnitId: placement.adUnitId, adType: adType, adLifeCycleTracker: adTracker, rootViewController: topViewController) bannerView = NativeBannerContainerView(placement: placement, adType: adType, adLifeCycleTracker: adTracker, rootViewController: topViewController)
if let bannerView = bannerView { if let bannerView = bannerView {
bannerView.loggingAlias = logName bannerView.loggingAlias = logName
......
...@@ -112,19 +112,19 @@ extension NativeAdItem: GADNativeAdDelegate { ...@@ -112,19 +112,19 @@ extension NativeAdItem: GADNativeAdDelegate {
extension NativeAdItem: GADBannerViewDelegate { extension NativeAdItem: GADBannerViewDelegate {
func bannerViewDidRecordImpression(_ bannerView: GADBannerView) { func bannerViewDidRecordImpression(_ bannerView: GADBannerView) {
log.info("Impression recorded (banner)") log.info("Impression recorded (banner)")
analytics(log: .ANALYTICS_AD_IMPRESSION) analytics(log: .ANALYTICS_AD_IMPRESSION, params: analyticsParams)
adLifeCycleTracker?.recordAdState(.adImpression) adLifeCycleTracker?.recordAdState(.adImpression)
} }
func bannerViewWillPresentScreen(_ bannerView: GADBannerView) { func bannerViewWillPresentScreen(_ bannerView: GADBannerView) {
log.info("Click recorded (will present screen)") log.info("Click recorded (will present screen)")
analytics(log: .ANALYTICS_AD_CLICKED) analytics(log: .ANALYTICS_AD_CLICKED, params: analyticsParams)
adLifeCycleTracker?.recordAdState(.adOpened) adLifeCycleTracker?.recordAdState(.adOpened)
} }
func adViewWillLeaveApplication(_ bannerView: GADBannerView) { func adViewWillLeaveApplication(_ bannerView: GADBannerView) {
log.info("Click recorded (will leave application)") log.info("Click recorded (will leave application)")
analytics(log: .ANALYTICS_AD_CLICKED) analytics(log: .ANALYTICS_AD_CLICKED, params: analyticsParams)
adLifeCycleTracker?.recordAdState(.adLeftApplication) adLifeCycleTracker?.recordAdState(.adLeftApplication)
} }
} }
...@@ -22,6 +22,7 @@ protocol NativeBannerContainerViewDelegate: AnyObject { ...@@ -22,6 +22,7 @@ protocol NativeBannerContainerViewDelegate: AnyObject {
class NativeBannerContainerView: UIView { class NativeBannerContainerView: UIView {
private let log = AdLogger(componentName: "NativeBannerContainerView") private let log = AdLogger(componentName: "NativeBannerContainerView")
private let placement: AdPlacement
private var adLoader: NativeAdLoader private var adLoader: NativeAdLoader
private let adType: AdType private let adType: AdType
private var adLifeCycleTracker: AdLifeCycleTrackable? private var adLifeCycleTracker: AdLifeCycleTrackable?
...@@ -33,12 +34,13 @@ class NativeBannerContainerView: UIView { ...@@ -33,12 +34,13 @@ class NativeBannerContainerView: UIView {
} }
} }
init(adUnitId: String, init(placement: AdPlacement,
adType: AdType, adType: AdType,
adLifeCycleTracker: AdLifeCycleTrackable? = nil, adLifeCycleTracker: AdLifeCycleTrackable? = nil,
rootViewController: UIViewController) { rootViewController: UIViewController) {
self.placement = placement
self.adType = adType self.adType = adType
self.adLoader = NativeAdLoader(adUnitId: adUnitId, rootViewController: rootViewController, adTypes: [.native, .gamBanner]) self.adLoader = NativeAdLoader(adUnitId: placement.adUnitId, rootViewController: rootViewController, adTypes: [.native, .gamBanner])
self.adLifeCycleTracker = adLifeCycleTracker self.adLifeCycleTracker = adLifeCycleTracker
super.init(frame: .zero) super.init(frame: .zero)
self.adLoader.delegate = self self.adLoader.delegate = self
...@@ -60,6 +62,13 @@ class NativeBannerContainerView: UIView { ...@@ -60,6 +62,13 @@ class NativeBannerContainerView: UIView {
log.componentName = "NativeBannerContainerView" log.componentName = "NativeBannerContainerView"
} }
} }
private var analyticsParams: [AnalyticsParameter: Any] {
return [
.ANALYTICS_KEY_PLACEMENT_NAME: placement.name,
.ANALYTICS_KEY_AD_UNIT_ID: placement.adUnitId
]
}
} }
private extension NativeBannerContainerView { private extension NativeBannerContainerView {
...@@ -112,23 +121,29 @@ extension NativeBannerContainerView: GADBannerViewDelegate { ...@@ -112,23 +121,29 @@ extension NativeBannerContainerView: GADBannerViewDelegate {
func bannerViewDidRecordImpression(_ bannerView: GADBannerView) { func bannerViewDidRecordImpression(_ bannerView: GADBannerView) {
log.info("Impression") log.info("Impression")
analytics(log: .ANALYTICS_AD_IMPRESSION) var params = analyticsParams
let adNetworkName = bannerView.responseInfo?.adNetworkClassName ?? "Ad Network class name not found"
params[.ANALYTICS_KEY_AD_ADAPTER] = adNetworkName
analytics(log: .ANALYTICS_AD_IMPRESSION, params: params)
adLifeCycleTracker?.recordAdState(.adImpression) adLifeCycleTracker?.recordAdState(.adImpression)
} }
func bannerViewWillPresentScreen(_ bannerView: GADBannerView) { func bannerViewWillPresentScreen(_ bannerView: GADBannerView) {
log.info("Click (will present screen)") log.info("Click (will present screen)")
analytics(log: .ANALYTICS_AD_CLICKED) analytics(log: .ANALYTICS_AD_CLICKED, params: analyticsParams)
adLifeCycleTracker?.recordAdState(.adOpened) adLifeCycleTracker?.recordAdState(.adOpened)
} }
func adViewWillLeaveApplication(_ bannerView: GADBannerView) { func adViewWillLeaveApplication(_ bannerView: GADBannerView) {
log.info("Click (will leave application)") log.info("Click (will leave application)")
analytics(log: .ANALYTICS_AD_CLICKED) analytics(log: .ANALYTICS_AD_CLICKED, params: analyticsParams)
adLifeCycleTracker?.recordAdState(.adLeftApplication) adLifeCycleTracker?.recordAdState(.adLeftApplication)
} }
func bannerViewDidRecordClick(_ bannerView: GADBannerView) { func bannerViewDidRecordClick(_ bannerView: GADBannerView) {
log.info("Click")
analytics(log: .ANALYTICS_AD_CLICKED, params: analyticsParams)
adLifeCycleTracker?.recordAdState(.adClicked) adLifeCycleTracker?.recordAdState(.adClicked)
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment