Best practices


This document outlines some of the best practices for quickly getting up and running with Countly Analytics.

Application management

Each application entry includes application name, ID, timezone and other information like who has access (read and write) to that application’s data. A proper application management is crucial to data collection process. There are a few tips and tricks as you prepare your apps for data collection, mentioned below.

  • Set up separate versions of your application in Countly to keep your production data separate from your test data. This way you can avoid having to purge test data.
  • Try to keep your iOS and Android data on the same application if your apps are similar in functionality. This way you can compare and contrast data coming from different platforms. Countly is more than capable of this!
  • Give descriptive names to your applications, like “BankApp — Test” and “BankApp — Prod”. You can create as many applications as you need to.
  • If you want to generate mobile or web integration code for custom events, user profiles, crash reporting and all other features that come with Countly in general, we suggest that you use Countly Code Generator, which is a point and click service that builds the necessary code for you.
  • You can either reset the application, which returns app to its initial blank state, or clear old data, which removes data but keeps configurations and data such as funnel definitions and attribution campaigns, and start from scratch (go to Management > Applications and click on “Clear data”).
  • If you need to filter out some incoming data, you can use the “Block Requests” plugin.
  • If you wish to just play around with some data to get a better understanding of the Countly dashboard, you can create a dummy application and populate it with sample data using Data Populator plugin, available by default under Management.


User Management

For Countly dashboard users, Countly provides detailed user and group management functionality. You can create several users with different authorizations and hide some of the menu items you don’t want to be viewed.

  • Create users with different authorizations: “Users” are authorized only to view analytics data for apps to which they are assigned; “Admins” have the ability to manage the apps to which they are assigned to (including users) and “Global Admins” have the ability to manage all apps and the Countly server.
  • If you are using Active Directory, benefit from Countly’s Active Directory plugin. This document provides more information about integration.
  • Countly allows you to create groups of users. You can group users together by role (e.g. Marketing or Analysts) and define which features each group can access. This will help speed up and simplify user management as you can move users from one group to another.


Custom events

Custom events help you understand what is happening inside your application and gain more insights into areas where Countly may not automatically collect information about.

  • Start collecting custom event data early on. Identify and define your most significant events first. You can always start with small number of events (e.g 7) and grow as required.
  • Try to give clear names to your event keys such as signupButtonClick or signup-process-success. You can define a “Display name” from Events view later on, to show “Successful signup” instead of signup-process-success throughout the reporting interface.
  • Benefit from event segments (key value properties attached to an event). Your reports will be more detailed, agile, and dynamic if you add more segments to an event.
  • There are several templates we have gathered for eCommerce, SaaS and Gaming startups. Use them as a starting point.
  • Do not collect an excessive number of events as they may cause too much noise. Every app is different, but in general you should be looking between 20–80 events depending on the complexity of your app.
  • An event can have count, sum and duration numeric properties. A duration defines how long an event took. You can use this property to measure amount of time a particular event takes.
  • For in-app purchases, you can define a special event (via Management > Applications) and then send this event from your application to collect revenue data.


General analytics & reporting

Countly’s intensive analytics functions allow you to get the most out of your data. Email reporting and automated alerts help you get this data daily or weekly, depending on your choice. Note that if you host your own instance, you must define an MX (mail exchange) record and configure Countly instance properly to be able to send emails.

  • A session length is calculated out of the box by Countly under Analytics > Sessions. However note that for some platforms (e.g MacOS) a session length doesn’t give correct results since app is never stopped unless user quits it.
  • You should also check average number of sessions for each user to get an understanding of stickiness.
  • If you track a web app, then make sure you track scroll heatmaps and click heatmaps, under Analytics > Views. This will help you understand where your users click, and how deep they go in a page.
  • Create your own custom dashboard and share it with your colleagues.
  • After integrating one of our SDKs, we strongly suggest that you check incoming data on Countly dashboard using Request Logs plugin, available by default under Utilities > Request Logs. This will help you confirm that data is being submitted correctly to Countly. Note that this plugin only shows last 1000 incoming requests.
  • Be aware that there are some limits for custom events (maximum of 500 unique event keys), event segmentations (maximum of 100 for each event), and unique values for each segmentation (maximum of 1000 values). While there is a limit of 8 steps for Funnels, this can be configured from Management > Configurations.
  • In order to track number of customer churns and about to churn users, apply filter under User Profiles to see users who have not logged in for a significant period of time, e.g. past 30 days, to understand churned or about to churn users. In order to do this, go to Dashboard > User Profiles > Apply Filter.
  • Retention (plugin link) is important! It basically tells you how often your users keep coming to your website, or use your mobile app. When retention is low, that means your users are churning. Your job is to increase customer satisfaction to make retention as high as possible.
  • You may want to connect the same user and device to the same customer when your customers have the same ID across several device types (e.g mobile and web). Countly’s unique ID feature (cross device reporting) enables association of users and sessions (in fact, any activities on several devices), to the same visitor using a persistent ID you send to Countly.


