Help Center/Details/

[iOS] AdMob Custom Event Adapter for Pangle

AdMob Custom Event Adapter for Pangle

Please set Admob in your app first.

Setup Pangle Platform

Create a Pangle account

Create an application and placements in Pangle

  • Click Apps -> + Add App to create a app for mediation.

create-app-home.png

create-app.png

  • You will get an app with its app ID.


    app-id.png

Create Ad Placement

  • Click Ad Placements -> + Add Ad Placement to create the placement for mediation.


    create-placement.png

  • Select the ad's type for your app and finish the create.


    ad-type.png

  • You will get a placement with its placement ID.


    placement-id.png

Add Pangle to AdMob's mediation

Create mediation

  • Click Mediation -> CREATE MEDIATION GROUP to create a mediation group.


    add-mediation.png

  • Select the same ad format which created on Pangle side.


    ad-format.png

  • After select the ad unit you created on AdMob which you want to embed mediation, click ADD CUSTOM EVENT to set with Pangle.


    add-custom-event.png

  • Add adapter's class name to Class Name.

    • Class Name: the adapter class's name , for example,BUDAdmob_RewardCustomEventAdapter
  • Add {"placementID":"your slot ID"} to Parameter.

mediation-param - ios.png

  • Please make sure to use JSON to set Parameter. Or you need to customize adapter yourself.

Class name for different ad formats

Ad Type Class Name
Reward Video Ads BUDAdmob_RewardCustomEventAdapter
Interstitial(Fullscreen Video) Ads BUDAdmob_FullScreenVideoCustomEventAdapter
Banner Ads BUDAdmob_BannerCustomEventAdapter
Native Ads BUDAdmob_NativeFeedCustomEventAdapter

Initialize Pangle SDK and Adapter

Import and Init Pangle SDK

Add the information as follows in Podfile, and using pod update or pod install to intergrate.

pod 'Ads-Global'

Initialize Pangle with the APP ID as the argument. Unless there is a particular reason, stipulate asUIApplicationDelegate application(_:didFinishLaunchingWithOptions:)

We recommand to use asynchronize initialization method + (void)startWithAsyncCompletionHandler:(BUCompletionHandler)completionHandler; to init the SDK, and also set allowModifyAudioSessionSetting to true to not interrupt the background's audio playback.

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

    let configuration = BUAdSDKConfiguration()
        
    #if DEBUG
    // enable log print. default is none.
    configuration.logLevel = .debug
    #endif
    configuration.appID = "5064663"
    configuration.coppa = 0
    configuration.gdpr = 0
        
    //Set to true to NOT interrupt background app's audio playback
    configuration.allowModifyAudioSessionSetting = true
        
    BUAdSDKManager.start(asyncCompletionHandler:) { (success, error) in
        if ((error) != nil) {
            //init failed
        }
    };

    return true
}

Please refer to Integrate Pangle SDK
and Initialize Pangle SDK for manual integration and more information.

Embed Pangle Adapters

CocoaPods (preferred)

From our adapter v1.4.1, we support CocoaPods integration, and this is the prerequisite for using it.

  • Pangle SDK 3.7.0.0 or higher
  • Google-Mobile-Ads-SDK 8.0.0 or higher

Add the information as follows in Podfile, and using pod update or pod install to intergrate.

pod 'Pangle-adapter-for-admob'

Manual download

  • Click SDK Integration -> SDK download, you can download adapters for different ad formats from your Pangle platform.

mediation.png


adapter-download.png

Please unzip the file and add adapter files from iOS folder into your application project. They can be used with no code changes. Also you can customize it for your use case.

  • You need to add BUDAdmob_NativeFeedAd.h and BUDAdmob_NativeFeedAd.m into your project to support native ad's adapter mapping.

adapter-files.png

About Swift

  • If your project is based on Swift, please add adapter's header file into your bridge-header file.


    bridge-header.png

Demo

  • You can find simple use cases from Demo.
Did the content solve your problem?