Overview
The CHEQ tag has two components:
- The JavaScript invocation tag: the detection engine. This is what you deploy in Tealium iQ.
- The noscript fallback: a pixel that captures visitors with JavaScript disabled.
This guide covers deploying the invocation tag through Tealium iQ, plus the validation and consent configuration that determine your coverage.
| Read Step 5 before you finish. The noscript fallback cannot be deployed through Tealium and requires a separate step in your page template. |
Before you start
Collect three values from your CHEQ account under Account Settings → Tags:
| What you need | Where it appears in the tag | Example |
| Tag domain | The host in the src attribute | po.example-domain.com |
| Tag ID | The numeric suffix in the class attribute | 52475 |
| Noscript URL | The src of the iframe in the noscript block | https://its.example-domain.com/ns/XXXX.html?ch=cheq |
Your invocation tag looks like this:
| <script async src="https://<YOUR_TAG_DOMAIN>/i/<YOUR_TAG_HASH>.js" data-ch="cheq" class="ct_clicktrue_<YOUR_TAG_ID>"> </script> |
Pull these values from your own account. Values copied from documentation, a demo environment, or another property will not report into your workspace.
A note on placement
CHEQ is a security tag, and security tags work best when nothing can get in front of them.
Hardcoding the tag in the <head> of your page template is the strongest deployment. It guarantees CHEQ initializes before any other script on the page, and it removes the tag manager as a dependency - which matters, because traffic sophisticated enough to block your tag manager would otherwise slip past detection entirely.
Deploying through Tealium iQ is the practical choice for most teams, and it works well when you configure the timing correctly. The steps below do that. If you have the option to hardcode, take it. If you don’t, follow this guide as written.
Step 1: Create the CHEQ Initiator Tag
- Go to Tags and click + Add Tag.
- Search the Tag Marketplace for Script and select it.
- Configure the tag:
| Field | Value |
| Title | CHEQ Initiator Tag |
| Base URL | https://<YOUR_TAG_DOMAIN>/i/<YOUR_TAG_HASH>.js |
Use the full src value from your invocation tag, including the path. The domain alone returns a 404.
Step 2: Set the vendor configuration
Open the tag’s Vendor Configuration section:
| Setting | Value | Why |
| Query String Delimiter | ? | Standard |
| Parameter Delimiter | & | Standard |
| Key/Value Delimiter | = | Standard |
| Auto Cache Bust | Disabled | Cache busting breaks the tag URL |
| Request Script Once | Enabled | Prevents duplicate loads on single-page apps |
Request Script Once is not optional. On a single-page application, every utag.view() call re-fires the tag. Without this setting, you inject the CHEQ script repeatedly into a single page session, which inflates event volume and degrades page performance.
Step 3: Set the load timing
Open Advanced Settings under Publish Settings:
| Setting | Value |
| Tag Timing | Prioritized |
| Send Flag | On |
| Synchronous Load Type | Off |
| Custom Script Source | https://<YOUR_TAG_DOMAIN> |
Then set the Load Rule to Global - All Pages.
Load rule and load timing are separate settings, and both matter. The load rule controls whether the tag fires. Tag Timing controls when. Tealium’s default fires tags at DOM Ready, which can place CHEQ after your ad pixels, chat widget, and form scripts have already run, leaving detection gaps in exactly the sessions you most want visibility into. Prioritized fires CHEQ immediately after load rule evaluation, ahead of your other tags.
Optional: earlier initialization
For the earliest execution Tealium allows, deploy the invocation script through a JavaScript Code extension scoped to Pre Loader instead of as a tag. Pre Loader runs before Tealium processes anything else, including the data layer and load rules.
Use this when you need maximum coverage on high-value conversion paths. Include the guard so the script loads only once:
| if (!document.querySelector('.ct_clicktrue_<YOUR_TAG_ID>')) { var s = document.createElement('script'); s.async = true; s.src = 'https://<YOUR_TAG_DOMAIN>/i/<YOUR_TAG_HASH>.js'; s.setAttribute('data-ch', 'cheq'); s.className = 'ct_clicktrue_<YOUR_TAG_ID>'; document.head.appendChild(s); } |
Step 4: Configure consent
If you use Tealium’s Consent Manager or a third-party CMP, categorize CHEQ deliberately before you publish.
CHEQ performs fraud prevention and site security. Under GDPR, most organizations classify it as strictly necessary or process it under legitimate interest, alongside other security controls.
| Categorizing CHEQ as marketing or analytics suppresses it for every visitor who declines those categories. That removes protection from a large share of European traffic and creates blind spots in your reporting. |
Confirm the classification with your privacy or legal team, then document the decision. Someone will ask about it later.
Step 5: Deploy the noscript fallback
The noscript tag cannot be deployed through Tealium iQ. Tealium’s utag.js is JavaScript. When a visitor has JavaScript disabled, it never executes, so no tag it manages can fire - including a noscript pixel.
Add the noscript block directly to your page template, immediately after the opening <body> tag:
| <noscript> <iframe src="https://<YOUR_NOSCRIPT_DOMAIN>/ns/XXXX.html?ch=cheq" width="0" height="0" style="display:none;visibility:hidden"> </iframe> </noscript> |
Skipping this step leaves a detection gap. Some automated traffic runs without JavaScript specifically to evade client-side detection.
Step 6: Validate
Publish to a non-production environment first, then confirm all four:
- The script loads. Open your site, then DevTools → Network. Filter for your tag domain. You should see one request to /i/<YOUR_TAG_HASH>.js returning 200.
- It loads once. On a single-page app, navigate between several views and confirm the request count stays at one. More than one means Request Script Once is off.
- It fires early. In the Network waterfall, confirm the CHEQ request starts before your advertising and analytics tags.
- Events reach CHEQ. Open the CHEQ platform and confirm traffic appears for the property. Allow a few minutes for processing.
Publishing is not the finish line. Traffic appearing in the CHEQ platform is.