📊 Analytics Dashboard
Track user behaviour and content performance through real time insights and filters.
In today's digital landscape, data is the key to understanding user behaviour, optimizing content, and making informed decisions. At tchop, we bring you a robust analytics feature that tracks and collects valuable data about user activity within our web and mobile apps. By leveraging both our backend and firebase sdk, we provide insightful metrics that help organizations refine their content strategy and boost engagement.
Overview
Our analytics dashboard is designed to provide clear, actionable insights through interactive charts. The data is categorized into three primary sections:
Content – Insights on published content and user interactions.
User – Metrics related to user activity and behaviour.
Other – Additional key data points relevant to your organization.
Powerful filters
To ensure you get the most relevant insights, our analytics feature includes multiple filtering options:
Universal filter
Time period: View data within a selected timeframe, applicable to all three sections.
Content-specific filters
Channels: Analyse data based on specific content channels.
Categories: Focus on content created within a particular organizational category or template based cards.
Visible and hidden tags: Filter content analytics using organization-level tags.
Key charts and insights
Our dashboard presents an array of charts that break down content performance and user engagement in an easy-to-understand format. Here’s what you can track:
Content and engagement

This section provides an overview of content activity using key performance indicators:
Number of posts published: Track the volume of published content over time.
Content views: Measure how many times all content types were viewed.
Reactions count: Analyse user engagement through reactions.
Comments count: Gain insights into user discussions and feedback.
Shares count: Understand how often content is shared.
Notifications sent: Evaluate the impact of notifications on user engagement.
Content with interaction(s)

Go deeper into user interactions across different content formats:
Overall interactions: The total engagement across all content.
Total published posts: Total published posts during the specified period of time.
Total engaged posts: Total engaged posts out of the published posts during the specified period of time - meaning that the post has at least one of the following:
Reaction
Commented/replied
Liked comment/reply
Shared or forward
Interaction %: = engaged/total * 100
Breakdown by content type
Text card interactions: Engagement on text-based posts.
Total published: Total published text cards during the specified period of time.
Total engagement: Total engaged text cards out of the published text cards.
Interaction %: = engaged/total * 100
Image card interactions: User interactions with image-based content.
Total published: Total published image cards during the specified period of time.
Total engagement: Total engaged image cards out of the published image cards.
Interaction %: = engaged/total * 100
Video card interactions: Metrics on video views and engagement.
Total published: Total published video cards during the specified period of time.
Total engagement: Total engaged video cards out of the published video cards.
Interaction %: = engaged/total * 100
PDF card interactions: Insights on document-based content.
Total published: Total published PDF cards during the specified period of time.
Total engagement: Total engaged PDF cards out of the published PDF cards.
Interaction %: = engaged/total * 100
Audio card interactions: Engagement levels on audio posts.
Total published: Total published audio cards during the specified period of time.
Total engagement: Total engaged audio cards out of the published audio cards.
Interaction %: = engaged/total * 100
Post card interactions: Interactions with standard posts.
Total published: Total published post cards during the specified period of time.
Total engagement: Total engaged post cards out of the published post cards.
Interaction %: = engaged/total * 100
Article card interactions: Data on long-form content engagement.
Total published: Total published article cards during the specified period of time.
Total engagement: Total engaged article cards out of the published article cards.
Interaction %: = engaged/total * 100
Social card interactions: Insights into social media-related content.
Total published: Total published social cards during the specified period of time.
Total engagement: Total engaged social cards out of the published social cards.
Interaction %: = engaged/total * 100
Thread card interactions: Engagement on threaded discussions.
Total published: Total published thread cards during the specified period of time.
Total engagement: Total engaged thread cards out of the published thread cards.
Interaction %: = engaged/total * 100
Top 5 charts
Top 5 cards:
Highlights the most impactful cards based on views, engagement, positive feedback, and negative feedback, offering a concise overview of content performance.

Top 5 comments:
Highlights the top five most engaging or popular comments based on the number of likes received on the comment or reply.

Channel analytics

Track the performance of different channels within your organization. Key insights include:
Total number of posts published in a channel during the selected period.
Number of times a channel was viewed.
Number of times users reacted to content within a channel.
Number of comments and replies posted in the channel.
Number of likes received on comments within the channel.
Number of times content from the channel was shared or forwarded.
A new visit to a channel is considered when a user switches channels or enters a previously opened channel with a new session.
Content

