I ran a few X ad campaigns last year for a productivity app. Promoted tweets, targeted by interest and keyword. The ads dashboard showed me impressions, clicks, installs. Standard stuff. What it didn't show me was whether any of those installs turned into actual revenue.
That's the problem with X (formerly Twitter) as an app marketing channel. The ad platform tracks engagement well enough. It can even track installs if you set up their mobile app conversion tracking. But the moment someone opens your app and buys something, X loses the thread. You're left with a click count and a hope.
What X actually tracks
X Ads Manager gives you impressions, engagements, clicks, and app installs (through their SDK or an MMP integration). If you've set up app event optimization, you can track specific in-app actions like registrations or tutorial completions.
Purchase tracking exists in theory. In practice, getting it to work reliably requires an MMP like AppsFlyer or Adjust. You set up postback URLs, configure event mappings, and pray the data matches up. For a solo developer spending £50-200 on ads, this is overkill. The MMP costs more than the ad spend.
For organic X activity, which plenty of indie devs rely on for marketing, there's no attribution at all. You tweet about your app, someone clicks the link in your bio, installs it, and buys premium a week later. X has no idea that happened. Neither do you.
The organic problem is worse than you think
A lot of indie app developers get their best users from X. Not from ads, but from building in public, sharing dev updates, posting screenshots, replying in relevant threads. These users convert well because they've been following along. They already trust you by the time they install.
But you can't measure any of it. Your analytics show a spike in installs after a viral tweet, but you can't connect individual purchases back to specific posts. If you're posting three times a day across different angles, you have no idea which type of content actually drives revenue.
I talked to a developer who was convinced his technical deep-dive threads were his best marketing. When he finally set up proper per-link tracking, it turned out his casual "here's what I shipped today" posts were driving four times more purchases. He'd been optimising the wrong content for months.
The MMP tax
The standard advice is to integrate an MMP. AppsFlyer, Adjust, Branch, Kochava. They'll give you proper attribution across all channels including X.
Here's the catch. These tools are priced for companies spending thousands on ads. AppsFlyer starts at around $500/month. Adjust isn't much cheaper. Branch has a free tier, but it's limited and the setup complexity is real. You'll spend days configuring postback URLs, SDK integrations, and dashboard settings before you see a single data point.
For an indie app making £200/month, spending £400 on attribution tools is absurd. So most developers just don't track it. They run ads, check the X dashboard, and guess.
A simpler approach
What you actually need is straightforward. A unique tracked link for each campaign, post, or content type. When someone clicks that link, installs your app, and eventually makes a purchase, you can see the full chain.
Here's how this works in practice with X:
For ads: Create a tracked link for each ad group or campaign. Use that link as your destination URL instead of a direct App Store link. When someone clicks through, installs, and buys, you see which ad group drove the purchase.
For organic posts: Create a tracked link for each content category. One for "building in public" posts, one for feature announcements, one for your pinned tweet, one for your bio link. This tells you which type of organic content actually converts.
For threads: If you write long threads, put a tracked link at the end. Different thread, different link. Now you know which threads are worth writing.
The key is that the tracking follows through to the purchase, not just the click. Clicks are cheap. Purchases pay rent.
Setting this up with LinkOwl
LinkOwl handles this without requiring an MMP integration. You create tracked links in the dashboard, use them in your X campaigns and posts, and the SDK in your app reports purchases back. The whole chain connects automatically.
If you're using RevenueCat for subscriptions, it's even simpler. LinkOwl's RevenueCat webhook catches purchase events and matches them to the original link click. You don't write any purchase-tracking code yourself.
The practical steps:
- Sign up at linkowl.app and register your app
- Add the SDK (Swift or React Native, takes about five minutes)
- Create tracked links for your X campaigns and content types
- Use those links everywhere you'd normally use a direct App Store link
- Check the dashboard to see which links are driving actual purchases
Pricing is 5p per attributed purchase. No monthly fee, no minimum spend. If nobody buys, you pay nothing. If 100 people buy, that's £5.
What to actually track on X
Don't create a unique link for every single tweet. You'll drown in data. Instead, think in categories:
- Paid campaigns: One link per ad group. This tells you which targeting works.
- Bio link: One persistent tracked link. This shows how much your profile itself converts.
- Content types: Maybe three or four links. "Dev updates," "feature launches," "engagement posts," "threads." This tells you what to post more of.
- Specific experiments: When you're testing a new angle, give it its own link for a week. Compare against your baseline.
The goal isn't to track everything. It's to answer the questions that change what you do next. "Should I spend more on X ads?" and "Which content type should I double down on?" are the ones that matter.
X versus other channels
One thing I've noticed across multiple apps: X tends to drive fewer total installs than TikTok or Instagram, but the users who come from X are often more engaged. They've read about your app in context. They've seen other people's reactions. They arrive with expectations and usually stick around longer.
This means X can look bad in a pure install-count comparison but actually deliver better revenue per install. You only see this if you're tracking purchases, not just downloads. Which brings us back to the whole point of attribution.
The real question
Most indie developers I talk to are spending time on X already. Posting updates, engaging with the community, occasionally running small ad campaigns. The time investment is already there.
The missing piece is knowing what works. Not in a "this tweet got 50 likes" way, but in a "this type of content drove £47 in purchases last month" way. That's the difference between marketing as a guessing game and marketing as something you can actually optimise.
Set up per-link attribution once, and every X post you make from that point forward generates data you can act on. That seems worth the five minutes it takes to get started.