intentua
Turn Intent Into Revenue

Login

intentua

Manage and track your published decision environments.

Campaigns
All active, draft and published environments
Campaign Analytics

RPV Analytics

to

Bubble Drop-Off

Where users leave the experience

Top Performing Bubbles

Highest revenue-driving content

Traffic Sources

Where verified visitors came from

Excluded Traffic

Automatically removed from RPV

Control Traffic Comparison

Used to calculate incremental lift

Recent Purchases

Verified purchases with exact time

Recent Activity

What happened and when

Returning Users Previously entered Intentua

Visitors who engaged with Intentua then returned later to purchase
Loading…
Setup Guide

Install Tracking Bundle

Choose your platform. Follow every step in order. No steps are optional.

Shopify 2024–2026: Shopify no longer reliably executes scripts on the Order Status / Thank You page via Additional Scripts. All purchase tracking now uses Customer Events (Pixels) — the only guaranteed method across all payment providers, Shop Pay, accelerated checkout, and headless Shopify.
Part 1 + Part 3 — every store page
Online Store → Themes → Edit code → theme.liquid
1
Online Store → Themes → three dots (⋯) → Edit code
Log in to your Shopify admin. Left sidebar → Online StoreThemes. Next to your live theme click the three dots (⋯)Edit code. Do not click Customize.
2
Layout → theme.liquid → find </head>
In the file tree click Layout → theme.liquid. Press Ctrl+F / Cmd+F and search for </head>.
3
Paste Shopify Part 1 then Part 3 just above </head>
Click the line just before </head>. Paste Shopify Part 1 first, then Shopify Part 3 directly below it. Do not delete anything already in the file. Click Save.
Part 1 bridges the session from the Intentua gate to your store pages. Part 3 powers CTA deep-link scroll. Both run on every store page automatically.
Part 2 — Purchase Tracking via Customer Events (Pixels)
Settings → Customer events → Add custom pixel
Why Customer Events? Shopify's Order Status page Additional Scripts field is unreliable in 2025–2026. It is bypassed by Shop Pay, accelerated checkout, and many third-party payment gateways. Customer Events fire server-confirmed after every real completed order — guaranteed regardless of payment method.
4
Settings → Customer events → Add custom pixel
In Shopify admin: bottom-left sidebar → SettingsCustomer events. Click Add custom pixel. Name it Intentua Purchase Tracker.
5
Paste the Shopify Part 2 (Customer Events pixel script) into the pixel code box
Clear the default code in the pixel editor. Paste the full Shopify Part 2 — Customer Events Pixel script from the tracking bundle below. This script subscribes to Shopify's checkout_completed event — guaranteed to fire on every confirmed order.
The pixel has access to sessionStorage and localStorage to retrieve your Intentua session, group, and returning identity automatically. No manual order variables needed.
6
Set permissions → Save → Connect
In the pixel settings panel on the right, under Permissions, enable:
Analytics (required for reading storage)
Click Save. Then click Connect. Status should show Connected.
📌
Customer pixels run in a sandboxed iframe. They have access to browser storage from your store domain because they execute in the context of your store's checkout pages — not a third-party iframe.
7
Test: place a real test order → check browser console on confirmation page
Place a test order using Shopify's Bogus Gateway (Settings → Payments → Manage → use Bogus Gateway). On the order confirmation page open browser DevTools console. You should see:
[Intentua] Purchase tracked ✅ or [Intentua] Returning purchase tracked ✅
If you see No session or returning identity — purchase not attributed it means the visitor arrived directly without going through an Intentua gate. This is expected and correct — only verified ad traffic is attributed.
Shopify Plus: If you use checkout.liquid customizations, the Customer Events pixel still fires reliably. No additional changes needed for Plus stores. The Additional Scripts field in Settings → Checkout is now deprecated on new Plus stores — use Customer Events only.

Method A (WPCode Plugin) — Recommended for all users, zero coding, 5 minutes. Method B (Theme hook) — Developers only. Choose exactly one method. Do not use both.

