> ## Documentation Index
> Fetch the complete documentation index at: https://docs.trueorigin.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Tracking links

> One link per campaign, and the URL parameters that name the campaign, ad set and ad.

A tracking link looks like `https://appdownload.link/{link name}/{path}`. The link name
is set when you create the app; the path is chosen per link. A tap shows a short click
page and goes on to the App Store.

## Create a link

In the dashboard, **Tracking links → New link**:

| Field                             |                                                                                                                   |
| --------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| **Path**                          | Lowercase letters, digits and dashes, e.g. `summer`. Visible in the ad; cannot change later.                      |
| **Campaign label**                | Names the link in reports when the ad sends no `utm_campaign`.                                                    |
| **App Store URL**                 | Where the tap goes.                                                                                               |
| **Title**                         | Shown on the click page for a moment. Optional.                                                                   |
| **Android URL**, **Fallback URL** | Under *Android and fallback URLs*. The fallback is for desktop and everything else; it defaults to the App Store. |

A new link is live within about 15 seconds.

## Add the ad's URL parameters

The link alone tells you the campaign label. To see results per ad-network campaign, ad
set and ad, give the ad the network's URL parameters. The network fills in its
placeholders on every tap.

**For Meta** and **For TikTok** next to each link copy the link with the parameters
already appended: paste it as the ad's website URL and you are done. Or keep the plain
link as the URL and paste the parameters below into the ad's own field.

### Meta

Ads Manager → ad → Tracking → **URL parameters**:

```text theme={null}
utm_source=meta&utm_medium=paid&utm_campaign={{campaign.name}}&utm_content={{ad.name}}&campaign_id={{campaign.id}}&adset_id={{adset.id}}&ad_id={{ad.id}}&placement={{placement}}&site={{site_source_name}}
```

### TikTok

Ad → **URL parameters** (TikTok calls the ad set an *ad group*):

```text theme={null}
utm_source=tiktok&utm_medium=paid&utm_campaign=__CAMPAIGN_NAME__&utm_content=__CID_NAME__&campaign_id=__CAMPAIGN_ID__&adset_id=__AID__&ad_id=__CID__&placement=__PLACEMENT__
```

### Google Ads

Campaign or account → **Tracking template**. The final URL is the plain link; Google adds
`gclid` itself.

```text theme={null}
{lpurl}?utm_source=google&utm_medium=cpc&campaign_id={campaignid}&adset_id={adgroupid}&creative_id={creative}&utm_term={keyword}&site={network}&placement={placement}
```

### Snapchat

Ad → **URL parameters**:

```text theme={null}
utm_source=snapchat&utm_medium=paid&campaign_id={{campaign.id}}&adset_id={{adSquad.id}}&ad_id={{ad.id}}
```

### Creators and everything else

Use a separate path per creator or channel, e.g. `appdownload.link/yourapp/anna`, and add
`utm_source` / `utm_campaign` if you want them in reports. Every parameter on the link
reaches your app in `payload.query`.

## Checking a link

A placeholder that arrives unreplaced, such as `{{ad.id}}` or `__CID__`, means the network
did not fill it in: the parameters are in the wrong field, use another network's syntax,
or the link was opened straight from a browser instead of the ad. The value is dropped;
fix the ad and new taps come in complete.

The ad networks add their own click id (`fbclid`, `ttclid`, `gclid`, …) to every tap.
TrueOrigin uses it to tell which network a tap came from and to send
[postbacks](/postbacks).