This section provides insights into how different content types perform within the app. The key metrics tracked include:
Number of times a user opened the content during the selected period.
Number of reactions on the content, including a breakdown of different reaction types.
Number of comments and replies received by the content.
Likes on comments associated with the content.
Number of times the media file inside the content was played or opened.
Total play duration and average duration of media content.
Push count: The number of times the content was linked to a push notification.
Number of times the content was shared or forwarded during the selected period.
Mix analytics
A mix is a section within tchop, which you can can consider as a separate feed, that can include all kind of content. It's often used to structure content the way you see typical sections on news pages like "Sports" or "Politics". But mixes can also be used for any other kind of structure or grouping.
Mixes in tchop are dynamic and can be easily controlled, opened or closed, published, unpublished or deleted in the editorial backend.

Get insights into user engagement with Mixes. This section includes:
The number of times a mix was opened during the selected period.
The average time users spent on a mix via the mobile or web app.
Mix title and the associated channel where the mix was created.
The average time spent on a mix is calculated as total duration divided by total views.
Push notification analytics

Analyse the effectiveness of push notifications sent to users. Insights include:
Total number of push notifications sent during the selected period.
Total opens, average sent, and average opened rates.
The reach of individual push notifications.
Number of times a push notification was opened.
In-app notification analytics

Measure the impact of in-app notifications with key data points:
Total number of in-app notifications sent during the selected period.
Total opens, average sent, and average opened rates.
The reach of individual in-app notifications.
Number of times an in-app notification was opened.
Active vs. engaged users in tchop analytics

Understanding user behaviour is crucial for optimizing engagement and content strategy. The active vs. engaged users chart in tchop analytics provides insights into how many users were active and how many were engaged across different platforms within a specified time period.
Key insights
Number of active users during the selected period.
Number of engaged users during the selected period.
Active users
Active users are those who have opened the app (mobile or web) at least once during the set time period. If your app allows free access without login, you can enable tracking for active vs. engaged demo users as well.
Engaged users
Engaged users are those who have performed at least one of the following activities in the web app or mobile app:
Commenting on a post
Replying to a comment
Liking a comment
Reacting to a post
Sharing a post (clicking on the share button)
Forwarding a post into a chat (clicking on the forward button)
👉🏼 If your app allows free access without login, you can enable tracking for active vs. engaged demo users as well.
User funnel for logged-in users

This chart illustrates the user journey in a structured funnel, showing how users progress through different engagement stages. There are three possible versions of the user funnel:
Total users can be defined as:
The total number of users added to the organization to date.
The total number of users added to the organization during the selected time period (in this case, registered users would be the same as total users).
A fixed number defined via configuration.
Registered users – The number of users who have completed the registration process.
Active users – Out of the registered users, this metric shows those who have opened the app at least once.
Engaged users – Out of the active users, this metric tracks those who have performed at least one engagement activity during the selected time period, such as:
Reacting to a card
Commenting or replying
Liking a comment or reply
Sharing or forwarding content from the apps
Additionally, if your app allows free access without requiring a login, you can enable a user funnel chart for demo users as well.
By analysing these metrics, organizations can better understand user behaviour and take data-driven actions to enhance engagement and retention.
User interaction

This chart breaks down the various kinds of user engagement, tracking the number of users who have posted content or reacted, commented, liked comments, or shared content. Key details include:
Total number of reactions on cards during the selected period.
Total number of comments/replies on cards during the selected period.
Total number of likes on comments/replies during the selected period.
Total number of shares/forwards on cards during the selected period.
User roles

This chart shows how content from different user roles performs. It includes data on the amount of content published, the total number of views received, average views per post, total engagement (likes, comments, likes on comments, and shares), and the average engagement on the cards created by each user role during the selected period.
Session duration

This chart tracks the total and average time per session that users spent in the apps within the given time period.
Total session duration is the sum of all session durations from Android, iOS, and Web Apps per day.
Average session duration is calculated as total session duration per day divided by the total number of session IDs per day.
Platform-specific engagement:
Android: Average session duration per day for Android users.
iOS: Average session duration per day for iOS users.
Web App: Average session duration per day for Web users.
Total average session duration across all platforms is calculated as the sum of all session durations divided by the total session IDs of the selected period.
Session per day

This chart tracks the total number of sessions per day during the specified time period across all platforms.
Session by day of week

This chart visualizes the number of sessions that occurred on each day of the week during the selected time period. The week starts from Monday.
Session by hour of day

This chart tracks the number of sessions that occurred during each hour of the day over the selected time period across all platforms.
Active users per month

This chart displays the number of unique active users for different platforms on a monthly basis. A user can be active on multiple platforms, so the total number of active users may be the same or lower than the sum of active users across Android, iOS, and the web app. The data includes:
Total unique active users across all platforms.
Unique active users on mobile (Android and iOS combined).
Unique active users on the web app.
Unique active users on both mobile and web within a given month.
Login Logout

