| // | 
| //  GADMediationAdapter.h | 
| //  Google Mobile Ads SDK | 
| // | 
| //  Copyright 2018 Google LLC. All rights reserved. | 
| // | 
|   | 
| #import <GoogleMobileAds/Mediation/GADMediationAdEventDelegate.h> | 
| #import <GoogleMobileAds/Mediation/GADMediationAppOpenAd.h> | 
| #import <GoogleMobileAds/Mediation/GADMediationBannerAd.h> | 
| #import <GoogleMobileAds/Mediation/GADMediationInterstitialAd.h> | 
| #import <GoogleMobileAds/Mediation/GADMediationNativeAd.h> | 
| #import <GoogleMobileAds/Mediation/GADMediationRewardedAd.h> | 
| #import <GoogleMobileAds/Mediation/GADMediationServerConfiguration.h> | 
| #import <GoogleMobileAds/Mediation/GADVersionNumber.h> | 
| #import <UIKit/UIKit.h> | 
|   | 
| /// Called by the adapter after loading the banner ad or encountering an error. Returns an ad | 
| /// event object to send ad events to the Google Mobile Ads SDK. The block returns nil if a delegate | 
| /// couldn't be created or if the block has already been called. | 
| typedef id<GADMediationBannerAdEventDelegate> _Nullable (^GADMediationBannerLoadCompletionHandler)( | 
|     _Nullable id<GADMediationBannerAd> ad, NSError *_Nullable error); | 
|   | 
| /// Called by the adapter after loading the interscroller ad or encountering an error. Returns an ad | 
| /// event object to send ad events to the Google Mobile Ads SDK. The block returns nil if a delegate | 
| /// couldn't be created or if the block has already been called. | 
| typedef id<GADMediationBannerAdEventDelegate> _Nullable ( | 
|     ^GADMediationInterscrollerAdLoadCompletionHandler)(_Nullable id<GADMediationInterscrollerAd> ad, | 
|                                                        NSError *_Nullable error); | 
|   | 
| /// Called by the adapter after loading the interstitial ad or encountering an error. Returns an | 
| /// ad event delegate to send ad events to the Google Mobile Ads SDK. The block returns nil if a | 
| /// delegate couldn't be created or if the block has already been called. | 
| typedef id<GADMediationInterstitialAdEventDelegate> _Nullable ( | 
|     ^GADMediationInterstitialLoadCompletionHandler)(_Nullable id<GADMediationInterstitialAd> ad, | 
|                                                     NSError *_Nullable error); | 
|   | 
| /// Called by the adapter after loading the native ad or encountering an error. Returns an ad | 
| /// event delegate to send ad events to the Google Mobile Ads SDK. The block returns nil if a | 
| /// delegate couldn't be created or if the block has already been called. | 
| typedef id<GADMediationNativeAdEventDelegate> _Nullable (^GADMediationNativeLoadCompletionHandler)( | 
|     _Nullable id<GADMediationNativeAd> ad, NSError *_Nullable error); | 
|   | 
| /// Called by the adapter after loading the rewarded ad or encountering an error. Returns an ad | 
| /// event delegate to send ad events to the Google Mobile Ads SDK. The block returns nil if a | 
| /// delegate couldn't be created or if the block has already been called. | 
| typedef id<GADMediationRewardedAdEventDelegate> _Nullable ( | 
|     ^GADMediationRewardedLoadCompletionHandler)(_Nullable id<GADMediationRewardedAd> ad, | 
|                                                 NSError *_Nullable error); | 
|   | 
| /// Called by the adapter after loading the app open ad or encountering an error. Returns an ad | 
| /// event delegate to send ad events to the Google Mobile Ads SDK. The block returns nil if a | 
| /// delegate couldn't be created or if the block has already been called. | 
| typedef id<GADMediationAppOpenAdEventDelegate> _Nullable ( | 
|     ^GADMediationAppOpenLoadCompletionHandler)(_Nullable id<GADMediationAppOpenAd> ad, | 
|                                                NSError *_Nullable error); | 
| /// Executes when adapter set up completes. | 
| typedef void (^GADMediationAdapterSetUpCompletionBlock)(NSError *_Nullable error); | 
|   | 
| @protocol GADAdNetworkExtras; | 
|   | 
| /// Receives messages and requests from the Google Mobile Ads SDK. Provides GMA to 3P SDK | 
| /// communication. | 
| /// | 
| /// Adapters are initialized on a background queue and should avoid using the main queue until | 
| /// load time. | 
| @protocol GADMediationAdapter <NSObject> | 
| /// Returns the adapter version. | 
| + (GADVersionNumber)adapterVersion; | 
|   | 
| /// Returns the ad SDK version. | 
| + (GADVersionNumber)adSDKVersion; | 
|   | 
| /// The extras class that is used to specify additional parameters for a request to this ad network. | 
| /// Returns Nil if the network doesn't have publisher provided extras. | 
| + (nullable Class<GADAdNetworkExtras>)networkExtrasClass; | 
|   | 
| /// Returns an initialized mediation adapter. | 
| - (nonnull instancetype)init; | 
|   | 
| @optional | 
|   | 
| /// Tells the adapter to set up its underlying ad network SDK and perform any necessary prefetching | 
| /// or configuration work. The adapter must call completionHandler once the adapter can service ad | 
| /// requests, or if it encounters an error while setting up. | 
| + (void)setUpWithConfiguration:(nonnull GADMediationServerConfiguration *)configuration | 
|              completionHandler:(nonnull GADMediationAdapterSetUpCompletionBlock)completionHandler; | 
|   | 
| /// Asks the adapter to load a banner ad with the provided ad configuration. The adapter must call | 
| /// back completionHandler with the loaded ad, or it may call back with an error. This method is | 
| /// called on the main thread, and completionHandler must be called back on the main thread. | 
| - (void)loadBannerForAdConfiguration:(nonnull GADMediationBannerAdConfiguration *)adConfiguration | 
|                    completionHandler: | 
|                        (nonnull GADMediationBannerLoadCompletionHandler)completionHandler; | 
|   | 
| /// Asks the adapter to load an interscroller ad with the provided ad configuration. The adapter | 
| /// must call back completionHandler with the loaded ad, or it may call back with an error. This | 
| /// method is called on the main thread, and completionHandler must be called back on the main | 
| /// thread. | 
| - (void)loadInterscrollerAdForAdConfiguration: | 
|             (nonnull GADMediationBannerAdConfiguration *)adConfiguration | 
|                             completionHandler: | 
|                                 (nonnull GADMediationInterscrollerAdLoadCompletionHandler) | 
|                                     completionHandler; | 
|   | 
| /// Asks the adapter to load an interstitial ad with the provided ad configuration. The adapter | 
| /// must call back completionHandler with the loaded ad, or it may call back with an error. This | 
| /// method is called on the main thread, and completionHandler must be called back on the main | 
| /// thread. | 
| - (void)loadInterstitialForAdConfiguration: | 
|             (nonnull GADMediationInterstitialAdConfiguration *)adConfiguration | 
|                          completionHandler:(nonnull GADMediationInterstitialLoadCompletionHandler) | 
|                                                completionHandler; | 
|   | 
| /// Asks the adapter to load a native ad with the provided ad configuration. The adapter must call | 
| /// back completionHandler with the loaded ad, or it may call back with an error. This method is | 
| /// called on the main thread, and completionHandler must be called back on the main thread. | 
| - (void)loadNativeAdForAdConfiguration:(nonnull GADMediationNativeAdConfiguration *)adConfiguration | 
|                      completionHandler: | 
|                          (nonnull GADMediationNativeLoadCompletionHandler)completionHandler; | 
|   | 
| /// Asks the adapter to load a rewarded ad with the provided ad configuration. The adapter must | 
| /// call back completionHandler with the loaded ad, or it may call back with an error. This method | 
| /// is called on the main thread, and completionHandler must be called back on the main thread. | 
| - (void)loadRewardedAdForAdConfiguration: | 
|             (nonnull GADMediationRewardedAdConfiguration *)adConfiguration | 
|                        completionHandler: | 
|                            (nonnull GADMediationRewardedLoadCompletionHandler)completionHandler; | 
|   | 
| /// Asks the adapter to load a rewarded interstitial ad with the provided ad configuration. The | 
| /// adapter must call back completionHandler with the loaded ad, or it may call back with an error. | 
| /// This method is called on the main thread, and completionHandler must be called back on the main | 
| /// thread. | 
| - (void)loadRewardedInterstitialAdForAdConfiguration: | 
|             (nonnull GADMediationRewardedAdConfiguration *)adConfiguration | 
|                                    completionHandler: | 
|                                        (nonnull GADMediationRewardedLoadCompletionHandler) | 
|                                            completionHandler; | 
|   | 
| /// Asks the adapter to load an app open ad with the provided ad configuration. The | 
| /// adapter must call back completionHandler with the loaded ad, or it may call back with an error. | 
| /// This method is called on the main thread, and completionHandler must be called back on the main | 
| /// thread. | 
| - (void)loadAppOpenAdForAdConfiguration: | 
|             (nonnull GADMediationAppOpenAdConfiguration *)adConfiguration | 
|                       completionHandler: | 
|                           (nonnull GADMediationAppOpenLoadCompletionHandler)completionHandler; | 
| @end |