Checkpoint Docs
Cookbooks

Detect: Pixel Quick Start

Add AI agent detection to any website in 5 minutes with zero code

Goal

Add AI agent detection to your website using the Checkpoint Marketing Pixel. By the end of this cookbook, you'll have:

  • Real-time detection of AI agents (ChatGPT, Claude, Perplexity, etc.)
  • Bot traffic visibility (Googlebot, scrapers, crawlers)
  • Analytics flowing to your Checkpoint dashboard

No code required. The Pixel works with any website — WordPress, Shopify, static sites, or custom apps.

Prerequisites

  • A Checkpoint account (sign up free)
  • A website you control
  • Access to add scripts (directly or via tag manager)

Time Estimate

5 minutes (with Google Tag Manager) or 10 minutes (direct install)


Steps

Create a Checkpoint Project

  1. Log into your Checkpoint dashboard
  2. Click Create project (in the project switcher)
  3. Enter a Project Name (e.g., "Marketing Site") and your Site URL
  4. Click Add Domain

The project is created immediately and shows your install snippets. You can always find them again under Installations in the project dashboard.

Get Your Project ID

After creating your project:

  1. Open Installations in the project's left-rail navigation
  2. Copy your Project ID — a name-based slug like acme-corp (or a UUID for older projects). It's also pre-filled in the install snippets there.
Keep this ID handy. You'll need it for the next step.

Install the Pixel

Choose your installation method:

Recommended for marketing teams.

Option A — Community Template. Install the official Checkpoint Pixel template from the GTM gallery (publisher: Know-That-Ai; older gallery listings may still show the previous AgentShield name until Google syncs the rename): Add to Workspace, then Tags → New → Custom → Checkpoint Pixel, enter your Project ID, set Triggering to All Pages, and Save → Submit → Publish.

Option B — Custom HTML tag. If community templates are disabled, use the loader snippet the dashboard generates:

  1. Go to Tags → New → Tag Configuration → Custom HTML and paste:
<script>
  (function () {
    var as = document.createElement('script');
    as.type = 'text/javascript';
    as.async = true;
    as.src = 'https://kya.vouched.id/pixel.js';
    as.setAttribute('data-project-id', 'YOUR_PROJECT_ID');
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(as, s);
  })();
</script>
  1. Replace YOUR_PROJECT_ID, set Triggering to All Pages, then Save → Submit → Publish

Both options report into the same project. With Custom HTML you can set any option (session timeout, batch size, fingerprinting, DNT) as a data-* attribute on the script tag; the Community Template exposes the same options as configurable fields (all except data-require-consent).

Adding user identification (matching your internal user IDs in the dashboard)? See the full GTM + Next.js integration guide.

For developers adding the pixel directly to HTML.

Add this script in your HTML <head> section:

<!-- Detect Pixel -->
<script>
  (function () {
    var as = document.createElement('script');
    as.type = 'text/javascript';
    as.async = true;
    as.src = 'https://kya.vouched.id/pixel.js';
    as.setAttribute('data-project-id', 'YOUR_PROJECT_ID');
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(as, s);
  })();
</script>
<!-- End Detect Pixel -->

Replace YOUR_PROJECT_ID with your actual Project ID.

For frameworks:

// Next.js (app/layout.tsx)
import Script from 'next/script';

export default function Layout({ children }) {
  return (
    <html>
      <body>
        {children}
        <Script
          src="https://kya.vouched.id/pixel.js"
          data-project-id={process.env.NEXT_PUBLIC_CHECKPOINT_PROJECT_ID}
          strategy="afterInteractive"
        />
      </body>
    </html>
  );
}

Using a plugin (no code needed):

  1. Install the "Insert Headers and Footers" plugin (or similar)
  2. Go to Settings → Insert Headers and Footers
  3. In the Footer section, paste:
<!-- Detect Pixel -->
<script>
  (function () {
    var as = document.createElement('script');
    as.type = 'text/javascript';
    as.async = true;
    as.src = 'https://kya.vouched.id/pixel.js';
    as.setAttribute('data-project-id', 'YOUR_PROJECT_ID');
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(as, s);
  })();
