Klar's pixel can track and attribute conversions from any channel — even without a native integration — as long as you can attach UTM parameters to your URLs.
💡 To see ROAS/CPA data for non-integrated channels, enter your costs in the Custom Marketing Costs sheet. Note: costs for non-integrated channels can only be entered at the channel level — not broken down to campaign, ad set, or ad level.
Parameters
Use the following parameter structure for accurate attribution and campaign-level breakdown:
⚠️ Replace all dynamic values with actual values when creating your links. Most ad platforms offer dynamic parameters that auto-populate campaign, ad set, and ad names — use them wherever available. Do not use # in any naming convention — it cuts off everything after it in the URL.
Parameter | Value | Notes |
| Channel name (e.g. | Must be a unique identifier for this channel so it can be mapped in the Channel Builder |
| Campaign name (e.g. | Dynamic |
| Ad set name (e.g. | Dynamic |
| Ad name (e.g. | Dynamic |
| Same channel value as above | Required — must match |
| Ad ID | Optional — use if the channel offers a dynamic ad ID parameter. Helps map past revenue and cost data once a native integration becomes available. |
Examples
Static example (no dynamic parameters):
Dynamic example (AdRoll with dynamic parameters):
Best practices
Not all parameters are required. If a channel doesn't have ad set or ad level granularity, or you only need campaign-level breakdown, you can omit
utm_termandutm_content.Use dynamic parameters wherever the platform supports them. They ensure your links stay accurate even as campaign names change.
Keep channel naming consistent across
utm_source/utm_mediumandklar_source— inconsistent naming creates duplicate entries in the Channel Builder.Add
klar_adidwhenever possible. Even if there's no native integration today, storing the ad ID now means Klar can backfill cost and revenue data if an integration is added later.
