{"_id":"@aisearchindex/pixel","name":"@aisearchindex/pixel","dist-tags":{"latest":"1.1.0"},"versions":{"1.1.0":{"name":"@aisearchindex/pixel","version":"1.1.0","description":"Lightweight AI search analytics pixel for tracking LLM bot traffic and human visitors","main":"dist/aisearchindex.umd.js","module":"dist/aisearchindex.esm.js","types":"dist/index.d.ts","unpkg":"dist/aisearchindex.min.js","jsdelivr":"dist/aisearchindex.min.js","exports":{".":{"import":"./dist/aisearchindex.esm.js","require":"./dist/aisearchindex.umd.js","types":"./dist/index.d.ts"},"./pixel":"./dist/aisearchindex.min.js"},"scripts":{"build":"npm run build:umd && npm run build:esm && npm run build:min && npm run build:types","build:umd":"esbuild src/index.ts --bundle --format=iife --global-name=AISearchIndex --outfile=dist/aisearchindex.umd.js","build:esm":"esbuild src/index.ts --bundle --format=esm --outfile=dist/aisearchindex.esm.js","build:min":"esbuild src/pixel.ts --bundle --minify --format=iife --outfile=dist/aisearchindex.min.js","build:types":"tsc --emitDeclarationOnly --outDir dist","dev":"npm run build -- --watch","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build","size":"du -h dist/*"},"repository":{"type":"git","url":"git+https://github.com/aisearchindex/pixel.git"},"keywords":["analytics","tracking","pixel","ai","llm","bot","chatgpt","claude","perplexity","seo","web-analytics","ai-search","aisearchindex"],"author":{"name":"AI Search Index"},"license":"MIT","bugs":{"url":"https://github.com/aisearchindex/pixel/issues"},"homepage":"https://aisearchindex.com","devDependencies":{"esbuild":"^0.19.0","typescript":"^5.3.0"},"sideEffects":["./dist/aisearchindex.min.js","./src/pixel.ts"],"_id":"@aisearchindex/pixel@1.1.0","gitHead":"10b2aa64bd6686292afeaea7cd7ec4c1edbf1eb4","_nodeVersion":"20.18.0","_npmVersion":"11.4.2","dist":{"integrity":"sha512-ZZrAduWOMQTPd3yebhvldcB6KfNwkW1R65f9jkvNy0m4ace0htYkrY2lwvJm5VyeCHmhMpIhVuOUlYgIfbKQyw==","shasum":"a111dd86c82060d02885b94da72a924a80a2223c","tarball":"https://registry.npmjs.org/@aisearchindex/pixel/-/pixel-1.1.0.tgz","fileCount":18,"unpackedSize":70956,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD7x9UdvI8mvQREzWkgo9eLPORpiXw5JbnEEzViOGs5pQIgOHW5STryMxH/eJia+VxdxISOLDQ5V6c4QfSNAeCx1z0="}]},"_npmUser":{"name":"ihmissuti","email":"kimmo@superlines.io"},"directories":{},"maintainers":[{"name":"ihmissuti","email":"kimmo@superlines.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pixel_1.1.0_1768943451753_0.09166634640595883"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-20T21:10:51.584Z","1.1.0":"2026-01-20T21:10:51.893Z","modified":"2026-01-20T21:10:52.187Z"},"maintainers":[{"name":"ihmissuti","email":"kimmo@superlines.io"}],"description":"Lightweight AI search analytics pixel for tracking LLM bot traffic and human visitors","homepage":"https://aisearchindex.com","keywords":["analytics","tracking","pixel","ai","llm","bot","chatgpt","claude","perplexity","seo","web-analytics","ai-search","aisearchindex"],"repository":{"type":"git","url":"git+https://github.com/aisearchindex/pixel.git"},"author":{"name":"AI Search Index"},"bugs":{"url":"https://github.com/aisearchindex/pixel/issues"},"license":"MIT","readme":"# @aisearchindex/pixel\n\nLightweight analytics pixel for tracking AI bot traffic and human visitors. Detect when ChatGPT, Claude, Perplexity, and other LLMs visit your website.\n\n[![npm version](https://badge.fury.io/js/%40aisearchindex%2Fpixel.svg)](https://www.npmjs.com/package/@aisearchindex/pixel)\n[![gzip size](https://img.shields.io/bundlephobia/minzip/@aisearchindex/pixel)](https://bundlephobia.com/package/@aisearchindex/pixel)\n\n## Features\n\n- **Ultra-lightweight** - Under 2KB gzipped\n- **Zero dependencies** - Pure vanilla JavaScript\n- **AI bot detection** - Track ChatGPT, Claude, Perplexity, Gemini, and more\n- **SPA support** - Automatic navigation tracking for React, Vue, Next.js\n- **Privacy-friendly** - Respects Do Not Track, no cookies\n- **CDN-ready** - Works with jsDelivr, unpkg, or self-hosted\n\n## Quick Start\n\n### Option 1: CDN (Recommended)\n\nAdd this script tag to your HTML:\n\n```html\n<script \n  src=\"https://cdn.jsdelivr.net/npm/@aisearchindex/pixel/dist/aisearchindex.min.js\" \n  data-tid=\"YOUR_TRACKING_ID\"\n  async\n></script>\n```\n\nThat's it! The script automatically tracks page views.\n\n### Option 2: npm\n\n```bash\nnpm install @aisearchindex/pixel\n```\n\n```javascript\nimport { AISearchIndex } from '@aisearchindex/pixel'\n\nAISearchIndex.init({ trackingId: 'YOUR_TRACKING_ID' })\n```\n\n## CDN Options\n\n### jsDelivr (Recommended)\n\n```html\n<!-- Latest version -->\n<script src=\"https://cdn.jsdelivr.net/npm/@aisearchindex/pixel/dist/aisearchindex.min.js\" data-tid=\"YOUR_TRACKING_ID\" async></script>\n\n<!-- Specific version (recommended for production) -->\n<script src=\"https://cdn.jsdelivr.net/npm/@aisearchindex/pixel@1.1.0/dist/aisearchindex.min.js\" data-tid=\"YOUR_TRACKING_ID\" async></script>\n```\n\n### unpkg\n\n```html\n<script src=\"https://unpkg.com/@aisearchindex/pixel/dist/aisearchindex.min.js\" data-tid=\"YOUR_TRACKING_ID\" async></script>\n```\n\n### Self-hosted\n\nDownload `aisearchindex.min.js` from [releases](https://github.com/aisearchindex/pixel/releases) and host on your own CDN.\n\n## Configuration\n\n### Script Attributes\n\n| Attribute | Required | Default | Description |\n|-----------|----------|---------|-------------|\n| `data-tid` | Yes | - | Your AI Search Index tracking ID |\n| `data-endpoint` | No | AI Search Index API | Custom endpoint URL |\n| `data-spa` | No | `false` | Enable SPA navigation tracking |\n| `data-debug` | No | `false` | Enable console debug logs |\n| `data-dnt` | No | `false` | Respect Do Not Track setting |\n\n### Example with Options\n\n```html\n<script \n  src=\"https://cdn.jsdelivr.net/npm/@aisearchindex/pixel/dist/aisearchindex.min.js\" \n  data-tid=\"YOUR_TRACKING_ID\"\n  data-spa=\"true\"\n  data-debug=\"true\"\n  async\n></script>\n```\n\n## Programmatic Usage\n\nFor advanced use cases, use the full library:\n\n```javascript\nimport { AISearchIndex } from '@aisearchindex/pixel'\n\n// Initialize with options\nAISearchIndex.init({\n  trackingId: 'YOUR_TRACKING_ID',\n  trackSpa: true,           // Auto-track SPA navigation\n  autoTrack: true,          // Auto-track initial page view\n  respectDnt: false,        // Respect Do Not Track header\n  debug: false,             // Enable debug logging\n  customData: {             // Custom data sent with every event\n    plan: 'pro',\n    version: '2.1.0'\n  }\n})\n\n// Manual tracking\nAISearchIndex.track()\n\n// Track with custom data\nAISearchIndex.track({\n  event: 'signup',\n  data: { method: 'google' }\n})\n\n// Track a specific URL\nAISearchIndex.track({\n  url: 'https://example.com/thank-you',\n  referrer: 'https://example.com/checkout'\n})\n```\n\n## Framework Examples\n\n### Next.js (App Router)\n\n```tsx\n// app/layout.tsx\nimport Script from 'next/script'\n\nexport default function RootLayout({ children }) {\n  return (\n    <html>\n      <body>\n        {children}\n        <Script \n          src=\"https://cdn.jsdelivr.net/npm/@aisearchindex/pixel/dist/aisearchindex.min.js\"\n          data-tid=\"YOUR_TRACKING_ID\"\n          data-spa=\"true\"\n          strategy=\"afterInteractive\"\n        />\n      </body>\n    </html>\n  )\n}\n```\n\n### React (Vite / CRA)\n\n```tsx\n// index.html or public/index.html\n<script \n  src=\"https://cdn.jsdelivr.net/npm/@aisearchindex/pixel/dist/aisearchindex.min.js\" \n  data-tid=\"YOUR_TRACKING_ID\"\n  data-spa=\"true\"\n  async\n></script>\n```\n\n### Vue\n\n```html\n<!-- index.html -->\n<script \n  src=\"https://cdn.jsdelivr.net/npm/@aisearchindex/pixel/dist/aisearchindex.min.js\" \n  data-tid=\"YOUR_TRACKING_ID\"\n  data-spa=\"true\"\n  async\n></script>\n```\n\n### Astro\n\n```astro\n---\n// Layout.astro\n---\n<html>\n  <head>\n    <script \n      src=\"https://cdn.jsdelivr.net/npm/@aisearchindex/pixel/dist/aisearchindex.min.js\" \n      data-tid=\"YOUR_TRACKING_ID\"\n      is:inline\n    ></script>\n  </head>\n</html>\n```\n\n### WordPress\n\nAdd to your theme's `header.php` or use a plugin like \"Insert Headers and Footers\":\n\n```html\n<script \n  src=\"https://cdn.jsdelivr.net/npm/@aisearchindex/pixel/dist/aisearchindex.min.js\" \n  data-tid=\"YOUR_TRACKING_ID\"\n  async\n></script>\n```\n\n### Webflow\n\n1. Go to **Project Settings** → **Custom Code**\n2. Paste the script in **Head Code** or **Footer Code**\n\n### Shopify\n\n1. Go to **Online Store** → **Themes** → **Edit code**\n2. Open `theme.liquid`\n3. Add the script before `</head>`\n\n### Google Tag Manager\n\n1. Create a new **Custom HTML** tag\n2. Paste the script\n3. Trigger on **All Pages**\n\n## What Gets Tracked\n\nEach page view includes:\n- Page URL and referrer\n- Timestamp and session ID\n- Screen and viewport dimensions\n- Connection type (if available)\n- Custom data (if configured)\n\nThe server-side pixel detects:\n- **AI Bots**: ChatGPT, Claude, Perplexity, GPTBot, Google-Extended, etc.\n- **Search Engines**: Googlebot, Bingbot, DuckDuckBot, etc.\n- **Social Previews**: Facebook, Twitter, LinkedIn, etc.\n- **Human visitors**: Real users browsing your site\n\n## Agentic AI Detection\n\nThe library includes client-side detection for browser-based AI agents:\n\n```javascript\nimport { detectAgenticAI, detectAgenticAIAsync } from '@aisearchindex/pixel'\n\n// Synchronous detection (fast)\nconst result = detectAgenticAI()\nconsole.log(result.detected)    // true/false\nconsole.log(result.agent)       // 'Genspark', 'Manus', etc. or null\nconsole.log(result.confidence)  // 'high', 'medium', 'low'\nconsole.log(result.indicators)  // ['webdriver', 'no_plugins', etc.]\n\n// Async detection (includes browser extension checks)\nconst fullResult = await detectAgenticAIAsync()\n```\n\n## Privacy\n\n- **No cookies** - Uses sessionStorage for deduplication only\n- **No PII** - Never collects personal information\n- **DNT support** - Optional respect for Do Not Track\n- **Minimal data** - Only collects what's needed for analytics\n\n## Browser Support\n\n- Chrome, Firefox, Safari, Edge (last 2 versions)\n- IE11 not supported (uses modern APIs)\n\n## Self-Hosting\n\nIf you prefer to self-host:\n\n1. Download the latest release\n2. Host `aisearchindex.min.js` on your CDN\n3. Update `data-endpoint` to point to your instance\n\n```html\n<script \n  src=\"https://your-cdn.com/aisearchindex.min.js\" \n  data-tid=\"YOUR_TRACKING_ID\"\n  data-endpoint=\"https://your-app.com/api/pixel\"\n  async\n></script>\n```\n\n## Development\n\n```bash\n# Install dependencies\nnpm install\n\n# Build all formats\nnpm run build\n\n# Watch mode\nnpm run dev\n\n# Check bundle sizes\nnpm run size\n```\n\n## License\n\nMIT © [AI Search Index](https://aisearchindex.com)\n\n---\n\nBuilt with care by [AI Search Index](https://aisearchindex.com) - AI Search Analytics\n","readmeFilename":"README.md","_rev":"1-082cd255237d7fb107d065542eda313b"}