Search Unity

Updated Custom Events Visualizations!

Discussion in 'Unity Analytics' started by angeloferro, Apr 2, 2015.

  1. angeloferro

    angeloferro

    Moderator

    Joined:
    Sep 12, 2014
    Posts:
    105
    Our most popular request for the past several weeks has been to add the ability in the Data Explorer to visualize event parameters based on string and Boolean values. Until now, you’ve been able to see custom event parameters based only on numbers, i.e., things that can be summed or averaged.



    That’s all well-and-good, but what about parameters that can’t be summed up? If you have a set of named levels, telling you the “average” level isn’t exactly helpful. You want to see results broken into categories. You asked for it, we agreed, and today we’re delighted to release the result:




    Now let’s walk through this:
    • Parameters are now understood to be one of three data types: numeric, string, or Boolean. Numeric values work pretty much exactly the way they always did: you can see averaged and summed values over time.
    • Booleans (true/false) and strings add new visualizations. In the picture above, you can see the three original graphing options (now identified as time-based by the clock icon), plus two new ones (identified by the ‘global’ icon). The global options display a summation for each value within the parameter, and within the dates you’ve specified. So now if you have a red door, a green door, and a blue door, you can see how those categories break down.
    • If you would like to see a distribution for numeric values (for example, FPS or memory size) make sure you send us those values as a string.
    Of course you can also view the categorical data over time:



    Note the table at the bottom (refer back to the prior image). This was a specific ask from one insightful user, who observed that being able to see the parameter data in a table would make it easier to understand the big picture.

    Finally, we’ve also updated the limits on custom events - please read this post for more info.

    We hope you like the new feature. Whether you do or not, please tell us. We’re all about making analytics work for you, and to do that we need to hear from you :)
     
    Last edited: Apr 2, 2015
    zeh and emiliza like this.
  2. kylerk

    kylerk

    Joined:
    Jul 4, 2014
    Posts:
    4
    This is pretty much exactly as I would hope! Thanks. Great to see this stuff improving!
     
  3. SeashellsRacer

    SeashellsRacer

    Joined:
    Oct 16, 2014
    Posts:
    13
    It's great to see these changes to the Data Explorer. Can we expect to see similar changes to the funnel analyzer?
     
  4. angeloferro

    angeloferro

    Moderator

    Joined:
    Sep 12, 2014
    Posts:
    105
    Hey @SeashellsRacer,

    Nothing specific planned for Funnel Analyzer, but we're always looking for feedback!

    What types of changes would you like to see? It would be super helpful if you could also provide us with some examples and use cases :)
     
  5. SeashellsRacer

    SeashellsRacer

    Joined:
    Oct 16, 2014
    Posts:
    13
    Now that we have the ability to specify strings and booleans in the data explorer it would be nice if that could use strings and booleans in the funnel analyzer as well.

    Using your example above I would like to create funnels like the following.
    How many Players got to level Demon's Run and had at least 80HP.
    Or
    for each level string how many players have above 80hp.

    Does it make sense to use the funnel analyzer for a purpose like this?
     
  6. angeloferro

    angeloferro

    Moderator

    Joined:
    Sep 12, 2014
    Posts:
    105
    Hi @SeashellsRacer - you can do this currently using Funnel Analyzer with custom events and parameters :)

    In Funnel Analyzer, when you create a funnel step, you'll see a parameter drop down menu next to the custom event:


    Once you select a parameter, you'll have a couple of options:


    For this funnel, I'm going to create a filter so that only players who complete Demon's Run with at least 80 HP are captured in the funnel:

    In this example, levelID is a string parameter and HP is a numeric parameter.

    Hope this helps!
    -Angelo
     
  7. SeashellsRacer

    SeashellsRacer

    Joined:
    Oct 16, 2014
    Posts:
    13
    Ah i see. Thanks Angelo, I assumed that it would only work with numbers.
     
  8. zeh

    zeh

    Joined:
    Feb 2, 2013
    Posts:
    28
    This looks great. Well done guys.

    My feedback right now is this: the data is there and can be visualized easily, individually. Very flexible too.

    But it's hard to get to it. Say I want to check, I don't know, "device type", one of the parameters I save (ignore the fact that the Analytics is only supposed to be supported on some platforms for now). Right now, I have to do this:

    1. Go to "Data Explorer"
    2. Pick the custom event category and segment I want ("info_platform" and "Current Users"), or pick from a pre-saved one
    3. Click "View parameters"
    4. In the new window, pick "device type" in the combo.
    5. Customize the chart to whatever I want it to look like.

    This is great but the cons are:

    1. Too many steps, you have to repeat them all the time you want to see a given chart
    2. You can only look at one metric combination at a time

    I think, ideally, we'd be able to build "dashboards" which are like front pages that have all those pre-charts saved.. custom reports of sorts.

    In such a case, after setting a dashboard up with the charts I wanted, I could go and without any step look at the metrics that are important to me, all in one page. The "platform" dashboard would show OS breakdown, maybe memory.. the "application" would show how each the version penetration of the application... and so on and so forth. Different people would have different dashboards, depending on what's important to them, or depending on what you're trying to investigate at any point in time.

    The "Metric Monitor" page does a bit of that, but just showing a couple of key insight metrics. Ideally it'd be great to add custom charts and "tabs" to that, as well as smaller charts (I think at any point I like to have ~8 things visible on the screen on the dashboards I normally use).

    I believe this is coming in due time since it's what every other analytics system uses, but wanted to give my rationalization for it.
     
  9. angeloferro

    angeloferro

    Moderator

    Joined:
    Sep 12, 2014
    Posts:
    105
    Thanks for the feedback @zeh ! We do have plans to provide more flexible dashboards, and in the shorter term we'll brainstorm what we can do to make it easier to access custom events data (it's good to know that we're heading in the right direction :))
     
  10. khan-amil

    khan-amil

    Joined:
    Mar 29, 2012
    Posts:
    206
    Yeah, it's really limiting that for now you can only see one of your custom event parameter at a time, and not filter it with other paramters.
     
  11. thehen2

    thehen2

    Joined:
    Apr 1, 2014
    Posts:
    54
    This looks like exactly what I'm looking to do. Unfortunately I can't seem to get my strings to appear as strings:



    Code:

    Code (CSharp):
    1.     public void LogPuzzleComplete( string levelName, int attempts, int totalDuration ) {
    2.         UnityAnalytics.CustomEvent("puzzleComplete", new Dictionary<string, object>
    3.         {
    4.             { "levelName", levelName },
    5.             { "attempts", attempts },
    6.             { "totalDuration", totalDuration }
    7.         });
    8.  
    9.         Debug.Log("level " + levelName + " complete in " + attempts + " attempts, in " + totalDuration + " seconds.");
    10.     }
    Any help would be great. We're showcasing over the next few days and were hoping to capture some data :)
     
  12. angeloferro

    angeloferro

    Moderator

    Joined:
    Sep 12, 2014
    Posts:
    105
    Hey @thehen2,

    Our backend treats numeric values (even if they are being passed as strings) as numeric parameters, which is why levelName is processed as a numeric parameter. A current workaround would be to append a letter to levelName (i.e., 1a, 2z, etc...) and Unity Analytics will process the data as a string parameter.

    Apologies for any confusion!
     
  13. thehen2

    thehen2

    Joined:
    Apr 1, 2014
    Posts:
    54
    Thanks!
     
  14. skullthug

    skullthug

    Joined:
    Oct 16, 2011
    Posts:
    202
    I'd like to post a request about saved reports- it would be useful instead of having a set specified date in the TO field, to have the option to instead have it be set always to "Today". It's a little inconvenient to go to some of my saved views and then have to always set the TO date to Today.
     
  15. RKSW

    RKSW

    Joined:
    May 26, 2015
    Posts:
    3
    Are there any plans to let us pull flat files of the raw data to support off-line analyses? I know there is a way to pull the data table behind a given data rendering, but those data are already aggregated, and I need the unaggregated data with the user GUID and time-date stamp included.

    This may provide you with a way to get more people working on data visualizations that they might share, such as butterfly graphs of game states X user types showing how players got to a given state and where they went next.
     
  16. sschan

    sschan

    Moderator

    Joined:
    Oct 8, 2014
    Posts:
    87
    Hi @RKSW - We are in active development of raw data export. We will post in the Forum when this feature is live. :)

    Any additional feature requests please add it here. Thank you!
     
  17. Mol20K

    Mol20K

    Joined:
    Jun 23, 2014
    Posts:
    21
    Hi @angeloferro I'm play around with the custom event, but im not able to get the different parameters in one graph. I think it is due to the fact that all parameters contain a #. What should i change regarding the setup to be able to show them in 1 overview?
     
  18. marc_tanenbaum

    marc_tanenbaum

    Unity Technologies

    Joined:
    Oct 22, 2014
    Posts:
    637
    At present we have no ability to show multiple parameters on the same chart. This is a feature we hope to implement soon.
     
  19. sevensails

    sevensails

    Joined:
    Aug 22, 2013
    Posts:
    483
    Let me see If I understand it correctly now!

    Code (csharp):
    1.  
    2.   UnityAnalytics.CustomEvent("LevelCompleted", new Dictionary<string, object>   {    
    3. { "level", "level"+LevelNumber },    
    4. { "time", TimeToComplete },      
    5. });
    6.  
    Using this code will I be able now to display :

    - A list of which levels were played on a day, and much times per each of these level were played?
    - A average of the time that each level were taken to complete?

    Is this true now? I was logging Level Number as an Integer, and I was not able to group the results because of this.
     
  20. mpinol

    mpinol

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

    Currently the way you have your Custom Event set up you will be able to view the number of counts each level was played but your TimeToComplete average will display the average time for all of your levels. What you could do is change the name of your Custom Event to "LevelCompleted+LevelNumber, remove the first dictionary entry, and leave the "time" entry the same. This will keep your TimeToComplete averages separated from every other level and allow you to use the Data Explorer 'View Parameters' to see this information.
     
  21. KruegerT

    KruegerT

    Joined:
    Nov 26, 2009
    Posts:
    12
    So as I understand this, right now it's not possible to have parameters of custom events sorted depending on other parameters of this event?

    An event like this
    Code (CSharp):
    1. public void LogAnswerGiven( int questionUDID, int round, int difficultyGiven, int answerUDID ) {
    2.        UnityAnalytics.CustomEvent("guessedAnswer", new Dictionary<string, object>{
    3.               { "questionUDID", "gq"+questionUDID },  
    4.               { "guessedAnswer", "ga"+answerUDID },
    5.               { "currentRound", "ro"+round },
    6.               { "difficultySet", "dif"+difficultyGiven }
    7.        });
    8. }
    can for example be tracked and visualised like
    but sadly not
    I could show this data by creating an event like
    Code (CSharp):
    1. UnityAnalytics.CustomEvent("guessedAnswer_"+difficultyGiven, new Dictionary<string, object>{ ... }
    but let's assume we have 300 difficulties, that wouldn't be an elegant way.

    Furthermore if I also want to check, for probabilites and odds, which question occured during which round, when did a user guessed wrong, ...
    I would need a lot of single events which would blow up the 100 events per hour per user.

    I'm just curious whether there's a possibilty to do this in Unity Analytics? Otherwise what's left is to simply track this data to a MySQL and analyze this data on our own (which is no problem at all, but Unity Analytics would be the more convenient way to go since 5.2)

    TL;DR
    We want to use UA for analyzing the game behaviour, which cannot depend on count/avg/num, but have to be sorted by other parameters in a custom event. (Custom Event like "AnswerChoosen", show occurence of parameter "questionUdid" and sort by parameter "currentRound" [over all user])

    Best wishes,
    Thomas
     
  22. mpinol

    mpinol

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

    That is correct. Currently there is no way to sort parameters based on other parameters. We have been discussing expanding the Data Explorer so if you would like to show your support for this you can vote for it here, http://feedback.unity3d.com/forums/unity/suggestions?utf8=✓&status=0&category=analytics&view=hottest

    We are also working on a raw data export feature which would give you access to your raw data so you would be able to upload it to your own MySQL server to run your own queries.
     
    jacobgmartin likes this.
  23. rihdus

    rihdus

    Joined:
    Jul 13, 2012
    Posts:
    10
    Is there a limit on how many categories can be displayed? If my parameter is Level and I do Level1 - Level100 will it be able to display all those on one graph?
     
  24. erika_d

    erika_d

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

    There is no limit to the number of parameter values that can be displayed on a graph, but there are a few other limits to be aware of. They are discussed in these two pages (http://docs.unity3d.com/Manual/UnityAnalyticsCustomEvents.html, http://forum.unity3d.com/threads/new-custom-event-limits-please-read.315594/) but in sum:

    - A single event is limited to having 10 parameters
    - The dictionary content for any given firing of an event is limited to 500 characters
    - Each possible string parameter value sent counts against your analysis points. So if you had a level end custom event with a level parameter and 100 possible values, that would be at least 101 analysis points, plus whatever other parameters you have for that event.

    There is a bug in the color displays at high numbers of parameter values, but the graphs themselves still display. However it will be up to you to decide how useful a graph with that many lines on it is, although you can filter down to only certain values. :)