How Kameleoon collects data
The collection method depends on your implementation type.Web Experimentation
For web implementations, Kameleoon collects data through theengine.js script running in the visitor’s browser. When a visitor loads a page, the engine:
- Initializes the visitor and evaluates which experiments and personalizations apply.
- Assigns the visitor to a variation.
- Sends tracking events (such as page views, experiment exposures, scroll activity, and goal conversions) to the Kameleoon Data API.
The browser caches
engine.js. When you start an experiment or add a goal in the Kameleoon app, new visitors and returning visitors whose cached engine.js has expired get the update right away. Returning visitors with a still-valid cached version don’t get the update until their browser fetches the new configuration.To QA a change, load the page in an incognito or private window, or force a hard refresh, so your browser doesn’t serve a cached version of engine.js. See Will Kameleoon’s script (engine.js) slow down my website? for cache duration details.SDK implementations
For server-side and mobile implementations, Kameleoon collects data through SDK tracking calls. The SDK evaluates flags locally and sends tracking requests to the Data API in batches. The default flush interval is 1 second. You can also trigger an immediate flush with theflush method.
Warehouse and offline conversions
If you import conversions from a data warehouse, Kameleoon accepts events through the Data API. A successful API response confirms that Kameleoon received the payload, not that the events are visible in reporting yet. Warehouse-pulled conversions go through an additional processing step before they appear in results. See Warehouse-delayed conversions for details.Data processing and reporting latency
Two separate timings determine when data becomes available.
Events appear in Live events almost immediately after the tracking call fires. They do not appear on the Results page until Kameleoon has processed the completed visit.
What “ended visit” means
The Results page reports on visits, not individual events. A visit ends when Kameleoon receives no new activity from the visitor for 30 minutes. Closing a browser tab often causes a visit to end, but closing the tab is not the formal condition. A visit ends based on inactivity, not browser state. Practical implication: If you trigger a goal conversion and then immediately check the Results page, the visit is likely still active and the conversion does not appear yet. Wait until the visit ends, or use Live events to confirm the event fired in real time.Use Live events for QA, not the Results page
Live events is the correct tool for real-time QA. The Results page is for analyzed, visit-based outcomes after experiments have run.