# Protocols

The following protocols are available globally.
- `


  ### [GADAdLoaderDelegate](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADAdLoaderDelegate)


  ` Base ad loader delegate protocol. Ad types provide extended protocols that declare methods to
  handle successful ad loads.

  #### Declaration

  Swift

      protocol AdLoaderDelegate : NSObjectProtocol

  Objective-C

      @protocol GADAdLoaderDelegate <NSObject>

- `


  ### [GADAdMetadataProvider](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADAdMetadataProvider)


  ` Protocol for ads that provide ad metadata.

  #### Declaration

  Swift

      protocol AdMetadataProvider : NSObjectProtocol

  Objective-C

      @protocol GADAdMetadataProvider <NSObject>

- `


  ### [GADAdMetadataDelegate](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADAdMetadataDelegate)


  ` Delegate protocol for receiving ad metadata change messages from a GADAdMetadataProvider.

  #### Declaration

  Swift

      protocol AdMetadataDelegate : NSObjectProtocol

  Objective-C

      @protocol GADAdMetadataDelegate <NSObject>

- `


  ### [GADAdNetworkExtras](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols#/c:objc(pl)GADAdNetworkExtras)


  ` An object implementing this protocol contains information set by the publisher on the client
  device for a particular ad network.

  Ad networks should create an 'extras' object implementing this protocol for their publishers to
  use.

  #### Declaration

  Swift

      protocol AdNetworkExtras : NSObjectProtocol

  Objective-C

      @protocol GADAdNetworkExtras <NSObject>

- `


  ### [GADAdSizeDelegate](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADAdSizeDelegate)


  ` The class implementing this protocol will be notified when the GADBannerView's ad content
  changes size. Any views that may be affected by the banner size change will have time to adjust.

  #### Declaration

  Swift

      protocol AdSizeDelegate : NSObjectProtocol

  Objective-C

      @protocol GADAdSizeDelegate <NSObject>

- `


  ### [GADAppEventDelegate](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADAppEventDelegate)


  ` Implement your app event within these methods. The delegate will be notified when the SDK
  receives an app event message from the ad.

  #### Declaration

  Swift

      protocol AppEventDelegate : NSObjectProtocol

  Objective-C

      @protocol GADAppEventDelegate <NSObject>

- `


  ### [GADAudioVideoManagerDelegate](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADAudioVideoManagerDelegate)


  ` A set of methods to inform the delegate of audio video manager events.

  #### Declaration

  Swift

      protocol AudioVideoManagerDelegate : NSObjectProtocol

  Objective-C

      @protocol GADAudioVideoManagerDelegate <NSObject>

- `


  ### [GADBannerViewDelegate](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADBannerViewDelegate)


  ` Delegate methods for receiving GADBannerView state change messages such as ad request status
  and ad click lifecycle.

  #### Declaration

  Swift

      protocol BannerViewDelegate : NSObjectProtocol

  Objective-C

      @protocol GADBannerViewDelegate <NSObject>

- `


  ### [GADCustomEventBanner](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADCustomEventBanner)


  ` Deprecated

  Use GADMediationBannerAd and GADMediationAdapter instead.
  The banner custom event protocol. Your banner custom event handler must implement this protocol.

  #### Declaration

  Swift

      protocol GADCustomEventBanner : NSObjectProtocol

  Objective-C

      @protocol GADCustomEventBanner <NSObject>

- `


  ### [GADCustomEventBannerDelegate](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADCustomEventBannerDelegate)


  ` Deprecated

  Use GADMediationBannerAdEventDelegate instead.
  Call back to this delegate in your custom event. You must call customEventBanner:didReceiveAd:
  when there is an ad to show, or customEventBanner:didFailAd: when there is no ad to show.
  Otherwise, if enough time passed (several seconds) after the SDK called the requestBannerAd:
  method of your custom event, the mediation SDK will consider the request timed out, and move on
  to the next ad network.

  #### Declaration

  Swift

      protocol GADCustomEventBannerDelegate : NSObjectProtocol

  Objective-C

      @protocol GADCustomEventBannerDelegate <NSObject>

- `


  ### [GADCustomEventInterstitial](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADCustomEventInterstitial)


  ` Deprecated

  Use GADMediationInterstitialAd and GADMediationAdapter instead.
  The interstitial custom event protocol. Your interstitial custom event handler must implement
  this protocol.

  #### Declaration

  Swift

      protocol GADCustomEventInterstitial : NSObjectProtocol

  Objective-C

      @protocol GADCustomEventInterstitial <NSObject>

