Search Unity

  1. We are migrating the Unity Forums to Unity Discussions. On July 12, the Unity Forums will become read-only. On July 15, Unity Discussions will become read-only until July 18, when the new design and the migrated forum contents will go live. Read our full announcement for more information and let us know if you have any questions.

Help inspecting parameters of Custom Events

Discussion in 'Unity Analytics' started by Scarzzurs, Apr 4, 2015.

  1. Scarzzurs

    Scarzzurs

    Joined:
    Oct 6, 2014
    Posts:
    13
    Hey all!

    I'm developing a desktop game in Unity with a friend and wanted to try to analyse data from our user test using an analytic tool. So naturally I turned to Unity Analytics in order to achieve the best possible integration with Unity. Indeed setting up the basics were pretty easy, although Custom Events didn't work until the day after (the "Test Custom Event" page showed no data). So, a big thanks for providing another useful service! I hope it will improve even further as the beta comes along. :)

    Now, to my inquiry:
    In our game players can pick up items and complete levels, so we would like to measure what items the players favour by tracking the items carried when completing a level. I initially tried tracking all items carried in a single string in a single event, but this turned out to be pretty pointless. So my next thought was to track each item in a separate event. The event is as such: CompletedLevelWithItem( string itemType, int levelsPlayed )

    This works fine for viewing the overall item use when completing levels in general. But now I want to learn more about what happens in a specific level, say levelsPlayed == 1. I haven't been able to inspect this in the user interface so far. Alternatively I could set up a specific event named CompletedLevel1WithItem, but this seems counter-productive if you would like to learn such information for say 100 levels, or filter by other parameters. So, is there some smart way of doing it using Unity Analytics?

    - Rune Holm
     
  2. LittleTree

    LittleTree

    Joined:
    Apr 4, 2015
    Posts:
    14
    Not sure if I am following rightly, but you could maybe use StringBuilder and append to it with things like

    gameInfo.Append("picked up crowbar :" + Time.timeSinceLevelLoad.ToString())

    then save to a file after each level / end of game.. probably not what you are after, was just a thought :)
     
  3. Scarzzurs

    Scarzzurs

    Joined:
    Oct 6, 2014
    Posts:
    13
    Hey LittleTree, I appreciate your input but I'm afraid it does not solve my problem.

    I am specifically trying to learn something about a significant number of users throughout a large number of games played. As a result I need this large amount of data to be presented in a meaningful way (i.e. a chart) without having to inspect the data manually. Furthermore I am trying to avoid having to write a lot of code taking care of collecting and visualizing this data for me. I was hoping that Unity Analytics could help solve these task, but so far I have only been able to collect the data using Unity Analytics. I have yet to find a way to use it for the analysis/visualization I need.
     
  4. LittleTree

    LittleTree

    Joined:
    Apr 4, 2015
    Posts:
    14
    yeah, I did get the feeling you were maybe talking about a bigger picture way beyond my scope, sorry :)
     
  5. angeloferro

    angeloferro

    Moderator

    Joined:
    Sep 12, 2014
    Posts:
    105
    Hi @Scarzzurs!

    We recently pushed an update to Data Explorer for improved visualizations of custom event data.

    One approach is to create a custom event for each level, and attach the item names as string parameters. In Data Explorer, you'll be able to see a count of how many items were picked up in each level. But as you mentioned, this will only allow to view item distributions one level at a time.

    Alternatively, if you wanted to see how often a specific item is picked up across all your game levels, you could create a custom event for each specific item and pass the level as a parameter. If your levels are numeric (i.e., 1, 2, 3...), make sure to pass it to us a string so that Unity Analytics can show you the level distribution (for numeric parameters we only show counts, averages and sums).

    One thing to note is that string parameters (because they require extra processing on our end) count more towards your Analysis Points allocation vs. numeric parameters (more info in this forum post). Since you're experimenting, I'd suggest trying both custom events type out in test applications and see which type of visualization makes the most sense.

    Hope this helps!
    -Angelo
     
  6. Scarzzurs

    Scarzzurs

    Joined:
    Oct 6, 2014
    Posts:
    13
    Hi Angelo,

    Thanks for the quick reply. :)

    However, I was afraid that would be your answer. While it solves the specific problem at hand, it is rigid solution and requires me to know what information I want, before I can start collecting data the data needed to answer it.

    Say I have collected item names as a string parameter for a specific level, say the first level. Now I find that it is in fact much more informative for me to learn about the following level (since the first level is the tutorial). I am now in a situation were this information is not yet in Unity Analytics and I have to push an update to my users and wait for them to generate the data I need (on iOS this probably means about a week of waiting at least). Furthermore, I have lost the ability to go back in time and see the difference from version to version.

    I know this is of course not the most common scenario, and I know that many if not all other general purpose cloud-based Analytics Tools have the same limitation. However I do feel that it is an important request to make, especially regarding a tool in active development. If Unity Analytics had a feature to filter custom events according to their parameters, I believe it would not only be my first choice based on convenience, but also based on features.

    Anyways, I suppose I will end up generating a custom event for each level and set up a workflow for analysing data collected using Unity Analytics in another application. Again, thanks for the answer and allowing me to use Unity Analytics. :)
     
    Anisoropos likes this.
  7. angeloferro

    angeloferro

    Moderator

    Joined:
    Sep 12, 2014
    Posts:
    105
    @Scarzzurs thanks for the feedback! Would love to better understand your specific use cases and what we can do to address them, so look for a PM from me shortly :)
     
  8. Anisoropos

    Anisoropos

    Joined:
    Jul 30, 2012
    Posts:
    102
    @angeloferro Was this ever implemented? It feels like a very basic and common functionality! Right now I'm for instance looking at the data from all my exercises (it's a fitness application) and I send something like {exercise, calories per second, etc..}. I want to filter by exercise name, that shouldn't be too hard to visualise right?
     
  9. ap-unity

    ap-unity

    Unity Technologies

    Joined:
    Aug 3, 2016
    Posts:
    1,521
    @Anisoropos,

    This is one of our most requested features and unfortunately, our current architecture limits what we're able to offer in the way of comparing parameters. We are working to solve that problem, but I couldn't say when that will be available.