Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Funnel Examples

Discussion in 'Unity Analytics' started by mpinol, Nov 4, 2015.

  1. mpinol

    mpinol

    Joined:
    Jul 29, 2015
    Posts:
    317
    Hello!

    I am going to be adding some example funnel usages/implementations here that I will keep sporadically updating. Let me know if they are helpful, confusing, or need more elaboration! If you have any of your own implementations that you think might help some other users please feel free to post them as well!


    Funnel Usage Example:

    You want to track how many players make it through each level of your game but also want to find out what the average number of moves made, times restarted, time spent, times died, or points obtained for the players on that any particular level.

    Why is this useful:
    • Help determine why players cannot make it to the next step in a funnel

    • Compare averages from other levels to ensure your game progresses in difficulty appropriately
    Create a custom event that sends two parameters:
    • Level number complete
    and the metric that you are interested in finding the players average,
    • Number of Moves, Times Restarted, Playing Time, Number of Deaths, or Points.

    Then create a funnel where each funnel step is populated by the custom event, the step is determined by level number




    You would then be able to view the average number of moves made, times restarted, time spent, times died, or points per level on the Funnel Analyzer page by setting the Drilldown Type to Parameters Overview, selecting any particular step in the funnel, and the segment of users. Please note, this will only display the average of numerical parameters!






    This type of funnel setup is useful for any series of related sequentially occurring events such as,

    - Tracking at what point on a particular level do players have difficulty passing
    • Tutorial Start -> Enter Castle -> Fight Boss -> Find Key -> Open Gate to Level One
    - At what user level do players stop playing
    • User Level 1 -> User Level 2 -> User Level 3
    You could also alter this example to check something like the average amount of health before boss battles or level completions.
     
    Saandji and sschan like this.
  2. jeffkenz

    jeffkenz

    Joined:
    Apr 8, 2013
    Posts:
    22
    can u give more detail example code with result in unity analytics?
    is this the right code to track level

    string boxLevelTemp = boxLevel.ToString("00");
    string LevelTemp = level.ToString("00");

    Analytics.CustomEvent("levelComplete_Box_" + boxLevelTemp + "_Level_" + LevelTemp, new Dictionary<string, object>
    {
    {"BoxLevel_"+boxLevelTemp,boxLevel },
    {"Level_"+LevelTemp,level },
    {"TotalLevelDeath",totalLevelDeath},
    {"TotalLevelMove",totalLevelMove },
    {"BestMove",bestMove }
    });

    result will be(a lot of custome event)
    levelComplete_Box_00_Level_00,
    (data parameter for level 00)
    levelComplete_Box_00_Level_01,
    (data parameter for level 01)
    etc
    is this the right code?
     
  3. mpinol

    mpinol

    Joined:
    Jul 29, 2015
    Posts:
    317
    Hi @jeffkenz,

    Based on the example I posted above I believe you would want to send a Custom Event like,

    Analytics.CustomEvent("Level Start", new Dictionary <string, object> {
    { "levelnumber", 1 },
    { "otherParam1", 0},
    { "otherParam2", 0}
    } );

    This event should cause the player that sent it to fill step 1 of the funnel. To fill step 2 of the funnel all you would have to do is change the value of "levelnumber" to 2. This way you only use one Custom Event configuration/type for all steps of the funnel.
     
    Saandji and jeffkenz like this.
  4. mpinol

    mpinol

    Joined:
    Jul 29, 2015
    Posts:
    317
    Here is another example that also uses Custom Segments. I hope you find this helpful!


    I am about to start setting up the Custom Events for a level in my game and I want to set them up in a way that allows me to track how the changes I make effect the difficulty of my level. I am determining how difficult my level is by following the amount of hit points a player has before and after each boss battle. If I find the average number of hit points is high I might add some more obstacles/make the boss harder or if the average number is low I might remove some obstacles/make the boss easier/add recovery items.

    Since I am using the amount of hit points a player has as an indicator of my level difficulty it is going to be one of the parameters in my Custom Events.

    Each of my levels has two bosses, a mini-boss that is fought at the middle of the level and a level-boss that is fought at the end of the level. So for this I am going to send a total of four Custom Events, two for mini-boss and two for level-boss battles, so I can get an idea of how much health players have at these critical moments in the level.

    So at some point in the script that initializes each fight I am going to add the Custom Event,

    Analytics.CustomEvent(“boss_fight_start", new Dictionary<string, object>{
    {"player_hitpoints", ### } ,
    {"boss_id", NAMEOFBOSS }

    });

    And after the fight has been successfully won,

    Analytics.CustomEvent(“boss_fight_end", new Dictionary<string, object>{
    {"player_hitpoints", ### } ,
    {"boss_id", NAMEOFBOSS }

    });

    In total these four events cost me a total of 8 Analysis Points:
    1 for each event itself
    1 for each player_hitpoints parameter
    2 for each boss_id parameters (This is because I am sending a string of each boss' name and it cost 1 AP for each unique string sent. I have 2 bosses, so it cost 2 points)



    To visualize my data I am going to use a funnel. I want players to enter the funnel once they start a level, and then progress through the funnel as they fight the bosses. Since this is the swamp funnel players will enter step one once they send the 'level_start' event with a 'level_name' that equals 'swamp'. The two bosses on this level are a small_goblin and a beholder, so their boss_id's are set accordingly.



    After the funnel has populated with some data I can see a noticeable drop of players making it to the second first boss battle.

    Screen Shot 2015-12-18 at 11.38.08 AM.png

    Lets check the average amounts of hit points my players have at this critical moment by using the drill down menu on the bottom of the Funnel Analyzer page.

    Screen Shot 2015-12-17 at 12.16.01 PM.png


    Since all of the players that made it to this step began the battle with 100% health this does not really show any useful information. However, my game has three different character classes and I want to know how players in each class are performing in case I need to rebalance them. So I am going to add the parameter ‘class’ to the level_start event which is sent at the start of every level.


    Analytics.CustomEvent(“level_start", new Dictionary<string, object>{

    {"level_name", NAMEOFLEVEL} ,

    {"class", CHARACTERCLASS } });


    Then I will create three separate Custom Segments that fill when the ‘level_start’ event has been sent with the parameter ‘class’ as ‘wizard’, ‘knight’, or ‘rogue’.





    NOTE: players will only belong to a segment for 30 days after they have sent an event with the proper conditions to join that segment. Every time an event with the proper conditions is sent, this 30 day ‘drop out’ timer will be reset. This is the reason why I chose to send the class information in the level_start event and ensure that each of my players does not fall out of their class segment.

    Please keep in mind that segments and funnels only fill with data received after they have been created!

    Now after the segments have been created and started to fill with players, on the Funnel Analyzer page I am going to scroll to the bottom and change the Segment drop down to Custom to view my newly created Custom Segments. At first glance it is very obvious that for some reason players playing as a wizard are not reaching the first boss fight. I now know that this is occurring, but it gives me no insights into why this is occurring.

    Screen Shot 2015-12-18 at 11.38.22 AM.png

    Looking for a possible cause of this drop off I will then change the Drilldown Type to Parameters Overview. Then I will change the Segment drop down to Custom. Now for each funnel step I can see all of the other numerical parameters that were sent with the event that caused a player to enter a funnel step. I can see that for the first boss fight of the level, all of the players in each class had 100 health, including the wizard, which is expected.



    Now looking at the next funnel step, I can see that after that first boss battle players playing as a wizard had dramatically lower health than the other classes so I can starting thinking of some questions/reasons why this might be the case.


    Is this a possible reason why there is such a large drop off in wizard players? Does the wizard take too much damage on this level? What is it about this boss that makes fighting him as the wizard more difficult? What spells does the wizard have at this point? Do the attack spells need to be strengthened? What armor is available for the wizard at this point? How does it compare to the boss’s attack power?



    Looking at the next step I can start to see more of a trend emerging. Players playing as a knight or rogue have significantly higher health than those playing as the wizard. Is the wizard too weak in comparison to the other classes or is this level just really not suited them?

    Finally looking at the wizards’ average health after the final boss fight I am starting to believe that the wizard class needs to be rebalanced to make it more powerful.

    After I rebalance the wizard class I can determine if the changes helped by checking if the wizard class starts showing a higher retention then 33.3% and if their health before and after boss battles on average is higher than it currently is.
     
    Last edited: Dec 18, 2015
    jc-drile77, nicholasr and sschan like this.
  5. ecarter

    ecarter

    Joined:
    Jan 3, 2013
    Posts:
    21
    I am complete new with this, and I don't know if I did something wrong. but my data stop at level 3 and my game have 14 levels, is a puzzle game

    so, if I understand the player must finish level 1 and then finish level 2 and so on in order to register the data?

    what happens if the player finish level 1, then exit the game but later come back and select to start from level 2? from the selection menu, that brake the correct order of the funnel?

    actually in a puzzle game you unlock levels and later the player can choose to play levels again in different in a different order.

    anddd.. is there a way to simulate the funnel locally to check that everything work well and no wait too much time waiting the server to be refresh? thanks
     
    Last edited: May 24, 2016
  6. rayw24

    rayw24

    Joined:
    May 23, 2016
    Posts:
    52
    Hi @ecarter,

    You are correct, a player must finish level 1 and then finish level 2 and etc. in order for the data to register. If a player finishes level 1, exits the game, and then comes back later to finish level 2, the funnel will register correctly as well.

    However, if a player finishes level 1, then level 2, and then jumps to level 6, their progression would still be set at level 2 since the funnel records sequential progression. The funnel will always record the most recent sequential progression of the player.

    You can test whether a funnel is filling correctly by sending all of the events yourself but you will still have to wait for the server to refresh before seeing the new data.

    I think the ability to test funnels locally is a great idea and I encourage you to submit feedback so we can try to implement that feature down the road.

    Also, if you'd like, you're welcome to message me your project ID and I can take a look at your funnel to make sure that it is set up correctly.

    Hope this helps! Feel free to reach out if you have more questions.

    Ray
     
  7. ecarter

    ecarter

    Joined:
    Jan 3, 2013
    Posts:
    21
    so if the funnel register a sequencial progression, can you give me an example of how to analize how many times the player play a level, i want to have a graphics that show me the progresion of the player, but if the funnel stop when the player jump between levels that is not very usefull for me.

    thanks
     
  8. rayw24

    rayw24

    Joined:
    May 23, 2016
    Posts:
    52
    @ecarter, are you trying to track the number of unique users for each level or just the number of times each level is played?

    If you are just trying to track the number of times each level is played, it seems like you're already on the right track. It seems that your Level Start parameter already has two levelnumber parameters, one of which is a string and the other is an int. I would suggest creating another parameter for that CustomEvent of type string but naming it as something other than "levelnumber" because having two parameters with the same name but of different types can cause issues. This new string parameter should allow Data Explorer to generate a line for each level so you can see how many times each level was played by how many times Level Start was triggered for each level.

    If you are trying to track the number of unique users for each level, you would have to create a CustomEvent for each level (Level 1 Start , Level 2 Start , Level 3 Start, etc.) and simply set the parameters for each CustomEvent to be "Unique Users" in Data Explorer on your dashboard.

    Please let me know if this works or if you have any more questions!

    Ray
     
  9. AmobearGame

    AmobearGame

    Joined:
    Mar 31, 2016
    Posts:
    28
    Hi.If I use a num_lose variable to count of time User lose in game and then Funnel have calculate sum of time lose of all Player?
    I mean for example: Player 1 lose 3 times,Player 2 lose 7 times,
    And then Funnel will statistics is 10 lose times.
     
  10. marc_tanenbaum

    marc_tanenbaum

    Unity Technologies

    Joined:
    Oct 22, 2014
    Posts:
    637
    Hi @petvenger,

    You could do that. Strictly speaking, it's not what funnels are for, but it could work. Just note that you're responsible for sending the correct values. I.e., sending "Player Lose" seven times won't get you a value of 7. You'll need to keep track of how many times the player lost, and send that value as a parameter.

    What I think you're really asking for is a histogram. That's a feature we have on our roadmap, but the necessary infrastructure is still a little ways away.

    Hope that helps!
     
    AmobearGame likes this.
  11. erika_d

    erika_d

    Joined:
    Jan 20, 2016
    Posts:
    413
    Hi @petvenger,

    Funnels will help you keep track of how many players have lost how many times, as @marc_tanenbaum said, however they won't give you a total across all the players of how many total losses have happened in your game, if that's what your asking. You could calculate that info though based on the information the funnels give you. Just keep in mind anyone in step 2 is also in step 1, etc, since the intention is to show the dropoff between steps.
     
  12. AmobearGame

    AmobearGame

    Joined:
    Mar 31, 2016
    Posts:
    28
    Hi marc_tanenbau and erika_d.Thanks for the answers.I wanna ask more question.I created a funnel.Document said that It will live from 4-6 hours or 12 hours.But my funnel above 14 hours.It's still processing.Plz help me.Thanks.
     
  13. erika_d

    erika_d

    Joined:
    Jan 20, 2016
    Posts:
    413
    Hi @petvenger,

    A processing cycle takes about 12 hours right now, but depending on when during the current cycle the funnel was set up, it could take as much as 24 hours before data starts showing up in the funnels. If you don't see data after 24 hours, and your sure the event matching the first step in the funnel has been sent at least once, then let me know your project id or fill out a support ticket so we can look into it for you.

    Keep in mind that the funnels are sequential only, meaning that if the events in the funnel can be sent out of order, or skipped it will not show people flowing through the funnel. Particularly if the first event in the funnel is skipped or never sent, no one will show up in the funnel.
     
    AmobearGame likes this.
  14. AmobearGame

    AmobearGame

    Joined:
    Mar 31, 2016
    Posts:
    28
    I think funnels only analyze number of players play each level.If I wanna know how many times each player lose and win each level and then I should custom event and send a int parameter.But I'm wondering if level 1 player lose 5 and then Level 2 Player lose 3 then it had violation rules of funnels?
     
  15. erika_d

    erika_d

    Joined:
    Jan 20, 2016
    Posts:
    413
    Hi @petvenger,

    If you want to track how many people lose a level using funnels, you would need to send the player lose custom event every time they lose and then have the funnel by step1: player lost 1 time; step2: player lost 2 times; etc. To separate this out to how many times they lost each level, the simplest way for readability of the funnel would be to do a player lose funnel for each level. I know you have a lot of levels though so this may not be tenable.

    Also keep in mind that funnels only track sequential events. So if you have a funnel set up with level1, level2, level3. And your user plays level1, level2, level1, level1. The funnel will only show them as having moved through level 1 once and then played level 2, it won't show the full path of play.

    Funnels may not be the best way to track wins and losses as you want. If you send a custom event like level1Lost each time a player loses. Then on data explorer you could look at the average number of times each player has sent the level1lost event. This would give you at least an average of how many times players lose each level, even though it doesn't currently give you the range the way funnels would. But the only set up it requires is sending the custom events you want. It would also work to get the average number of wins per level.
     
    AmobearGame likes this.
  16. AmobearGame

    AmobearGame

    Joined:
    Mar 31, 2016
    Posts:
    28
    Hi @erika_d .My data display on funnels.But I have a little problems want to ask you.
    I created 5 Level with same name custom event is "LevelDemo".Because I think that Funnels limit is 100 custom event then I can't create 200 level custom event with name level1,level2,...level200.Is that right?
    On Data explorer I add custom event and select parameter is num_time_lose then funnels count have all 22 .
    This mean all 5 my level with same name "LevelDemo" have 22 times trigger.So I don't know each level have how many times Player lost.If I create each level custom event with different name then I think it's OK.But funnels only limit 100 custom event.Can you give me a solutions?
    I have attach photo .thanks.:)
    P/S:I have more a question.For example my funnels like this:
    Step 1: Event:Level
    Parameters: Num_Level equals 1, Num_Lose equals false
    Step 2:Event :Level
    Parameters Num_Level equals 2,Num_Lose equals false
    Suppose the first time I play Level 1 and win.This mean Num_Lose=true and It's not done step 1 at parameter Num_Lose=false
    second I play Level 2 and lost.At the moment Num_Lose of step 2=false and it's done.
    So are my steps linear?
    I only need the first parameter(Num_Level) is linear or all? Thanks.
     

    Attached Files:

    Last edited: Jul 30, 2016
  17. AmobearGame

    AmobearGame

    Joined:
    Mar 31, 2016
    Posts:
    28
    Hi @marc_tanenbaum .I created a method as this:
    public static void AnalyzeNumOfTimesPlayerLose(int levelSelect,int numberOfTimeLose)
    {
    numOfPlayerLoseDic["num_level"]=levelSelect;
    numOfPlayerLoseDic["num_lose_time"] = numberOfTimeLose;
    Debug.Log("Level"+numOfPlayerLoseDic["num_level"]+" Lose_time"+numOfPlayerLoseDic["num_lose_time"]);
    Analytics.CustomEvent("LevelDemo", numOfPlayerLoseDic);
    }
    With para levelSelect I passed to it each Level user play.para numberOfTimeLose I passed to count variables(this variables will increase each times user lost. Count++)
    When user lost I call this method
    countLose++;
    AnalyticsManager.AnalyzeNumOfTimesPlayerLose(PlayerPrefs.GetInt(JSFUtils.LEVEL_SELECT),countLose);

    The Question 1:eek:n Data explorer count all how many triggers for all LevelDemo( I have 5 level and I don't know which level be triggered how many times.For example Level 1 play 5 times,Level 2 Play 6 times.)

    The Question 2:I wanna use numberOfTimeLose variable to count all times that user play lost each level.But for each level is numberOfTimeLose variable always equals=1.Although my count variable always increase .

    You can take care question I ask @erika_d ? Because I haven't seen her the answer.Thank you so much.
    Sorry my English.I'm not native english .
     
  18. erika_d

    erika_d

    Joined:
    Jan 20, 2016
    Posts:
    413
    Hi @petvenger,

    It sounds like you're asking a number of questions, so I'm going to try and summarize as I go and let me know if I'm not answering the right question.

    1. Is there a limit to the number of steps allowed in a funnel?
    - I don't believe there is an enforced limit to the number of steps allowed in a funnel. We recommend not putting more than 50 or so steps per funnel, simply because the graphs become difficult to read much beyond that. It's entirely up to you though. So yes, if you really wanted to, you could make a funnel that has 200 steps, 1 for each level sent in your "LevelDemo" event. There is also no limit to how many different custom events that can be used in a funnel overall, the only limit is that it's 1 custom event per step.

    2. Is there a limit to the number of values (in this case levels) that can be sent to a single custom event parameter?
    - No. You can send as many values as you want in an event, with the caveat that string values cost analysis points. You can read more about that limit here: http://forum-old.unity3d.com/threads/new-custom-event-limits-please-read.315594/ (I see now that you're sending levelnum as an int, which won't use up your analysis points, but you may not want to send it as in int, which I talk about further down, #6)

    3. When sending event LevelDemo, with parameter LevelNum and numLoseTime, can you filter numLoseTime based on LevelNum in the Data Explorer?
    - No, this isn't possible right now. During processing of your data we aggregate the values and just report totals/averages. Meaning in the Data Explorer, you can see total number of losses, and you can see the num_level you've sent, but you cant cross-reference them to see for num_level="level1" what is the average for num_lose_time. If you have Raw Data Export available on your app, you could use that to do those kind of calculations yourself. To get this info on the dashboard, as you said, you would need to create a separate custom event for each level, and then you could send num_lose_time as a parameter on each level event.

    5. How do users flow through funnels? (i.e. under what conditions does a user complete a step)
    - A user is only counted as completing a step in the funnel if they have met all conditions of the step. In your example that means they would have to meet both the numLevel and numLose conditions. If they only meet one of those conditions the step is not counted as complete. So in your example the user would not fall into the funnel because they wouldn't be counted as completing step 1, and even though they sent the correct values for step 2, they would not be counted there since they have to first complete step 1.

    6. (Question 1 in your second post) How do you see counts for each level that has been played.
    - To see counts of different values sent as parameters to an event, you need to send them as either Strings or Booleans. So instead of sending levelNum as an int, you want to send it as a string, like "level1" (it must start with a non-numeric character otherwise it will be parsed as a number no matter what you say it is). On Data Explorer when you send string values you can see a pie chart of the distribution of values, as well as get counts for each value.

    7. (Question 2 from second post) Want to track the number of times users lose each level.
    - As mentioned in #3, to track the number of times people have lost each level, you will probably need a different custom event per level, or Raw Data. I don't know why you're only getting 1's. Is this what the debug log in your example code says as well? Or does the debug log print the correct number and then in data explorer you don't see that? In Data Explorer you're not seeing raw numbers so it's possible the average of the values you sent is 1...?
    - I would also suggest that maybe you don't want to send an increasing count value each time to see how many times a player lost. If I understand what you're trying to do correctly, this would result in sending the values 1, 2, 3, & 4 for num times a player lost if they lost 4 times. Our Data Explorer would then show you the average of these numbers (2.5), the sum (10), and the count of times the event was sent (4). Which would not be particularly useful information for you. If this is how you want to do it, you would have to create a funnel with a level1Lost custom event and each step is user lost < 1, user lost < 2, user lost < 3, etc. This would then show users filling the funnels each time they lose. You would need to create a funnel for each level in this case. The other option is just send an event "level1Lost" each time someone loses level 1, then look at the count to see how many times that event has been sent and average to see the average number of times that event is sent per player.

    I hope these answer your questions!
     
    AmobearGame likes this.
  19. AmobearGame

    AmobearGame

    Joined:
    Mar 31, 2016
    Posts:
    28
    Hi @erika_d .I think I've got your answer.But the answer #5 and #7 I think that I can't combine 2 value win-lose in single custom event?
    The your answer #7 .You said that use "level1Lost" event to count how many times lose.Then I think that I can't force user follow all steps linear.
    Because when play game user can win or lose each level.If user play level 1 is win then of course "level1Lost" don't call.
    and If user play level 2 is lost then my steps is not linear.And finally I can't call "level1Lost" as I want.
     
  20. erika_d

    erika_d

    Joined:
    Jan 20, 2016
    Posts:
    413
    Hi @petvenger,

    You can combine win lose in a single event, but not a single funnel step - two very different things. A custom event you can send whatever you want in. But a funnel step must be fulfilled by a single event sent 1 time - a user would have to simultaneously win and lose, which they can't do.

    It's true that you would not use level1Lost in a funnel to track path through levels. You could use a levelEnd event to track that, which is sent whether or not they win or lose. But to see how many times won vs how many times lost, you probably shouldn't use a funnel anyways.
     
    AmobearGame likes this.
  21. Lad-Ty

    Lad-Ty

    Joined:
    May 7, 2013
    Posts:
    60
    May I ask here, is it possible to filter funnels by app version? For example when you create a tutorial, where 1 step is problematic for players to pass... Than you improve that part in the next version with some visual aid etc, how can you find out how this helped for example?
     
  22. rayw24

    rayw24

    Joined:
    May 23, 2016
    Posts:
    52
    @Lad-Ty As of right now, we do not have the ability to filter funnels by app version. However, we are working on revamping funnels to make them more useful and versatile. We currently have a feedback topic regarding selectable date ranges for funnels. Could you please vote on this and add a comment regarding filtering by app version? We often look at this when debating what features to implement next.

    I will also make a note of this and bring it up with our engineers.

    Thanks!
     
  23. SyntaxSpeedway

    SyntaxSpeedway

    Joined:
    Sep 9, 2015
    Posts:
    3
    Hi, I'm setting up a funnel to see how many players are completing a stage after starting it, using the events "SessionStarted" for step 1 and "PlayerWon" for step 2. I'm just wondering if the player dying and hitting a "PlayerDied" event that is not part of the funnel will stop the player from hitting step 2, or are funnels not affected by events that aren't tracked by them?
     
  24. ap-unity

    ap-unity

    Unity Technologies

    Joined:
    Aug 3, 2016
    Posts:
    1,519
    Hi @lbyrd2,

    Funnels are not affected by events that aren't tracked in that funnel. Once we receive a SessionStarted event from a user, they are added to Step 1 of the funnel and they stay there until we get a PlayerWon event from that same user.
     
    SyntaxSpeedway likes this.
  25. Newskid

    Newskid

    Joined:
    Jun 16, 2016
    Posts:
    4
    Hi,
    I´ve just started using Unity Analytics and I was wondering if funnels will be useful for our game.
    In in each level of our game there are different interactions, but we don´t have an specific order for this interactions, so the user can choose the one he would like to start. I send custom events when the user starts and finishes each one of this interactions but I would like to track the average time that they spent in each of this interactions.

    For example, I was thinking of creating a funnel like this:

    Step 1: OpenMission (it´s an event when the user starts a level)
    Step 2: StartQuestions (one type of interactions)
    Step 3: FinishQuestions


    If I do it this way, I have to create different funnels for each interaction?? And if I want to track the average time on each mission (level) this would be another funnel, something like this:

    Step 1: OpenMission { parameter = mission_id}
    Step 2: CloseMission {parameter = mission_id}

    I don´t know if in this case I have to send the parameter to then see average time on each mission and if this means creating different funnels for each mission or if only configuring Step 1 and Step 2 with out parameters it´s enough to track the average time.

    Thanks a lot!

    Flor
     
  26. ap-unity

    ap-unity

    Unity Technologies

    Joined:
    Aug 3, 2016
    Posts:
    1,519
    @Newskid,

    I don't think funnels would be the best tool for you in this case. Funnels would allow you to track the number of users that enter each interaction and how many of them finish (which may be information you want to track), but they won't give you any information about the average time they spent.

    I think all you really need is to track the time spent in your game, and send that value in a custom event at the end of the transaction.

    Code (CSharp):
    1. // Variables
    2. // interaction = the current interaction id
    3. // timeSpent = the numeric value of time spent (seconds, minutes, or whatever)
    4. Analytics.CustomEvent("StartQuestion"+interaction, new Dictionary<string, object>{
    5.     {time_spent, timeSpent}
    6. });
    Note the name of the custom event. You will likely want to send an event per interaction. This may not be advisable if you have a large number of interactions because each one will cost you some Analysis Points. You can read more about Analysis Points and Custom Event limits here:
    http://forum.unity3d.com/threads/new-custom-event-limits-please-read.315594/

    In your dashboard, you will then be able to have a Custom Event for each interaction or mission, and we will calculate the average time spent on each one, which you can see graphed over time.
     
    Newskid and erika_d like this.
  27. Flor_s

    Flor_s

    Joined:
    Dec 1, 2016
    Posts:
    1
    Thanks for the answer! Now I have more clear the concepts.
    Which one will be the solution if I have a variable number of interactions in order to reduce the number of points I use??




     
  28. GloriaVictis

    GloriaVictis

    Joined:
    Sep 1, 2016
    Posts:
    133
    Hello,

    I have a questions, are funnels session or user based?

    I would like to know if creating a funnel of user leveling up and knowing that, for example 50% of players reached level 50 means those were only the people who started at level 1 (as my funnel starts at level 1) and leveled up to 50 level in one session - or this system stores a data per user and it could be a level up happened in for example, a week.
     
  29. marc_tanenbaum

    marc_tanenbaum

    Unity Technologies

    Joined:
    Oct 22, 2014
    Posts:
    637
    Funnels are user based. If the player completes the funnel several days later, we still count that.

    Hope that helps!
     
  30. Trivium_Dev

    Trivium_Dev

    Joined:
    Aug 1, 2017
    Posts:
    78
    Hello,

    I have a question about funnels. I work for a interactive development company and we create interactives for museums, welcome centers, etc, that are generally only have one to maybe max of 10 installations. Visitors can use these interactives without providing any personal information or anything. I'd like to setup funnels to see how many visitors move through the interactives and where they may stop, however funnels only allow each user to complete each step once, which means I'd only see the first visitor ever complete steps within a funnel. Is there a way to "reset" the user so that when I send the events for the funnel, the funnel thinks a different user is sending the events?

    Thanks!
     
  31. ap-unity

    ap-unity

    Unity Technologies

    Joined:
    Aug 3, 2016
    Posts:
    1,519
    @Trivium_Dev,

    Currently there is no way to reset the user id for the Analytics system.
     
  32. Paltr

    Paltr

    Joined:
    Jun 19, 2017
    Posts:
    1
    Hi!
    How to separate data of different versions of application?
    For example I don't interest in old application's version funnel, I want see only new app's data. How to configure funnel in such a way?
    Or, for example, how to setup the funnel to show only the data for specific time range?
     
  33. gesonriovox

    gesonriovox

    Joined:
    Jan 13, 2017
    Posts:
    2
    @AP-unity,
    Hi I have a question. why the funnel does not match the custom event.
    For example, according to custom event, 100 people pass step1, then according to funnel it is 80 or 120 people.
    if 80, i guess 20 people may old users, so do not count.
    but 120 mean what?
    Can you help me to check our events in project? Thanks very much!
     
  34. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    @gesonriovox Can you clarify your question? You mention, "according to funnel it is 80 or 120 people". Are you seeing 2 separate values in the Dashboard? Keep in mind, we only process those events that are received AFTER the funnel is created. After you create your funnel, and 100 people then pass step 1 (and send the appropriate Custom Event), then 100 members should show in your funnel.
     
  35. djarcas

    djarcas

    Joined:
    Nov 15, 2012
    Posts:
    245
    I've got a funnel setup, but for some reason, the Save button is greyed out - any clues as to why this is?

    Edit : Recreated the funnel, only this time I didn't delete the 'step 2' it gives you by default, then it worked. #bug
     
    Last edited: Sep 14, 2017
  36. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    Might you be able to provide detailed steps to reproduce with a new funnel?
     
  37. stephero

    stephero

    Joined:
    Feb 8, 2016
    Posts:
    123
    This tutorial is great, like the ability to drilldown to a parameter for a specific funnel step.

    But where is the "Drilldown type" button? You say that there is a "drill down menu on the bottom of the Funnel Analyzer page". But I don't see it.

    Am I missing something ot this feature has been removed recently?
     
  38. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    @stephero The original post is about 2 years old. The Drilldown button has since been removed.
     
  39. stephero

    stephero

    Joined:
    Feb 8, 2016
    Posts:
    123
    Thanks for your answer.

    I can see that I can get some data by clicking on the "Conversion" dropdown list: but only a few parameters are listed. It seems that I can drilldown number parameters only. Do you know if there is a way to get some stats about string parameters too (to get a pie chart for a parameter at a specific funnel's step) ?

    Screenshot_35.jpg
    Thanks
     
  40. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    Last edited: Sep 20, 2017
  41. stephero

    stephero

    Joined:
    Feb 8, 2016
    Posts:
    123
  42. jGate99

    jGate99

    Joined:
    Oct 22, 2013
    Posts:
    1,928
    Hi @JeffDUnity3D
    I'm new to Analytics so i want to add Funnel for my Hints section.
    For Hints, User click on Hint Popup, either cancel or buy the hint, if he click buy either error can come or he can cancel between, or purchase get successful.
    How do i make a funnel with it?
    Thanks
     
  43. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    @JohnGate You would want to implement and send the appropriate Custom Event at that time, and then use that event in your Funnel.
     
  44. jGate99

    jGate99

    Joined:
    Oct 22, 2013
    Posts:
    1,928
    Can you pleas provide a code snippet? i dont know how to define these steps in code and in wihch places to dispatch custom events?


    Steps
    1- User click on Hint Button
    2- User See the Hint Popup
    3-[1] User either cancel the popup and dont buy hint
    3-[2] User click on Buy
    4- User gett error (store not available)
    5- User cancel middle
    6- User successfully buy.

    Thanks
     
  45. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
  46. jGate99

    jGate99

    Joined:
    Oct 22, 2013
    Posts:
    1,928
    reason im confused is,
    how do i approach it, one solution that i think is
    send custom event on each step with dictionary param step = currentStep#, so will it show funnel as expected?
     
  47. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    When you say "as expected", unfortunately I don't know what is expected. Before writing code, you will want to consider what you really want to accomplish. This will drive what you need in your funnel. It might be a good idea to get a simple funnel working first with the data that you have, and begin to understand how the flow works in funnels. Keep in mind that funnel flow is sequential, with no if/then logic. Users must go Step 1, then Step 2, then Step 3 etc. They can't go to Step 1, skip Step 2 (like if they clicked Cancel) and go to Step 3. A funnel would only show users in Step 1 in this case. To handle conditional logic, you could create multiple funnels, one for each condition.
     
    Last edited: Oct 20, 2017
    jGate99 likes this.
  48. jGate99

    jGate99

    Joined:
    Oct 22, 2013
    Posts:
    1,928
    Oh, that makes sense.
    So user either get hint or cancel it, which means i require 2 funnels.
    thank you ver much :)
     
  49. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    @JohnGate Yes, that is correct. One for the Cancel flow, and the other for the Buy flow.
     
    jGate99 likes this.
  50. FancyRobe

    FancyRobe

    Joined:
    Dec 28, 2016
    Posts:
    1
    Hi,
    Is it possible to automatically make funnels like
    1. LevelFinished {"level":1}
    2. LevelFinished {"level":2}
    3. LevelFinished {"level":3}
    4. LevelFinished {"level":4}
    ...
    X. LevelFinished {"level":X} ?

    This could be useful.