Analytics

Should you build your own AppsFlyer?

Mobile measurement platform that attributes app installs and in-app events to the ad campaigns that caused them.

Worth subscribing · the value goes beyond code
Price Not listedEstimated time multi-dayCategory AnalyticsCatalog votes 0

You can absolutely build a click tracker: log clicks, generate deep links, receive install pings from your own SDK, join them in SQLite. What you cannot build is the reason AppsFlyer exists, which is that Meta, Google, TikTok and Apple do not hand raw attribution data to random self-hosted endpoints. Those self-attributing networks report only to certified measurement partners, and SKAdNetwork/AdAttributionKit postbacks are aggregated and privacy-thresholded by design. Add install fraud detection, which is a data problem across billions of devices rather than a code problem, and the gap stops being about engineering effort. The honest consolation build is a first-party attribution tracker for channels you control: your own links, emails, influencer codes, organic web to app.

ENOriginal research content in English. Original prompt preserved in English.

The complete prompt
Build a self-hosted first-party mobile attribution tracker. TypeScript, Fastify, SQLite via better-sqlite3, Vite plus React for the dashboard, Docker Compose for deployment. No accounts, no cloud services, no telemetry.

What it does:
1. Link service: POST /api/links creates a tracked link with campaign, source, medium, and an optional destination path in my app. Each link gets a short id served at GET /l/:id.
2. On click, /l/:id records a click row: timestamp, short id, user agent, platform guess from UA, referrer, IP truncated to /24 for IPv4 and /48 for IPv6, and a random click token set as a cookie. Then 302 to a universal link if the platform is iOS or Android, otherwise to a configured web fallback.
3. Serve /.well-known/apple-app-site-association and /.well-known/assetlinks.json from files in ./public so real deep links work.
4. Ingest endpoint: POST /api/events accepts { deviceId, eventName, clickToken?, platform, appVersion, ts, value? } authenticated by a shared secret in APP_INGEST_KEY. Store raw events untouched in an events table.
5. Attribution job: for each first_open event, attribute deterministically if clickToken matches a click. Otherwise do a probabilistic match against clicks in the last 24 hours on the same truncated IP and platform, and mark it as probabilistic with a confidence field. Never overwrite a deterministic match. Store results in an attributions table so the logic can be re-run idempotently.
6. Dashboard at /: table of campaigns with clicks, installs, deterministic versus probabilistic split, and any named post-install events. Date range picker. CSV export.
7. CLI script: npm run import-spend that loads a CSV of campaign,date,spend so the dashboard can show cost per install for channels I bought myself.

Explicitly out of scope, and say so in the README: SKAdNetwork and AdAttributionKit postbacks, any integration with Meta, Google, TikTok or Apple Search Ads, fraud detection, audience syncing, and a native SDK. The client side is a documented HTTP contract only.

Secrets in .env: APP_INGEST_KEY, PUBLIC_BASE_URL, WEB_FALLBACK_URL. Include a seed script with fake clicks and installs, and vitest tests covering deterministic match, probabilistic match, and the no-double-attribution rule.

The prompt opens pre-filled in your agent. Review it before running. · this prompt is generated from the build plan · improve it via PR

Original prompt preserved in English.

What would building your own look like?

A self-hosted link tracker that issues tagged deep links, logs clicks, and matches them to install and event pings from your own app SDK to give you first-party attribution for channels you control.

What you will need

Why paying can still make sense

Because attribution is not a computation, it is an entitlement. The moment a meaningful slice of your spend goes to Meta or Google or TikTok, your homegrown tracker sees a blob of untagged traffic and shrugs, while the ad networks themselves only talk to partners they have certified. On top of that, media buyers want a neutral scorekeeper both sides accept, finance wants one number, and nobody wants to argue with a partner about whose SQL is right. The price is the referee, not the dashboard.

What you lose

xSelf-attributing network data from Meta, Google, TikTok and Apple Search Ads, which is restricted to certified measurement partners

xSKAdNetwork and AdAttributionKit postback handling, decoding and conversion value modeling

xInstall and click fraud detection, which depends on cross-advertiser device data you will never have

xPostbacks and audience syncs to thousands of ad partners and MMP-only integrations

xA maintained SDK that survives every OS release, ATT prompt change and privacy policy update

xDeterministic cross-device and cross-platform identity resolution

prior art · use these instead of building, if you’d rather

Nothing worth pointing at. That’s why the prompt exists.

Share on X ↗"I just replaced AppsFlyer with one prompt"
Plans and pricing

How much does AppsFlyer cost?

In your currency · US DollarChecked on 10/20/2026

No public price. Check the official site.

Buy on the official site

You complete the purchase on AppsFlyer’s site. Vibe Radar does not handle payments.

Compare withanother app →
Build or buy

Is it cheaper to build or buy AppsFlyer?

Adjust the numbers: hours to build, your hourly rate, running costs and the subscription price.

Subscribe
Build it yourself
Horizon
Subscribe$0
Build it yourself$3,320

Over 24 months, subscribing is cheaper.

Starting hours estimated from the analysis (multi-day). Does not price what you give up (support, integrations, security).

Frequently asked questions
Can I rebuild AppsFlyer?

Not really. AppsFlyer’s value is not the code: The moat is certified access to networks that refuse to report to anyone else, plus fraud signals drawn from device data across the whole industry. See the honest breakdown above.

How much does AppsFlyer cost?

AppsFlyer’s pricing is usage-based or varies by plan · Growth is pure pay-as-you-go at $0.07 per conversion with no fixed monthly fee; Zero is free and Enterprise is custom..

What do I lose by replacing AppsFlyer?

Honestly: Self-attributing network data from Meta, Google, TikTok and Apple Search Ads, which is restricted to certified measurement partners; SKAdNetwork and AdAttributionKit postback handling, decoding and conversion value modeling; Install and click fraud detection, which depends on cross-advertiser device data you will never have; Postbacks and audience syncs to thousands of ad partners and MMP-only integrations; A maintained SDK that survives every OS release, ATT prompt change and privacy policy update; Deterministic cross-device and cross-platform identity resolution. If any of those are load-bearing for you, keep paying.

Is there an open-source alternative to AppsFlyer?

No mature open-source alternative worth pointing at, which is exactly why the one-shot prompt on this page exists.

New ideas on your radar.

Get catalog updates and prompts for your next project.