Part 1 + Part 3 — every page
WPCode → Header Scripts → all pages
1
Install WPCode plugin
WordPress admin → Plugins → Add New → search WPCode (by WPCode Team, formerly Insert Headers and Footers). Install and Activate. It is free and actively maintained as of 2026.
2
Code Snippets → Header & Footer → paste Part 1 + Part 3
Left sidebar → Code SnippetsHeader & Footer. In the Header section paste WooCommerce Part 1 first, then WooCommerce Part 3 directly below it. Click Save Changes.
These run on every page of your WordPress site including WooCommerce product pages, cart, and checkout.
Part 2 — order-received page only
WPCode → Add Snippet → PHP → woocommerce_thankyou hook
3
Code Snippets → + Add Snippet → PHP Snippet
Left sidebar → Code Snippets → + Add Snippet. Choose Add Your Custom Code (New Snippet). Select PHP Snippet as the type. Name it Intentua WooCommerce Purchase Tracker.
4
Paste this PHP — replace the comment with the full WooCommerce Part 2 script
In the code box paste the PHP below. Replace the comment line with the full WooCommerce Part 2 script from the tracking bundle:
add_action( 'woocommerce_thankyou', function( $order_id ) {
  $order = wc_get_order( $order_id );
  if ( ! $order ) return;
  $total = $order->get_total();
  $num = $order->get_order_number();
  ?>
  <!-- PASTE FULL WOOCOMMERCE PART 2 <script> BLOCK HERE -->
  <script>
    if(typeof fireIntentuaPurchase === 'function') {
      fireIntentuaPurchase(
        "<?php echo esc_js($num); ?>",
        <?php echo floatval($total); ?>
      );
    }
  </script>
  <?php
}, 10 );
The full WooCommerce Part 2 script block MUST come before the fireIntentuaPurchase() call. The function must be defined before it is called. Replace the comment with the entire Part 2 <script> block.
5
Set Insert Method → Run Everywhere → Save → Activate
Under Insertion: set Location to Run Everywhere (the PHP hook itself limits it to the thank-you page). Toggle the snippet to Active. Click Save Snippet. Place a test order to confirm [Intentua] Purchase tracked ✅ appears in browser console on the order-received page.
Developers only
Part 1 + Part 3 — every page
Child theme header.php
A
Child theme → header.php → paste before </head>
Appearance → Theme File Editor → header.php (child theme only — never parent). Find </head>. Paste WooCommerce Part 1 then WooCommerce Part 3 above it. Click Update File.
Only proceed if you have an active child theme. Edits to a parent theme are overwritten on every theme update.
Part 2 — order-received page only
B
Child theme functions.php → woocommerce_thankyou hook
Add the same PHP hook as Method A Step 4 above to your child theme's functions.php. Replace the comment with the full WooCommerce Part 2 script block.
Wix — Partial Support. Wix requires a Business or eCommerce Premium plan for custom code. Session tracking and CTA scroll work reliably. Purchase tracking is partially supported — it works when Velo (dev mode) is enabled and you pass order data via URL parameters. Without Velo, purchase tracking cannot access real order values. Do not claim automatic purchase tracking on Wix without developer setup.
Part 1 + Part 3 — every page
manage.wix.com → Settings → Custom Code → Head → All Pages
1
manage.wix.com → Settings → Custom Code → Add Custom Code
Log into manage.wix.com. Left sidebar → SettingsCustom Code. You must be in the Wix Dashboard — not the Wix Editor drag-and-drop interface. You need Business or eCommerce Premium plan to access this.
2
Add two separate entries: Wix Part 1, then Wix Part 3 — both Head, All Pages
Click + Add Custom Code. Name: Intentua Session Bridge. Paste Wix Part 1. Place: Head. Pages: All Pages. Click Apply.

Repeat: Click + Add Custom Code. Name: Intentua CTA Scroll. Paste Wix Part 3. Place: Head. Pages: All Pages. Click Apply.
Two separate entries. Wix handles each code block independently. Both run on every page including product pages and checkout flow.
Part 2 — purchase tracking (requires Velo dev mode)
Wix Editor → Dev Mode (Velo) → order confirmation page
Purchase tracking on Wix requires Velo (dev mode). Without Velo, Wix does not expose order ID or order total to custom code. If you are not a developer or cannot enable dev mode, purchase tracking is not available on your Wix site. Session tracking and CTA behavior still work.
3
Wix Editor → Dev Mode → Turn on Dev Mode → Backend → events.js → order hook
Open site in Wix Editor. Top menu → Dev Mode → Turn on Dev Mode. In the Velo code panel, open Backend → events.js (create if it does not exist). Add the following hook which fires on every confirmed Wix Stores order:
// events.js — Backend (Velo)
// This fires SERVER-SIDE after every confirmed Wix Stores order
// Use this to redirect the order confirmation page with order data in URL

export function wixStores_onOrderCreated(event) {
  const orderId = event.entity._id;
  const total = event.entity.totals.total;
  // Log for debugging — check in Velo logs
  console.log('[Intentua Wix] Order confirmed:', orderId, 'Total:', total);
  // NOTE: This backend hook cannot directly fire browser-side tracking.
  // Use the Page Code approach below to pass order data to the confirmation page.
}
4
Order Confirmation page — Page Code tab → pass order data to URL → browser-side fire
In the Wix Editor click your Order Confirmation page. In the Velo panel at the bottom click the Page Code tab. Add this code to redirect with order data in URL params after Wix sets the order:
// Page Code — Order Confirmation page (Velo)
import wixLocation from 'wix-location';
import { currentMember } from 'wix-members';

