-
Notifications
You must be signed in to change notification settings - Fork 70
/
ALGoogleAdViewDelegate.m
95 lines (80 loc) · 3.02 KB
/
ALGoogleAdViewDelegate.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
//
// ALGoogleAdViewDelegate.m
// AppLovin MAX Google AdMob Adapter
//
// Created by Thomas So on 7/21/22.
// Copyright © 2022 AppLovin. All rights reserved.
//
#import "ALGoogleAdViewDelegate.h"
@interface ALGoogleAdViewDelegate ()
@property (nonatomic, weak) ALGoogleMediationAdapter *parentAdapter;
@property (nonatomic, weak) MAAdFormat *adFormat;
@property (nonatomic, strong) id<MAAdViewAdapterDelegate> delegate;
@end
@implementation ALGoogleAdViewDelegate
- (instancetype)initWithParentAdapter:(ALGoogleMediationAdapter *)parentAdapter
adFormat:(MAAdFormat *)adFormat
andNotify:(id<MAAdViewAdapterDelegate>)delegate
{
self = [super init];
if ( self )
{
self.parentAdapter = parentAdapter;
self.adFormat = adFormat;
self.delegate = delegate;
}
return self;
}
- (void)bannerViewDidReceiveAd:(GADBannerView *)bannerView
{
[self.parentAdapter log: @"%@ ad loaded: %@", self.adFormat.label, bannerView.adUnitID];
if ( ALSdk.versionCode >= 6150000 )
{
NSMutableDictionary *extraInfo = [NSMutableDictionary dictionaryWithCapacity: 3];
NSString *responseId = bannerView.responseInfo.responseIdentifier;
if ( [responseId al_isValidString] )
{
extraInfo[@"creative_id"] = responseId;
}
CGSize adSize = bannerView.adSize.size;
if ( !CGSizeEqualToSize(CGSizeZero, adSize) )
{
extraInfo[@"ad_width"] = @(adSize.width);
extraInfo[@"ad_height"] = @(adSize.height);
}
[self.delegate performSelector: @selector(didLoadAdForAdView:withExtraInfo:)
withObject: bannerView
withObject: extraInfo];
}
else
{
[self.delegate didLoadAdForAdView: bannerView];
}
}
- (void)bannerView:(GADBannerView *)bannerView didFailToReceiveAdWithError:(NSError *)error
{
MAAdapterError *adapterError = [ALGoogleMediationAdapter toMaxError: error];
[self.parentAdapter log: @"%@ ad (%@) failed to load with error: %@", self.adFormat.label, bannerView.adUnitID, adapterError];
[self.delegate didFailToLoadAdViewAdWithError: adapterError];
}
- (void)bannerViewDidRecordImpression:(GADBannerView *)bannerView
{
[self.parentAdapter log: @"%@ ad shown: %@", self.adFormat.label, bannerView.adUnitID];
[self.delegate didDisplayAdViewAd];
}
- (void)bannerViewDidRecordClick:(GADBannerView *)bannerView
{
[self.parentAdapter log: @"%@ ad clicked: %@", self.adFormat.label, bannerView.adUnitID];
[self.delegate didClickAdViewAd];
}
- (void)bannerViewWillPresentScreen:(GADBannerView *)bannerView
{
[self.parentAdapter log: @"%@ ad will present: %@", self.adFormat.label, bannerView.adUnitID];
[self.delegate didExpandAdViewAd];
}
- (void)bannerViewDidDismissScreen:(GADBannerView *)bannerView
{
[self.parentAdapter log: @"%@ ad collapsed: %@", self.adFormat.label, bannerView.adUnitID];
[self.delegate didCollapseAdViewAd];
}
@end