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
- Download
PremiumAdsMaxAdapter-<version>.zipfrom the Releases page. - Unzip it into your project's
Plugins/folder so you have<YourProject>/Plugins/PremiumAdsMaxAdapter/PremiumAdsMaxAdapter.uplugin. - Restart the Unreal Editor. The plugin is enabled automatically and requires the
AppLovinMAXplugin.
2. Project Settings
Open Project Settings → Plugins → PremiumAds MAX Adapter:
| Setting | Description |
|---|---|
| AdMob App ID (Android) | Written to AndroidManifest.xml as com.google.android.gms.ads.APPLICATION_ID. |
| Google Mobile Ads SDK Version | play-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 IDs | Adds 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.0inAppLovinMAX/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:
-
Copy
install_pods.pyinto the AppLovin plugin'sSource/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.
-
In that folder, create or edit
Podfile:platform :ios, '13.0'pod 'PremiumAdsMaxAdapter'Write the line without a version —
install_pods.pydoes not support version constraints. -
Run
python3 install_pods.pyfrom 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):
| Field | Value |
|---|---|
| Network Name | PremiumAds Custom Adapter |
| iOS Class Name | PremiumAdsAdapter |
| Android Class Name | net.premiumads.sdk.adapter.max.PremiumAdsAdapter |
| Placement | Your 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
PremiumAdsAdapterand Unreal categoryLogPremiumAdsMax - iOS:
PremiumAdsAdapterandLogPremiumAdsMaxin 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
- Repository: https://github.com/premium-ads/max-adapter-unreal
- Releases: https://github.com/premium-ads/max-adapter-unreal/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]