Accounts, projects & sources
Switching projects switches both the data and the members. The site identifier in the page script is not a secret and can be public; a server API key is shown only once, when it is created.
Open the project from the top bar. Hostnames and app ids are on ConsoleAll-platform analyticsDataData sources. Time zone, members, and keys are on ConsoleConfigurationSettings.
What a project is
A project is the container. It has its own time zone, privacy preset, members, and retention. Website, app, mini program, and server events in that project share one table, and identity is resolved inside it. "Today" on a report uses the project time zone, not the browser's.
Member roles (Owner, Admin, Analyst, Viewer, Agent only) decide who can edit settings and who can only read reports; Agent only members see just the chat inbox. Privacy preset and retention are project-wide. Exclusion rules and session rules can be overridden per web, app, or mini program shell. See Project settings.
What a source is
A source is an identifier the collector will accept: a website hostname, an application id or bundle id, or a mini program appid. Subdomains of a registered hostname are allowed. An unregistered hostname or app id is dropped silently. The collector still returns success, so the status code is not proof of storage.
Before any source is registered, the console shows shells from the type you picked at creation so you can add one. After that, shells follow the sources you actually have. Removing a source stops intake. Historical rows stay.
Platforms
A project with only one source kind does not show Multi-platform overview. Android plus iOS still counts as one kind of native app; adding a website or mini program makes it appear.
The comparison is ConsoleAll-platform analyticsOverviewPlatforms side by side. With more than one source kind, the first overview item is Multi-platform overview. Single-platform reports stay in their own shells.
Platform values
Web is one value. Mini programs are split by WeChat, Alipay, Douyin, and the other sources the collector accepts. Phone apps currently ship SDKs for Android, iOS, and HarmonyOS. Server Track defaults to platform server, and file import writes platform import.
The platform on an event decides which shell shows it: the web shell shows web, the app shell native apps, the mini program shell mini programs; server and import appear in all three. An app id must be registered or that app's events are rejected.
A new user counts once
On the side-by-side view, active users can be counted on each platform, and there is also a deduplicated total. New users are different: in the selected range a subject is assigned to the platform of their earliest new-user event. On the person counting mode, that is the platform of the first session on the first active day. Adding new users across platforms equals the deduplicated new-user count.
Events & properties
Autocapture records clicks and elements, not order amounts; revenue and refunds belong on server events. The web events report is a list and a breakdown, and custom steps and formulas are in Event analysis.
The website list is ConsoleWeb analyticsEvents. Definitions and checks are ConsoleAll-platform analyticsDataEvents & properties. Autocapture candidates are ConsoleAll-platform analyticsDataEvent inbox.
What an event is
The website script stores a pageview as a view and track as a named event. Apps and mini programs also send preset names that start with $, such as launch, screen, and crash. A $ name that is not on that preset list loses the prefix and is stored as an ordinary event. Website autocapture uses a double underscore, covering leave, outbound, download, form, vitals, and error.
Names you register in the event catalog must be snake_case, start with a letter, be at most 40 characters, and must not start with $, _, or wc_. The script itself truncates a name at 100 characters, but the event inbox and event definitions will not accept a reserved prefix.
Where properties sit
One browser event keeps at most 20 properties. Keys are cut at 50 characters, string values at 200, and only strings, numbers, and booleans are kept. Anything over the limits is truncated silently and the event is still sent.
Server payloads allow wider limits. See Server events & log import. When server validation fails, the response marks only the rejected event; the rest of the batch is still written.
Display fields such as name and email, and the first-touch fields, are written by identity. Do not overwrite them from a business event.
Sessions
Sessions are what visits, duration, entry pages and exit pages are counted from.
The website log is ConsoleWeb analyticsSessions. Rules are under Sessions & channels on ConsoleWeb analyticsConfigurationWeb settings. App and mini program shells can override them; otherwise they inherit the web rules.
How a session splits
The default idle timeout is 30 minutes, and a session lasts at most 24 hours. Idle can be set from 5 to 720 minutes, and the cap from 1 to 48 hours. Splitting at midnight in the project time zone, and splitting when the campaign changes, are off unless you turn them on.
The idle timer lives in the collector's cache and expires when no new event arrives in time. Saved rules apply to new events only: raising 30 minutes to 60 does not merge sessions that were already split.
When the login id on a device changes, the client sends a new session marker. The collector opens a new analytics session. Older events stay on the previous one.
An engaged session lasts at least 10 seconds, includes at least two pageviews, or hits a key event configured for the project.
Not a chat conversation
Analytics sessions are created by the collector for web analytics and behavior analysis. A chat conversation starts when the visitor sends the first message and is picked up, answered and closed in the inbox. The same person can chat inside one analytics session, or more than once. The two records can be joined by visitor or user, but they do not share an id.
Server events
A server event with an empty session id is stored on the event table and does not create a session row, so an order is not counted as a new visit. To attach it to a visit, send that visit's session id.