Zoho Forms can record where each form respondent came from, so you can see which campaigns, ads, and channels bring in real enquiries. Its advanced tracking code goes further than reading UTM parameters from a link. It also recognises Google Ads clicks, and works out the source from search engines and referring websites when no tracking parameters are present. This article explains how it works, where to place it, and what to watch out for.
| When this is present | What is recorded |
|---|---|
| UTM parameters in the page URL (and any custom parameters you defined) | The values are saved in browser cookies and passed to the form. |
| No UTM parameters, but a gclid from a Google Ads click | The entry is recorded with utm_source set to Google Ads, utm_medium set to cpc, and utm_campaign set to not set. |
| Neither, but the visitor came from a search engine | utm_source is the search engine, utm_medium is organic, and utm_term is filled in if it is available in the query string. Recognised engines are Google, Bing, Baidu, Yandex, Yahoo, and Ask. |
| Neither, and the visitor came from another website | utm_source is the referring domain, and utm_medium is referral. |
The last two rely on the browser sharing where the visitor came from, which it may not always do, so treat them as a good estimate and not a guarantee. To capture the exact page a respondent came from, add referrername as a custom parameter in your tracking settings.
The script stores the values in cookies that Zoho categorises as marketing or tracking cookies.
| Cookie | Category |
|---|---|
| utm_source | Marketing or tracking |
| utm_medium | Marketing or tracking |
| utm_campaign | Marketing or tracking |
| utm_content | Marketing or tracking |
| utm_term | Marketing or tracking |
Any custom parameters you define, such as utm_offer_id to track a promotion's offer code, are stored in cookies in the same way. By default these cookies expire after 7 days. The form owner can change that from 0 days up to infinite validity, and if you choose infinite, the cookies stay in the visitor's browser until the visitor clears them.
If you embed the form in WordPress and use the Smush plugin to lazy load images, the tracking code will not work unless you exclude the Zoho Forms iframe from lazy loading. Do this by adding the class no-lazyload to the iframe when you embed it. For example, an iframe tag that starts with class equals no-lazyload, followed by the usual source link to your form.