Skip to main content

iOS SDK Integration

Integrating the SDK

Cocoapods

The easiest way to integrate the SDK to your iOS project is to use CocoaPods.

Step 1: Simply open your project's Podfile and add a new source to the top:

source 'https://github.com/empowernet/specs.git'

Step 2: Add the pod to your app's target block. use_frameworks! is required — the SDK ships as a Swift binary framework and the mediation adapters need it:

target 'YOUR_PROJECT_NAME' do
use_frameworks!
pod 'EmpowerMobileAds', '9.6.14' # use the latest released version — see the changelog
end

Current vs. legacy build. Every release ships in two flavors that are functionally identical and differ only in the bundled Google Mobile Ads (GAM) version:

  • Current (default, e.g. 9.6.14) — tracks the latest Google Mobile Ads SDK (13.x).
  • Legacy (e.g. 9.6.14-legacy) — stays on an older, stable Google Mobile Ads version (12.x). Use it if your project needs to stay on the older GAM — for example an older toolchain, or another dependency pinned to Google Mobile Ads 12.
pod 'EmpowerMobileAds', '9.6.14-legacy' # older, stable Google Mobile Ads (12.x)

Step 3: Run the following command from the command line to install the dependencies:

pod install --repo-update

If you're new to CocoaPods, please refer to their official documentation for more information on getting started with it.

Update your Build Settings

Add $(inherited) line to your Other Linker Flags section in Build Settings.

Target -> Build Settings -> Other Linker Flags

Update your Info.plist

Declare that your app is an AdManager app by adding a key named GADApplicationIdentifier with the string value which will be provided by us to your app's Info.plist file.

You may also make this change manually by adding the following lines to Info.plist:

<key>GADApplicationIdentifier</key>
<string>ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy</string>

Configure SKAdNetwork

SKAdNetwork is how ad networks attribute installs on iOS without tracking the user. If your Info.plist doesn't list a network's SKAdNetwork ID, that network can't attribute conversions — which directly lowers your fill and revenue. This step is required for production.

Add an SKAdNetworkItems array to your Info.plist, with one SKAdNetworkIdentifier entry per network:

<key>SKAdNetworkItems</key>
<array>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>cstr6suwn9.skadnetwork</string>
</dict>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>4fzdc2evr5.skadnetwork</string>
</dict>
<!-- …add the full list here -->
</array>

Ask Empower for the current SKAdNetwork ID list to add here, and review it whenever you enable a new demand network.

Importing the SDK

In order to be able to use the Empower Mobile Ads SDK, you must import it where necessary.

Projects using Swift

Please add the following line to the files where you refer to the classes provided by the Empower Mobile Ads SDK:

import EmpowerMobileAds

Projects using Objective-C

The SDK exposes an Objective-C-compatible API, so you can call it directly from your .m and .h files. No bridging header is required — a bridging header only exposes your app's own Objective-C code to your app's Swift code, which is not what you need to consume the framework.

Make sure your Podfile uses dynamic frameworks:

use_frameworks!

Then import the SDK module in every file that uses it:

@import EmpowerMobileAds;

Objective-C uses the same EMAManager / EMASettings entry points as Swift. The only differences are the delegate and status types: adopt EMAAdObserver (instead of AdStatusDelegate) and switch on EMAAdStatusType (instead of AdStatus). Each ad-format page below shows both Swift and Objective-C examples.

Integrating Mediation Networks

Already included — don't add these yourself: installing EmpowerMobileAds automatically pulls in Google Mobile Ads, the AppLovin SDK, Google IMA (for preroll), and Amazon Publisher Services. Adding those pods (or a different version of them) separately can cause version conflicts. The adapters below are only for additional demand networks — add just the ones Empower has enabled for your account. An adapter for a network that isn't configured server-side has no effect.

Add the adapter pods Empower has enabled for your account, then run pod install --repo-update:

use_frameworks!
inhibit_all_warnings!

target 'YOUR_PROJECT_NAME' do
# AppLovin MAX adapters
pod 'AppLovinMediationGoogleAdManagerAdapter' # Google Ad Manager
pod 'AppLovinMediationGoogleAdapter' # Google / AdMob bidding
pod 'AppLovinMediationByteDanceAdapter' # Pangle
pod 'AppLovinMediationFacebookAdapter' # Meta Audience Network
pod 'AppLovinMediationFyberAdapter' # DT Exchange (Fyber)
pod 'AppLovinMediationInMobiAdapter' # InMobi
pod 'AppLovinMediationMintegralAdapter' # Mintegral
pod 'AppLovinMediationOguryPresageAdapter' # Ogury
pod 'AppLovinMediationUnityAdsAdapter' # Unity Ads
pod 'AppLovinMediationVungleAdapter' # Liftoff Monetize (Vungle)
pod 'AppLovinMediationYandexAdapter' # Yandex

# Google Mobile Ads (GAM) mediation adapters
pod 'GoogleMobileAdsMediationInMobi' # InMobi
pod 'GoogleMobileAdsMediationMintegral' # Mintegral
pod 'GoogleMobileAdsMediationPangle' # Pangle
pod 'GoogleMobileAdsMediationUnity' # Unity Ads
end

Amazon Publisher Services is already bundled with the SDK (via AppLovinMediationAmazonAdMarketplaceAdapter), so it isn't listed here.