Appy
← Back to Blog
Guide

How to Track App Downloads From Your Website: Four Free Signals, No MMP

Your site has “Get the app” buttons and nobody knows what they bring in. App Store Connect, Apple’s campaign links, Play Console and your own link clicks answer most of it for free. What each one counts, where it goes blind, and why GA4 files Android installs under direct.

October 23, 2026•7 min read

See what your “Get the app” buttons bring in

  • One link per button, free to start
  • App Store downloads per link on Pro
  • Bots and link previews left out
Create your free link

The question behind the button

Your site has a “Get the app” button in the header, another on the pricing page and a third in the footer. Someone asks how many installs the website drove last month. Without a mobile measurement partner (MMP) and its SDK, nobody hands you that number.

The stores count more than most teams read. This guide stays with one source, your website, and four signals that cost nothing. For measuring installs with proof in general, read our guide to measuring installs without fingerprinting; for print, the QR install guide.

Four free signals

App Store Connect sources

  • Downloads by where the tap happened
  • Web Referrer: websites tapped in Safari
  • No setup and no code

App Store campaign links

  • Downloads per token, one token per button
  • Page views, sales and subscriptions per campaign
  • Totals, never a list of people

Google Play Console

  • Store listing numbers filtered by UTM campaign
  • An install referrer your app can read
  • UTMs travel inside the Play link

Your link’s own clicks

  • Taps sent to the App Store, Google Play or your website
  • Per button, country and device
  • Previews and bots left out

App Store Connect: Web Referrer and App Referrer

In your app’s Analytics, filter by Source Type. Apple sorts downloads into App Store search, App Store browse, App Referrer, Web Referrer, App Clip, Institutional Purchase and Unavailable, and later sales and usage follow the source recorded at the tap (Apple’s acquisition help, October 23, 2026).

Web Referrer sounds like your answer: people who tapped a link on a website that led to your product page. Filter by it and you get a list of websites. Three catches.

It belongs to Safari. Apple notes that on iOS, a tap on a website in Chrome or another browser is credited to that browser as an App Referrer. Redirects move the credit: in a chain of redirects in Safari, Apple names the last URL as the referrer, so a short link between your button and the store can take your site’s place. And the reports fill in only once the app has at least five first-time downloads.

The API adds a fourth: in November 2025 a developer reported that the per-app impression rows under App Referrer in the detailed report added up to less than the dashboard. Apple hadn’t replied in thread 808589 by October 23, 2026; its campaign help says detailed reports may withhold or combine rows for very small groups of users.

Where a tap on your button shows up

Tags decide whether the stores can tell your buttons apart.

iPhone, Safari
Untagged linkWeb Referrer: your site, or the last redirect before the store
Campaign token or UTMsCampaign: the token you gave that button
iPhone, Chrome or another browser
Untagged linkApp Referrer: the browser, not your site
Campaign token or UTMsCampaign: the token you gave that button
Android, any browser
Untagged linkNo UTM campaign in Play Console, (direct) in GA4
Campaign token or UTMsYour UTM campaign in Play Console and GA4
From Apple’s acquisition help and Google’s Play Console and Analytics help, read on October 23, 2026. The GA4 cells assume your app logs first_open through the Firebase SDK.

Campaign links: a name for every button

Apple’s campaign links are the closest thing to per-button numbers without code: your App Store address plus pt, your provider token, and ct, a campaign token you pick. The provider token identifies your developer account and stays the same across campaigns, so only ct differs from button to button.

The rules, from Apple’s campaign links page on October 23, 2026: ct takes up to 30 characters. A first-time download counts if it happens within 24 hours of the tap, and the most recent campaign link gets the credit. A campaign appears at least 24 hours after launch, once at least five people have downloaded through it, and each metric needs five in the date range you pick, so a quiet button can stay blank until you widen it. What comes back is totals: impressions, page views, downloads and the sales that follow.

Give each button its own campaign

The free route, by hand. On Appy Pro, each link’s name becomes its campaign and step 3 happens by itself.

01

Get your provider token

In App Store Connect, open Analytics, click Campaigns under Acquisition and press +. Generate a link with any name; the number after pt= is your token.

02

Name one campaign per button

header, pricing, footer. Decide before launch: a different spelling is a different campaign.

03

Build the links

Appy’s free App Store campaign link builder checks the 30-character rule and builds the matching Google Play link with UTMs in its referrer.

04

Wait a day, then filter

Open Metrics, click Add Filter, choose Campaign and pick a button.

05

Set page views against downloads

Each campaign’s product page views next to its first-time downloads give a rough conversion rate per button on iPhone. The busiest button isn’t always the one that brings installs.

Google Play: UTMs ride in the referrer

On Android, two readers see the same link. Play Console’s Listing conversion analysis (Grow users, Store performance) filters by UTM source and UTM campaign: the utm_source and utm_campaign values in links to your listing. Google’s sample link puts them, URL-encoded, in the referrer parameter, 512 characters at most. Play Console doesn’t mention utm_medium; add it for GA4. The free UTM builder keeps the names consistent across buttons.