Count of users who logged in or out during the specified days across Android, iOS, and Web App.
Install/Uninstall

Count of users who installed or uninstalled the app on specific days.
This section tracks the number of users who installed or uninstalled the app on specific days. The data includes:
Total installs and uninstalls during the selected period.
Android installs and uninstalls tracked separately.
iOS installs and uninstalls tracked separately.
Data tracking sources

tchop tracks data through various sources. The majority of the data is tracked on the backend, but some data points, such as views, are tracked on the app or web app side. The chart below outlines the different sources of information.
Glossary of tracked data
Backend
Entity | Parameter | Description |
---|---|---|
Org. | Org. ID | It is an unique alpha-numeric ID that defines an organisation. An App and Web App is always created at org. level |
Channel | Org. ID | A channel can belong to 1 organisation only. |
Channel ID | It is unique number that defines the channel. | |
Channel Name | It is the name of the channel > it can be changed | |
Mix | Channel ID | A Mix can belong to 1 channel only. |
Mix ID | It is unique number that defines the Mix. | |
Mix Title | It is the name of the Mix > it can be changed | |
Publish time stamp | It defines when the mix was published. User can un-publish the Mix which sets the publish time of the mix to “null”. | |
Cards/Posts | Mix ID | A card always belong to Mixes. In read only case, same card can belong to multiple mixes but for rest of the cases, a card always belong to 1 mix |
Card ID | It is unique id that is assigned to each card | |
Card Title | Title of the content. The following will be shown here as Title: - Text / Image/ Audio/ Video/ PDF: Headline - Article/Post: Title - Social: Content - Thread: Thread title If the mentioned field is empty: Please use the card type as mentioned below! | |
Card type | It is the card type. tchop has 9 cards types: - Text, image, video, audio, pdf, post, article, social, thread. | |
Publish time stamp | It defines when the card was published. User can un-publish the card which sets the publish time of the card to “null”. Note that even if the card is published, it can only be counted as published card if the mix is also published where the card belongs. | |
Push sent (Yes/No) | If the card was deeplinked to push notification | |
Notification | Org. ID | A notification is assigned to org. only when the notification is triggered at org. level |
Channel ID | If the notification is sent at channel level > it is assigned to channel. If the notification is sent at org. level, channel ID will be null If the channel ID is null > we should show the notification only once irrespective of which channel filter is applied. | |
Notification ID | It is the unique id that is assigned to the notification | |
Notification Title | It is the title of the notification - mandatory field | |
Notification Description | It is the description of the notification - mandatory field | |
Notification Type | It is the notification type > In-App or Push | |
Delivery time stamp | It is the delivery or published time of the notification. Once delivered, notification can only be deleted but cannot be unpublished. | |
Reaction | Card ID | A reaction always belong to a card |
Reaction ID | It is the unique id that is assigned to each reaction | |
Reaction Type | it defines the type of reaction: Like, Love, Haha, Wow, Sad, Angry | |
Publish time stamp | It defines when the reaction was published. User can also remove the reaction > in that case, reaction should be marked as “-1”. | |
Platform type | It defines from which platform the reaction was sent > Android, iOS and Web App | |
User ID (#) | It defines the user id (#) of the user who posted the reaction. Use this lib to hash user ids: https://www.npmjs.com/package/uuid-by-string | |
Comment | Card ID | A comment always belong to a card |
Comment ID | It is the unique id that is assigned to each comment | |
Publish time stamp | It defines when the comment was published. User can also delete the comment > in that case, comment should be marked as “-1”. | |
Platform type | It defines from which platform the reaction was sent > Android, iOS and Web App. User can also post comment from backend > we should include the comment from backend in total count but ignore it in the count when user filter based on platform | |
User ID (#) | It defines the user id (#) of the user who posted the comment | |
Reply on comment | Comment ID | A reply on comment always belong to a comment |
Reply ID | It is the unique id that is assigned to each replies | |
Publish time stamp | It defines when the reply was published. User can also delete the reply > in that case, reply should be marked as “-1”. | |
Platform type | It defines from which platform the reaction was sent > Android, iOS and Web App. User can also post reply from backend > we should include the reply from backend in total count but ignore it in the count when user filter based on platform | |
User ID (#) | It defines the user id (#) of the user who posted the reply | |
Like on comment | Comment ID | A like on comment can belong to a comment |
Reply ID | A like can also belong to a reply | |
Like ID | It is the unique id that is assigned to each likes | |
Publish time stamp | It defines when the like was published. User can also delete the reply > in that case, reply should be marked as “-1”. | |
Platform type | It defines from which platform the reaction was sent > Android, iOS and Web App. User can also post reply from backend > we should include the reply from backend in total count but ignore it in the count when user filter based on platform | |
User ID (#) | It defines the user id (#) of the user who posted the reply | |
User | Channel ID | Each user belong to 1 or more channel |
User ID (#) | It is a unique ID that is assigned to each user on tchop DB | |
User added time stamp | Date and time when the user was added to tchop DB | |
User registered time stamp | Date and time when the user was registered or was first active | |
User Session | User ID (#) | Each Session ID belongs to a single user |
Session ID | It is the unique ID that is assigned to each session. A session is triggered when a user id requests new API request after a break of 30 mins | |
Session time stamp | Date and time when the session was triggered | |
Platform type | Tells if the session was triggered from Android, iOS or WebApp | |
Session location | Location of the session from where it was triggered | |
User login/logout | User ID (#) | Login and Logout ID belongs to a single user |
Login ID | A unique ID that is assigned when the user login. A login ID is triggered every time a user id requests a login request | |
Login time stamp | Date and time when the login was requested | |
Platform type | Tells if the login/logout request was triggered from Android, iOS or WebApp | |
Logout ID | A unique ID that is assigned when the user logout. A logout ID is triggered every time a user id requests a logout request | |
Logout time stamp | Date and time when the logout was requested |
Mobile App
Entity | Parameter | Description |
---|---|---|
Card Views | Card ID | Each view belongs to a card ID (need to map data from backend) |
View ID | It is unique identifier for each view request. A view ID is request when a user performs the following activity in mobile: - When the detail view/web view of card is opened (text, image, gallery, video, audio, pdf, Article, Post, Social) from anywhere in the App (news feed, horizontal module, mix 1 feed, mix 2 feed, pinned mix, chat, notification) - When a media file is opened or played (Image, Gallery, PDF, Audio, Video) from anywhere in the app - When comment screen is opened (Thread) from anywhere in the app | |
View timestamp | Date and time when the view was triggered | |
Platform type | Tells from which platform the view was triggered > Android or iOS | |
Card Shares | Card ID | Each share belongs to a single card ID (need to map data from backend) |
Share ID | It is unique identifier for each share request. A share ID is triggered when the user click on the “Share” button available on each card from anywhere in the App. Share is an option which is used to share card via native sharing extension in third party apps like telegram, whatsapp etc. | |
Share timestamp | Date and time when the share was triggered | |
Platform type | Tells from which platform the share was triggered > Android or iOS | |
User ID (#) | Each share is triggered by a user ID (need to map data from backend) | |
Card Forward | Card ID | Each forward belongs to a single card ID (need to map data from backend) |
Forward ID | It is unique identifier for each forward request. A forward ID is triggered when the user click on the “forward” button available on each card from anywhere in the App when the App has chat available. Forward is the function used to forward cards into chat. | |
Forward timestamp | Date and time when the forward request was triggered | |
Platform type | Tells from which platform the share was triggered > Android or iOS | |
User ID (#) | Each share is triggered by a user ID (need to map data from backend) | |
Notification Views | Notification ID | Each notification view belongs to a notification ID (need to map data from backend) |
View ID | It is unique identifier for each view request. A notification view is triggered when: Push notification: - user has opened the notification from push from outside the app - user has opened the notification from notification screen from inside the app In-App message: - user has clicked “X” in the In-App message - user has clicked on the button in the In-App message Note: Comment notification should not be counted here.. It is only about push notification and In-App message that is manually triggered from our backend | |
View time stamp | Date and time when the view was triggered | |
Platform type | Tells from which platform the view was triggered > Android or iOS | |
Engagement | Channel ID | Each session belongs to the channel (Need it to map data from backend) - we don’t need to link session here to users |
Session ID | It is unique identifier for each session request. A session ID is triggered when the user cold start the app / start the app from scratch. | |
Session timestamp | Date and time when the session was triggered | |
Session duration | Total duration of the current session - it tells the total duration of session from start to end | |
Platform type | Tells from which platform the session was triggered > Android or iOS | |
Install/Uninstall | Org. ID | Each install/uninstall request is at org. level/App level (need to map data from backend) |
Install ID | It is unique identifier assigned to each install request. | |
Install time stamp | Date and time of install request | |
Un-Install ID | It is unique identifier assigned to each uninstall request. | |
Un-Install time stamp | Date and time of uninstall request | |
Platform type | Tells from which platform the install/uninstall request was triggered > Android or iOS | |
Channel Views | Channel ID | Each channel views belong to a single channel (need to map data from backend) |
View ID | It is unique id assigned to a view request. A channel view is triggered when: - A user switch a channel inside the app - A user start a new session > +1 gets added to the channel that was last opened by the user in the app | |
View time stamp | Date and time of view request | |
Platform type | Tells from which platform the channel view request was triggered > Android or iOS | |
Mix Views | Mix ID | Each mix views belong to a single mix (need to map data from backend) |
View ID | It is unique id assigned to a view request. A mix view is triggered when user open the mix feed from: - Horizontal mix module - Mix 1 tab - Mix 2 tab - Pinned mix (when user click on pinned mix > it is counted as 1 view) | |
View time stamp | Date and time of view request | |
Platform type | Tells from which platform the mix view request was triggered > Android or iOS | |
View duration | Total duration of the view. It tells how long the user spend inside the mix feed since the view is triggered |
Web App
Entity | Parameter | Description |
---|---|---|
Card Views | Card ID | Each view belongs to a card ID (need to map data from backend) |
View ID | It is unique identifier for each view request. A view ID is request when a user performs the following activity in web apps: - When the detail view/web view/modal view of card is opened (text, image, gallery, video, audio, pdf, Article, Post, Social, Thread) from anywhere in the App (news feed, horizontal module, mix 1 feed, mix 2 feed, pinned mix, chat, notification, left side module, right side module, header links, settings screen, footer links) - When a media file is opened or played (Image, Gallery, PDF, Audio, Video) from anywhere in the web app - When comment screen is opened (Thread) from anywhere in the web app | |
View timestamp | Date and time when the view was triggered | |
Card Shares | Card ID | Each share belongs to a single card ID (need to map data from backend) |
Share ID | It is unique identifier for each share request. A share ID is triggered when the user click on the “Copy link” button available on each card via Share option from anywhere in the Web App. | |
Share timestamp | Date and time when the share was triggered | |
User ID (#) | Each share is triggered by a user ID (need to map data from backend) | |
Card Forward | Card ID | Each forward belongs to a single card ID (need to map data from backend) |
Forward ID | It is unique identifier for each forward request. A forward ID is triggered when the user click on the “forward” button available on each card from anywhere in the web app when the web app has chat available. Forward is the function used to forward cards into chat. | |
Forward timestamp | Date and time when the forward request was triggered | |
User ID (#) | Each share is triggered by a user ID (need to map data from backend) | |
Notification Views | Notification ID | Each notification view belongs to a notification ID (need to map data from backend) |
View ID | It is unique identifier for each view request. A notification view is triggered when: Push notification: - user has opened the notification from push notification - user has opened the notification from notification screen from inside the webapp In-App message: - user has clicked “X” in the In-App message - user has clicked on the button in the In-App message Note: Comment notification should not be counted here.. It is only about push notification and In-App message that is manually triggered from our backend | |
View time stamp | Date and time when the view was triggered | |
Engagement | Channel ID | Each session belongs to the channel (Need it to map data from backend) - we don’t need to link session here to users |
Session ID | It is unique identifier for each session request. A session ID is triggered when the user refresh the browser or open the web app in a new browser | |
Session timestamp | Date and time when the session was triggered | |
Session duration | Total duration of the current session - it tells the total duration of session from start to end | |
Channel Views | Channel ID | Each channel views belong to a single channel (need to map data from backend) |
View ID | It is unique id assigned to a view request. A channel view is triggered when: - A user switch a channel inside the web app - A user start a new session > +1 gets added to the channel that was last opened by the user in the web app | |
View time stamp | Date and time of view request | |
Mix Views | Mix ID | Each mix views belong to a single mix (need to map data from backend) |
View ID | It is unique id assigned to a view request. A mix view is triggered when user open the mix feed from: - Horizontal mix module - Mix 1 tab - Mix 2 tab - Pinned mix (when user click on pinned mix > it is counted as 1 view) - A user switch a mix inside the right side module - A user start a new session > +1 gets added to the mix view that was last opened by the user in the right side module | |
View time stamp | Date and time of view request | |
View duration | Total duration of the view. It tells how long the user spend inside the mix feed since the view is triggered |
Why use tchop analytics?
Our powerful analytics tools help organizations:
Understand content performance and user behaviour.
Optimize content strategy based on real-time data.
Enhance engagement by tailoring content to audience preferences.
Make data-driven decisions to improve retention and reach.
With tchop analytics, you get the clarity you need to create impactful content and engage your audience effectively. Start leveraging data today and take your content strategy to the next level!
Ready to explore your analytics? Log in to your tchop dashboard and dive into the insights now!