{"_id":"@audienceranker/beacon","_rev":"3-f344f66d2e08dda23cda0e0f629b5ad4","name":"@audienceranker/beacon","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@audienceranker/beacon","version":"1.0.0","keywords":["analytics","tracking","beacon","audienceranker"],"author":{"url":"by SEVN","name":"AudienceRanker"},"license":"MIT","_id":"@audienceranker/beacon@1.0.0","maintainers":[{"name":"kazzkiq","email":"claudiohw@gmail.com"}],"dist":{"shasum":"8d22d8ba3e481a9765099a29a23165ed90a7043d","tarball":"https://registry.npmjs.org/@audienceranker/beacon/-/beacon-1.0.0.tgz","fileCount":15,"integrity":"sha512-9DaVyaJRvwZtSxmhbh09woejc4kUPN8yxW8BPEfdR/xrJEbdLdf4NqwsBBz8FVPlS4esQf//FbkbuV7NCaxEVg==","signatures":[{"sig":"MEUCIB3Vl3IIdJsXhRxcKHMq0bUiuUiwxRTwnJnwvADJgaPyAiEA0rwXgy9i6Zx7TkC+CZhN7ZBexcIEbk/7mv+uXPncAn0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":167926},"main":"dist/index.cjs.js","types":"dist/index.d.ts","module":"dist/index.esm.js","browser":"dist/beacon.min.js","gitHead":"ad25398f864f2c2eae6cb8e5fc28476fef8cd9f0","scripts":{"dev":"rollup -c -w","build":"rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"kazzkiq","email":"claudiohw@gmail.com"},"_npmVersion":"11.8.0","description":"AudienceRanker tracking beacon — lightweight analytics collector for websites","directories":{},"_nodeVersion":"25.5.0","dependencies":{"web-vitals":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.8.1","rollup":"^4.28.0","typescript":"^5.7.2","rollup-plugin-dts":"^6.1.1","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^11.1.6","@rollup/plugin-node-resolve":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/beacon_1.0.0_1773168382027_0.4575354340930604","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@audienceranker/beacon","version":"1.0.1","keywords":["analytics","tracking","beacon","audienceranker"],"author":{"url":"by SEVN","name":"AudienceRanker"},"license":"MIT","_id":"@audienceranker/beacon@1.0.1","maintainers":[{"name":"kazzkiq","email":"claudiohw@gmail.com"}],"dist":{"shasum":"4845281c9b991be90ea08a42c77379b271faba53","tarball":"https://registry.npmjs.org/@audienceranker/beacon/-/beacon-1.0.1.tgz","fileCount":15,"integrity":"sha512-0rjdENFDeTXkwmupYGW5PsxjC9KJY/Tbv8ncV1AvgjKiGfrTHJcC8qczLr/tzREAYrXBVqPys6QZr6oRRL/dfg==","signatures":[{"sig":"MEQCIEGU3hoZiaQFsTcUsmvDiZfnITg/rfykryrwg4G31C6aAiB9XfDBBfZQFH4Fm6EjZKI8hmxegIpcbH+QlIuC6XnDJw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":167728},"main":"dist/index.cjs.js","types":"dist/index.d.ts","module":"dist/index.esm.js","browser":"dist/beacon.min.js","gitHead":"a9b88fc4bcee27ee900d574e26d452de7a0ebaf4","scripts":{"dev":"rollup -c -w","build":"rollup -c","prepublishOnly":"npm run build"},"_npmUser":{"name":"kazzkiq","email":"claudiohw@gmail.com"},"_npmVersion":"11.8.0","description":"AudienceRanker tracking beacon — lightweight analytics collector for websites","directories":{},"_nodeVersion":"25.5.0","dependencies":{"web-vitals":"^5.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.8.1","rollup":"^4.28.0","typescript":"^5.7.2","rollup-plugin-dts":"^6.1.1","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^11.1.6","@rollup/plugin-node-resolve":"^16.0.3"},"_npmOperationalInternal":{"tmp":"tmp/beacon_1.0.1_1773353881337_0.8250685063116012","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@audienceranker/beacon","version":"1.0.2","description":"AudienceRanker tracking beacon — lightweight analytics collector for websites","main":"dist/index.cjs.js","module":"dist/index.esm.js","browser":"dist/beacon.min.js","types":"dist/index.d.ts","scripts":{"build":"rollup -c","dev":"rollup -c -w","prepublishOnly":"npm run build"},"keywords":["analytics","tracking","beacon","audienceranker"],"author":{"name":"AudienceRanker","url":"by SEVN"},"license":"MIT","devDependencies":{"@rollup/plugin-node-resolve":"^16.0.3","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^11.1.6","rollup":"^4.28.0","rollup-plugin-dts":"^6.1.1","tslib":"^2.8.1","typescript":"^5.7.2"},"publishConfig":{"access":"public"},"dependencies":{"web-vitals":"^5.1.0"},"gitHead":"6cd44cf91235b9fac02fde71aeb027d7ef7d2b40","_id":"@audienceranker/beacon@1.0.2","_nodeVersion":"25.5.0","_npmVersion":"11.8.0","dist":{"integrity":"sha512-AVsTIz9fTsbF2EW0jSLtuLvyNU3eCbXC1fG4nUgxos8OXC7/6RBkMeOgpAYboswcODG0N+Sd81+AcYsX3WRoSg==","shasum":"dd6ceb86b3549665737847862add621c9d5cc4ed","tarball":"https://registry.npmjs.org/@audienceranker/beacon/-/beacon-1.0.2.tgz","fileCount":16,"unpackedSize":221299,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBrqOopyp+jZzukOHGhwS8ktNjNyRRAyqTMA1z63LhQnAiEA1PlcHKe2PmTRJKE9OvL1spa0TxK5rRhyk8c6ifVb+0E="}]},"_npmUser":{"name":"kazzkiq","email":"claudiohw@gmail.com"},"directories":{},"maintainers":[{"name":"kazzkiq","email":"claudiohw@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/beacon_1.0.2_1773775914946_0.3438971296026596"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-10T18:46:21.922Z","modified":"2026-03-17T19:31:55.269Z","1.0.0":"2026-03-10T18:46:22.188Z","1.0.1":"2026-03-12T22:18:01.479Z","1.0.2":"2026-03-17T19:31:55.129Z"},"author":{"name":"AudienceRanker","url":"by SEVN"},"license":"MIT","keywords":["analytics","tracking","beacon","audienceranker"],"description":"AudienceRanker tracking beacon — lightweight analytics collector for websites","maintainers":[{"name":"kazzkiq","email":"claudiohw@gmail.com"}],"readme":"# @audienceranker/beacon\n\nLightweight analytics beacon for AudienceRanker — a \"pixel-style\" tracking library that collects audience data and sends it to the AudienceRanker collector.\n\n## Installation\n\n### Option 1: NPM (Recommended for modern projects)\n\n```bash\nnpm install @audienceranker/beacon\n```\n\n### Option 2: Script Tag (Simplest for any website)\n\nAdd this single line to your HTML `<head>`:\n\n```html\n<script data-audience-ranker src=\"https://cdn.audienceranker.com/beacon.min.js?tid=YOUR_TENANT_ID\"></script>\n```\n\n## Usage\n\n### NPM / ESM (Modern bundlers)\n\n```javascript\nimport { init, destroy } from '@audienceranker/beacon';\n\n// Initialize with your tenant ID\ninit({ tenantId: 'your-tenant-id' });\n\n// Optional: manually destroy when needed\n// destroy();\n```\n\n### Script Tag (Auto-initialization)\n\nWhen using the script tag with `?tid=` parameter, the beacon auto-initializes:\n\n```html\n<script data-audience-ranker src=\"https://cdn.audienceranker.com/beacon.min.js?tid=your-tenant-id\"></script>\n```\n\n### Script Tag (Manual initialization)\n\nIf you prefer manual control, omit the `?tid=` parameter:\n\n```html\n<script data-audience-ranker src=\"https://cdn.audienceranker.com/beacon.min.js\"></script>\n<script>\n  // Initialize manually when ready\n  window.AudienceRanker.init({ tenantId: 'your-tenant-id' });\n</script>\n```\n\n## Configuration\n\nThe `init()` function accepts a configuration object:\n\n| Option | Type | Required | Default | Description |\n|--------|------|----------|---------|-------------|\n| `tenantId` | `string` | Yes | — | Your unique tenant identifier |\n| `collectorUrl` | `string` | No | `https://collector.audience.lat` | Custom collector endpoint |\n\n### Example with custom collector:\n\n```javascript\ninit({\n  tenantId: 'your-tenant-id',\n  collectorUrl: 'https://custom-collector.your-domain.com'\n});\n```\n\n## API Reference\n\n### `init(config: BeaconConfig): void`\n\nInitializes the beacon and starts all tracking features. Safe to call multiple times — each call destroys the previous instance first.\n\n### `destroy(): void`\n\nTears down the beacon, stopping all tracking, observers, and schedulers. Safe to call even if `init()` was never called.\n\n### `VERSION: string`\n\nCurrent version of the beacon library (e.g., `\"0.0.1\"`).\n\n## What It Tracks\n\nThe beacon automatically collects:\n\n- **Pageviews** — Fires on every page load and SPA navigation\n- **Visits/Sessions** — Tracks unique visits (30-minute session timeout)\n- **Core Web Vitals** — LCP, INP, CLS for performance monitoring\n- **Traffic Type** — Organic, direct, referral detection\n- **Traffic Origin** — Referrer information\n- **Device Info** — Device type from user agent\n- **Connection Speed** — Network speed estimation\n- **Connection Type** — WiFi, 4G, etc. (when available)\n- **Device Tier** — Performance capability classification\n- **Geolocation** — Country detection\n\n## Distribution Files\n\nThe package includes multiple builds for different use cases:\n\n| File | Format | Use Case |\n|------|--------|----------|\n| `dist/index.esm.js` | ESM | Modern bundlers (Webpack, Vite, Rollup) |\n| `dist/index.cjs.js` | CommonJS | Node.js, legacy bundlers |\n| `dist/beacon.min.js` | IIFE/UMD | Browser `<script>` tag |\n| `dist/index.d.ts` | TypeScript | Type definitions |\n\n## Browser Support\n\nWorks in all modern browsers that support:\n- `navigator.sendBeacon` (with XHR fallback)\n- `PerformanceObserver` (for Core Web Vitals)\n- `URL` and `URLSearchParams`\n\n## License\n\nMIT\n\n---\n\n**AudienceRanker** — Analytics for newsrooms and content publishers.\n","readmeFilename":"README.md"}