flurry Question

for params added during analytics.logEvent(action,params)…

I was just confuse in the site of flurry in the event cause it was very messy.

putiing

analytics.logEvent(“new game”, “hard”)

analytics.logEvent(“new game”, “easy”)

analytics.logEvent(“new game”, “medium”)

what will happen in the events in flurry site??

shall it generate separate events or only one the “new game”?

and for the params, Im I doing it right??

analytics.logEvent(“new game”, {“medium”}) or analytics.logEvent(“new game”, “medium”) ??

I would do it this way:

analytics.logEvent( “new game”, {Difficulty = “hard”} )

analytics.logEvent( “new game”, {Difficulty = “easy”} )

analytics.logEvent( “new game”, {Difficulty = “medium”} )

That would give you a flurry event “new game”, and on the flurry dashboard under that event you would find an event parameters icon that when clicked would show you a drop down of parameters (in this case you only have one parameter, “Difficulty”).  Selecting that would show you a piechart breakdown and bar graphs of “hard”, “easy”, and “medium” values for that parameter.  You can add and track even more parameters to your “new game” event, too, like {Name = “Level 12”}, {Stage = “4”}, or whatever else you want to keep track of.

Thanks very many men :smiley:

Wow, that great to know! Thanks. Could I do analytics.logEvent(“game level”, gameLevel) where gameLevel is variable (1 to 10)in the game that keep track of the highest level the player reach. Of course the goal is track where players drops out of the game. Thanks again for the tip! Mo

Hi Mo,

I’m not positive but I believe the parameters need to be in the form of a table.  The way you have it might not work at all, or if it did you would only be recording a single parameter for that event.  But what if, say, you also wanted to know how long it took someone to complete a level?  You’d have to create a new event with another single parameter.  A better way might be:

analytics.logEvent("levelPlayed", {levelNumber = gameLevel})  

where gameLevel is the variable name of the particular level you want to record.  Then you could add and record as many other parameters as you wanted under the “levelPlayed” event.  After the level is completed you could record the time played  as another parameter:

analytics.logEvent("levelPlayed", {playTime = playTime})  

where playTime is both the name of Flurry parameter as well as the internal Corona variable for the length of time the player took to complete the level.

Since it’s a table you can even string them all together in a single logEvent when the level is complete:

analytics.logEvent("levelPlayed", {levelNumber = gameLevel, playTime = playTime, score = levelScore, vehicle = "Jeep"})  

In the Flurry dashboard you would then have a single event called levelPlayed.  Clicking on that would get you to a dropdown menu of all your parameters for that one event.  You could select gameLevel and see a piechart or bar graph showing you the frequency of play for each level.  You could select another parameter and see how all the scores break down.  

Why would you want to do it this way instead of having each parameter as its own event?  Flurry actually has a limit of 300  events you can have for a single app.   That seems like a lot but once you see the power of recording events you could easily run out.  If your game has 100 levels and you want to record 3 event types per level then you’ll hit the limit.  There’s no limit to the number of parameters you can record for an event, so doing it the way I show you could record dozens of parameters each time a level is played.

If you know you’re only going to have, say, 50 levels ever (and never will expand your game beyond that) then maybe it makes more sense to structure the events by level name and then put all the other parameters inside the level event:

analytics.logEvent("level 12", {playTime = playTime, score = levelScore, vehicle = "Jeep"})  

Kind of up to you and your app how you want to structure the events so they are convenient to search through on the Flurry dashboard.

I should mention, I’ve only ever used Flurry analytics.  I don’t know how things work on Amplitude or Corona’s analytics, what their limitations are, or how parameters are displayed on their dashboards.  But I assume they all share the same Corona SDK syntax to log an event.

-Stephen

THANKS so much Stephen! That’s really helpful. By the way, did you ever release your kid game? The beta looked fantastic! Thanks again for talking the time. Mo

I would do it this way:

analytics.logEvent( “new game”, {Difficulty = “hard”} )

analytics.logEvent( “new game”, {Difficulty = “easy”} )

analytics.logEvent( “new game”, {Difficulty = “medium”} )

That would give you a flurry event “new game”, and on the flurry dashboard under that event you would find an event parameters icon that when clicked would show you a drop down of parameters (in this case you only have one parameter, “Difficulty”).  Selecting that would show you a piechart breakdown and bar graphs of “hard”, “easy”, and “medium” values for that parameter.  You can add and track even more parameters to your “new game” event, too, like {Name = “Level 12”}, {Stage = “4”}, or whatever else you want to keep track of.

Thanks very many men :smiley:

Wow, that great to know! Thanks. Could I do analytics.logEvent(“game level”, gameLevel) where gameLevel is variable (1 to 10)in the game that keep track of the highest level the player reach. Of course the goal is track where players drops out of the game. Thanks again for the tip! Mo

Hi Mo,

I’m not positive but I believe the parameters need to be in the form of a table.  The way you have it might not work at all, or if it did you would only be recording a single parameter for that event.  But what if, say, you also wanted to know how long it took someone to complete a level?  You’d have to create a new event with another single parameter.  A better way might be:

analytics.logEvent("levelPlayed", {levelNumber = gameLevel})  

where gameLevel is the variable name of the particular level you want to record.  Then you could add and record as many other parameters as you wanted under the “levelPlayed” event.  After the level is completed you could record the time played  as another parameter:

analytics.logEvent("levelPlayed", {playTime = playTime})  

where playTime is both the name of Flurry parameter as well as the internal Corona variable for the length of time the player took to complete the level.

Since it’s a table you can even string them all together in a single logEvent when the level is complete:

analytics.logEvent("levelPlayed", {levelNumber = gameLevel, playTime = playTime, score = levelScore, vehicle = "Jeep"})  

In the Flurry dashboard you would then have a single event called levelPlayed.  Clicking on that would get you to a dropdown menu of all your parameters for that one event.  You could select gameLevel and see a piechart or bar graph showing you the frequency of play for each level.  You could select another parameter and see how all the scores break down.  

Why would you want to do it this way instead of having each parameter as its own event?  Flurry actually has a limit of 300  events you can have for a single app.   That seems like a lot but once you see the power of recording events you could easily run out.  If your game has 100 levels and you want to record 3 event types per level then you’ll hit the limit.  There’s no limit to the number of parameters you can record for an event, so doing it the way I show you could record dozens of parameters each time a level is played.

If you know you’re only going to have, say, 50 levels ever (and never will expand your game beyond that) then maybe it makes more sense to structure the events by level name and then put all the other parameters inside the level event:

analytics.logEvent("level 12", {playTime = playTime, score = levelScore, vehicle = "Jeep"})  

Kind of up to you and your app how you want to structure the events so they are convenient to search through on the Flurry dashboard.

I should mention, I’ve only ever used Flurry analytics.  I don’t know how things work on Amplitude or Corona’s analytics, what their limitations are, or how parameters are displayed on their dashboards.  But I assume they all share the same Corona SDK syntax to log an event.

-Stephen

THANKS so much Stephen! That’s really helpful. By the way, did you ever release your kid game? The beta looked fantastic! Thanks again for talking the time. Mo