This guide covers installing Walityk via an HTML snippet. Works on any site that lets you edit the <head>: Webflow, Wix, Squarespace, Framer, Carrd, Ghost, Hugo, Jekyll, or a hand-built site.
Plan for 5 minutes.
1. Get your snippet
- Sign in to the Walityk dashboard.
- Sites → New site: enter your domain and pick the Custom (HTML/JS) platform.
- Click Create site.
- The site page’s Installation tab shows your snippet with your site ID already filled in. It looks like:
<script>
(function(s,i,e){
s.__tftq=s.__tftq||[];
s.__tftq.push(['init',{site_id:i,endpoint:e+'/collect'}]);
var t=document.createElement('script');
t.async=true;
t.src=e+'/tag.js';
document.head.appendChild(t);
})(window,'YOUR_SITE_ID','https://tag.walityk.com');
</script>
The snippet is non-blocking: it loads
asyncafter the page renders. Zero Core Web Vitals impact.
The declared domain authorizes your requests (CORS): the exact domain and its subdomains are accepted automatically. A different domain means creating another site.
2. Paste the snippet in <head>
Webflow
- Project Settings → Custom code → Head code.
- Paste, click Save, publish.
Wix
- Settings → Custom Code → Add Custom Code.
- Paste, select Place Code in: Head, Apply to: All pages.
- Click Apply.
Squarespace
- Settings → Advanced → Code Injection → Header.
- Paste, click Save.
Framer
- Site Settings → General → Custom Code → Start of
<head> tag. - Paste, click Save.
Custom / Ghost / Hugo / Jekyll
Add the snippet to your main layout between <head> and </head>.
3. What is tracked automatically
As soon as the snippet is in place, the tag emits with zero configuration:
page_viewwith full context (page, device, viewport, network, performance);- scroll milestones (25/50/75/90%);
- outbound clicks;
- form submissions (
form_submit); - events from your GTM dataLayer if you have one.
On an ecommerce site, enable ecommerce auto-detection on the site page (dashboard): the tag infers view_item, add_to_cart, begin_checkout and purchase from structured data (JSON-LD / Open Graph) and add-to-cart buttons.
4. Track conversions (optional)
To report a conversion, push an event to the __tftq queue — the call works whether the tag has loaded yet or not. On the thank-you page:
<script>
window.__tftq = window.__tftq || [];
__tftq.push(['track', 'purchase', { value: 49.00, currency: 'EUR', transaction_id: 'ORD-1234' }]);
</script>
For a lead form:
<script>
document.querySelector('#contact-form').addEventListener('submit', function () {
__tftq.push(['track', 'lead', { source: 'contact-form' }]);
});
</script>
Standard event types: page_view, view_item, add_to_cart, begin_checkout, purchase, sign_up, login, lead. Any other name goes through as a custom event.
5. Connect your destinations
In the Walityk dashboard → Destinations:
- GA4: Measurement ID + API secret
- Meta CAPI: Pixel ID + Conversions API token
- Google Ads: Google OAuth
Events flow to these destinations automatically — no snippet changes.
6. Verify
- In the dashboard, open your site’s page → View live events.
- Visit your site in another tab.
page_viewappears in real time.- Check GA4 Realtime and Meta Test events if destinations are connected.
Not working?
- Snippet not loading: open DevTools → Network, filter
tag.jsorcollect. If empty, make sure you published your changes (Webflow / Wix / Squarespace have a staging stage). /collectrequest blocked by CORS: the site’s domain doesn’t match the domain declared in the dashboard — fix the site’s domain (or create a site for that domain).- CSP blocked: add
https://tag.walityk.comto your Content Security Policy (script-srcandconnect-src).
Consent
By default the tag runs in cookieless mode: no cookies, no persistent identifier — no banner required. If you use a CMP (Cookiebot, Axeptio, Didomi…), switch the site to banner mode: the generated snippet then carries mode:'banner' and the tag starts in Consent Mode v2 deny-default, auto-detects the CMP and only releases events after the visitor’s choice.
Need help? hi@walityk.com.