CocoaPods Integration

Effective March 1st, 2024, AppLovin AppDiscovery demand will require SDK versions 10.0.0 and above. AppLovin Exchange demand and MAX mediation functionality are not impacted. Update to the latest AppLovin SDKs to benefit from the latest features and avoid potential revenue impact.

This page shows you how to download, import, and configure the AppLovin MAX SDK.

Your build will fail if you do not build with Xcode 13.2.1 or higher.

In version 10.3.0 there was an issue with initializing the SDK. Please use 10.3.2 instead.

Building with bitcode is no longer supported. Apple deprecated Bitcode in Xcode 14.

Download the Latest SDK ()

You can download the SDK through CocoaPods as a dependency. If you prefer to integrate manually, follow the instructions here. If you prefer to integrate using Swift Package Manager, follow the instructions here.

To ensure your build is compatible with artifacts that contain Swift, set Build Settings > Always Embed Swift Standard Libraries to YES.

If you use Swift and build for iOS 12.2.0 or earlier, add /usr/lib/swift to Build Settings > Runpath Search Paths to prevent any issues with libswiftCore.dylib.

CocoaPods (Recommended)

To integrate the AppLovin SDK through CocoaPods:

  1. Add the following line to your Podfile:
    pod 'AppLovinSDK'
  2. Run the following on the command line:
    pod install --repo-update

If you want to receive release updates, subscribe to the AppLovin-MAX-SDK-iOS GitHub repository.

Add the SDK Key

Open your Project Settings. Select Info. Click on one of the rows of Custom iOS Properties and click + to add a new row. Set the key in the new row to AppLovinSdkKey and set the value to your SDK key.

You can find your SDK key in the Account > General > Keys section of the AppLovin dashboard.

Integrate Custom SDK Adapters

AppLovin Exchange (ALX) supports a custom adapter for LinkedIn. Integration instructions are below and more information can be found here.

To install the adapter:

  1. Add the following line to your Podfile:
    pod 'AppLovinDSPLinkedInAdapter'
  2. Run the following on the command line:
    pod install --repo-update

Enable Ad Review

To enable the MAX Ad Review service, download AppLovinQualityServiceSetup-ios.rb and move it into your project folder. Open a terminal window, cd into your project folder and run:

ruby AppLovinQualityServiceSetup-ios.rb

You must log in to your AppLovin account to download successfully.

Initialize the SDK

Initialize the SDK in your app delegate’s application:applicationDidFinishLaunching: method.

You may want to tag users with your own internal user ID so that you can then receive that ID in an impression-level user revenue API or in S2S rewarded postbacks. If so, set the user ID before you initialize the SDK.

Ad assets that are fully cached result in a better user experience. Therefore, always initialize the AppLovin SDK on startup so as to give mediated networks the maximum amount of time to cache ads. This is especially important with video ads.

Do not use different network app IDs for the same network across different ad units. If you use different app IDs for the same network and app package name without using selective init you will break the network initialization process.

  • #import <AppLovinSDK/AppLovinSDK.h>
    
    @implementation AppDelegate
    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
      // Set the mediation provider value to @"max" to ensure proper functionality
      [ALSdk shared].mediationProvider = @"max";
        
      [ALSdk shared].userIdentifier = @"USER_ID";
        
      [[ALSdk shared] initializeSdkWithCompletionHandler:^(ALSdkConfiguration *configuration) {
        // Start loading ads
      }];
    
      ⋮
  • import AppLovinSDK
    
    @UIApplicationMain
    class AppDelegate: UIResponder, UIApplicationDelegate
    {
      func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool
      {
        // Set the mediation provider value to "max" to ensure proper functionality
        ALSdk.shared()!.mediationProvider = "max"
            
        ALSdk.shared()!.userIdentifier = "USER_ID"
            
        ALSdk.shared()!.initializeSdk { (configuration: ALSdkConfiguration) in
          // Start loading ads
        }
    
        ⋮

iOS 14 Support

In iOS 14, Apple introduced global privacy changes that you need to comply with. This section explains how to comply with these changes and thereby avoid a material drop in revenue.

SKAdNetwork

Update your app’s Info.plist with network-specific identifiers. See the SKAdNetwork documentation for instructions.

MAX Terms & ATT Flow

Implement the MAX Terms & ATT Flow to integrate compliance with the ATT framework and acceptance of your Terms of Service and Privacy Policy.

Consent and Data APIs

In order to ensure you obtain consent from your users in applicable jurisdictions on behalf of our monetization partners and correctly pass consent flag values to AppLovin, please review Privacy–Consent and Data APIs.

iOS 15 Global SKAdNetwork Reporting

Starting with iOS 15, Apple allows developers to send a copy of their SKAdNetwork install postbacks to an endpoint of their choice. MAX provides a Global SKAdNetwork Report (MAX > Mediation > Analyze > Global SKA Report) for developers to access the SKAdNetwork data across all their network partners in one place.

To leverage the MAX Global SKAdNetwork Report, enable iOS 15 SKAdNetwork reporting by using the app’s Info.plist:

  1. In your app’s Info.plist, create a new key named NSAdvertisingAttributionReportEndpoint of type String.
  2. Give that key the value: https://postbacks-app.com.

Tip: You can check the value of your app’s SKAdNetwork endpoint by using the Mediation Debugger.

To forward the SKAdNetwork postbacks to one or more third-party endpoints of your choice (including your MMP), please contact your account team.