PremiumAds AppLovin MAX Adapter — iOS
Integrate PremiumAds as a mediation ad source in your iOS app through AppLovin MAX.
Supported formats: Banner, MREC, Interstitial, Rewarded, Native
App Open is not supported. AppLovin MAX does not support App Open ad format for custom network adapters.
Prerequisites
- iOS 13.0+
- The AppLovin MAX SDK already integrated in your app (AppLovinSDK >= 13.0)
- The Google Mobile Ads SDK (
Google-Mobile-Ads-SDK>= 13.0) — typically pulled in as part of a standard MAX integration
The adapter does not bundle either dependency — it links against the MAX and Google Mobile Ads SDKs already present in your app target.
1. Add the Dependency
CocoaPods (recommended)
Add to your Podfile:
pod 'PremiumAdsMaxAdapter', '~> 1.0.1'
pod 'AppLovinSDK'
pod 'Google-Mobile-Ads-SDK'
Then:
pod install
PremiumAdsMaxAdapter is published on CocoaPods trunk.
Do not use version 1.0.0. The 1.0.0 XCFramework accidentally embedded the Google Mobile Ads SDK, causing duplicate Objective-C class warnings (
Class GAD... is implemented in both...) and potential runtime crashes. Always use 1.0.1 or later. Ifpod installcan't find 1.0.1, runpod repo updatefirst.
Swift Package Manager (alternative)
In Xcode, choose File → Add Package Dependencies… and enter:
https://github.com/premium-ads/max-adapter-ios-spm.git
Select version 1.0.1 or later, then add PremiumAdsMaxAdapter as a dependency of your app target.
Or add it directly to Package.swift:
dependencies: [
.package(url: "https://github.com/premium-ads/max-adapter-ios-spm.git", from: "1.0.1"),
]
The SPM package distributes the adapter as a prebuilt XCFramework binary.
2. Configure the MAX Custom Network
In the AppLovin MAX dashboard, add PremiumAds as a Custom Network, then configure a Custom Adapter for each ad unit:
| Field | Value |
|---|---|
| Network Name | PremiumAds Custom Adapter |
| iOS Class Name | PremiumAdsAdapter |
| Android Class Name | net.premiumads.sdk.adapter.max.PremiumAdsAdapter |
| Placement / Parameter | Your PremiumAds ad unit ID |
The same class name works for all supported ad formats. The adapter auto-detects the format from the MAX mediation request.
3. Load Ads
The adapter is invoked automatically by the AppLovin MAX SDK — no extra code needed. Use the standard MAX iOS APIs to load Banner, MREC, Interstitial, Rewarded, and Native ads. See the AppLovin MAX iOS integration guide for the ad-loading APIs.
4. Debug Logging (Optional)
Enable verbose debug logging from the PremiumAds adapter:
PremiumAdsAdapter.setDebug(true)
Filter logs in the Xcode console for the [PremiumAdsAdapter] prefix:
[PremiumAdsAdapter] Debug mode enabled | PremiumAds MAX Adapter v1.0.1
[PremiumAdsAdapter] [Banner] Loading ad with unit: 1234567
[PremiumAdsAdapter] [Banner] Ad loaded successfully
[PremiumAdsAdapter] [Banner] Impression recorded
[PremiumAdsAdapter] [Banner] Click recorded
5. GDPR / TCF v2.0
The adapter automatically reads IAB TCF v2.0 consent from UserDefaults. If you integrate AppLovin's CMP (or any TCF-compliant CMP), no additional adapter code is required.
Source & Releases
- CocoaPods:
pod 'PremiumAdsMaxAdapter', '~> 1.0.1' - SPM repository: https://github.com/premium-ads/max-adapter-ios-spm
- Adapter class:
PremiumAdsAdapter
Troubleshooting
New ad units / waterfall changes don't take effect immediately: Changes to ad units or waterfall configuration in the MAX dashboard take 30–60 minutes to propagate. Wait before retesting.
Ads never load / NO FILL (HTTP 204):
A NO FILL response (204) means the waterfall has no eligible line item for the requesting app/device at that moment — this is expected behavior, not an error. Check that:
- Your PremiumAds ad unit has active, funded demand for the test device/geo.
- Test ads are enabled if you're testing on a non-approved device — see Test Ads.
Adapter never receives requests: Verify the app's bundle ID matches exactly the app configured in the MAX dashboard. A mismatched bundle identifier silently prevents the waterfall from routing traffic to your ad units.
pod install fails to find PremiumAdsMaxAdapter:
pod repo update
pod install
Adapter class not found in MAX log:
Confirm the iOS class name in the MAX Custom Network config is exactly PremiumAdsAdapter.
Using Google Ad Manager (GAM) line-item targeting: If PremiumAds demand flows through a GAM line item targeting the MAX iOS adapter, verify the GAM line item's custom targeting key/value matches the MAX ad unit's mediation group, and that the line item is active and not paused.
Documentation
Support
Contact your PremiumAds account manager or email [email protected]