Attribution (referral) analytics

Attribution Analytics can be used to view and compare different campaigns that you previously created.

  • For each campaign create a different Attribution (referral) entry.
  • Each attribution campaign can be drilled down, e.g you can use Drill to select a campaign and then enter other criteria, e.g by country, cohort name, demographics etc.
  • Using Adwords? We can get Adwords data from Google and display it on Countly dashboard.
  • Countly Attribution Analytics has a webhook mechanism where you can send any device related data to another 3rd party server when a conversion happens. You can add any amount of postback URLs and provide available parameters by using placeholders.


Rich push notifications

Rich push notifications allow you to send scheduled or instant push notifications to your users, also allowing to send images, videos and deeplinks.

  • Use deep links in your push notifications to take a user to a product or any page in your application. Using multiple buttons when sending a push notification with different destination and text can be handy. While Countly can track what percentage of your users have clicked a specific button, you can also tie custom events to those buttons to see it under Events view, and get more informed on a time series graph!
  • You can target a specific user group to receive a push notification, by going into Drill, segmenting (grouping) your users, and then clicking on “Send a message” button.
  • You can send a silent push to your users to let your app download data in the background, e.g game data, app icon updates or downloading newly published ebooks.
  • Read this documentation for a list of best practices for push notifications.
  • You can add a “push approver” middleman if you want to add another level of authorization and security. This way, one of your colleagues can prepare the notification, save as a draft, and another colleague can accept or reject.


Funnels help you track the flow of users along a defined path and helps you measure goal completion rates of your application using a step by step approach.

  • Start with a single funnel and see how it shows the data you need, then add more funnels as your product manager and analysts require.
  • Make sure you benefit from segmentation. For this, click on the “Apply Filter” button on top of a funnel.


Crash and error reporting

Countly monitors the stability of your Android & iOS applications, and web apps, and helps increase user satisfaction with your mobile apps. With the help of its real-time infrastructure, Countly shows which errors are trending in real-time, which users are impacted, and helps identify crashes by OS, device, carrier, and other factors so that developers can remedy issues more quickly.

  • Get more information about Countly’s extensive and enterprise-grade crash reporting here.
  • Symbolication is the process of converting crash data into human readable class/method name, filename and line number. You can use Countly Symbolication plugin for this purpose. Check out this documentation for more information.
  • Make sure you know the differences between several terms:
  • A non-fatal crash is a crash that doesn’t stop application but allows it to run after a crash is encountered. A fatal crash is a crash that causes the application to stop and quit.
  • An exception is an event, which occurs during the execution of a program, that disrupts the normal flow of the program’s instructions. This term is usually used in Java / Android world. A crash is a software failure that causes the program flow to break unexpectedly. This term is usually used in iOS world.

Extracting data

Countly data can be extracted since backend is completely accessible. You can use several methods like direct DB access, CSV/XLS/JSON download or via API.

  • You can always query Countly data using Countly API, explained here.
  • You can backup your Countly data and then import this data on another server. You can also use Data Migration plugin for this purpose, available from Countly v17.12.
  • How to get event data in a Drill database? First method is to use Drill for this. Select Event > Go to Table > Download CSV.
  • You can also retrieve the information you seek using Countly APIs. Here is the related API endpoint (events) in case you need. You need 1 request to get all events, and then 1 request for each event to get data.


Server management

When you deploy Countly on-prem, you have several options like installing a MongoDB replica set or a sharded cluster. Whatever the deployment choice is, there are several management tasks you may need to consider.

Other things to consider

Countly, by far, the most extensible, open product analytics and marketing platform for mobile, web, desktop and IoT devices. When you dig deeper, you will be amazed how Countly is populated and packed with several features that will help you get started with product analytics easily and seamlessly. Instead of relying on several platforms for data collection, storage, visualization and marketing, Countly is the only solution that will answer all your business KPI questions.

Was this article helpful?
0 out of 0 found this helpful

Looking for help?