</script>
<!-- End Detect Pixel -->
  1. Replace YOUR_PROJECT_ID with your actual Project ID
  2. Click Save

Using theme editor:

  1. Go to Appearance → Theme File Editor
  2. Select header.php (or add to <head> section)
  3. Add the script in the <head> section
  4. Click Update File
  1. Go to Online Store → Themes
  2. Click Actions → Edit code
  3. Open theme.liquid
  4. Find the closing </body> tag
  5. Add the following just before it:
<!-- Detect Pixel -->
<script>
  (function () {
    var as = document.createElement('script');
    as.type = 'text/javascript';
    as.async = true;
    as.src = 'https://kya.vouched.id/pixel.js';
    as.setAttribute('data-project-id', 'YOUR_PROJECT_ID');
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(as, s);
  })();
</script>
<!-- End Detect Pixel -->
  1. Replace YOUR_PROJECT_ID with your actual Project ID
  2. Click Save

Verify Installation

  1. Visit your website in a new browser tab
  2. Open browser DevTools (F12 or Cmd+Shift+I)
  3. Go to the Network tab
  4. Filter by "kya" or "pixel"
  5. Refresh the page
  6. You should see a request to kya.vouched.id/pixel.js and a POST to /api/v1/pixel
If you see a 200 OK response, the Pixel is working.

View Your First Detections

  1. Return to your Checkpoint dashboard
  2. Select your project
  3. Go to Analytics
  4. Wait up to 60 seconds for data to appear

You'll see:

  • Detection breakdown by class (human, ai_agent, bot)
  • Traffic timeline with detection events
  • Top agents identified on your site

Track custom events

Once the pixel has loaded, send your own events via window.Checkpoint.track:

<script>
  // Guard on the global — calls before pixel.js loads are lost (there is no queue)
  window.Checkpoint && window.Checkpoint.track('signup', { plan: 'pro' });
</script>

See the Pixel reference for the full window.Checkpoint API (identify, reset, grantConsent, getSession) and the checkpoint:* events. window.AgentShield / agentshield:* remain as deprecated aliases.


Verify It's Working

Quick Check

Open your browser console and run:

// Check if the pixel loaded
window.Checkpoint && window.Checkpoint.initialized ? 'Pixel loaded!' : 'Pixel not found';

Test with a spoofed User-Agent

The pixel runs in the browser, so a plain curl request won't trigger it — curl doesn't execute JavaScript, so pixel.js never runs. To test agent detection, override your browser's User-Agent and reload:

  1. Open DevTools → Network conditions
  2. Uncheck "Use browser default" and set a custom UA, e.g. Mozilla/5.0 (compatible; GPTBot/1.0; +https://openai.com/gptbot)
  3. Reload the page
  4. Check your dashboard — you should see an ai_agent detection within seconds

To test detection with curl (a non-browser client), use the server-side Middleware or Gateway instead — those inspect the request directly and don't rely on client-side JavaScript.


Troubleshooting

Pixel Not Loading

SymptomCauseFix
No network requestScript not addedRe-check installation steps
No POST firedDo Not Track enabledThe pixel honors DNT; set data-respect-dnt="false" if appropriate
Blocked requestAd blockerDisable ad blocker or use server-side
CSP errorContent Security PolicyAdd kya.vouched.id to script-src

No Detections in Dashboard

  • Wait 60 seconds — Data takes a moment to appear
  • Check Project ID — Must match your dashboard project
  • Verify GTM published — Unpublished changes won't work
  • Check Do Not Track — With DNT on, the pixel collects nothing by default

Content Security Policy (CSP)

If your site uses CSP, add this to your script-src directive:

Content-Security-Policy: script-src 'self' https://kya.vouched.id;

What You Learned

  • How to create a Checkpoint project
  • How to install the Marketing Pixel via GTM (Community Template or Custom HTML), direct install, WordPress, or Shopify
  • How to send custom events with window.Checkpoint.track
  • How to verify the Pixel is working and view detection data in the dashboard

Next Steps

Now that you have detection running, consider:

GoalNext Cookbook
Need more detection signalsBeacon Integration
Want to block detected agentsGateway Setup
Need server-side detectionMiddleware Detection
Integrate with Google AnalyticsGA4 Integration