- `


  ### [GADCustomEventInterstitialDelegate](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADCustomEventInterstitialDelegate)


  ` Deprecated

  Use GADMediationInterstitialAdEventDelegate instead.
  Call back to this delegate in your custom event. You must call
  customEventInterstitialDidReceiveAd: when there is an ad to show, or
  customEventInterstitial:didFailAd: when there is no ad to show. Otherwise, if enough time passed
  (several seconds) after the SDK called the requestInterstitialAdWithParameter: method of your
  custom event, the mediation SDK will consider the request timed out, and move on to the next ad
  network.

  #### Declaration

  Swift

      protocol GADCustomEventInterstitialDelegate : NSObjectProtocol

  Objective-C

      @protocol GADCustomEventInterstitialDelegate <NSObject>

- `


  ### [GADCustomEventNativeAd](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADCustomEventNativeAd)


  ` Deprecated

  Use GADMediationNativeAd and GADMediationAdapter instead.
  Native ad custom event protocol. Your native ad custom event handler class must conform to this
  protocol.

  #### Declaration

  Swift

      protocol GADCustomEventNativeAd : NSObjectProtocol

  Objective-C

      @protocol GADCustomEventNativeAd <NSObject>

- `


  ### [GADCustomEventNativeAdDelegate](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADCustomEventNativeAdDelegate)


  ` Deprecated

  Use GADMediationNativeAdEventDelegate instead.
  The delegate of the GADCustomEventNativeAd object must adopt the GADCustomEventNativeAdDelegate
  protocol. Methods in this protocol are used for native ad's custom event communication with the
  Google Mobile Ads SDK.

  #### Declaration

  Swift

      protocol GADCustomEventNativeAdDelegate : NSObjectProtocol

  Objective-C

      @protocol GADCustomEventNativeAdDelegate <NSObject>

