Linking AppLovin as a source

Let AI connect your sources for you

Skip the manual setup — run this in your project and the wizard auto-detects your databases and APIs and connects them to PostHog.

Learn more
PostHog Wizard hedgehog

Contents

The AppLovin connector syncs MAX mediation revenue, per-user ad revenue, campaign data, and more into the PostHog data warehouse, so you can analyze them alongside your product data.

Prerequisites

  • Report Key (required) - For syncing report tables. Find it in the AppLovin dashboard under your account menu > Keys.
  • Campaign Management API key and Account ID (optional) - For syncing campaign tables. AppLovin issues this key separately from the Report Key. Find both under your account menu in the AppLovin dashboard.

Adding a data source

  1. In PostHog, go to the Sources tab of the data pipeline section.
  2. Click + New source and click Link next to this source.
  3. Enter your credentials (see Configuration below) and click Next.
  4. Select the tables you want to sync, choose a sync method and frequency, then click Import.

Once the syncs are complete, you can start querying this data in PostHog.

Connect your AppLovin account to pull MAX mediation revenue, per-user ad revenue, campaign spend, and cohort reporting.

Find your Report Key in the AppLovin dashboard: click your account in the top right, then Keys.

To sync campaigns, creative sets, and campaign operation logs, also add your Campaign Management API key (under Keys) and your Account ID (under Go to settings, the number after your account name).

AppLovin only serves the last 45 days of report data and the last 30 days of campaign operation logs, so anything older than that can't be backfilled.

You'll be asked for:

  • Report Key - Required for all tables
  • Campaign Management API key - Optional, for campaign tables only
  • Account ID - Optional, required together with the Campaign Management API key

Sync modes

Each table can be synced in one of several modes, depending on what the source supports:

  • Webhook (when available) – the source pushes changes to PostHog in real time. Fastest freshness, lowest ongoing cost, and the only mode that reliably captures updates and deletes.
  • Incremental – only new or updated rows are synced on each run, using a cursor field (such as an updated_at timestamp). Cheaper than a full refresh, but deletes aren't captured.
  • Append only – new rows are appended using a cursor field; existing rows are never updated. Ideal for immutable, append-only tables like event logs.
  • Full refresh – the whole table is reloaded on every sync. Use it when a table has no reliable cursor or when you need deletions reflected.

See sync methods for a full explanation of how each mode works and how to choose between them.

Sync behavior varies by table:

  • Report tables (max_ad_revenue, max_ad_unit_revenue, publisher_report, user_ad_revenue) - Incremental sync on day. Report rows restate as metrics settle, so each sync merges recent data.
  • Campaign operation logs - Incremental sync on operation_time, covering the last 30 days.
  • Campaigns and Creative sets - Full refresh. The API has no server-side time filter for these tables, so each sync replaces the full table.

Configuration

OptionTypeRequired
Report KeypasswordYes
Campaign Management API keypasswordNo
Account IDtextNo

Supported tables

TableDescriptionSync methodIncremental fieldPrimary key
max_ad_revenue

Estimated MAX mediation revenue and delivery, broken down by day, app, ad unit and the ad network that filled the impression.

Incremental, Full refreshdayday, package_name, platform, country, device_type, ad_format, max_ad_unit_id, network
max_ad_unit_revenue

Estimated MAX mediation revenue and delivery per ad unit, without the network breakdown. This is the only grain at which AppLovin reports ad requests.

Incremental, Full refreshdayday, package_name, platform, country, device_type, ad_format, max_ad_unit_id
publisher_report

Publisher-side AppLovin monetization: revenue, impressions and clicks earned by your apps, broken down by day, app, placement and geography.

Incremental, Full refreshdayday, package_name, platform, country, device_type, ad_type, placement_type, size, bidding_integration
advertiser_report

Advertiser-side AppLovin campaign performance: spend, installs and attributed sales by day, campaign, traffic source app and geography.

Incremental, Full refreshdayday, campaign_id_external, app_id_external, platform, country, device_type, ad_type, size
max_cohort_ad_revenue

MAX cohort revenue: how much revenue users generate in the days after they install, keyed on the install day.

Incremental, Full refreshdayday, package_name, platform, country
max_cohort_impressions

MAX cohort ad impressions: how many impressions users see in the days after they install, keyed on the install day.

Incremental, Full refreshdayday, package_name, platform, country
max_cohort_sessions

MAX cohort engagement: retention, session counts and time spent in the days after users install, keyed on the install day.

Incremental, Full refreshdayday, package_name, platform, country
user_ad_revenue

MAX ad revenue per user, ad unit and placement for each app and day, from the aggregated User-Level Ad Revenue API report.

Incremental, Full refreshdayday, package_name, platform, ad_unit_id, placement, idfa, idfv, user_id, custom_data
campaigns

AppLovin campaigns on the account, with status, budget, goal, tracking and country targeting. Archived campaigns are not listed.

Full refresh—id
creative_sets

Creative sets on the account: the assets, languages and countries each set serves with.

Full refresh—id
campaign_operation_logs

History of operations on campaigns: creation, updates, status changes and archiving.

Incremental, Full refreshoperation_timeoperation_id

Troubleshooting

  • If the connection fails with an authorization error, the Report Key is wrong, expired, or has been revoked. Create a new one, then reconnect the source.
  • If campaign tables fail with an authorization error, the Campaign Management API key or Account ID is incorrect. Check both under your account menu in the AppLovin dashboard, then update the source.
  • If campaign tables show a message asking for credentials, add both the Campaign Management API key and Account ID to the source. You must provide both or neither.
  • If a table syncs no rows, the credential may not have access to that data. Check its permissions, then reconnect the source.

If your sync is failing or data looks wrong, see the Data warehouse troubleshooting guide. If that doesn't help, contact support – we're happy to help.

Still have questions?

Was this page useful?