← FingerprintCONTENT HISTORY

Update to Fingerprint

Snapshot Sep 30, 2026 · 23:11 UTC · version 1.0.0

Collection source: not recorded for this historical snapshot.

WHAT CHANGED · RULE-BASED ANALYSIS

First saved snapshot

No earlier snapshot is available to establish a change.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "name": "fingerprint-angular",
  "description": "Integrate Fingerprint device identification into an Angular app — initialize the agent and get the visitor's visitor_id and event_id.",
  "included_files": [
    {
      "relative_path": "skill.json",
      "size_in_bytes": 230
    },
    {
      "relative_path": "snippets/app.config.ts",
      "size_in_bytes": 886
    },
    {
      "relative_path": "snippets/login.component.ts",
      "size_in_bytes": 913
    }
  ],
  "skill_md_contents": "---\nname: fingerprint-angular\ndescription: Integrate Fingerprint device identification into an Angular app — initialize the agent and get the visitor's visitor_id and event_id.\n---\n\n# Fingerprint — Angular\n\nIntegrate Fingerprint into an Angular app to identify visitors: register the provider once at\nstartup, then ask it for the visitor's `visitor_id` and a single-use `event_id` wherever you need\nit (on load, or on an action like login or checkout).\n\n> Docs: https://docs.fingerprint.com/docs/angular · JS Agent v4: https://docs.fingerprint.com/reference/js-agent-v4\n\n## Package\n`@fingerprint/angular` — install the latest version.\n\n## Env var\n- `FINGERPRINT_PUBLIC_API_KEY` — the public key, safe to ship to the browser.\n\n> Angular has no `.env` at runtime — config is baked in at build time. Put the public key and\n> region in `src/environments/environment.ts` (and `environment.prod.ts` for production, swapped in\n> via `fileReplacements`) and read them from there. Never put the secret key in `environment.ts` —\n> it ships to the browser.\n\n## Steps\n\n1. **Install** `@fingerprint/angular`.\n\n2. **Initialize once at the app root.** Register `provideFingerprint`, passing the public key and\n   region (`us` | `eu` | `ap`, matching the workspace) via `startOptions`. For a standalone app\n   this goes in `src/app/app.config.ts`. See `snippets/app.config.ts`.\n\n3. **Get the identification where you need it.** Inject `FingerprintService` and call\n   `getVisitorData()` on the action you care about; it returns `{ visitor_id, event_id, ... }`. See\n   `snippets/login.component.ts`.\n\n4. **Verify it works.** Disable your ad blocker, run the dev server, trigger the call, and confirm\n   a `visitor_id` is logged in the browser console (or that the event appears on the dashboard\n   Events page).\n\n## Notes\n- Region must match the workspace (`us` | `eu` | `ap`).\n- Register `provideFingerprint` once at the app root; don't re-provide it per component.\n- `getVisitorData()` is async — await it inside the action handler and handle errors so a failed\n  identify doesn't break the flow.\n- **Production:** protect the agent from ad blockers with a custom subdomain or proxy —\n  https://docs.fingerprint.com/docs/protecting-the-javascript-agent-from-adblockers.\n- Don't use legacy `@fingerprintjs/fingerprintjs-pro`, `FingerprintJS.load()`, or `scriptUrlPattern`.\n"
}

SHA-256: edb36a63e51f6c661d3f30e9e7e91ee50e530feba2c9261ade5ea528c4585240