Data Populator

Fill a project with believable demo data, generated in your browser and sent in like real SDK traffic.

What the populator does

The populator fills a project with demo data, so a new install has something to show on the analytics pages before any real traffic arrives.

The data is generated in your browser and sent to the server as bulk SDK requests, the same way a real app reports. Nothing about it is marked as synthetic once it lands, which is why the populator asks you to confirm the project before it starts: generated data cannot be separated from real data later. Point it at a demo or staging project, never at one carrying real traffic.

What gets generated is decided by a template. A template holds five things: how many unique profiles to invent and on which platforms, the custom events those profiles trigger, the views they visit, the sequences that script a single session, and the behavior that decides how often a profile comes back and which sequence it runs. Countly ships built-in templates you can use as they are or duplicate, and any template you build yourself is fully editable.

Three settings sit outside the template because they belong to the run rather than to the data: the target project, the date range the generated sessions are spread across, and the data volume. Volume is measured in runs, where one run is roughly one session per unique profile and each run walks one behavior sequence, so a template of 200 profiles at 50 runs produces far more traffic than the same template at 10.

An environment is the other half of the story. Saving a run as an environment keeps the profiles it invented, with their device IDs, so a later run can replay the same people instead of inventing a fresh crowd. That is what makes returning users, retention curves and cohorts look like they do in a real project rather than like a new population every time.

The populator lives under Manage, and it works on one project at a time. Templates are shared across the server; runs and environments belong to the project you generated them for.

Use Cases

Fill an empty project

Your project is new and the analytics pages have nothing to show.

  1. Open Manage > Data Populator. The Populate tab opens first.
  2. Check Target project. Populating is scoped to one project, and the field follows the project selected at the top of the app.
  3. Under Start from, pick a built-in template. The line under the field tells you what it will produce: how many unique profiles, how many custom events, how many sequences.
  4. Optionally tick anything under Include features. Only features enabled on your server are offered, so a short list here is a statement about the server, not about the template.
  5. Set the Date range the sessions should be spread across, and pick a Data volume.
  6. Read the Run summary on the right, then select Generate demo data and confirm.

A progress dialog reports profiles completed and requests sent while the run works, and you can stop it at any point. Stopping keeps whatever has already been sent.

If the form is replaced by a notice instead, the project is not populatable yet. A locked project has its writes rejected by the server, and a project with a checksum salt drops every generated request, because the populator sends no checksum. Both are fixed in Projects, and the notice links there.

Add more data for the same people

You already populated a project, and now you want more data about the same profiles rather than a fresh crowd of strangers.

  1. On the first run, turn on Save as environment and give it a name before you generate. This keeps the profiles the run invented, along with their device IDs.
  2. On a later run, open Start from and pick that environment from the Saved environments group instead of a template.
  3. Set a new Date range, usually one that follows on from the first run, and generate again.

Because the device IDs are stable, the server treats these as the same people coming back. That is what produces returning users, session counts above one per profile, retention that is not flat, and cohorts that actually fill.

Two things are worth knowing. If the environment holds fewer profiles than the template expects, the populator warns you and generates the missing ones fresh, adding them to the environment. And deleting an environment removes its saved profiles, so later runs can no longer replay them; the data already sent to the project stays where it is.

Make a template of your own

The built-in templates describe a generic app. Yours has its own events, its own screens and its own rhythm.

  1. Open the Templates tab. Built-in templates carry a Built-in tag.
  2. On the built-in closest to what you want, open the row menu and choose Duplicate. Starting from a duplicate saves you describing a whole app from nothing.
  3. The editor opens on the copy. Work down the five sections in the left rail: Profiles, Custom events, Views, Sequences, Behavior.
  4. Give the template a name in the right panel, then save.

Order matters in one place. Sequences are built from your custom events and views, so add at least one of those before you try to script a session. The same link works in reverse: a custom event or view that a sequence step uses cannot be deleted until the step is removed.

Built-in templates cannot be edited or deleted, only duplicated. A duplicate is an ordinary custom template from the moment it is created.

FAQs

Can I remove the data afterwards?

Not selectively. Generated data is ingested like real traffic and cannot be separated from real data later, which is why the confirmation names the project. Use a demo or staging project, and clear the whole project if you need to start over.

Why is the form replaced by a notice?

The project cannot accept generated data. Either it is locked, in which case the server rejects the writes, or it has a checksum salt, in which case it drops every generated request because they carry no checksum. Both are project settings and both are changed in Projects.

Why did it refuse to run and warn about a spike?

The template's gaps between sessions do not fit the date range at that volume, so the sessions would pile up towards the end of the period instead of spreading across it. Widen the date range or lower the number of runs.

Why are all my profiles new every time?

Because each run invented a fresh set. Turn on Save as environment before generating, then pick that environment under Start from on later runs to replay the same people with the same device IDs.

Can I edit a built-in template?

No, but you can duplicate one and edit the copy, which is an ordinary custom template from then on.

Why can I not save my template?

It still has issues. The count sits above the save button and the list is behind it. The editor deliberately shows no errors on the fields themselves, so that panel is the only place the outstanding problems are collected.

Are templates per project?

No. Templates are shared across the server, so one you build is available when populating any project. Runs and environments are per project.

Related Resources

Was this page helpful?
Reach out to us for any other questions.
Helpful?

Looking For More Help?