lpw
2024-06-24 002bd9b5df01426b7734f9ca42b61112a6d0a254
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
//
//  GADMAdNetworkAdapterProtocol.h
//  Google Mobile Ads SDK
//
//  Copyright 2011 Google. All rights reserved.
//
 
#import <GoogleMobileAds/GADAdLoader.h>
#import <GoogleMobileAds/GADAdSize.h>
#import <GoogleMobileAds/Mediation/GADMAdNetworkConnectorProtocol.h>
#import <UIKit/UIKit.h>
 
/// Subclasses should prefix their name with "GADMAdapter" example: GADMAdapterGoogleAdMobAds
#define GADMAdapterClassNamePrefix @"GADMAdapter"
 
/// Ad network adapter protocol.
@protocol GADMAdNetworkAdapter <NSObject>
 
/// Returns a version string for the adapter. It can be any string that uniquely identifies the
/// adapter's version. For example, "1.0", or a date such as "20110915".
+ (NSString *)adapterVersion;
 
/// Returns the extras class that is used by publishers to provide additional parameters to this
/// adapter. Returns Nil if the adapter doesn't have extra publisher provided settings.
+ (Class<GADAdNetworkExtras>)networkExtrasClass;
 
/// Designated initializer. Adapters can and should store a weak reference to the connector.
/// However, adapters must not keep a strong reference to the connector, as doing so creates a
/// reference cycle and abandoned memory.
- (instancetype)initWithGADMAdNetworkConnector:(id<GADMAdNetworkConnector>)connector;
 
/// Asks the adapter to initiate an asynchronous banner ad request. The adapter may act as a
/// delegate to your SDK to listen to callbacks. If your SDK doesn't support the given ad size, or
/// doesn't support banner ads, call adapter:didFailAd: on the connector.
- (void)getBannerWithSize:(GADAdSize)adSize;
 
/// Asks the adapter to initiate an asynchronous interstitial ad request. The adapter may act as a
/// delegate to your SDK to listen to callbacks. If your SDK doesn't support interstitials, call
/// adapter:didFailInterstitial: on the connector.
- (void)getInterstitial;
 
/// When called, the adapter must remove strong references to itself (e.g., delegate properties and
/// notification observers). You should also call this method in your adapter dealloc to prevent
/// your SDK from interacting with the deallocated adapter. This function may be called multiple
/// times.
- (void)stopBeingDelegate;
 
/// Presents an interstitial using the supplied UIViewController, by calling
/// presentViewController:animated:completion:.
///
/// Your interstitial should not immediately present itself when it is received. Instead, you should
/// wait until this method is called on your adapter to present the interstitial.
///
/// The adapter must call adapterWillPresentInterstitial: on the connector when the interstitial is
/// about to be presented, and adapterWillDismissInterstitial: and adapterDidDismissInterstitial:
/// when the interstitial is being dismissed.
- (void)presentInterstitialFromRootViewController:(UIViewController *)rootViewController;
 
@optional
 
/// Asks the adapter to initiate an asynchronous native ad request. |adTypes| contains the list of
/// native ad types requested. See GADAdLoaderAdTypes.h for available ad types. |options| contains
/// additional options configured by the publisher. See GADNativeAdImageAdLoaderOptions.h for
/// available image options.
///
/// On ad load success or failure, call adapter:didReceiveNativeAdDataSource:mediationDelegate or
/// adapter:didFailAd: on the connector.
- (void)getNativeAdWithAdTypes:(NSArray<GADAdLoaderAdType> *)adTypes
                       options:(NSArray<GADAdLoaderOptions *> *)options;
 
/// Indicates if the adapter handles user clicks. If the adapter returns YES, it must handle user
/// clicks and notify the Google Mobile Ads SDK of clicks using
/// +[GADMediatedNativeAdNotificationSource mediatedNativeAdDidRecordClick:]. If the adapter returns
/// NO, the Google Mobile Ads SDK handles user clicks and notifies the adapter of clicks using
/// -[GADMediatedUnifiedNativeAd didRecordClickOnAssetWithName:view:viewController:].
- (BOOL)handlesUserClicks;
 
/// Indicates if the adapter handles user impressions tracking. If the adapter returns YES, the
/// Google Mobile Ads SDK will not track user impressions and the adapter must notify the
/// Google Mobile Ads SDK of impressions using +[GADMediatedNativeAdNotificationSource
/// mediatedNativeAdDidRecordImpression:]. If the adapter returns NO, the Google Mobile Ads SDK
/// tracks user impressions and notifies the adapter of impressions using
/// -[GADMediatedUnifiedNativeAd didRecordImpression].
- (BOOL)handlesUserImpressions;
 
/// If your ad network handles multiple ad sizes for the same banner ad, implement this method to be
/// informed of banner size updates. Ad sizes typically change between kGADAdSizeSmartBannerPortrait
/// and kGADAdSizeSmartBannerLandscape. If this method is not implemented, the ad is removed from
/// the user interface when the size changes.
- (void)changeAdSizeTo:(GADAdSize)adSize;
 
@end