Quick start

Ten-minute setup — tracking domain, tracking link, Google Ads template, first conversion, first fraud score.

Updated 2026-09-02

This walkthrough gets a Google Ads campaign flowing through WhichClick end to end. Everything can also be done through the MCP server or the REST API.

1. Create an account and an API key#

Sign up at https://app.whichclick.is/register, create a project (organization) and open Settings → API keys. Keys look like wc_live_… and are shown once. Send them as Authorization: Bearer wc_live_….

Check the key
curl -s https://app.whichclick.is/api/v1/clicks?limit=1 \
  -H "Authorization: Bearer wc_live_xxxxxxxx"
# → {"data":[]}

2. Add a tracking domain#

Use a subdomain of your final-URL domain (for example go.yourbrand.com). Add it under Domains, then create the DNS records the dashboard shows:

RecordNameValue
CNAMEgo.yourbrand.comedge.whichclick.is
TXT_whichclick.go.yourbrand.comwc-verify=<token from the dashboard>

Click Verify. TLS is issued automatically once the CNAME resolves. Details: Tracking domains.

A tracking link binds a slug to a domain and a default final URL. The default is used only when a request has no visible url= parameter; Google traffic always carries one.

Note

Per Google's guidelines the visible url parameter wins over anything configured in the backend.

Create it in Tracking links → New, or with the MCP tool create_tracking_link. The dashboard shows the generated tracking template immediately.

4. Paste the tracking template into Google Ads#

Tracking template (account, campaign or ad-group level)
https://go.yourbrand.com/c/brand-search?url={escapedlpurl}&force_transparent=true&gclid={gclid}&campaignid={campaignid}&adgroupid={adgroupid}&creative={creative}&keyword={keyword}&matchtype={matchtype}&network={network}&device={device}&targetid={targetid}&loc_physical_ms={loc_physical_ms}
Final URL suffix
utm_source=google&utm_medium=cpc&utm_campaign={campaignid}&gclid={gclid}

Keep your landing page as the final URL. Details and nesting rules: Tracking template.

5. Test the redirect#

Transparent redirect self-test
curl -sI "https://go.yourbrand.com/c/brand-search?url=https%3A%2F%2Fyourbrand.com%2F%3Fx%3D1&force_transparent=true&gclid=TEST" | grep -i -E "^(HTTP|location|cache-control)"
# HTTP/2 302
# location: https://yourbrand.com/?x=1&gclid=TEST&wc_click_id=k3Zp9Qw1mR7tXc2b
# cache-control: no-store

The location must be exactly the url value plus wc_click_id. The click appears in Clicks within a second, with its fraud verdict a moment later.

6. Send a conversion#

Store wc_click_id from the landing-page URL (the web snippet whichclick.js does this for 7 days) and fire a postback when the user converts:

Server-to-server postback
curl "https://app.whichclick.is/postback?api_key=wc_live_xxxxxxxx&click_id=k3Zp9Qw1mR7tXc2b&event=purchase&value=49.90&currency=USD&order_id=ORD-1001"
# → {"ok":true,"id":"clx…","matched":true}

Conversions are idempotent on order_id + event. See Postbacks.

7. Turn on protection#

Add the engagement beacon to your landing pages so behavioural signals feed the risk score:

Landing page
<script async src="https://app.whichclick.is/wc.js" data-endpoint="https://app.whichclick.is/api/protect/beacon"></script>

Then connect Google Ads under Protect → Rules & Google Ads API so invalid IPs become negative IP criteria automatically. See Protection overview.

Next steps#