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

Lumos game analytics

Discussion in 'Assets and Asset Store' started by matthewminer, May 27, 2011.

  1. Nition

    Nition

    Joined:
    Jul 4, 2012
    Posts:
    781
    Thanks for the response. Good to hear that that stuff is being worked on. I realise this is a free service so I wasn't expecting every feature to be perfect.
     
  2. goodhustle

    goodhustle

    Joined:
    Jun 4, 2009
    Posts:
    310
    You should be able to specify a manual override to the script execution order (Edit > Project Settings > Script Execution Order) and put Lumos pretty high. AFAIK the execution order is possible to export as part of the unitypkg, because I know that NGUI comes with its own set of execution order on scripts.
     
  3. matthewminer

    matthewminer

    Joined:
    Aug 29, 2005
    Posts:
    331
    Changing the script execution order to ensure that Lumos runs first does indeed seem to do the trick. I didn't realize it was possible to specify the order in a Unity package; we'll see about doing that for the next release. Thanks for the tip.
     
  4. Nition

    Nition

    Joined:
    Jul 4, 2012
    Posts:
    781
    Is "Value Average" for events broken as well? My Value Average often seems to be lover than my Value Minimum.
     
  5. matthewminer

    matthewminer

    Joined:
    Aug 29, 2005
    Posts:
    331
    The value average calculation isn't broken as far as I know; certainly possible though. Email your game ID to matthew@uselumos.com and I'll take a look.
     
  6. Nition

    Nition

    Joined:
    Jul 4, 2012
    Posts:
    781
    Actually never mind, today it looks correct. I'm positive it wasn't right yesterday though. Weird.
     
  7. matthewminer

    matthewminer

    Joined:
    Aug 29, 2005
    Posts:
    331
    Good to hear that it's working. If you do see any inaccuracies in the future though please let us know.
     
  8. PhobicGunner

    PhobicGunner

    Joined:
    Jun 28, 2011
    Posts:
    1,813
    Just figured I'd post here, a friend of mine tried integrating Lumos but the main issue he's having is his game actually gets a lot of users, many orders of magnitude over 100k per day, and he reported that when he released a version of his game with Lumos integrated it crashed the Lumos website and his game has Lumos temporarily disabled now.
    Any workarounds he can use for throttling right now, or will he have to wait for an update?
     
  9. matthewminer

    matthewminer

    Joined:
    Aug 29, 2005
    Posts:
    331
    Tomorrow Lumos should be operating as usual; we have a manual server-side "off switch" for games that send us an overwhelming amount of traffic. It's not an ideal solution obviously, and more intelligent throttling will be implemented in the future, but for now it keeps the server from melting.

    Long-term we plan to offer a paid plan for games that have high traffic. For now, sit tight and Lumos will be back up in no time. Your friend's game is indeed very popular. ;)
     
  10. JacobPennock

    JacobPennock

    Joined:
    Jul 7, 2011
    Posts:
    31
    Hey guys really great work. I've been using Lumos in a lot of projects lately. But currently I have a client who is having me build a webplayer game that needs to be secured under https. Right now we have to proxy one of our secured subdomains to redirect to your api and have Unity call into that to keep browsers from complaining that, while the page is secure it makes an insecure connection to www.uselumos.com. Our current work around is messy and times out a lot.

    I was just wondering if you guys plan on ever supporting https connections.

    Thanks.
     
  11. matthewminer

    matthewminer

    Joined:
    Aug 29, 2005
    Posts:
    331
    HTTPS support is indeed on the roadmap. It hasn't been a priority until recently, but we've had several developers request it. I can't guarantee a time when it will come, but we're looking into it.
     
  12. JacobPennock

    JacobPennock

    Joined:
    Jul 7, 2011
    Posts:
    31
    Thanks for the amazingly fast response! I think my client is going to launch tomorrow, so looks like we are stuck with this messy work around for now, but thanks again for the response. I'm looking forward to the HTTPS support and I'm glad your working on it. Again awesome work guys Lumos has been super helpful for me a number of times over.
     
  13. matthewminer

    matthewminer

    Joined:
    Aug 29, 2005
    Posts:
    331
    We're glad you find Lumos useful. Might I ask what your workaround entails?
     
  14. JacobPennock

    JacobPennock

    Joined:
    Jul 7, 2011
    Posts:
    31
    I'm not really sure to be honest. I'm just the Unity dev not the web backend guy. But the web guy and I did just spend the past several hours chatting and trying to get it to work, and its still not working very well at all. We might just end up running unsecured for a while in the hopes that you guys put out an update soonish.
     
  15. matthewminer

    matthewminer

    Joined:
    Aug 29, 2005
    Posts:
    331
    Just to be clear, an update could be many weeks away. In any case, an update will require a new Unity package with modified API endpoints. Hopefully lack of HTTPS support isn't a dealbreaker.
     
  16. JacobPennock

    JacobPennock

    Joined:
    Jul 7, 2011
    Posts:
    31
    Oh yeah, no worries. I had assumed an update could be months away. Even if my client doesn't end up using Lumos, I'm not going to stop. You guy have made a wonderful resource and I'll be happy to tell any other Unity dev that it is great and they should be using it if they can.
     
  17. ScaryRobotGames

    ScaryRobotGames

    Joined:
    May 2, 2007
    Posts:
    57
    Hey Matthew,

    I updated Lumos to the latest version. But the prefab seems to lose it's settings when the game is run. The key is blanked out and any setting changes toggle back to their default state. Is there a work around for this?

    Also, the forum on the uselumos site seems to be non-functioning. The captcha doesn't exist so it's impossible to sign up.
     
  18. sonicviz

    sonicviz

    Joined:
    May 19, 2009
    Posts:
    1,051
    Hi,
    Is there any way to set the date range for history?
    It seems to default to 1 month, but I'd like to see all of it.

    ty!
     
  19. matthewminer

    matthewminer

    Joined:
    Aug 29, 2005
    Posts:
    331
    Sorry for the slow response, we missed the new reply notification. To get the Lumos game object to keep its settings, break the prefab connection using GameObject > Break Prefab Instance. An alternative is to add the following code to the bottom of the OnInspectorGUI function in LumosInspector.cs:

    Code (csharp):
    1. if (GUI.changed) {
    2.     EditorUtility.SetDirty(target);
    3. }
    The current Lumos package breaks the prefab instance itself when adding it through the menu, but obviously that doesn't help much if you already had Lumos added to your scene.

    Indeed, the forum broke and it broke hard. We've removed the link to it; until we get a more robust system in place, posting here or sending an email to support@uselumos.com is the best way to get your questions answered.

    There currently isn't, no. It's a good idea though, I'll pass it along.
     
  20. virror

    virror

    Joined:
    Feb 3, 2012
    Posts:
    2,963
    This is something i made a wish for long ago, not to complain, but not allowing to show the whole data or being able to export all of it makes it very hard to actually use this for serious analysis other then just look at it for fun.
    Still a nice tool though : )

    Edit: Just to clarify, with export i meant that all the raw visitor data should be exportable to csv or something.
     
    Last edited: Nov 6, 2012
  21. matthewminer

    matthewminer

    Joined:
    Aug 29, 2005
    Posts:
    331
    We hear you. We plan to have more flexible viewing/exporting options in the future, we're just not there yet.
     
  22. sonicviz

    sonicviz

    Joined:
    May 19, 2009
    Posts:
    1,051

    +10 in addition to my previous date range request
     
  23. SteveJ

    SteveJ

    Joined:
    Mar 26, 2010
    Posts:
    3,085
    Checking this out at the moment - looks really good. One question... is there anything that needs to be done for iOS builds to disable device specific data collection, or is this disabled automatically for iOS?
     
  24. Brad-Keys

    Brad-Keys

    Joined:
    May 1, 2006
    Posts:
    161
    Hi Steve,

    It's automatically disabled for you. No need to worry about it. Good luck!
     
  25. matthewminer

    matthewminer

    Joined:
    Aug 29, 2005
    Posts:
    331
    No, nothing extra needs to be done to disable system info recording on iOS. We disable it using a preprocessor directive, so the feature is automatically removed when building for the iPhone.

    Edit: Beat to the punch by Brad "Lightning Fingers" Keys
     
  26. SteveJ

    SteveJ

    Joined:
    Mar 26, 2010
    Posts:
    3,085
    Really keen to check this out. Been looking for something to record level completion, number of players etc for Coldfire Keep. Will have a go at setting up some events over the weekend.

    Thanks for making this guys!
     
  27. matthewminer

    matthewminer

    Joined:
    Aug 29, 2005
    Posts:
    331
    Good luck Steve, let us know what you think.
     
  28. sonicviz

    sonicviz

    Joined:
    May 19, 2009
    Posts:
    1,051
    Do Lumos stats include iOS players?
    If so what are they catorgorized as?

    ty!
     
  29. matthewminer

    matthewminer

    Joined:
    Aug 29, 2005
    Posts:
    331
    Lumos does indeed take into account iOS players, and the total players count and active users metrics reflect this. We don't record anything personally identifying about them though (i.e. we don't use the UDID), instead generating a random ID that is stored in PlayerPrefs.
     
  30. Spoink

    Spoink

    Joined:
    May 9, 2011
    Posts:
    33
    I've been trying Lumos for a couple of days now and I like it a lot. Errors and warnings are showing up from my testers which I had no idea we were getting, awesome!

    Two things I would like to see implemented in a future version.
    1). A way to set the current version. If I send out a build to my testers and then continue with in-house developing and testing, I wont be able to tell which errors and warnings comes from which version.
    2). Line number in the stack trace. Right now I only know which function is producing a null error, but tracking down a null error in a bigger function can be a bit tricky without knowing where to look.

    Keep up the good work!
     
  31. matthewminer

    matthewminer

    Joined:
    Aug 29, 2005
    Posts:
    331
    Thanks for the suggestions. Versioning a game would definitely be valuable. Regarding line numbers in the stack trace, I'm not sure we're able to grab this info outside the editor (i.e. after the game is compiled, I don't know if this info remains available). If we find a way to include it though, we certainly will.
     
  32. Saitodepaula

    Saitodepaula

    Joined:
    Jul 18, 2012
    Posts:
    10
    Great tool, I started using Lumos yesterday and it is working very nice, really easy to use.

    My questions:

    I'm trying to use "Lumos.Event" in a "OnApplicationQuit" function, but it seems Lumos doesn't get stuff done inside this function. I have many "Debug.Log" for testing in the game and they all display nice in "Logs" in my Lumos page. But I've put a Debug.Log inside the OnApplicationQuit function and it is the only one not showing.

    Is this correct or am I missing something?

    I would like to send events (stats from my game) only when the player exits the game, is there any way to do it?

    Also, it seems that Debug.Log inside the Start function doesn't show up in the Logs page.
     
  33. Brad-Keys

    Brad-Keys

    Joined:
    May 1, 2006
    Posts:
    161
    Lumos sends events to the server every 30 seconds, so events called on Application Exit are not going to be seen on the website during that session. It's also possible that some events or logs inside Start might be recorded before Lumos has been initialized. I suspect that may be your issue. This issue would only exist on the first scene that contains the Lumos prefab. If you see that this same problem exists in Start functions even in other scenes, then there might be a bug.
     
  34. matthewminer

    matthewminer

    Joined:
    Aug 29, 2005
    Posts:
    331
    Unfortunately this is a technical limitation; Unity's WWW class for server requests employs a coroutine, which can't be run from the OnApplicationQuit function. It's desirable to have all queued events and logs be sent to Lumos when the game closes, but alas OnApplicationQuit function doesn't allow this.

    Indeed, this is a bug in our Unity package. Logs don't record until a response from the server says it's OK to do so, and sometimes this happens after the Start function executes. We missed this race condition in our testing, but now that we're aware of it we'll have it fixed shortly.
     
  35. Saitodepaula

    Saitodepaula

    Joined:
    Jul 18, 2012
    Posts:
    10
    Thanks Brad and Matthew for the very fast answers. I was aware of the 30 seconds timer, but not about the Start and OnApplicationQuit things.

    I'll try a workaround to have the informations sent only once, before the player closes the game.

    Because, if I want to know something like total time played, and If I make a script to send this information to Lumos every 30 seconds, I would end up with many Hits each time someone plays the game (if someone plays for 2 minutes, I would have 4 hits, with values 30, 60, 90 and 120 seconds of time played right?). So, informations like Average, Minimum and Maximum would lose their value. This way, I could only use the Sum, and I wouldn't know the average time people are playing each time they play the game.
     
    Last edited: Dec 13, 2012
  36. matthewminer

    matthewminer

    Joined:
    Aug 29, 2005
    Posts:
    331
    You can manually send queued events and logs using LumosEvents.Send and LumosLogs.Send. You're right that a "time played" metric is tricky to calculate due to the inability to use OnApplicationQuit. If we find a workaround to this we'll definitely make use of it.
     
  37. Saitodepaula

    Saitodepaula

    Joined:
    Jul 18, 2012
    Posts:
    10
    In the player I think it is easy with Application.CancelQuit to have the data just before the game is closed, and then, with something like this send different events to tell the difference between events from webplayer and standalone.

    Just made a post with this because I think it can be useful for someone reading this in the future.

    As for the webplayer, please post here if you guys find a workaround. I will do the same.

    Keep it up with the good work, I think it is already a great tool, and has a lot of potential.
     
  38. matthewminer

    matthewminer

    Joined:
    Aug 29, 2005
    Posts:
    331
    Good to know, perhaps we'll include a checkbox that tells Lumos to call CancelQuit. Thanks for the tip.
     
  39. virror

    virror

    Joined:
    Feb 3, 2012
    Posts:
    2,963
    So are you guys planning any update on this other then just bugfixes? Was a long time ago there were features added.
    Like it a lot but some stuff are really needed like exporting all raw data and/or be able to show older data.
     
  40. matthewminer

    matthewminer

    Joined:
    Aug 29, 2005
    Posts:
    331
    We have big plans for Lumos, and we have no intention of discontinuing development. The stall in new features reflects work we're doing behind the scenes to ensure we can scale the business and make it sustainable. There's massive changes and additions in the works which we hope to announce soon, we just don't want to promise specific timelines before we're 100% certain we can meet them. I know this is vague, but rest assured that many Lumos updates are in the works.
     
  41. KJIB

    KJIB

    Joined:
    Jul 17, 2012
    Posts:
    7
    I've not seen this asked/answered elsewhere; As the Unity web player sandboxes things to prevent calls beyond the host, does Lumos work fully/at all/partly/etc. in Web player builds?
     
  42. matthewminer

    matthewminer

    Joined:
    Aug 29, 2005
    Posts:
    331
    Calls to Lumos do indeed work in the web player. We provide a crossdomain.xml file (described here) which gives the game permission to communicate with our servers.
     
  43. Rafael-Costa

    Rafael-Costa

    Joined:
    Jul 7, 2012
    Posts:
    14
    Hi everybody.

    First of all thanks for this great tool.

    My question is: Did anybody test Lumos on Android devices?

    I was able to run successfully and gather data from inside Unity Editor and on iOS devices, but when I test on Android devices, no data is being sent to the servers.

    Is there any kind of configuration to be made on the Unity project for Android platform to allow data to be sent?
     
  44. matthewminer

    matthewminer

    Joined:
    Aug 29, 2005
    Posts:
    331
    Some Android developers encounter connectivity problems that are resolved by setting Internet permission in AndroidManifest.xml (details here). There are other games on Android using Lumos and there's no inherent reason why it shouldn't work -- we use Unity's ordinary WWW class to send data to our servers -- but if you're still unable to connect let us know and we'll hunt down the problem.
     
  45. Rafael-Costa

    Rafael-Costa

    Joined:
    Jul 7, 2012
    Posts:
    14
    I checked the permissions for my Game and the manifest generated by Unity. Both of them are set to permit Internet connections.

    I also changed the Player Settings for Android builds to set Internet Access as Required. Other than that I didn't do anything unusual, but only in the Android device I can't seem to send the data to the your servers. Both inside Unity and iOS devices are working fine.

    I am not using any "external" manifest file in my project, just the one created by Unity.

    I agree with you that this problem shouldn't happen. Maybe I am missing some tweak.
     
  46. CrowbarSka

    CrowbarSka

    Joined:
    Dec 15, 2009
    Posts:
    192
    I've been using Lumos for my game Luminesca and just wanted to say how useful it is and very easy to set up.

    If I could add one thing it would be the ability to see individual player entries and all their corresponding data logs. This way if I choose to track things like framerate I would be able to see what kind of framerates correspond to particular hardware setups.

    Other than that it's excellent. Great work for a free product!
     
  47. matthewminer

    matthewminer

    Joined:
    Aug 29, 2005
    Posts:
    331
    Try calling Lumos.debug = true; in an Awake function. This will show the content of the requests and the response (if there is one) from the server. This might give clues as to why it's not working. Otherwise I'm a bit stumped; it's odd that the problem is Android-only.

    Thanks for the suggestion. Measuring frame rate might be a useful feature on its own. We were considering a system where frame rate dips below a certain threshold (say, < 30 fps) would be recorded. Would you find this sort of thing useful?
     
  48. Rafael-Costa

    Rafael-Costa

    Joined:
    Jul 7, 2012
    Posts:
    14
    Well, good news. I debugged the game in ABD Logcat and saw that I needed another permission to send the data. Lumos needs to check the Network status so you need this permission on AndroidManifest.xml:

    Code (csharp):
    1. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    This permission is not set automatically by Unity, so I created a new AndroidManifest.xml to be used by the project. Here it is: (I hope that helps more people with the same problem)

    Code (csharp):
    1.  
    2. <?xml version="1.0" encoding="utf-8"?>
    3. <manifest
    4.     xmlns:android="http://schemas.android.com/apk/res/android"
    5.     package="com.unity3d.player"
    6.     android:installLocation="preferExternal"
    7.     android:versionCode="1"
    8.     android:versionName="1.0">
    9.     <supports-screens
    10.         android:smallScreens="true"
    11.         android:normalScreens="true"
    12.         android:largeScreens="true"
    13.         android:xlargeScreens="true"
    14.         android:anyDensity="true"/>
    15.  
    16.     <application
    17.         android:icon="@drawable/app_icon"
    18.         android:label="@string/app_name"
    19.         android:debuggable="true">
    20.         <activity android:name="com.unity3d.player.UnityPlayerProxyActivity"
    21.                   android:label="@string/app_name"
    22.                   android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
    23.             <intent-filter>
    24.                 <action android:name="android.intent.action.MAIN" />
    25.                 <category android:name="android.intent.category.LAUNCHER" />
    26.             </intent-filter>
    27.         </activity>
    28.         <activity android:name="com.unity3d.player.UnityPlayerActivity"
    29.                   android:label="@string/app_name"
    30.                   android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
    31.         </activity>
    32.         <activity android:name="com.unity3d.player.UnityPlayerNativeActivity"
    33.                   android:label="@string/app_name"
    34.                   android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
    35.             <meta-data android:name="android.app.lib_name" android:value="unity" />
    36.             <meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="false" />
    37.         </activity>
    38.     </application>
    39.    
    40.     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    41.     <uses-permission android:name="android.permission.INTERNET" />
    42.  
    43. </manifest>
    44.  
    Just put this new XML file under: Assets/Plugins/Android and live Happily Ever After.

    I'd like to thank you for your great support and once again to build this great tool.
     
  49. matthewminer

    matthewminer

    Joined:
    Aug 29, 2005
    Posts:
    331
    That's good to know. I'm happy you found a solution, that'll be useful for other Android developers experiencing connectivity issues.
     
  50. SteveJ

    SteveJ

    Joined:
    Mar 26, 2010
    Posts:
    3,085
    First of all, loving Lumos.

    I must say though that your prefab definitely seems to have some issues. I've just put Lumos into a second game and once again struggled with the prefab. It just won't remember settings (including the secret key), and it also doesn't seem to "DontDestroyOnLoad". On both projects, I've ended up creating an empty GameObject, adding Lumos.cs, and adding my own DoNotDestroy.cs. At that point it all works.

    Just something to look at for your next release.