AdGyde Logo

User Flow

1. Overview
'User Flow' allows the Application Developer to gauge the movement of its users through the activities defined in the application. By analyzing the user flow Sankey diagram, the App developer can predict how many users moved from one activity to another and how many people dropped from which activity.

Suppose for a Contesting Application the user flow is expected to be as below:
  1. Splash Screen
  2. Home
  3. Contest List Screen
  4. Winner Gallery
Below user flow explains such behavior where users move from one activity to another and number of impressions.

User can even know the number of inflow and outflow of the users with respect to one node. For example, in below image 'Home' node tells the flow from root, SplashScreen and LoginScreen where All in left represent inflow to HomeScreen and All on right represent outflow from HomeScreen.

2. Integration

Normal User Flow: Unity does not support the default Android User Flow lifecycle as it is based on Single Activity. Therefore, User Flow can only be implemented as Custom User Flow in Unity

Custom User Flow: For each screen created in Unity the Screen adding function should be called and when user exits from that screen then screen should be removed from the stack.
AdGyde will be able to create an accurate user Flow and help to improve application only when the Custom User Flow is implemented in proper manner

To add a screen in User Flow, execute the setCurrentScreen function
AdgydeManager.SharedInstance.setCurrentScreen(String ScreenName);

To remove a screen from User Flow, execute the removeCurrentScreen function
AdgydeManager.SharedInstance.removeCurrentScreen(String ScreenName);

Below is the sample code for the Custom Flow which can create the User Flow of the application

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Sample_UI_Class : MonoBehaviour {
private static Sample_UI_Class _instance = null;

public static Sample_UI_Class SharedInstance {
get {
// if the instance hasn’t been assigned then search for it
if (_instance == null) {
_instance = GameObject.FindObjectOfType(typeof(Sample_UI_Class)) as Sample_UI_Class;

return _instance;

void Awake(){
// Set Current Screen to Stack

void OnApplicationQuit(){
// Remove Current Screen from Stack

void showNextScreen(String NewScreen){
// Set Current Screen to Stack

void showPreviousScreen(String NewScreen, String OldScreen){
// Remove Current Screen from Stack

This website uses cookies in order to improve your experience and our services. By continuing to use our website, agree to the use of such cookies. Click here for Privacy Policy.