Skip to main content
Version: v2.0

PremiumAds AppLovin MAX Adapter — Unreal Engine

Integrate PremiumAds as a mediation ad source in your Unreal Engine game using the AppLovin MAX Unreal plugin.

Supported formats: Banner, MREC, Interstitial, Rewarded

Native and App Open are not available. The AppLovin MAX Unreal plugin does not expose native ads, and AppLovin MAX does not support App Open for custom network adapters.

Prerequisites​

  • Unreal Engine 5.6 (tested on 5.6.1) with a C++ project (the plugin contains C++ code, like the AppLovin plugin)
  • AppLovin MAX Unreal plugin 4.0.3 or newer, installed in your project or engine
  • iOS builds: macOS with Python 3 and CocoaPods (used by AppLovin's install_pods.py)

1. Install the PremiumAds Unreal Plugin​

  1. Download PremiumAdsMaxAdapter-<version>.zip from the Releases page.
  2. Unzip it into your project's Plugins/ folder so you have <YourProject>/Plugins/PremiumAdsMaxAdapter/PremiumAdsMaxAdapter.uplugin.
  3. Restart the Unreal Editor. The plugin is enabled automatically and requires the AppLovinMAX plugin.

2. Project Settings​

Open Project Settings → Plugins → PremiumAds MAX Adapter:

SettingDescription
AdMob App ID (Android)Written to AndroidManifest.xml as com.google.android.gms.ads.APPLICATION_ID.
Google Mobile Ads SDK Versionplay-services-ads version added to Gradle (default 25.4.0, minimum 23.0.0). Leave empty if another dependency already provides the Google Mobile Ads SDK.
AdMob App ID (iOS)Written to Info.plist as GADApplicationIdentifier.
Add Google SKAdNetwork IDsAdds Google's SKAdNetwork identifiers to Info.plist. Skipped automatically if SKAdNetworkItems already exists (e.g. in Additional Plist Data).

Declare each AdMob App ID in one place only. If it is already declared elsewhere (AppLovin's UPL files for its Google adapter, or iOS Additional Plist Data), leave the field empty. Without any App ID, the Google Mobile Ads SDK crashes at app launch.

3. Android​

The plugin adds the PremiumAds Maven repository, net.premiumads.sdk:max-adapter and the Google Mobile Ads SDK to Gradle automatically.

Required with AppLovin MAX Unreal 4.0.3: the AppLovin plugin pins com.applovin,applovin-sdk,13.0.0 in AppLovinMAX/Source/AppLovinMAX/AppLovinMAX_UPL_Android.xml, but its own bridge needs a newer SDK and crashes at MAX initialization (NoSuchMethodError … AppLovinSdkInitializationConfiguration.builder). Unless another AppLovin network adapter already pulls a newer SDK, change that line to:

<insertValue value="com.applovin,applovin-sdk,13.6.4" />

4. iOS​

iOS binaries are installed with AppLovin's own install_pods.py, the same way as any other MAX mediated network:

  1. Copy install_pods.py into the AppLovin plugin's Source/ThirdParty/IOS/ folder:

    • <YourProject>/Plugins/AppLovinMAX/Source/ThirdParty/IOS/ if the plugin is in your project, or
    • <UnrealEngine>/Engine/Plugins/Marketplace/<AppLovinMAX folder>/Source/ThirdParty/IOS/ if it was installed from Fab.
  2. In that folder, create or edit Podfile:

    platform :ios, '13.0'
    pod 'PremiumAdsMaxAdapter'

    Write the line without a version — install_pods.py does not support version constraints.

  3. Run python3 install_pods.py from that folder. You should see ✔ Installed 'PremiumAdsMaxAdapter'.

5. Configure the MAX Custom Network​

In the AppLovin MAX dashboard, add PremiumAds as a Custom Network (see Max Adapter Overview & Dashboard Setup):

FieldValue
Network NamePremiumAds Custom Adapter
iOS Class NamePremiumAdsAdapter
Android Class Namenet.premiumads.sdk.adapter.max.PremiumAdsAdapter
PlacementYour PremiumAds ad unit ID

6. Load Ads​

No extra code is needed. Initialize MAX and load Banner, MREC, Interstitial and Rewarded ads with the AppLovin MAX Unreal API as usual.

7. Debug Logging (Optional)​

Blueprint: PremiumAds → MAX → Set Debug. C++ (add "PremiumAdsMaxAdapter" to your module's Build.cs dependencies):

#include "PremiumAdsMaxAdapterLibrary.h"

UPremiumAdsMaxAdapterLibrary::SetDebug(true);
bool bLinked = UPremiumAdsMaxAdapterLibrary::IsAdapterAvailable();

Filter logs:

  • Android Logcat: tag PremiumAdsAdapter and Unreal category LogPremiumAdsMax
  • iOS: PremiumAdsAdapter and LogPremiumAdsMax in the Xcode console

Testing​

AppLovin MAX forces test mode on emulators and simulators, so custom networks such as PremiumAds are never called there. Test PremiumAds demand on a physical device, using the demo ad units as the Placement during development.

Source Code & Releases​

Troubleshooting​

LogPremiumAdsMax: Warning: PremiumAds MAX adapter NOT found in this build: iOS — install_pods.py has not been run, or the Podfile line has a version; fix it, re-run, rebuild. Android — Gradle could not resolve net.premiumads.sdk:max-adapter; check access to repo.premiumads.net in the packaging log.

App crashes at launch with a missing application identifier error: No AdMob App ID is declared — fill in Project Settings (step 2).

Android crash at MAX initialization with NoSuchMethodError: See the note in step 3.

New ad units / waterfall changes don't take effect immediately: Changes in the MAX dashboard take 30–60 minutes to propagate.

Ads never load / NO FILL (HTTP 204): The waterfall has no eligible line item for this app/device — check that the ad unit has active demand and that the bundle/package ID matches the app configured in the MAX dashboard.

Adapter not initialized: Verify the custom network class names in the MAX dashboard match exactly (step 5).

Documentation​

Support​

Contact your PremiumAds account manager or email [email protected]