Since July 2026, Google’s store listing reports lead with Install clicks rather than acquisitions, which moved to Statistics and exports. Campaigns too small to report alone are grouped under “Other”.

The second reader is your app: the Play Install Referrer API returns that referrer with the time of the click and of the install, which is per-install proof on Android.

Your link’s clicks: intent, not installs

The fourth signal is yours. Put an Appy link behind each button instead of a bare store address: phones go to their store, computers to your website. Appy reports clicks sent to the App Store, Google Play and the website, by country and device, with previews and other bots left out.

Read those as intent: a click that reached the App Store is a person on your listing, not an install. It is still the one number the stores can’t give you.

On Pro ($9.99 a month), save your provider token once in Settings, and every App Store visit from your links carries pt and ct set to the link name, so App Store Connect lists a campaign per link. No SDK, no app release. Google Play visits carry the link name in the install referrer as appy_slug. Free covers four links if you only want the clicks.

For phone visitors who never reach a button, Appy’s web banner (Pro) shows an “Open in app” banner through an Appy link, with its own impressions and clicks, and no cookies.

One button, every phone

The header button, pointed at an Appy link named header, with a provider token saved on Pro.

appy.to/header

behind “Get the app” in your site header

  • iPhoneApp Store, with pt and ct=header
  • AndroidGoogle Play, with appy_slug=header in the referrer
  • Huawei phoneAppGallery
  • ComputerYour website
  • Link preview or crawlerLeft out of your click count
Every lane but the last counts as a click. Once a day has passed and five people have downloaded, App Store Connect reports the iPhone downloads under the campaign “header”.

Why GA4 calls them direct

GA4 on your website sees the tap, not the install. With enhanced measurement on, a tap that leaves your domain is logged as a click event with the link’s URL. Google says app installs are tracked as first_open, which the Firebase SDK logs once the app is opened: in your app’s data, not your website’s.

On Android, that first_open takes its campaign, source and medium from the utm_ values in the Play link’s referrer, and Google records a Play link with no referrer as (direct). If your website installs look direct, check the button first: it probably points at a bare Play address.

iPhone has no equivalent. Apple doesn’t document a way for the App Store to hand your UTMs to the app’s first launch, so for iPhone trust the campaign totals in App Store Connect, not GA4.

When you need an SDK

All of this gives totals per button, plus per-install proof on Android if your app reads the referrer. If the app itself must know which link each new user came from, to open the right screen or pay a partner per install, that is install attribution and it needs code: at Appy, the Enterprise SDK. For most websites, the free signals already say which button brought the installs.

Read next

Tracking app downloads: questions

How do I track app downloads from my website?

Give each “Get the app” button its own link. On iPhone, add an App Store campaign token per button and read downloads per campaign in App Store Connect. On Android, put utm_source and utm_campaign in the Play link’s referrer and filter Play Console by UTM campaign.

Can Google Analytics track app downloads?

Not from your website’s data. GA4 sees the tap as an outbound click; the install is logged as first_open by the Firebase SDK in your app.

Why do my app installs show as (direct) in GA4?

Google records an Android install as (direct) when the Play link had no referrer. Put your UTMs in the Play link’s referrer parameter.

What does Web Referrer mean in App Store Connect?

Page views and downloads from people who tapped a link on a website in Safari. On iPhone, taps in Chrome and other browsers count as App Referrer under the browser’s name.

Why doesn’t my campaign show up in App Store Connect?

Apple shows a campaign at least 24 hours after launch, once at least five people have downloaded through it. Widen the date range, and check the link has both pt and ct.

Do I need an SDK to track app downloads?

Not for totals per link: App Store Connect campaigns and Play Console UTM campaigns are free and need no code. Tying each install to its link inside the app needs code, which at Appy is the Enterprise SDK.

Continue exploring

Guide
Oct 21, 2026
8 min read

How to Measure App Installs Without Fingerprinting

Apple doesn’t allow fingerprinting even when users agree to tracking, and EU regulators treat IP-based tracking as access to the device. What still measures installs with proof on iPhone and Android, and a plan that never has to guess.

attribution
fingerprinting
privacy
install attribution
Read article
Marketing
Mar 16, 2026
10 min read

How to Track QR Code App Installs Without Guessing

A practical measurement setup for QR code app install campaigns, including redirects, UTMs, first-open events, and reporting.

qr code analytics
app installs
measurement
attribution
Read article
Guide
Oct 23, 2026
8 min read

Custom Product Page and Custom Store Listing Links: Send Each Campaign to Its Own Store Page

Apple allows 70 custom product pages and Google Play 50 custom store listings, each with its own URL. How the two URLs work, one link per campaign for both, what the deep link field changes, and where to read results without an MMP.

custom product pages
custom store listings
app store
google play
Read article

Looking for something else? Browse all topics on the blog.

Put a link behind every “Get the app” button

One Appy link per button. Phones go to their store, computers to your website, and you see the clicks without the bots. On Pro, App Store Connect reports downloads per link.