Skip to main content

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

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:

FieldValue
Network NameAdTrue Custom Adapter
iOS Class NameAdTrueAdapter
Android Class Namecom.adtrue.sdk.adapter.max.AdTrueAdapter
Placement / ParameterYour 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

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]