Overview
With the AppsFlyer Stats Import, Swaarm pulls your AppsFlyer agency account data on a schedule and maps it to the correct offers, publishers, and events in Swaarm — so your stats, payouts, and budgets stay in sync without any manual export or import.
⚠️ Before you start:
All imported stats count towards your usage and are billed → Check Usage
If the setup is incomplete (offer, publisher, targeting, etc.), data will not be imported
Setup Checklist
Data is only imported when all of the following are in place. More about each step below.
# | What | Where |
1 | Add your AppsFlyer API token | Organization → Settings → Connections → AppsFlyer → Stats Import |
2 | Create an offer and attach the App ID | Offers → (offer) → Edit → Integrations → AppsFlyer |
3 | Map media sources → publishers | Publisher → Edit → AppsFlyer tab (current) or Publishers → AppsFlyer Mapping (new) |
4 | Map in-app events → event types | Offers → (offer) → Edit → Events |
5 | Set correct country and OS targeting | Offers → (offer) → Edit → General |
6 | Approve the publisher on the offer | Offers → (offer) → Management → Publishers → Access Status = Approved |
7 | Set offer Status to Active | Offers → (offer) → Edit → General |
Step 1 - Add Your AppsFlyer API Token
Navigation path: Organization → Settings → Connections → AppsFlyer → Stats Import → Add Account
Click Add Account
Enter a Name for the account (for example, Agency1) - this name is referenced when configuring an offer
Paste your AppsFlyer agency account API token
Click Save
ℹ️ You can add multiple AppsFlyer accounts.
Step 2 - Offer Setup
💡 We recommend creating a dedicated offer for AppsFlyer import rather than using an existing one. This keeps imported stats clean and separate from live traffic.
Create a new offer → Create and configure an offer
Set the correct Country and OS targeting - only traffic matching the offer's targeting will be imported
ℹ️ If you have different payouts per country, create separate offers per country. For example: Offer A = US at $2, Offer B = Germany at $1.50 - even if they're the same campaign in AppsFlyer.
Select correct Leadflow (CPI or CPA)
Leave Private and Requires Approval selected - recommended to prevent publishers from sending direct traffic to the offer.
Create Events matching your AppsFlyer in-app events - make sure the Adv. EventType ID matches the AppsFlyer event value exactly (case-sensitive)
ℹ️ Installs are mapped automatically — no event type needed. In-app events with no matching Adv. EventType ID are skipped.
Set offer Status to Pending for now - activate it only once publishers are approved.
Go to the Integrations → AppsFlyer tab and click Add Configuration
Field | Description |
App ID | The AppsFlyer App ID (e.g. |
Accounts | Select the AppsFlyer account added in Step 1 |
Import Offset | How far back the latest imported day is. Default - 2 days (to avoid partial data). Maximum: 30 days. |
Retargeting | Enable for re-engagement or retargeting offers |
ℹ️ Offers configured for AppsFlyer Stats Import cannot use Budgets or Targeted Payouts.
Step 3 - Publisher Mapping
This is how Swaarm knows which publisher to attribute each row to. AppsFlyer rows carry a Media Source (pid) - you map media source values to a publisher in Swaarm.
💡 We recommend creating a dedicated publisher for AppsFlyer import - without postbacks or contacts - to keep imported stats clean and separate.
Current Method - Publisher AppsFlyer Tab
Go to Publishers → (publisher) → Edit → AppsFlyer tab
Enter the Media Source name(s) used by this publisher in AppsFlyer
Click Save
ℹ️ A media source can only be assigned to one publisher at a time. If it needs to be reassigned to a different publisher, remove it from the current one first. Data is assigned to whichever publisher holds the media source at the time of import - this is not applied retroactively.
New Method - AppsFlyer Mapping Page ✨ Recommended
Navigation path: Publishers → AppsFlyer Mapping → Add Mapping
Field | Description |
Publisher | The publisher this media source belongs to |
Global Mapping | If enabled, applies to every offer for this publisher/media source. If disabled, select a specific offer. |
Offer | The offer this mapping applies to (only when Global Mapping is off) |
Media Sources | One or more AppsFlyer media source names. Press Enter after each. Wildcards supported. |
Start Date | Optional. Inclusive. Leave empty for open start. |
End Date | Optional. Exclusive. Leave empty for open end. |
Wildcard patterns:
Pattern | Matches | Example |
| Exact value only |
|
| Anything starting with |
|
| Anything ending with |
|
| Any value | Everything |
ℹ️ Wildcards in the middle of a name (e.g. xy*z) are not supported.
Precedence rules:
Offer-specific mappings always win over global mappings
Exact matches win over wildcard matches
Avoid overlapping mappings for the same offer and media source pointing to different publishers
💡 The per-publisher AppsFlyer tab (current method) still works as a fallback. The AppsFlyer Mapping page takes priority.
Step 4 - Check the setting and go live
Countries & OS - only rows matching the offer's targeting are imported
Publisher approval - the publisher must be Approved on the offer. Pending, Blocked, or Rejected publishers are not imported.
Media sources are assigned to corresponding publishers
Offer status - once publishers are approved, set the offer to Active to start importing
Import Modes
Standard Import (Aggregated)
The default import mode for all accounts. Swaarm pulls aggregated stats from AppsFlyer on a daily schedule based on the configured Import Offset.
Clicks, impressions, and conversions are imported per offer / publisher / event / country / day
Use On-demand Import to pull a specific date manually — go to the offer's AppsFlyer configuration, pick a date, and click Run Import
Near-Real-Time Import
ℹ️ Near-Real-Time Import is available for select accounts. When enabled, installs and in-app events are imported hourly as individual records, with fraud handling via AppsFlyer Protect360. Contact your Swaarm account manager for more details.
Reporting
Imported AppsFlyer data appears in the Conversion Report and stats like any other traffic.
Column | Source |
Offer / Publisher / Event | Resolved via the mappings above |
Pub. Sub ID | AppsFlyer Site ID (near-real-time import only) |
Pub. Sub Sub ID | AppsFlyer Sub Site ID (near-real-time import only) |
Troubleshooting
Conversions aren't showing up — work through this checklist:
API token added and selected on the offer's AppsFlyer configuration
App ID matches exactly what's in AppsFlyer
Media source is mapped to a publisher, and the mapping covers the row's date
Offer targets the row's country and OS
Publisher's Access Status is Approved on the offer
Adv. EventType ID matches the AppsFlyer event name for in-app events
Allow for the Import Offset — recent days may not be imported yet
The wrong publisher is credited — check for overlapping or too-broad media source patterns. Offer-specific mappings beat global ones; exact matches beat wildcards.
Numbers differ slightly from AppsFlyer — aggregated import respects the Import Offset and de-duplicates re-imported days. Very recent data may still be settling on the AppsFlyer side.
FAQ
Do I need a separate setup per offer? You need the App ID on each offer, plus the media source and event mappings. The API token is added once and reused.
Can two offers share one App ID? Yes — Swaarm separates them by targeted country and OS.
Are installs imported without an event type? Yes — installs map to the offer's default install event automatically.
Will importing the same day twice create duplicates? No — the import de-duplicates rows already imported.
Does importing cost anything? Yes — imported stats count towards your usage and are billed.
After Mapping
Once everything above is configured, stats begin to import from AppsFlyer. All the stats including: impressions, clicks, installs and events will be synced to Swaarm for the respective mapped entities. As a result, Swaarm will show the aggregated stats in the entire platform (every stats page i.e. dashboard, management tables, performance charts, etc.) of all the events that were tracked in Swaarm + all the events that were synced from the AppsFlyer accounts.
⚠️ WARNING
If you delete the API token from the settings page, it will remove the AppsFlyer configuration from the offer as well.
Reports
When you look through the conversion reports you will see the conversions as Approved and Passed, but these will not be fired to your publishers. For these conversions, you will see that under "__AppsflyerImport" under the Pub. Sub Sub ID field in order to indicate that they were synced from Appsflyer. You can edit conversions just like a normal offer as well.
For Explorer, you can filter under Pub Sub Sub ID - "__apps". Pub Name and Pub Sub ID will show the media sources you linked from the steps above.
Last Sync
You can see the last sync for your data under the AppsFlyer Tab in Settings next to the Agency API token you connected.






