# go4dash > go4dash is a product-analytics platform with an AI co-pilot. You send events > from your app — server-side from a backend, or from the browser on a static > site — using the dependency-free `atrack` SDK; go4dash stores them and powers > dashboards and an agent that answers questions about your product. If you are an AI coding assistant adding go4dash tracking to a codebase, read the integration guide that matches the target first — each is a step-by-step spec you can execute. Use the **server-side guide** for a backend (Python), or the **browser guide** for a static site / SPA with no backend. There are two keys: a **server-side ingest key** (`gd_…`, secret, backend only) and a **browser publishable key** (`pk_…`, safe in page source) — pick the one for your target. Event envelope: `event` (required), `user_id` (required), `properties` (free-form dict), `anon_id`, `timestamp`, `event_id`. ## Server-side tracking (backend) - [Server integration guide (Python backend)](https://go4dash.com/llms/integration.md): self-contained spec to add server-side tracking — sign-up steps, the `AtrackClient` API, `track()` / `track_request()`, and the event envelope. Uses the secret `gd_…` ingest key. - [atrack.py — raw Python SDK](https://go4dash.com/atrack.py): the single-file, standard-library-only server SDK. Drop it into a repo (`curl -O https://go4dash.com/atrack.py`) or `pip install atrack`. - [atrack SDK docs page](https://go4dash.com/atrack): human-readable reference for the SDK. ## Browser tracking (static sites / SPA, no backend) - [Browser integration guide](https://go4dash.com/llms/integration-browser.md): self-contained spec to add client-side tracking — the publishable `pk_…` key, the paste-before-`` snippet, `data-g4d` autocapture, `track()` / `identify()`, and the event envelope. - [atrack.js — raw browser tracker](https://go4dash.com/atrack.js): the paste-before-`` snippet using a publishable `pk_…` key. Autocaptures `landing_page_view` on load and a click event for any element tagged `data-g4d=""` (the attribute value is the event name, emitted verbatim; `data-g4d-target=""` sets the `target` property), plus referrer/UTM params; `atrack.identify(email)` stitches the anonymous journey to a known user. ## Notes - Tracking is best-effort and never raises — it cannot crash your app. - Use one long-lived `AtrackClient` per process; it batches and flushes on a background thread. - Web request context (`web_url`, `web_path`, `web_method`, `web_referrer`, `web_user_agent`, `web_ip`) is auto-captured by `track_request()`. Cookies are never captured.