Install the tracking pixel
Install the pixel with Google Tag Manager, WordPress or a snippet of HTML, then check it works.
The tracking pixel is a few lines of code that go on your website. It is how Happierleads sees your visitors and turns them into leads. You install it once, on every page, and never touch it again.
Open Website Settings → Tracking Pixel for the website you want to track and pick the method that matches how your website is built.
- Pick a method: Google Tag Manager, WordPress or HTML.
- Install it by following the steps for that method below.
- Verify it: click Verify my website. The website turns verified when we see the code on your site.
Method 1: Google Tag Manager
Use this if your website already loads Google Tag Manager (a marketer or developer set it up).
- Click Google Tag Manager.
- Click Continue with Google and sign in with the Google account that owns your Tag Manager container.
- We add the Happierleads tag to your container and publish it. Nothing to paste.
- Back on the screen, click Verify my website.
Want it out again later? The same screen shows Google Tag Manager — installed with an Uninstall tracking pixel button.
Method 2: WordPress
The Happierleads plugin is in the official WordPress plugin directory. There is nothing to download from Happierleads.
- In your WordPress admin, go to Plugins → Add New.
- Search for Happierleads, click Install Now, then Activate.
- Back in Happierleads, click Verify my website.
The plugin adds the code to every page for you, so there is no snippet to paste.
Method 3: HTML (any other website)
Use this for Shopify, Webflow, Wix, Squarespace, HubSpot or any website where you (or your developer) can edit the code of the page.
- Click HTML (any other website).
- Under Where will you paste it?, pick your platform, or click Not sure? Detect it. The steps on the screen then match your platform: where its code box is and how to save.
- Click Copy code under Your pixel code.
- Paste the code inside the
<head>of your website, in the place your platform uses for site-wide code (often called "custom code", "header code" or "code injection"). It must load on every page, so use a site-wide setting, not a single page. - Publish your website if your platform needs it, then click Verify my website.
Not technical? Click Not technical? Invite your web developer, type their email and an optional message, and click Send: they get the code and the steps. After a verification attempt you can also click Email these steps to a developer.
Where the code goes on each platform
Paste the code exactly as copied, site-wide, then publish and Verify.
| Platform | Where |
|---|---|
| BigCommerce | Storefront → Script Manager → Create a Script. Placement Head, Location All pages, Script category Targeting, Script type Script; paste the code and Save. |
| Drupal | Easiest: the Google Tag Manager module, then Method 1. Or a head-script module such as Header and Footer Scripts (paste in Header), or just before </head> in your theme's html.html.twig (Drupal 7: html.tpl.php). Then Configuration → Performance → Clear all caches. |
Check that it works
Click Verify my website. We load the home page of the domain shown under Website domain and look for your code; we also count real visits from your site in the last 24 hours.
- Pixel verified: the website is marked verified. Click Continue, or Qualify Setup to go straight to scoring your leads.
- Pixel not found yet: the screen shows what we found and what to check for your platform. Fix it, then click Verify again.
Afterwards the Tracking Pixel card on your dashboard shows that it is installed and when it last saw a visit, and the website shows as verified in Websites. A website shows unverified until we have seen the code, and failed when we looked and did not find it.
From your AI assistant or your code, verify_website does the same check, and get_website_diagnostics explains why a verified website gets no leads (MCP tab, API tab).
Still unverified?
Go through this list, then click Verify again:
- Is the domain right? The check loads the domain under Website domain. If your site lives on
www.or on another domain, click Different domain? Change. - Is the change live? Site builders and WordPress caching plugins often need you to publish or clear the cache before the new code is on the page.
- Is the code on the home page? The check loads your home page. Code pasted into a single page or a blog template is not enough: it must be in a site-wide setting.
- Is it the whole code? Click Copy code again and paste it once more; a partly pasted snippet is not recognised.
- Google Tag Manager: make sure the container that got the tag is the one your website loads, and that it is published.
If visitors are already reaching your site, the check also passes from their visits in the last 24 hours, even before we find the code on the page. Still stuck? Click Need a hand? Ask the assistant on the screen, or Email these steps to a developer.
Pass your own data
Attach your own value to each visitor (a session key, Google Analytics ID, user or CRM ID) by setting it before the pixel loads:
window.trackingExtraInfo = { sessionKey: 'abc123', userId: 'u_42' }; // or a plain stringIt comes back as customData in webhooks (an object arrives as JSON text: parse it), as happierleadsExtraInfo on the lead in the API, and as the Custom Data column in CSV exports. It is not returned over MCP. If the value contains an email address, the pixel also uses it to identify the visitor. Run window.trackingTestExtraInfo() in the browser console to create a test lead with your current value.
Consent banners and GPC
- With a consent manager (OneTrust, Cookiebot, CookieYes, Complianz…), put the pixel in the marketing ("sale or share") category. It then loads only for visitors who allow it, and most consent managers also hold it back for browsers that send the Global Privacy Control (GPC) signal. The pixel does not read GPC itself.
- Where to put it in each tool (never in Essential / Strictly necessary or Functional):
- OneTrust: the Targeting Cookies group (C0004), or set the tag to
type="text/plain"withclass="optanon-category-C0004". - Cookiebot: set the tag to
type="text/plain"and adddata-cookieconsent="marketing". - CookieYes: add
data-cookieyes="cookieyes-advertisement"to the tag. - Complianz (WordPress): Integrations → Script Center → add the pixel → Marketing.
- Google Tag Manager with Consent Mode: the pixel's tag → Advanced Settings → Consent Settings → Require additional consent for tag to fire →
ad_storage. - Wix: Settings → Custom Code → the pixel's code → Code type → Marketing.
- OneTrust: the Targeting Cookies group (C0004), or set the tag to
- Check it: in a private window accept all cookies, browse two pages, then Verify the website. No leads at all afterwards usually means the pixel is blocked for everyone: check the category.
- Without one, on Google Tag Manager: add a Custom JavaScript variable that returns
navigator.globalPrivacyControl === trueand use it as an exception on the pixel's trigger. - Visitors who decline or ignore the banner are not identified, so expect fewer leads than without a banner.
Common questions
Does the pixel slow my website down? No. The code is marked defer, so the browser loads it after your page has shown, and visitors never wait for it.
Do I need it on every page? Yes. A visitor who only opens a page without the code is never seen. Google Tag Manager and the WordPress plugin cover every page for you; with HTML, use your platform's site-wide code setting.
The pixel is verified but I see no leads. Give it a little traffic first, and check that your visitors come from countries we cover. Then check that nothing stops new leads: an ended trial, no credits left or a paused plan (what happens when my trial ends, when your leads run out). Your Qualify rules can also keep leads out on purpose (Exclude leads).
I moved to a new website or domain. Install the same code on the new site, then change the domain under Different domain? Change and verify again. Each website in Happierleads has its own code: use the one from that website's screen.
Can I turn the pixel off? Yes. Remove the code (or the plugin, or the Tag Manager tag) and visitors are no longer identified. Deleting the website also stops tracking.
Every control on this screen
Every button, field and switch, with what it does.
Install the tracking pixel · 37 controlsNeeds: pixel
| Choose your installation method | Shows information | |
| Google Tag Manager (one-click connect) | Button · changes your account | clicking it connects Google and publishes the tag |
| WordPress | Button | |
| HTML (any other website) | Button | |
| Not technical? Invite your web developer | Shows information | |
| Back to installation methods | Button | |
| Developer's email | Text box | |
| Optional message | Text box | |
| Send | Button · changes your account | |
| Install the tracking pixel | Shows information | |
| Your pixel code | Shows information | |
| Copy code | Shows information | |
| White-label snippet | Button | |
| Where will you paste it? | Shows information | |
| Shopify | Button | |
| Webflow | Button | |
| Wix | Button | |
| Squarespace | Button | |
| HubSpot | Button | |
| Other | Button | |
| Not sure? Detect it | Button · changes your account | |
| Continue with Google (adds the tag to your container) | Button · changes your account | shown in the Google Tag Manager steps |
| Website domain | Text box | |
| Different domain? Change | Button | |
| Verify my website | Button · changes your account | |
| Email these steps to a developer | Shows information | |
| Need a hand? Ask the assistant | Shows information | |
| Pixel verified | Shows information | |
| Continue | Shows information | |
| Qualify Setup | Shows information | |
| Pixel not found yet (what we found) | Shows information | |
| Verify again | Button · changes your account | |
| Copy code again | Shows information | |
| Back to the code / Show the manual steps | Button | |
| Email these steps to a developer | Shows information | |
| Google Tag Manager — installed | Shows information | |
| Uninstall tracking pixel | Opens a panel or page |
Installation complete · 4 controlsNeeds: pixel
| Installation complete video | Shows information | legacy |
| How did you hear about us? | Button · changes your account | |
| Send | Button · changes your account | |
| Continue to Dashboard | Shows information |
Website Settings › Visitor Tracking · 19 controlsNeeds: website
| Identify Exact Visitors | Switch · saves by itself | Saves on switch. Locked when switched off at account level. |
| Identify Companies with Suggested Contacts | Switch · saves by itself | Saves on switch (older reverse-IP, company level). |
| Track People with Personal Emails | Switch · saves by itself | On saves at once; Off opens a dialog first. |
| Stop Tracking Personal Emails | Shows information | Appears after switching personal emails off. |
| Stop tracking moving forward | Tick box | |
| Delete all existing leads AND stop tracking | Opens a panel or page | |
| Type DELETE EXISTING LEADS | Opens a panel or page | |
| Cancel (personal emails) | Shows information | |
| Stop Tracking / Delete & Stop Tracking | Opens a panel or page | |
| Session Recordings | Switch · saves by itself | Free on paid plans; LTD only with the add-on (hidden otherwise). |
| Privacy Transparency Badge | Switch · saves by itself | |
| Look again (privacy page) | Button · changes your account | |
| Use a different page | Button | |
| Your privacy page address | Text box | |
| Save (privacy page) | Button · changes your account | |
| Cancel (privacy page) | Shows information | |
| Use the detected page / Detect it for me | Button · changes your account | |
| Badge corner (Bottom left / right) | Button · changes your account | |
| Badge height from the bottom | Slider · saves by itself |
Legacy setup guide · 2 controlsNeeds: pixel
| Setup steps | Shows information | legacy — prefer the setup trail (/onboarding/{workspace}) |
| Skip this step? | Button · changes your account | legacy |
Choose your setup (legacy) · 1 controlsNeeds: pixel
| Setup options (embedded page) | Shows information | legacy, embedded from happierleads.com — cannot be guided inside |