# Deep link and URL templates

For each product `Option` in the product feed, you can provide up to two deep
links (one for product view and another for list view). Each deep link has
built-in URL template support which enables Google to provide you information
about the source of the deep link click.

> [!NOTE]
> **Note:** Things to do Ads will always use the list view deep link if available. Things to do search will determine the most suitable deep link depending on context.

By adding additional parameters using URL templates to your deep links, you can
identify the source of the deep link click, the currency and language of the
user and some additional detail about the product clicked. With this
information, you can then route the user to the most appropriate landing page
(e.g. with the matching language and currency).

> [!NOTE]
> **Note:** While Option deep links can be the same across a single product, depending on the website design it may make sense to add an anchor to the URL on a per option basis. This will allow the option selected by the user to be presented front and center on the landing page.

## How URL templates work

To make use of URL templates, deep links provided to Google must include URL
template parameters such as `{lang}`. When your deep link is clicked, the URL
which the user is directed to will replace these parameter with the resolved
values.

If you want to add more than one parameter to a single URL, append them
together in your URL using an ampersand (\&), like this:
`?currency={currency}&language={lang}`

For language codes, refer to
[BCP47](https://tools.ietf.org/search/bcp47).

The supported URL parameters are:

| Parameter | What it returns |
|---|---|
| `{src}` **deprecated** | Source of the deeplink click. e.g. The value \`cu\` will be returned when URL is triggered from Things to do Ads. Possible values are: bm, cu, e, o. **This field is now deprecated.** This field will continue to be populated for a short period while partners migrate. |
| `{surface}` | The surface which the product is served on. Possible values are "search", "maps". |
| `{funnel}` | Which query funnel which the product is served from. Possible values are "cat", "nav" |
| `{lang}` | The language the user is browsing in. For example: "en-US". |
| `{currency}` | The currency the user is browsing in, For example: "USD". |
| `{product_id}` | The id of the product which the user clicked. |
| `{option_id}` | The id of the product option which the user clicked. |
| `{GOOGLE-ADS-CLICK-SOURCE}` | The Ads source which the click came from. Possible values: tfsa, tpa |

> [!NOTE]
> **Note:** src parameter is deprecated and support for the parameter will be removed over time.

### Navigational versus categorical queries

Navigational queries are user queries with significant navigational intent such
as "Eiffel Tower", "Dan's bike tours". Traffic generated from these queries
have their `funnel` template value set to `nav`.

Categorical queries are queries such as "Bike tours in Paris" where the user is
looking for a breadth of options. Traffic generated from these queries have
their `funnel` template value set to `cat`.

## Examples

If a user is browsing in *English UK* , shopping in *Pounds* and
clicked on *an attractions ticket on Google maps* then the URL template:

    www.test.com/deeplink?s={surface}&f={funnel}&lang={lang}&currency={currency}

will resolve to:

    www.test.com/deeplink?s=maps&f=nav&lang=en-GB&currency=GBP