$w.onReady(function() {
  // Read order data from Wix's order summary elements on the page
  // Wix renders order number in specific elements — inspect page for correct ID
  // Then pass to the tracking snippet via URL params on page load
  var params = wixLocation.query;
  var orderId = params.orderId;
  var total = parseFloat(params.total || '0');

  if (orderId && total > 0 && typeof fireIntentuaPurchase === 'function') {
    fireIntentuaPurchase(orderId, total);
  }
});
Wix's order confirmation page does not automatically have orderId and total in URL. You must configure your Wix store to redirect to the confirmation page with these parameters, or use the Wix Stores order API in Velo to fetch them on page load. This requires developer knowledge of Velo.
5
Settings → Custom Code → Add Wix Part 2 → Body End → Order Confirmation page only
Back in Settings → Custom Code: + Add Custom Code. Name: Intentua Purchase Tracker. Paste Wix Part 2. Place: Body — end. Pages: Choose specific pages → select your Order Confirmation page. Click Apply.
Webflow — Advanced Setup Required. Webflow does not expose order data automatically. Purchase tracking requires your payment provider (Stripe, Lemon Squeezy, Paddle) to pass order values in the success URL redirect. Session tracking and CTA scroll work reliably. Purchase tracking requires developer involvement.
Part 1 + Part 3 — every page
Designer → Project Settings → Custom Code → Head Code
1
Project Settings → Custom Code → Head Code → paste Part 1 then Part 3
Open your project in the Webflow Designer. Click the gear icon top-left → Project Settings → Custom Code tab. In Head Code paste Webflow Part 1 first, then Webflow Part 3 below it. Click Save Changes. These run on every page of your published Webflow site.
Part 1 bridges the Intentua session across Webflow's dynamic page transitions. Part 3 powers CTA deep-link scroll. Webflow uses client-side navigation — Part 1 detects this and re-applies session parameters without overriding Webflow's router.
Part 2 — order confirmation page (advanced setup required)
Pages panel → Order Confirmation → Page Settings → Custom Code → Before </body>
Webflow does not inject order variables into custom code. You must configure your payment provider's success URL to include order ID and total as query parameters. Without this, purchase tracking cannot fire with real order data.
2
Configure your payment provider success URL to include order data
In your payment provider dashboard, set the success/confirmation redirect URL to include query parameters. Examples by provider:
Stripe Checkout:
https://yourstore.com/order-confirmation?orderId={CHECKOUT_SESSION_ID}&total={AMOUNT_TOTAL}

Lemon Squeezy:
https://yourstore.com/order-confirmation?orderId={order_id}&total={order_total}

Paddle:
https://yourstore.com/order-confirmation?orderId={checkout_id}&total={total}
📌
Each provider uses different variable names. Check your provider's documentation for the exact variable syntax for their success URL redirect.
3
Pages panel → Order Confirmation page → ⚙ → Custom Code → Before </body> → paste Part 2 + fire call
In the Webflow Designer left sidebar, click the Pages icon. Hover over your Order Confirmation page → click gear icon → Custom Code tab. In Before </body> paste Webflow Part 2, then add the fire call below it:
<script>
(function() {
  // Read order data from payment provider redirect URL params
  // Must configure provider success URL to include these params (see step 2)
  var p = new URLSearchParams(window.location.search);
  var orderId = p.get('orderId') || p.get('order_id') || p.get('checkout_id');
  var total = parseFloat(p.get('total') || p.get('order_total') || '0');

  if (!orderId || total <= 0) {
    console.log('[Intentua Webflow] No order data in URL — purchase not tracked.');
    return;
  }

  if (typeof fireIntentuaPurchase === 'function') {
    fireIntentuaPurchase(orderId, total);
  } else {
    // Script load order safety — retry after DOM ready
    document.addEventListener('DOMContentLoaded', function() {
      if (typeof fireIntentuaPurchase === 'function') {
        fireIntentuaPurchase(orderId, total);
      }
    });
  }
})();
</script>
Click Save. Then click Publish top-right to make live. Test by completing a purchase and verifying the confirmation URL contains order parameters.
CTA Scroll on Webflow: Webflow uses client-side navigation with page transitions and animations. Part 3 uses MutationObserver to detect when elements appear after transitions. If your Webflow site uses heavy animations that hide sections during load, the CTA scroll will still resolve because it waits for elements to become visible (up to 67 seconds). For best results, ensure your target sections are not permanently hidden by animation classes.

Tracking Bundle Scripts

Per-platform scripts — copy all 3 parts for your platform
▼ Shopify Part 1 — Session Bridge (paste in theme.liquid before </head>)

      
    
▼ Shopify Part 2 — Customer Events Pixel (Settings → Customer events → Add custom pixel)

      
    
▼ Shopify Part 3 — CTA Deep-Link Scroll (paste in theme.liquid before </head>, after Part 1)

      
    

Editing a live campaign

You are editing a live published campaign. Publishing again will update the existing live version — the subdomain and all analytics history will be preserved.