Data Populator

Follow
Availability

The Data Populator feature is available in Countly Lite, Countly Enterprise, and built-in Flex.

The Data Populator feature provides an easy method to generate sample data for your currently active application. It populates data related to sessions, events, crashes, in-app purchases, push notifications, funnels, and user profiles so that you can understand what your reporting and analytics will look like when you go live.

Getting Started

To start using the Data Populator feature, go to Main Menu > Utilities > Data Populator. The data populator will warn you before you populate the data into any app. It is important that you do not run the data populator if your current application has already collected real/live user data.

Data Populator Overview

Understanding Data Populator Views

The Data Populator feature is divided into two views:

  • Data Populator allows you to set up and run the data populator on the selected application.
  • Templates allow you to set up different data population templates, including the details you want to populate (e.g., events, sessions, funnels, etc.), and save them for use.

Using Data Populator

Data Populator View

The Data Populator view has two tabs: Populate with template view and Populate with Environment.

Environment

The Environment is a new concept introduced in Data Populator to generate related data that can help create demo data, which are interrelated through features mostly events. The environment concept will let us save the runs. When we run any populator session, we can save the results. If we want to use the same environment, when we return to the populator, we can select a pre-created environment and run the populator based on that environment. The data will be populated accordingly.

Populate with Template View

The Data Populator View is the default view in the Data Populator feature.

Populator 1.png

On this page, you need to set the below fields:

  1. Data Template - Using the dropdown menu, select the template you want to use to populate sample data.
  2. Date Range - Using the calendar dropdown, set a date range for the sample data. The options mimic the options in the date range of all Countly features.
  3. Number of Runs - Select the number of runs each unique user will go through in the environment/template and trigger one sequence.
  4. Save Environment - You can toggle in the save button for saving an environment. If you toggle in to save an environment, enter the environment name. The created users and their properties will be saved in that environment. Data will be generated accordingly.

Once you have filled these fields, click the Generate Demo Data button. This will result in sample data being populated.

Important!

Do not populate sample data for an app that is already collecting live/real data!

Populate with Environment

Populator 2.png

  1. Environment - From the drop-down, you can select any pre-existing environment whose data you want to use as a demo date.
  2. Date Range - You can select the date range for the environment data using this drop-down.
  3. Number of Runs - Select the number of runs that each unique user will go through in the environment/template and will trigger one sequence. Click on Generate Demo data. When you click generate demo data, population will be done through the users created in the run where the environment is saved.

Templates View

Templates are predefined formats, which can be used to generate data in data populator. A new concept of sequence has been introduced, which makes generating data using templates easier.

Sequence

Sequence is the list of steps to be processed in each run. By default, each sequence begins with the start session, continues sequentially with steps defined by the user, and ends with the session end. If nothing is defined in steps, it just processes session start and session end for each run.

To go to the Templates View, click on the Templates tab at the top of the page. Here, you will see a table of all the templates that you have set up.

Populator 3.png

Each template has the below details:

  1. Template - The name of the template.
  2. Number of Users - Number of users who are using the template.
  3. Number of Events - Number of events within the template.
  4. Views - Number of views associated with the template.
  5. Sequences - Number of sequences associated with the template.
  6. Generated on - This represents the date when the template was created.
  7. +Create New Template - This button is used to create a new template.

Duplicating a Template

To duplicate any template, click on the 3-dot ellipsis menu button on the right of the row of the relevant template, and then click on Duplicate.

Creating a New Template

To create a new template, click on the Create New Template button on the top right corner of the page. This will open up a drawer where you will be required to fill in the below details:

The toggle button has been included for Events, Views, and Sequences. Once you toggle in they will be used in all of the steps of the data populating process. If the toggle is disabled, the relevant section will be disabled in other places where it is used, and those steps will not be included in the populate process.

Dp123.png

  1. Template Name - Enter the Template Name here.
  2. Users - Here, you can select the number of unique users you want in your populated data. The number of users that will be created as a result of the populate process (if you do not stop the populate).
  3. Platforms - Here, you can select the platforms for which you want to generate the populated data. The template you will define will be valid for which application type. In order to see the template you created in the template list, this information must be selected according to your application type.
  4. Custom properties - Here, you can define the custom properties related to your properties.
  5. Event, Views, and Sequences - Here, you can create the template based on the data of Event, Views, or Sequences by using the toggle button.
  6. Here you can define the Behavior of your template.

Once you have filled in all the details, click on the Create button at the bottom right of the drawer. The template will now be added to the table.

Understanding the fields of Create New Template

This section will give you an explanation of the various fields included in the Create New Template menu.

Users and Platforms

Here, you can select the number of unique users you want for the platforms that you select, and it helps you select and arrange the populated data according to your preference.

5.png

  1. Select the number of unique users you want in your template.
  2. You can select the platform here.

Custom properties

Custom properties let you define any function/logic in your own way. For example, 10% of the users of your app can be paying customers and 90% of them are free users. So with this configuration, you can actually arrange the populated data, which can help you explore the features in a more meaningful way, as your own logic was implemented.

