Create iOS Adaptor

Last Updated on: 19 Sep, 2023

Extend Base Adapter Class

Create a custom adapter class in Swift with the naming convention as <span><</span><span>AdaptorName</span><span>></span>SDKAdapter.

Swift

class <AdapterName>SDKAdapter: NSObject, MesonBaseSDKAdapter {
  //Override the methods
}

Initialize the Custom Network SDK

Override one of the initialization methods provided in the base adapter.

Asynchronous Initialization

initOnSDKInit() method is provided by MesonBaseSDKAdapter to initialize custom network SDK asynchronously. The method return type is void.

Parameter Description
AdapterConfiguration All the network-related information required to initialize the custom network SDK. AdapterSDKConfiguration will have at least one of the required credentials; Network (Account ID), App (App ID), or Ad-Line (Placement ID).
MesonSdkInitializationListener This listener contains a single call back method onComplete(Error). The listener object should call onComplete() method with the null value if the network SDK is initialized successfully or else pass the Error object with the proper error message.

Swift

func initOnSDKInit(adapterSdkConfiguration: AdapterSdkConfiguration, sdkInitializedResultHandler: @escaping (Result<Bool, MesonAdapterError>) -> Void) {
      // Write the code the initialize the SDK asynchronously.
}

Synchronous Initialization

initOnAdLoad(), the method is provided by MesonBaseSDKAdapter to initialize network SDK synchronously. The method return type is not void; it should return null if network SDK is initialized successfully or else an Error object with the proper error message.

Parameter Description
AdapterConfiguration All the network-related information required to initialize the custom network SDK. AdapterSDKConfiguration will have at least one of the required credentials; Network (Account ID), App (App ID), or Ad-Line (Placement ID).

Swift

func initOnAdLoad(adapterSdkConfiguration: AdapterSdkConfiguration) -> Result<Bool, MesonAdapterError>? {
      // Write the code to initialize the SDK synchronously.
}

Set SDK Version

getSDKVersion(), override this method to return the custom network SDK version.

Swift

var networkSDKVersion: String {
    // Return the SDK version
}

Manage Ad Lifecycle

Create custom network SDK adapter classes per format with naming convention as AdapterNameFormatAdapter by extending the base format adapter classes.

Banner Ad

To create a custom network SDK Adapter class for Banner format extend the MesonBaseBannerAdapter.

Load Ad

load(), override this method in MesonBaseBannerAdapter to load ads from the custom network SDK.

Parameter Description
AdapterConfiguration All the network-related information required to initialize the custom network SDK. AdapterSDKConfiguration will have at least one of the required credentials; Network (Account ID), App (App ID), or Ad-Line (Placement ID).
MesonBannerAdapterListener This provides the ad lifecycle listener events.

Swift

func load(adapterConfiguration: AdapterAdConfiguration) {
    // Write the code to load network sdk's banner ad
}

Return Banner Ad View

getAdView(), override this method in the MesonBaseBannerAdapter to return custom network SDKs banner ad view.

Swift

func getAdView() -> UIView? {
   return banner
}

Interstitial Ad

To create a custom network SDK Adapter class for Interstitial format extend the MesonBaseInterstitialAdapter.

Load Ad

load(), override this method in MesonBaseBannerAdapter to load the ad from the custom network SDK.

Parameter Description
AdapterConfiguration All the network-related information required to initialize the custom network SDK. AdapterSDKConfiguration will have at least one of the required credentials; Network (Account ID), App (App ID), or Ad-Line (Placement ID).
MesonInterstitialAdapterListener This provides the ad lifecycle listener events.

Swift

func load(adapterConfiguration: AdapterAdConfiguration) {
      // Write the code to load network sdk's interstitial ad
}

Ad Load Success

isReady, override this property to verify whether the custom network SDK has successfully loaded an ad. This method returns true if the custom network SDK is ready to show the ad or else returns false.

Swift

var isReady: Bool {
  return interstitial.isReady()
}

Show Ad

show(), override this method to show an interstitial or rewarded ad from the custom network SDK. 

Swift

func show(from viewController: UIViewController) {
      // Write the code to show the interstitial ad.
}

Rewarded Ad

To create a custom network SDK Adapter class for Rewarded format extend the MesonBaseRewardedAdapter.

Load Ad

load(), override this method in MesonBaseBannerAdapter to load ads from the custom network SDK.

Parameter Description
AdapterConfiguration All the network-related information required to initialize the custom network SDK. AdapterSDKConfiguration will have at least one of the required credentials; Network (Account ID), App (App ID), or Ad-Line (Placement ID).
MesonRewardedAdapterListener This provides the ad lifecycle listener events.

Swift

func load(adapterConfiguration: AdapterAdConfiguration) {
      // Write the code to load network sdk's rewarded ad
}

Ad Load Success

isReady, override this property to verify whether custom network SDK has successfully loaded an ad. This method returns true if the custom network SDK is ready to show the ad or else returns false.

Show Ad

show(), override this method to show an interstitial or rewarded ad from the custom network SDK.

Swift

func show(from viewController: UIViewController) {
      // Write the code to show the rewarded ad.
}