# Revenue and campaigns

## Orders and revenue

- **Shopify:** the [Shopify pixel](/docs/data-capture/shopify-checkout) captures every order.
- **Any other platform:** Kontala reads the order from your data layer on the order confirmation page, typically a GA4 `purchase` push.
Map its value to the standard field `k_order_value` and its id to `k_order_transaction_id` on the **Data layer** page.
Each order is counted once.

## Conversions

- A **purchase** is an Order confirmation page view.
- A **lead** is a Form confirmation page view.
- A form sent with a Request demo, Newsletter signup or Start trial click counts too.

## Campaign parameters

Kontala keeps these query parameters on every page URL:

- Every parameter starting `utm_`.
- Ad click ids: `gclid`, `gbraid`, `wbraid`, `dclid`, `srsltid`, `msclkid`, `fbclid`, `ttclid`, `twclid`, `li_fat_id`, `rdt_cid`, `epik`, `sccid`, `yclid` and `oppref`.
- `gad_source`, `gclsrc` and `ref`.

You can keep more on the property's **URL data** card.
A visit's campaign is the one on the first page of the visit.

## Channels

Every visit is sorted into one of 10 channels:

Paid Search, Paid Social, Email, AI Assistants, Organic Search, Organic Social, Other Campaign, Direct, Internal and Referral.

AI Assistants covers visits referred by ChatGPT, Perplexity, Gemini, Copilot, Claude, DeepSeek and Grok, or tagged with `utm_medium=ai-assistant`.

## Attribution

The Attribution explore and dashboard credit conversions to the visits that led to them, over a 90-day journey, by last touch, first touch or linear.
Direct and Internal visits only get credit when nothing else touched the journey.

## Ad spend

Upload your spend on the **Ad spend** page, one property at a time.
Kontala takes GA4's cost data import format, and campaign exports from Google Ads, Meta Ads, Microsoft Ads and TikTok Ads.

- Spend is matched to visits by the campaign id in `utm_id` first, because it survives a campaign being renamed, then by source, medium and campaign.
Put `utm_id` on every ad.
- A file is the truth for its platform and days: it replaces what those days held, and nothing else.
It is checked first, and nothing is replaced until you say so.
- Your organisation needs a reporting currency and time zone first.
There is no currency conversion.

The Campaigns and Campaign trends explores, and the Acquisition dashboard's Campaigns and spend tab, show spend, cost per visit, cost per conversion and return on ad spend.