[## Loading Protocol](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols#/Loading-Protocol)

- `


  ### [GADCustomNativeAdLoaderDelegate](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADCustomNativeAdLoaderDelegate)


  ` The delegate of a GADAdLoader object implements this protocol to receive
  GADCustomNativeAd ads.

  #### Declaration

  Swift

      protocol CustomNativeAdLoaderDelegate : AdLoaderDelegate

  Objective-C

      @protocol GADCustomNativeAdLoaderDelegate <https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADAdLoaderDelegate>

- `


  ### [GADCustomNativeAdDelegate](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADCustomNativeAdDelegate)


  ` Identifies native ad assets.

  #### Declaration

  Swift

      protocol CustomNativeAdDelegate : NSObjectProtocol

  Objective-C

      @protocol GADCustomNativeAdDelegate <NSObject>

- `


  ### [GADDebugOptionsViewControllerDelegate](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADDebugOptionsViewControllerDelegate)


  ` Delegate for the GADDebugOptionsViewController.

  #### Declaration

  Swift

      protocol DebugOptionsViewControllerDelegate : NSObjectProtocol

  Objective-C

      @protocol GADDebugOptionsViewControllerDelegate <NSObject>

- `


  ### [GADFullScreenPresentingAd](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADFullScreenPresentingAd)


  ` Protocol for ads that present full screen content.

  #### Declaration

  Swift

      protocol FullScreenPresentingAd : NSObjectProtocol

  Objective-C

      @protocol GADFullScreenPresentingAd <NSObject>

- `


  ### [GADFullScreenContentDelegate](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADFullScreenContentDelegate)


  ` Delegate methods for receiving notifications about presentation and dismissal of full screen
  content. Full screen content covers your application's content. The delegate may want to pause
  animations or time sensitive interactions. Full screen content may be presented in the following
  cases:
  1. A full screen ad is presented.
  2. An ad interaction opens full screen content.

  #### Declaration

  Swift

      protocol FullScreenContentDelegate : NSObjectProtocol

  Objective-C

      @protocol GADFullScreenContentDelegate <NSObject>

[## Protocol and constants](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols#/Protocol-and-constants)

- `


  ### [GADNativeAdLoaderDelegate](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADNativeAdLoaderDelegate)


  ` The delegate of a GADAdLoader object implements this protocol to receive GADNativeAd ads.

  #### Declaration

  Swift

      protocol NativeAdLoaderDelegate : AdLoaderDelegate

  Objective-C

      @protocol GADNativeAdLoaderDelegate <https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADAdLoaderDelegate>

- `


  ### [GADNativeAdDelegate](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADNativeAdDelegate)


  ` Identifies native ad assets.

  #### Declaration

  Swift

      protocol NativeAdDelegate : NSObjectProtocol

  Objective-C

      @protocol GADNativeAdDelegate <NSObject>

- `


  ### [GADNativeAdUnconfirmedClickDelegate](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADNativeAdUnconfirmedClickDelegate)


  ` Delegate methods for handling native ad unconfirmed clicks.

  #### Declaration

  Swift

      protocol NativeAdUnconfirmedClickDelegate : NSObjectProtocol

  Objective-C

      @protocol GADNativeAdUnconfirmedClickDelegate <NSObject>

- `


  ### [GADVideoControllerDelegate](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADVideoControllerDelegate)


  ` The GADVideoControllerDelegate protocol defines methods that are called by the video controller
  object in response to the video events that occurred throughout the lifetime of the video
  rendered by an ad.

  #### Declaration

  Swift

      protocol VideoControllerDelegate : NSObjectProtocol

  Objective-C

      @protocol GADVideoControllerDelegate <NSObject>

- `


  ### [GAMBannerAdLoaderDelegate](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GAMBannerAdLoaderDelegate)


  ` The delegate of a GADAdLoader object must conform to this protocol to receive GAMBannerViews.

  #### Declaration

  Swift

      protocol AdManagerBannerAdLoaderDelegate : AdLoaderDelegate

  Objective-C

      @protocol GAMBannerAdLoaderDelegate <https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADAdLoaderDelegate>

- `


  ### [GADMAdNetworkAdapter](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADMAdNetworkAdapter)


  ` Ad network adapter protocol.

  #### Declaration

  Swift

      protocol MediationAdNetworkAdapter : NSObjectProtocol

  Objective-C

      @protocol GADMAdNetworkAdapter <NSObject>

- `


  ### [GADMAdNetworkConnector](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADMAdNetworkConnector)


  ` Ad network adapters interact with the mediation SDK using an object that implements the
  GADMAdNetworkConnector protocol. The connector object can be used to obtain necessary
  information for ad requests, and to call back to the mediation SDK on ad request returns and
  user interactions.

  #### Declaration

  Swift

      protocol MediationAdNetworkConnector : MediationAdRequest

  Objective-C

      @protocol GADMAdNetworkConnector <https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADMediationAdRequest>

- `


  ### [GADMediatedUnifiedNativeAd](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADMediatedUnifiedNativeAd)


  ` Provides methods used for constructing native ads. The adapter must return an object conforming
  to this protocol for native ad requests.

  #### Declaration

  Swift

      protocol MediatedUnifiedNativeAd : NSObjectProtocol

  Objective-C

      @protocol GADMediatedUnifiedNativeAd <NSObject>

- `


  ### [GADMediationAd](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols#/c:objc(pl)GADMediationAd)


  ` Rendered ad. Objects conforming to this protocol are created by the adapter and returned to
  the Google Mobile Ads SDK through the adapter's render method completion handler.

  #### Declaration

  Swift

      protocol MediationAd : NSObjectProtocol

  Objective-C

      @protocol GADMediationAd <NSObject>

- `


  ### [GADMediationAdEventDelegate](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADMediationAdEventDelegate)


  ` Reports information to the Google Mobile Ads SDK from the adapter. Adapters receive an ad event
  delegate when they provide a GADMediationAd by calling a render completion handler.

  #### Declaration

  Swift

      protocol MediationAdEventDelegate : NSObjectProtocol

  Objective-C

      @protocol GADMediationAdEventDelegate <NSObject>

- `


  ### [GADMediationBannerAdEventDelegate](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols#/c:objc(pl)GADMediationBannerAdEventDelegate)


  ` Reports banner related information to the Google Mobile Ads SDK from the adapter.

  #### Declaration

  Swift

      protocol MediationBannerAdEventDelegate : MediationAdEventDelegate

  Objective-C

      @protocol GADMediationBannerAdEventDelegate <https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADMediationAdEventDelegate>

- `


  ### [GADMediationInterstitialAdEventDelegate](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols#/c:objc(pl)GADMediationInterstitialAdEventDelegate)


  ` Reports interstitial related information to the Google Mobile Ads SDK from the adapter.

  #### Declaration

  Swift

      protocol MediationInterstitialAdEventDelegate : MediationAdEventDelegate

  Objective-C

      @protocol GADMediationInterstitialAdEventDelegate <https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADMediationAdEventDelegate>

- `


  ### [GADMediationNativeAdEventDelegate](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADMediationNativeAdEventDelegate)


  ` Reports native related information to the Google Mobile Ads SDK from the adapter.

  #### Declaration

  Swift

      protocol MediationNativeAdEventDelegate : MediationAdEventDelegate

  Objective-C

      @protocol GADMediationNativeAdEventDelegate <https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADMediationAdEventDelegate>

- `


  ### [GADMediationRewardedAdEventDelegate](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADMediationRewardedAdEventDelegate)


  ` Reports rewarded related information to the Google Mobile Ads SDK from the adapter.

  #### Declaration

  Swift

      protocol MediationRewardedAdEventDelegate : MediationAdEventDelegate

  Objective-C

      @protocol GADMediationRewardedAdEventDelegate <https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADMediationAdEventDelegate>

- `


  ### [GADMediationAppOpenAdEventDelegate](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols#/c:objc(pl)GADMediationAppOpenAdEventDelegate)


  ` Reports app open related information to the Google Mobile Ads SDK from the adapter.

  #### Declaration

  Swift

      protocol MediationAppOpenAdEventDelegate : MediationAdEventDelegate

  Objective-C

      @protocol GADMediationAppOpenAdEventDelegate <https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADMediationAdEventDelegate>

- `


  ### [GADMediationSwipeableInterstitialAdEventDelegate](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols#/c:objc(pl)GADMediationSwipeableInterstitialAdEventDelegate)


  ` Reports swipeable interstitial related information to the Google Mobile Ads SDK from the
  adapter.

  #### Declaration

  Swift

      protocol MediationSwipeableInterstitialAdEventDelegate : MediationAdEventDelegate

  Objective-C

      @protocol GADMediationSwipeableInterstitialAdEventDelegate <
          https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADMediationAdEventDelegate>

- `


  ### [GADMediationAdRequest](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADMediationAdRequest)


  ` Provides information which can be used for making ad requests during mediation.

  #### Declaration

  Swift

      protocol MediationAdRequest : NSObjectProtocol

  Objective-C

      @protocol GADMediationAdRequest <NSObject>

- `


  ### [GADMediationAdapter](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADMediationAdapter)


  ` 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.

  #### Declaration

  Swift

      protocol MediationAdapter : NSObjectProtocol

  Objective-C

      @protocol GADMediationAdapter <NSObject>

- `


  ### [GADMediationAppOpenAd](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADMediationAppOpenAd)


  ` Rendered app open ad.

  #### Declaration

  Swift

      protocol MediationAppOpenAd : MediationAd

  Objective-C

      @protocol GADMediationAppOpenAd <https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols#/c:objc(pl)GADMediationAd>

- `


  ### [GADMediationBannerAd](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADMediationBannerAd)


  ` Rendered banner ad. Provides a single subview to add to the banner view's view hierarchy.

  #### Declaration

  Swift

      protocol MediationBannerAd : MediationAd

  Objective-C

      @protocol GADMediationBannerAd <https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols#/c:objc(pl)GADMediationAd>

- `


  ### [GADMediationInterstitialAd](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADMediationInterstitialAd)


  ` Rendered interstitial ad.

  #### Declaration

  Swift

      protocol MediationInterstitialAd : MediationAd

  Objective-C

      @protocol GADMediationInterstitialAd <https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols#/c:objc(pl)GADMediationAd>

- `


  ### [GADMediationNativeAd](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADMediationNativeAd)


  ` Rendered native ad.

  #### Declaration

  Swift

      protocol MediationNativeAd : MediatedUnifiedNativeAd, MediationAd

  Objective-C

      @protocol GADMediationNativeAd <https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols#/c:objc(pl)GADMediationAd, https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADMediatedUnifiedNativeAd>

- `


  ### [GADMediationRewardedAd](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADMediationRewardedAd)


  ` Rendered rewarded ad.

  #### Declaration

  Swift

      protocol MediationRewardedAd : MediationAd

  Objective-C

      @protocol GADMediationRewardedAd <https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols#/c:objc(pl)GADMediationAd>

- `


  ### [GADMediationSwipeableInterstitialAd](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADMediationSwipeableInterstitialAd)


  ` Rendered swipeable interstitial ad. Provides a single subview to add to the swipeable
  interstitial ad's view hierarchy.

  #### Declaration

  Swift

      protocol MediationSwipeableInterstitialAd : MediationAd

  Objective-C

      @protocol GADMediationSwipeableInterstitialAd <https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols#/c:objc(pl)GADMediationAd>

- `


  ### [GADRTBAdapter](https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADRTBAdapter)


  ` Adapter that provides signals to the Google Mobile Ads SDK to be included in an auction.

  #### Declaration

  Swift

      protocol RTBAdapter : MediationAdapter

  Objective-C

      @protocol GADRTBAdapter <https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Protocols/GADMediationAdapter>