AdTrue AppLovin MAX Adapter — iOS
Integrate AdTrue 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 the 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)
Both the CocoaPods spec and the Swift package declare AppLovinSDK and Google Mobile Ads as dependencies, so they are resolved automatically. The adapter itself is shipped as a prebuilt static XCFramework that links against the SDKs in your app target — it does not embed them.
1. Add the Dependency
CocoaPods (recommended)
Add to your Podfile:
pod 'AdTrueMaxAdapter', '~> 1.0.1'
pod 'AppLovinSDK'
pod 'Google-Mobile-Ads-SDK'
Then:
pod install --repo-update
AdTrueMaxAdapter is published on CocoaPods trunk.
Swift Package Manager
In Xcode, choose File → Add Package Dependencies… and enter:
https://github.com/adtrue/max-mediation-adapter-ios.git
Select version 1.0.1 or later, then add the AdTrueMaxAdapter product to your app target.
Or add it directly to Package.swift:
dependencies: [
.package(url: "https://github.com/adtrue/max-mediation-adapter-ios.git", from: "1.0.1"),
]
2. Configure the MAX Custom Network
In the AppLovin MAX dashboard, add AdTrue as a Custom Network, then configure a Custom Adapter for each ad unit:
| Field | Value |
|---|---|
| Network Name | AdTrue Custom Adapter |
| iOS Class Name | AdTrueAdapter |
| Android Class Name | com.adtrue.sdk.adapter.max.AdTrueAdapter |
| Placement / Parameter | Your AdTrue 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 AdTrue adapter:
import AdTrueMaxAdapter
AdTrueAdapter.setDebug(true)
Filter logs in the Xcode console for the [AdTrueAdapter] prefix:
[AdTrueAdapter] Debug mode enabled | AdTrue MAX Adapter v1.0.1
[AdTrueAdapter] [Banner] Loading ad with unit: 1234567
[AdTrueAdapter] [Banner] Ad loaded successfully
[AdTrueAdapter] [Banner] Impression recorded
[AdTrueAdapter] [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 'AdTrueMaxAdapter', '~> 1.0.1' - Swift Package: https://github.com/adtrue/max-mediation-adapter-ios
- Adapter class:
AdTrueAdapter
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 AdTrue 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 AdTrueMaxAdapter:
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 AdTrueAdapter.
Documentation
Support
Contact your AdTrue account manager or email [email protected]