Search Unity

  1. Check out the Unite LA keynote for updates on the Visual Effect Editor, the FPS Sample, ECS, Unity for Film and more! Watch it now!
    Dismiss Notice
  2. The Unity Pro & Visual Studio Professional Bundle gives you the tools you need to develop faster & collaborate more efficiently. Learn more.
    Dismiss Notice
  3. Improved Prefab workflow (includes Nested Prefabs!), 2D isometric Tilemap and more! Get the 2018.3 Beta now.
    Dismiss Notice
  4. Want more efficiency in your development work? Sign up to receive weekly tech and creative know-how from Unity experts.
    Dismiss Notice
  5. Improve your Unity skills with a certified instructor in a private, interactive classroom. Watch the overview now.
    Dismiss Notice
  6. Want to see the most recent patch releases? Take a peek at the patch release page.
    Dismiss Notice

Unity Analytics Heatmaps: Official Thread

Discussion in 'Unity Analytics' started by marc_tanenbaum, Sep 30, 2015.

  1. marc_tanenbaum

    marc_tanenbaum

    Unity Technologies

    Joined:
    Oct 22, 2014
    Posts:
    320


    This is the official discussion thread for Analytics Heatmaps.

    [UPDATE]
    UPDATE: May 18, 2017
    Hey all! Quick note that you can now turn on heatmaps yourself on your dashboard config page. And, during the month of May only, we're letting everyone – regardless of license – activate heatmaps! Once activated for a project, you get to keep it forever.
    [/UPDATE]

    The project is now live and we invite you to get mapping. Here's what you need to know:
    1. Sign up if you haven't already.
    2. We'll switch on raw data for your project. (This can take a day or two...there's a human step involved)
    3. Download the repo at https://bitbucket.org/Unity-Technologies/heatmaps
    4. Read and follow the documentation at: https://bitbucket.org/Unity-Technologies/heatmaps/wiki/Home
    Let us know here if anything's not working, or if there's something more you'd like to see!

    Here's a presentation from Unite Boston on Heatmaps and the general use of custom events...

     
    Last edited: May 18, 2017
    ilm126 and yebow like this.
  2. MattCarr

    MattCarr

    Joined:
    Jul 5, 2009
    Posts:
    224
    After referencing the potentially high data usage of heatmaps, the documentation states "Your app should send heatmap data ONLY for development builds.".

    Is the intention that heatmap commands should not currently be included in any release version of a game regardless of how often they'd be sent? Considering I haven't seen this referenced elsewhere, I'm assuming maybe that part of the docs is out of date and from an earlier (e.g. alpha) release?
     
  3. marc_tanenbaum

    marc_tanenbaum

    Unity Technologies

    Joined:
    Oct 22, 2014
    Posts:
    320
    No, that's current (and was mentioned both in the previously released Google doc and in my presentation at Unite). In theory, we can handle an awful lot of events...but we're being cautious and watching for potential pitfalls/breakages.

    There will hopefully come a day when we allow you to proceed with reckless abandon and heatmap everything you like. For now, though, we're asking you to limit heatmap activities to pre-release (essentially, your test users). If you have a case where you think you really need heatmaps in your live product, talk to us and we'll see what we can do. But let's be a little careful until we see what this baby can do. :)
     
  4. MattCarr

    MattCarr

    Joined:
    Jul 5, 2009
    Posts:
    224
    Ok, all good. I watched the Unite presentation and am generally well informed about things like this, but for whatever reason I wasn't aware of that until I was reading through the docs. It might be worth mentioning it more visibly.
     
  5. marc_tanenbaum

    marc_tanenbaum

    Unity Technologies

    Joined:
    Oct 22, 2014
    Posts:
    320
    Possibly you just saw the keynote (or were you at the conference)? I'm eagerly awaiting the release of the Unite video where I went fairly deep on heatmaps, but AFAIK it hasn't been released yet. John Cheng did a quick intro during the keynote which probably didn't highlight this point.

    I'll ask about highlighting the point in the docs...the thing is that there are probably lots of points we should highlight. As the guy who built it, I want to highlight everything. ;)
     
  6. sethillgard

    sethillgard

    Joined:
    Feb 23, 2013
    Posts:
    3
    Hi Marc,

    I wanted to talk to you at Unite, but couldn't find you.

    I think this is great, just have a suggestion. Heatmaps are most useful when metadata is attached to them, not just the size or the number of events, but rather, other things, like cause of death, or a velocity vector. We have a powerful gizmo rendering system inside unity, why not use it?

    Why I propose, is that imported data is processed by an editor script (the processor), producing an array of instances of a serializable struct, that may or may not have a position as well as other data, and a renderer, that takes that array and produces gizmos on the editor. The renderer can aggregate groups of nearby points, but it's optional.

    This requires that arbitrary metadata can be added (including more than one vector).

    With this, we could customize colors, render fields of influnce, render velocity vectors, etc.

    What do you think?
     
  7. marc_tanenbaum

    marc_tanenbaum

    Unity Technologies

    Joined:
    Oct 22, 2014
    Posts:
    320
    Hi @sethillgard ... sorry we didn't talk at Unite. Sounds like you have lots of interesting ideas for the project!

    Let's start with this: you can in fact attach arbitrary data to your heatmap events as I mention here. What you can't yet do is apply anything useful with that data in the Heatmapper. Now, obviously by adding the capability to send the data, I'm signaling my intent to help you use it.

    My intention has been to help you aggregate on the arbitrary data. For example, you might send this:

    Code (csharp):
    1.  
    2.     var dict = new Dictionary dict<string, object>();
    3.     dict["level'] = currentLevel;
    4.    UnityAnalyticsHeatmap.HeatmapEvent.Send("PlayerDeath", transform, Time.time, dict);
    5.  
    This would allow you to aggregate on level and see level1 Heatmap.PlayerDeath events separated from level2, level3, etc.

    But it sounds as if you're thinking of something more, and I'm not quite sure I understand what that something is. What specific gizmos are you suggesting and how would the developer access them? Are you thinking of some kind of plugin to the plugin so that a dev could create the gizmo they need? More detail might help me firm this into something actionable. (Also, this is all open source...so if you wanted to create a fork and demonstrate your idea in code, we'd happily look at the pull request!)
     
  8. khan-amil

    khan-amil

    Joined:
    Mar 29, 2012
    Posts:
    135
    If you're suggesting using gizmos to represent data instead of points drawn by a mesh as it's currently the case, I'm afraid the gizmo system doesn't scale enough for that.
    We have a path tracker in place for our project, and I did the render of the path points with gizmos. It's fine for some playthroug, but it quickly slows down the editor.

    With more options to filter down data, maybe we'd need the possibility of displaying several heatmaps at once, with different colors/materials for each. So you could for example display both the players path and where they dies, with custom icons where they die.
     
  9. sethillgard

    sethillgard

    Joined:
    Feb 23, 2013
    Posts:
    3
    Sorry for the late reply.

    Yeah, I am suggesting a plugin of plugins of sorts. It's not that different from what you currently have so long as we can attach data in that dict, including other vectors. I guess the only real thing I'm suggesting is the ability to have custom scripts go through the heatmap data and render their own stuff, wither on top of the heatmap or replacing it. My whole point about having a 2 step process where we first process the heatmap data and produce "points" (this part of the process takes nearby points and collapses them into a single renderable unit, selects a color, calculates the average of another field that was set in the dict, etc), and a second pass that renders those points (and the data calculated in the previous step) is just a formalization of that.

    @khan-amil, good point. I didn't consider that. Still I think It'd be nice to be able to attach gizmos in certain cases. Maybe not all points have a gizmo, but we could add a gizmo to points where "players used item X", or a vector gizmo where "players's velocity average had a magnitude greater than Y"
     
  10. marc_tanenbaum

    marc_tanenbaum

    Unity Technologies

    Joined:
    Oct 22, 2014
    Posts:
    320
    So over the weekend I added the ability to group on arbitrary data. This code isn't on master yet for a variety of reasons, but it exists and you can now do pretty much what I outlined in my comment to you above. You won't be able to attach a vector per se (and possibly you never will). The Custom Event Dictionary — the real one on which the HeatmapEvent is built — only supports 10 properties and I'm constrained to stay within that limit; I need to train developers never to overflow that limit. If you send position, that's 3 properties. Rotation...that's another 3. Add time and we're already using 7 of 10. To the best of my knowledge, that constraint won't go away anytime soon.

    There's no reason you couldn't dissociate a vector (like velocity) and use that as the remaining three properties. Figuring out a generalizable mechanism that would allow me to add visual markers (as you might want with velocity) might be an interesting idea.

    I'd probably need to go deep on a couple practical cases to fully get this. In the end, I'll get time for these features only if I can demonstrate the value of my extremely limited time to the man upstairs. Feel free to PM me if you like...but what I'm looking for is a very specific case: if I render X on top of the heatmap it will tell me Y. A gizmo that 'points where "players used item X"' is only just so useful...since you could simply render a separate map of that data. Maybe the velocity idea is more the thing.

    I'm honestly not sure how this differs from what we currently do.
     
    sethillgard likes this.
  11. Onsterion

    Onsterion

    Joined:
    Feb 21, 2014
    Posts:
    206
    Hi,

    I add the Heatmaps_Installer.unitypackage and this day my heatmap request are activated and i follow the guide and add the :

    https://analytics.cloud.unity3d.com/api/v1/batches?appid=APP&hash=HASH

    For testing i add the headmap event on click and pass the position:

    UnityAnalyticsHeatmap.HeatmapEvent.Send("MapPoint", pointPosition, pointDictionaryData);

    But do nothing and when i touch in "Fetch and process" i have the follow error:

    NullReferenceException: Object reference not set to an instance of an object
    HeatmapMeshRenderer.RenderHeatmap () (at Assets/Plugins/Heatmaps/Renderer/HeatmapMeshRenderer.cs:171)
    Heatmapper.Update () (at Assets/Editor/Heatmaps/Heatmapper.cs:106)
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:232)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
    UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:187)
    UnityEditor.HostView.Invoke (System.String methodName) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:180)
    UnityEditor.HostView.SendUpdate () (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:245)
    UnityEditor.EditorApplication.Internal_CallUpdateFunctions () (at C:/buildslave/unity/build/artifacts/generated/common/editor/EditorApplicationBindings.gen.cs:270)


    and Points in current and Points currently displayed always is = 0.


    Unity Version: 5.2.1p4
    SO: Windows 10 Pro
     
  12. marc_tanenbaum

    marc_tanenbaum

    Unity Technologies

    Joined:
    Oct 22, 2014
    Posts:
    320
    I can see what's causing the NPE and that fix was just posted. Basically, you're attempting to recolor/manipulate the heatmapper while there's no data in the set. I just put in a test so you can't do that.

    But the real issue for you is that there's no data to display. I've looked at your project and I'm not seeing any HeatmapEvents. Did you check the validator to make sure they're being received? How long ago did you start sending them? It typically takes anywhere from 2-12 hours for raw data to get exported so that it's available to the Heatmapper.
     
  13. Onsterion

    Onsterion

    Joined:
    Feb 21, 2014
    Posts:
    206
    Hi marc_tanenbaum!,

    1- I added the new build and the first error does not appear.

    2- Not passed 12 hours . But i have some form to store data in local and than click to show? I select "Local Only" and than "Process" but again :

    Points in current set: 0
    Points currently displayed: 0


    Greetings.-
     
  14. marc_tanenbaum

    marc_tanenbaum

    Unity Technologies

    Joined:
    Oct 22, 2014
    Posts:
    320
    Excellent!

    Well, "Local only" is precisely that: it prevents the heatmapper from contacting the server. This speeds you up when you know your local data cache is up-to-date. But it has absolutely nothing to do with sending heatmap data. As I wrote in the documentation:

    So please (1) confirm that your HeatmapEvents are showing up in the validator, and (2) give it a few more hours and try again. The data will be there, but data processing takes some time.
     
  15. Onsterion

    Onsterion

    Joined:
    Feb 21, 2014
    Posts:
    206
    I can't see the documentation : https://bitbucket.org/Unity-Technologies/heatmaps/overview it's down with error 500 :S.

    How can confirm if the HeatmapEvents are showing up in the validator? In the case if not showing what can i do?

    Greetings.-
     
  16. marc_tanenbaum

    marc_tanenbaum

    Unity Technologies

    Joined:
    Oct 22, 2014
    Posts:
    320
  17. Onsterion

    Onsterion

    Joined:
    Feb 21, 2014
    Posts:
    206
  18. BFS-Kyle

    BFS-Kyle

    Joined:
    Jun 12, 2013
    Posts:
    858
    @marc_tanenbaum

    I have been playing around with the heatmaps, and have events being sent and received by the analytics server. But i have issues when trying to load that data. It always returns 0 results.

    I looked into it further, and it seems for me any use of the web downloading processing fails. I had to hack a few places to remove whatever web download functionality was in place and instead use Unity's WWW calls. This was done in RawDataDownloadClient.cs in its DownloadFileAsync function (turned into a synchronous WWW download instead of using WebClient) and also in RawEventClient.cs in the FetchData function (a synchronous WWW download instead of using WebRequest).

    After making these two modifications, data was finally downloading properly and I could see heatmap events.

    This is running on Mac OSX if it makes any difference.
     
  19. marc_tanenbaum

    marc_tanenbaum

    Unity Technologies

    Joined:
    Oct 22, 2014
    Posts:
    320
    Hi @BFS Kyle, thanks for trying out Heatmaps!

    From your description, it sounds as if you're trying to run the Heatmapper at runtime (WWW is runtime only...that's why we don't use it). There's no reason to download the data at runtime. Download and render the mesh without hitting play. You can still hit play after you download if you want to see the map against your runtime setup.
     
  20. BFS-Kyle

    BFS-Kyle

    Joined:
    Jun 12, 2013
    Posts:
    858
    Nope, not loading it at runtime. WWW can still work outside of runtime, you just cant yield it in a coroutine (so it has to be used synchronously). Might just be a weird setup / config on my machine if nobody else is seeing the same issue.

    Just as an example, this is what I changed in RawDataDownloadClient.cs:

    Code (CSharp):
    1. public void DownloadFileAsync(string url, string filePath, CompletionHandler handler)
    2.         {
    3.             this.downloadCompletionHandler = handler;
    4.             //base.DownloadFileAsync(new Uri(url), filePath);
    5.             WWW _WWW = new WWW (url);
    6.  
    7.             Debug.LogError ("Now downloading data from url [" + url + "]...");
    8.  
    9.             while(!_WWW.isDone)
    10.             {
    11.                 if(!string.IsNullOrEmpty(_WWW.error))
    12.                 {
    13.                     Debug.LogError("Error downloading - error is [" + _WWW.error + "] from url [" + url + "].");
    14.                 }
    15.  
    16.                 //Keep waiting for download to finish.
    17.             }
    18.  
    19.             //Save the results
    20.             Debug.LogError ("Finished downloading! Results is [" + _WWW.text + "] from url [" + url + "].");
    21.  
    22.             Debug.LogError ("Saving data to path [" + filePath + "]...");
    23.  
    24.             EditorStorage.SaveString (filePath, _WWW.text);
    25.  
    26.             downloadCompletionHandler (true, "Download complete");
    27.         }
     
  21. Onsterion

    Onsterion

    Joined:
    Feb 21, 2014
    Posts:
    206
    Well a few days have passed and Analytics works fine but the heatmaps still do not work.

    Points in current set: 0
    Points currently displayed: 0

    :(
     
  22. marc_tanenbaum

    marc_tanenbaum

    Unity Technologies

    Joined:
    Oct 22, 2014
    Posts:
    320
    Interesting...not sure what's up with that. We have a fair number of folks using the system and nobody's mentioned this problem so far. It's nothing to do with you being on a Mac (at least not as such), that much I'm sure of, since I've developed it all on a Mac. Could be some sort of firewall/proxy thing I suppose where WWW is handling something we overlooked. If you can give me any more details or insights into how your system might be unusual, I'll investigate further.
     
  23. marc_tanenbaum

    marc_tanenbaum

    Unity Technologies

    Joined:
    Oct 22, 2014
    Posts:
    320
    You're right! That's very odd. I've started an investigation and will let you know what I find. Sorry for the inconvenience.
     
  24. marc_tanenbaum

    marc_tanenbaum

    Unity Technologies

    Joined:
    Oct 22, 2014
    Posts:
    320
    @Onsterion

    So I think I've isolated the issue and it looks as if it's simply down to timing. I.e., you sent events before we had actually enabled raw data on your project, and you don't appear to have sent any events since that time. Please try sending some events again. I think you'll find that the raw data begins to flow within a few hours.

    Apologies for the inconvenience.
     
  25. Onsterion

    Onsterion

    Joined:
    Feb 21, 2014
    Posts:
    206
    No problem i will try again.




    Greetings.-
     
  26. Onsterion

    Onsterion

    Joined:
    Feb 21, 2014
    Posts:
    206
    Well don't work xD.

    My method for send events is:

    Code (CSharp):
    1. Vector3 pointPosition = new Vector3(screenToPosition.x, 1.5f, screenToPosition.z);
    2.         string pointUserName = "Onsterion";
    3.         DateTime pointDateTime = DateTime.Now;
    4.         Dictionary<string, object> pointDictionaryData = new Dictionary<string, object>
    5.         {
    6.             { "pointPosition", pointPosition },
    7.             { "pointUserName", pointUserName },
    8.             { "pointDateTime", pointDateTime }
    9.         };
    10.  
    11.         Analytics.CustomEvent("iBeaconHeatMapPoint", pointDictionaryData);
    12.  
    13.         UnityAnalyticsHeatmap.HeatmapEvent.Send("iBeaconHeatMapPoint", pointPosition, pointDictionaryData);
    When the analytics data appear send success, but the heatmap still don't work :(
     
  27. marc_tanenbaum

    marc_tanenbaum

    Unity Technologies

    Joined:
    Oct 22, 2014
    Posts:
    320
    @Onsterion

    You're not sending valid custom events. If you check the Custom Event validator (on the integration pages) you'll see that the validator has not received an event from your app since October 12.

    Custom Events support three data types: strings, numbers and booleans. So the Dictionary you're sending, which contains the Vector3 pointPosition and a DateTime object inside the pointDictionaryData, will be rejected by our system.

    As a hint: every time you add a new event, use the editor to check the validator, which records events in a matter of seconds. That way you can see instantly whether the events you're sending are being received by our system.

    [EDIT]And out of curiosity, why are you sending BOTH a custom event and a heatmap event at the same time, and both with the same name? No good can come of this. For an example of how to correctly send a HeatmapEvent, please refer to the documentation: https://bitbucket.org/Unity-Technologies/heatmaps/wiki/Step 1: Sending Heatmap Events [EDIT]
     
    Last edited: Oct 20, 2015
  28. Onsterion

    Onsterion

    Joined:
    Feb 21, 2014
    Posts:
    206
    Ups Sorry, now i send new events only with Strings and the new events appear in the validator,so i have to wait a few hours.

    But if i check the "Local only" and then press in "Process" button should not visually appear the recorded events at the time? or any form to see in runtime or in the editor? or the unique way to visualize it is a waiting few hours?


    Greetings.-
     
    Last edited: Oct 20, 2015
  29. marc_tanenbaum

    marc_tanenbaum

    Unity Technologies

    Joined:
    Oct 22, 2014
    Posts:
    320
    "Local only" is a caching mechanism. It instructs the Heatmapper to look ONLY to the cache, rather than checking the server. It has nothing to do with how data is sent. You still have to send the data, have it process through raw data export, then retrieve it.
     
  30. Onsterion

    Onsterion

    Joined:
    Feb 21, 2014
    Posts:
    206
    This day i can see the beautiful heatmaps cubes, thanks marc_tanenbaum. :)
     
    marc_tanenbaum likes this.
  31. mikef

    mikef

    Joined:
    Apr 2, 2009
    Posts:
    54
    Hi, i just downloaded the unity package from bitbucket and i'm getting the following errors after importing:

    Assets/Plugins/Heatmaps/HeatmapEvent.cs(16,52): error CS0234: The type or namespace name `Analytics' does not exist in the namespace `UnityEngine.Cloud'. Are you missing an assembly reference?
    Assets/Plugins/Heatmaps/HeatmapEvent.cs(48,23): error CS0246: The type or namespace name `analyticsResultNamespace' could not be found. Are you missing a using directive or an assembly reference?
    Assets/Plugins/Heatmaps/HeatmapEvent.cs(61,23): error CS0246: The type or namespace name `analyticsResultNamespace' could not be found. Are you missing a using directive or an assembly reference?
    Assets/Plugins/Heatmaps/HeatmapEvent.cs(74,23): error CS0246: The type or namespace name `analyticsResultNamespace' could not be found. Are you missing a using directive or an assembly reference?
    Assets/Plugins/Heatmaps/HeatmapEvent.cs(86,23): error CS0246: The type or namespace name `analyticsResultNamespace' could not be found. Are you missing a using directive or an assembly reference?
    Assets/Plugins/Heatmaps/HeatmapEvent.cs(99,26): error CS0246: The type or namespace name `analyticsResultNamespace' could not be found. Are you missing a using directive or an assembly reference?
    Assets/Plugins/Heatmaps/HeatmapEvent.cs(17,51): error CS0234: The type or namespace name `Analytics' does not exist in the namespace `UnityEngine.Cloud'. Are you missing an assembly reference?

    running unity 5.2.0f3 x86

    Any help would be greatly appreciated, thanks!
     
  32. marc_tanenbaum

    marc_tanenbaum

    Unity Technologies

    Joined:
    Oct 22, 2014
    Posts:
    320
    Thanks for trying out heatmaps! That error tells me that you haven't turned on Analytics i(in the Services Window). When you turn it on, that error will go away.

    Good luck!
     
    Mish likes this.
  33. mikef

    mikef

    Joined:
    Apr 2, 2009
    Posts:
    54
    Thanks for the quick reply, unfortunately i'm still getting the same errors after turning analytics on (was on already, but tried disabling/re-enabling to no avail)
     
  34. marc_tanenbaum

    marc_tanenbaum

    Unity Technologies

    Joined:
    Oct 22, 2014
    Posts:
    320
    Hmmm...what I've explained is the only condition I know of that would give that result. OK, give me some more details about your environment. I take it you're in 5.2? Which OS? I'll see if I can replicate.
     
  35. mikef

    mikef

    Joined:
    Apr 2, 2009
    Posts:
    54
    Yeah running on 5.2.0f3 x86 editor, Windows 7 64bit
     
  36. marc_tanenbaum

    marc_tanenbaum

    Unity Technologies

    Joined:
    Oct 22, 2014
    Posts:
    320
    OK...we're putting together a repro setup to see if we get the same result. In the meantime, please return to this wiki page to ensure you've followed the instructions (there's not a lot to it, so I imagine the answer is yes):
    https://bitbucket.org/Unity-Technologies/heatmaps/wiki/Step 0: Setting up

    You might also try installing into a clean, blank project...just to confirm that it's not something unique to your project. (oh, and please PM me with your Project ID...that might turn out to be useful in the investigation).
     
  37. marc_tanenbaum

    marc_tanenbaum

    Unity Technologies

    Joined:
    Oct 22, 2014
    Posts:
    320
    @mikef
    A member of our team had this insight:

    Code (csharp):
    1.  
    2. The type or namespace name `Analytics' does not exist in the namespace `UnityEngine.Cloud'
    3.  
    This indicates that somehow Unity believes you're on an earlier version than 5.2. That code in HeatmapEvent.cs is specifically #ifdef'd to versions 4.x-5.0. You shouldn't hit it if you're in 5.2. Are you trying to bring an old app forward in version? Any chance that there's a snag that might cause Unity to think you're in something other than 5.2?
     
  38. coltonh

    coltonh

    Joined:
    Sep 15, 2015
    Posts:
    6
    Hi, I am having trouble trying to get heat maps started for my project.

    I got an email after signing up for heat maps, and I have inserted heatmap calls into my project and am seeing these registered as Custom Events in the Data explorer. I am just not finding the data export option in the project explorer, so I am unable to test the analytic visualization in the editor.

    In this post you said to reply to the email that we get with our project and project ID. I did this (even through it is a "noreply" address) and I am still not seeing any options to get exported data?

    Thanks for the help!
     
  39. marc_tanenbaum

    marc_tanenbaum

    Unity Technologies

    Joined:
    Oct 22, 2014
    Posts:
    320
    I need to update that (and will as soon as I finish posting this). We implemented a more automated system, so there's no need to reply (presuming you correctly entered your Project ID).

    Please PM me your project ID. I'll check to make sure we've turned on data export for your app.
     
  40. marc_tanenbaum

    marc_tanenbaum

    Unity Technologies

    Joined:
    Oct 22, 2014
    Posts:
    320
    @coltonh Update: I've just been informed that yours is on the list of activations for today. Should be good-to-go in the next few hours.
     
  41. marc_tanenbaum

    marc_tanenbaum

    Unity Technologies

    Joined:
    Oct 22, 2014
    Posts:
    320
    @coltonh Update #2: Done! You should have an email from us.
     
  42. coltonh

    coltonh

    Joined:
    Sep 15, 2015
    Posts:
    6
    @marc_tanenbaum

    Hey Marc, thanks for the help setting up my account. I was able to see the export option a few hours after your last post.

    Unfortunately I am still not getting any data through the Heatmapper with Fetch and Process. (I am also getting a continuous string of errors when trying to use Cube particle shapes, but just a "No data found.." warning with other particle shapes) I am still seeing 0 points in data set.

    I have double checked my Data Export URL (copy and pasting the entire string into the field in the Heatmapper window) I am also seeing all of my heatmap.[eventname] custom events in data explorer, so the Heatmap.send calls are indeed working.

    Do you have any thoughts or suggestions?
     
  43. marc_tanenbaum

    marc_tanenbaum

    Unity Technologies

    Joined:
    Oct 22, 2014
    Posts:
    320
    @coltonh I can see your heatmap events coming in, so everything's good. The data export function (on which heatmaps relies) takes awhile (sometimes up to a day, though usually far less). Come back to it tomorrow and your data will be there.
     
  44. emplementation

    emplementation

    Joined:
    Mar 9, 2015
    Posts:
    7
  45. marc_tanenbaum

    marc_tanenbaum

    Unity Technologies

    Joined:
    Oct 22, 2014
    Posts:
    320
  46. emplementation

    emplementation

    Joined:
    Mar 9, 2015
    Posts:
    7
    @marc_tanenbaum Thanks. I've just received the email stating that heapmap is enabled on my project. I tried using the URL and "Fetch and Process", but came back with "No data found..." Does it take some time for data to come through?
     
  47. marc_tanenbaum

    marc_tanenbaum

    Unity Technologies

    Joined:
    Oct 22, 2014
    Posts:
    320
    The data export function (on which heatmaps relies) takes awhile (sometimes up to a day, though usually far less). Send some heatmap data, then come back to it tomorrow and your data will be there.
     
  48. Lady-Rei

    Lady-Rei

    Joined:
    Nov 2, 2015
    Posts:
    2
    Hey guys,

    so I'm not sure if I'm in the right spot to post problems like this but I didn't find a better place to do so.

    I'm having a problem rendering the heatmap. That's my best guess at least. For some reason I continuesly get

    "ArgumentOutOfRangeException: Argument is out of range
    Parameter Name: index"

    when I'm trying to fetch and process my data. Like 999+ errors. And the Heatmap isn't showing up.

    I tried purging my data (after backing it up) and reloading the data but then I get a warning that I have no network connection, which obviously is not true.
    After that I pasted the data back into the folder and tried to use local data only but that doesn't work either. It tells me that the data is already downloaded (which is true) and then starts displaying the error messages.

    It worked fine until a few days ago and I don't remember changing anything. What I do remember is taking a look at the heatmap and maximising the player window. After that the HeatMap Renderer didn't let me choose the Events to display anymore which was why I tried to fetch&process the data again. That was when the error showed up the first time and since then I can't view any of the heatmaps anymore.

    I hope someone has got an idea or might be able to link me the right place to ask for help
     
  49. marc_tanenbaum

    marc_tanenbaum

    Unity Technologies

    Joined:
    Oct 22, 2014
    Posts:
    320
    Hi @Lady Rei ... this is a perfectly good place to ask for help! Let's see what we can figure out.

    First, you shouldn't be getting errors like that...so I'll cop to the admission that there's clearly a bug somewhere. That said, your conditions don't quite match the only case of this I've seen.

    It might help for me to look at your data, so please PM me your project ID. In the meantime, here are some thoughts...
    1. Check the date range at the top of the Heatmapper. Make sure the dates include periods where you've actually sent data (shouldn't matter, but just to be sure we have data to render).
    2. Try jiggling the controls in the Render section, particularly time and particle size. The one similar bug I've been previously informed of was fixed by doing this (presumably there's some default setting involved...I'm guessing it leaves us dividing by zero somewhere).
    3. Look at your scene hierarchy. Do you see more than one GameObject named "UnityAnalytics__Heatmap"? Delete them all and try rendering again.
    4. Try uninstalling and re-installing the Heatmapper.
    I'll try to think of other possible causes, but let me know if any of these workarounds gets you unstuck.
     
    mpinol likes this.
  50. Lady-Rei

    Lady-Rei

    Joined:
    Nov 2, 2015
    Posts:
    2
    @marc_tanenbaum Thanks for the suggestions!

    Jiggling the control for time did the trick!
    It seems that after resizing the player window back to normal and re-processing the data the time variable gets messed up a bit. I am able to reproduce the problem by doing just that and the fix by changing the end time.

    So I'm guessing you won't need the project ID anymore, do you?
     
    marc_tanenbaum likes this.