Analytics Overview
Aghanim Connect ships ready-made connectors for marketing attribution and product analytics. One-time setup, no SDK work: get a key from your provider, paste it in the Dashboard, click Install.
This page covers what all analytics connectors have in common. Provider-specific steps live in each connector's guide.
How it works
There are two kinds of analytics connectors:
- Server-to-server — Aghanim's backend sends monetization events (purchase, refund) straight to the provider's API. Nothing runs in the player's browser; ad blockers can't affect these events.
- Web pixels (client-side) — the hub loads the provider's script and reports on-site behavior: page views, item views, add-to-cart, checkout starts.
Both are configured the same way: Dashboard → Aghanim Connect → connector → Install.
Choose your connector
| Connector | Kind | Purchase | Refund | Best for |
|---|---|---|---|---|
| AppsFlyer | Server-to-server | ✓ | ✓ | Mobile attribution (MMP) |
| Adjust | Server-to-server | ✓ | — | Mobile attribution (MMP) |
| Singular | Server-to-server | ✓ | — | Mobile attribution (MMP) |
| Tenjin | Server-to-server | ✓ | — | Mobile attribution (MMP) |
| Google Analytics for Firebase | Server-to-server (GA4 Measurement Protocol) | ✓ | — | Sending hub purchases into your existing GA4 / Firebase property, per platform (web / iOS / Android) |
| devtodev | Server-to-server | ✓ | ✓ | Game product analytics (also tracks free item claims) |
| ThinkingData | Server-to-server | ✓ | ✓ | Game product analytics (revenue also reported in USD) |
| Google Analytics | Web pixel | — | — | On-site behavior in your GA4 property |
| Google Tag Manager | Web pixel | — | — | Forwarding hub events to any tool without a native connector |
| Meta Pixel | Web pixel | — | — | Meta ads optimization on hub behavior |
A typical setup is one MMP + Google Analytics. Connectors are independent — install as many as you need.
The purchase event
All server-to-server connectors report purchases the same way:
- When: the moment an order is successfully paid.
- Revenue: gross amount in the order's local currency.
- Transaction ID: the Aghanim order ID — the same ID you receive in the
item.addwebhook and see in transaction reports, so you can join analytics data with your own records. Sent by AppsFlyer, Google Analytics for Firebase, Singular, devtodev and ThinkingData. - User ID: your player ID — the same one Aghanim verifies in
player.verify. For AppsFlyer and Google Analytics for Firebase you can override it per player via theappsflyer_customer_user_id/ga4_user_idplayer attributes.
Excluded Sales Channels
Every server-to-server connector has an Excluded Sales Channels field. Purchases from the selected channels are not sent to that provider:
game_hub · checkout · checkout_link · android_sdk
Use it when a channel is already tracked elsewhere (for example, in-app purchases through the Android SDK already reported by your game build). It applies to purchase events only — leave it empty to track everything.
Avoiding double counting with your in-game tracking
If your game already reports purchases to the same provider:
- Deduplicate by transaction ID. Hub purchases carry the Aghanim order ID; your in-game events don't — the two sets never overlap, and the order ID gives you a stable key.
- Or exclude the channel. If both the hub and your game would report the same purchase, exclude that sales channel on one side.
- GA4: the hub reports into your Measurement ID — there is no separate Aghanim property. If your game uses the same property, rely on
transaction_idfor dedup. Session continuity between the hub and checkout is handled automatically. - Attribution continuity from the game: pass
appsflyer_id,adjust_device_idorga4_client_idas parameters in the game → hub deep link, and Aghanim attaches them to the player.
Sandbox
Sandbox hubs send analytics events too:
- Adjust events are tagged
environment=sandbox. - AppsFlyer uses dedicated sandbox event names (e.g.
af_purchase_sandbox_s2s). - Other providers receive sandbox events unmarked — point the connector at a test app / property while integrating, and switch the key when you migrate to production.
Verifying your setup
- AppsFlyer and ThinkingData validate your credentials with a test call at install time — a wrong key fails immediately.
- For the rest, make a sandbox test purchase and check the provider's real-time / live events view.
- Not seeing events? Contact us at [email protected] — we can inspect and resend events on our side.
Provider not listed?
Install Google Tag Manager: the hub pushes its event stream (view_item_list, add_to_cart, buy_click, go_to_payment, login, and more) to the dataLayer, and you can forward it to any tool with a GTM tag. Or tell us which provider you're missing: [email protected].
Need help?
Contact our integration team at [email protected]