Click on +Add a Custom Property, to add a new custom property.

6.png

  1. You can enter the Custom property name here.
  2. You can enter the value or the field of the Custom property here. It can be any action related to your app.
  3. Enter the probability of the occurrence of that particular action.
  4. You can enter another property using this button.
  5. You can add conditions, using this button which will trigger this particular property when any action defined is triggered.

Event

The Events menu has a similar concept, just having a few additional properties. But the “add condition” options are configured similarly. You have an event key that has segments, and you will be able to control the segment values based on the value of another segment for the same event. The dropdown will have every segment for this particular event key.

Let us consider you have an app that sells groceries. Normally the probability of buying bakery-related groceries is 60% and the probability of buying daily groceries is 40% but through adding conditions, if bakery-related grocery is selected, basically the value bakery-related groceries, you will have a 100% probability. So this ensures the data we generate is logical. In this way, we want to ensure the data looks proper and correct.

7.png

  1. Enter the event name here.
  2. Enter the duration for the user to complete the event here.
  3. Enter the sum for the event here which will help you track your event.
  4. In this field, enter the segment with its value and probability of occurrence.
  5. You can add conditions using this button.

To add more segments, use the +Add Segmentation button.

Views

View uses the same logic as event. You can create a view based on a segment and track it. In this way, you can populate your app based on your logic.

8.png

  1. Enter the View name here.
  2. Enter the duration for the completion of actions of your app, that you want to use to generate data.
  3. You can add Segmentation using this button.

You can multiple views, by using +Add View button.

Sequences

This ensures the overall kind of path you will use to generate data using the data populator so that the generated data is logical. So the sequence will have a session start and a session end. You will be able to add new steps to the sequence. This means when you run the populator for every single user you generate, you will run one sequence per run.

9.png

  1. You can add the probability of the session here in percentage.
  2. You can add steps using this button.

You can add multiple sequences, using the +Add Sequence button.

Behavior

Behavior is the section where you can customize the use of sequences. If you do not define any sequence, random sequence will be running (in case of defining its probability). Random sequence is a defined default sequence that adds session start, session end, and some system events for you.

Populator 6.png

  1. You can define the time period here for which the behavior will run. Time between runs specifies how many hours each run should run. A random time is selected from the two values that user enters.
  2. You can add a condition to it so that the behavior gets triggered. You can specify the time between run values according to the condition you will add. If the user property you specified in the condition is chosen in that run, the time defined in the condition is taken as a basis for that run.
  3. You will add the probability of occurrence of a sequence here.
  4. You can add a condition related to the sequence here, which will trigger the sequence if the condition is fulfilled. You can specify sequence probability values according to the condition you will add. If the user property you specified in the condition is chosen in that run, the sequence probability in the condition is taken as a basis for that run.

An Example Scenario

With this example you can simulate Customer Data with Probability Fields.

This example will also help you to understand how to generate customer data with properties influenced by probabilities and conditions.

Let us consider an application that has two levels of membership Basic and Premium.

  1. Membership Level - "Basic" (90% chance), "Premium" (10% chance).
  2. Average Spend - (This property has a condition based on Membership Level).

If the Membership Level is "Basic," there are three possibilities,

  1. Low (70% chance)
  2. Medium (25% chance)
  3. High (5% chance)

If the Membership Level is "Premium," there are three possibilities,

  1. Critical (60% chance)
  2. High (40% chance) (Adjusted probabilities to reach 100% within the condition)

Steps that you have to follow,

  1. Generating random numbers
    • For Membership Level, generate a random number between 1 and 100.
    • For Average Spend, generate a separate random number between 1 and 100 (used later conditionally).
  1. Determining Membership Level
    • If the random number for Membership Level is less than or equal to 90, assign "Basic".
    • Otherwise, assign "Premium".
  1. Determining Average Spend (considering the condition)

If Membership Level is "Basic",

  • If the random number for Average Spend is less than or equal to 70, assign "Low".
  • If the random number for Average Spend is between 71 and 95 (inclusive), assign "Medium".
  • Otherwise, assign "High".

If Membership Level is "Premium",

  • If the random number for Average Spend is less than or equal to 60, assign "Critical".
  • Otherwise, assign "High".

Validating the probabilities

  • Verify that the sum of probabilities for Membership Level ("Basic" + "Premium") equals 100%.
  • Verify that the sum of probabilities for Average Spend within each Membership Level condition ("Low" + "Medium" + "High" for Basic, "Critical" + "High" for Premium) also equals 100%.

An Example Run will have the following output,

  1. Random number for Membership Level: 85 (Less than or equal to 90, so "Basic").
  2. Random number for Average Spend: 32 (Less than or equal to 70, so "Low").

Result of run,

Membership Level -  Basic

Average Spend - Low

Repeating this process multiple times will generate a set of customer data with properties influenced by the defined probabilities and conditions, producing a more realistic scenario of populated data.

Looking for help?