To track app installs from Instagram UGC accounts, give each account its own link, send that link in the comment-to-DM message, and read the funnel per account. Instagram shows views and comments, the automation tool shows messages and link taps, and your attribution tool or store console shows installs.
The rest of this page covers how to tag the link, what each tool can and cannot see, and which numbers tell you which account to keep. It assumes you already run UGC accounts as part of marketing an app on Instagram.
Why does each UGC account need its own link?
Each UGC account needs its own link because a shared link makes every account look identical, and your numbers then show one total with no ranking. An install lands in your attribution tool or store console with no memory of the reel that earned it, unless the link carries a label.
Think of each account as a small experiment: one persona, one niche, one hook style. A tagged link is how the experiment reports back. Tag by account first. If you can, tag by reel or by angle too, so you learn which hook earned the install and not only which account posted it.
The link matters more than usual here because of where it travels. Links typed into captions and comments are not tappable, as our link in bio entry explains, so the link reaches people in a DM. Our post on how UGC accounts send app download links covers the sending side, and the send links in DMs page shows the pattern.
How do you measure UGC for apps, from reel to install?
You measure UGC for apps as a five-stage funnel, and each stage is read in a different place. No single dashboard holds all five, so copy the numbers into one sheet with a row per account per week.
| Stage | Where you read it | What it tells you |
|---|---|---|
| Reel views | Instagram's insights for that account | Whether the hook earns attention |
| Comments with the word | Instagram, and the automation tool's matched comments | Whether viewers want what you offered |
| DMs sent | The automation tool | How many commenters received your message |
| Link taps | The automation tool on Growth, or your web analytics | Whether the message makes the app worth a tap |
| Installs | Your attribution tool or the store console | Whether the landing or store page converts |
Read the same stage across accounts, never different stages against each other. A drop between two stages points at the part of the funnel to fix: the hook, the call to comment, the DM, or the page the link opens.
How do you build UTM links for Instagram DMs, for a web app versus a mobile app?
For a web app, add UTM values that name the account and the angle to your URL, and for a mobile app, create one tracking link per account in your attribution platform and name the account in its source or campaign field. Both versions end the same way: the finished link goes into the automation's DM, one automation per account.
For a web app, a generic tagged link looks like this:
https://yourapp.com/start?utm_source=instagram&utm_medium=dm&utm_campaign=account_a&utm_content=angle_one
Here utm_source names the platform, utm_medium names the channel, utm_campaign names the account, and utm_content names the reel or angle. The exact scheme matters less than using one scheme everywhere. Write each value in lowercase with underscores, keep a sheet of the names you have used, and never rename a value halfway through a test, because two spellings of one account split its numbers in two.
For a mobile app, teams commonly use a mobile measurement platform such as AppsFlyer, Adjust or Branch. In whichever tool you use, create one tracking link per UGC account and put the account's name in the field that tool provides for the traffic source or campaign. Paste that link into the account's DM, and keep the account name identical to the name in your sheet.
Before you send anything, tap the link from a test DM on your own phone and confirm the account name appears in your tool. A link you have not tested is a guess.
What can inDM show, and what can't it?
inDM shows comments matched and messages sent, per automation, on every plan, shows who tapped a link, from where and when on Growth, and never sees installs. Installs happen in your app or store listing, which inDM does not reach.
Here is how the plans line up for this job:
- Free: $0 with no card, unlimited messages, 1 Instagram account, 3 automations and 1 link per automation. Every message ends with one line of inDM credit.
- Growth: 7 days free, then $14.99 a month. Up to 5 Instagram accounts, unlimited automations, up to 3 links per automation, your brand alone, and link analytics.
- Agency Lite and Agency Pro: $39 a month for up to 15 accounts, and $99 a month for 30 accounts included, then $3 a month for each account after. Same features as Growth.
The pricing page has the full list. Because Free covers one account, a team that compares several UGC accounts needs Growth or an agency plan.
Name each automation after its account and angle, so the inDM numbers line up with the rows in your sheet. An automation can watch one post, every post, or on Growth your next post, and a keyword trigger must start a word in the comment, so "app" matches "apps" but not "happy". The setup guide walks through building one. If a persona account is held by someone else, a connect link lets its owner connect it without sharing a password.
Which UGC account drives installs, and which numbers decide it?
Compare accounts on three rates: the comment rate on the word, the tap rate on the DM, and the install rate from taps. Raw counts reward whichever account has the biggest audience, and the biggest audience is not always the best account.
- Comment rate: comments with the word divided by reel views.
- Tap rate: link taps divided by DMs sent.
- Install rate: installs divided by link taps.
Here is an example with round numbers we made up. They are not data from any account. Say account A and account B each post one reel, and each commenter receives one DM.
| Account A | Account B | |
|---|---|---|
| Reel views | 10,000 | 50,000 |
| Comments with the word | 200 | 250 |
| DMs sent | 200 | 250 |
| Link taps | 100 | 50 |
| Installs | 10 | 5 |
| Comment rate | 2% | 0.5% |
| Tap rate | 50% | 20% |
| Install rate | 10% | 10% |
Account B had five times the views and more comments, yet account A produced twice the installs. Per 1,000 views, account A produced 1 install and account B produced 0.1. The install rate is the same at 10%, so the app page converts equally well for both. The gap sits earlier: account B's DM earned taps from 20% of recipients where account A's earned 50%, and its comment rate is a quarter of A's. In this example you would study account A's hook and DM message, and test A's wording on account B before cutting it.
Wait for enough volume that one more install would not change the ranking. A few installs separate accounts only by luck.
Where this stops working
A tagged link measures the taps and installs that stay tied to it, and several things can break that tie. Treat the numbers as a ranking tool, not an exact count.
- Test the path the link takes. Instagram opens links tapped in messages in its in-app browser by default, and a URL button in a DM opens the page there. Tap your link from a real DM on both iPhone and Android and confirm the account name arrives in your tool before you trust the numbers. The browser's menu also offers "Open in external browser".
- Installs undercount. Attribution windows and privacy limits mean some installs are never tied back to a tap. Read the install count per account as a floor, and compare accounts with the same method.
- Tools disagree. Taps counted by your automation tool and clicks counted by your attribution tool will not match. Compare each number within its own tool.
- Some people never use the link. A viewer who sees a reel and searches for your app by name later is not tied to any link.
- Comments have a window. Meta allows one private reply per comment, sent within 7 days of the comment. Our messaging window entry covers the related 24-hour rule.
- Disclosure still applies. The FTC's guidance, which is US guidance, says to disclose any financial, employment, personal or family relationship with a brand. An account run by an app's own team, or paid by it, promoting that app has such a relationship. Our post on what UGC accounts are covers the wider rules.
You leave with one tagged link per account, a five-stage funnel read in three places, and three rates that show which account earns its place.
Sources
- Meta for Developers, Private Replies, read 2 November 2026: one private reply per comment, within 7 days of the comment.
- Meta for Developers, Button Template, read 2 November 2026: a URL button opens the page in Instagram's in-app browser, and a message can carry 1 to 3 buttons.
- Instagram Help Center, About in-app browsing, read 23 October 2026: links open in the in-app browser by default, with an "Open in external browser" option.
- FTC, Disclosures 101 for Social Media Influencers, read 2 November 2026: disclose any relationship with a brand.