Analytic Devices Reporting Impossibly High Values

Please select what you are reporting on:

Creative

What Type of Bug are you experiencing?

Creator Portal

Summary

When using analytic devices in our maps, we are having impossibly high values reported in the analytics, based on the total number of players during the measured time.

For example, using this code to use an analytic device to estimate total number of plays:

analytics_manager:= class(creative_device):
@editable PlayerJoinedOnceAnalytic : analytics_device = analytics_device{}

OnBegin<override>()<suspends>:void=
    GetPlayspace().PlayerAddedEvent().Subscribe(OnPlayerJoinedServer) 

OnPlayerJoinedServer(Player:player):void=
    PlayerJoinedOnceAnalytic.Submit(Player)

The analytics on this device will report 3x more activations that the total number of players who played the map within that timeframe. You would expect these numbers to be equal. There are days where the analytics will be slightly closer to the total number of players reported, but it always exceeds it.

We see the results of this strange behavior on other analytics as well, saying the average player purchased relatively expensive items 60+ times, which is just impossible.

Hopefully this example helps demonstrate that analytic activations are being counted multiple times when displayed to the creator portal.

Steps to Reproduce

  1. Have analytic device in map, using the following code:
    analytics_manager:= class(creative_device):
    @editable PlayerJoinedOnceAnalytic : analytics_device = analytics_device{}

    OnBegin():void=
    GetPlayspace().PlayerAddedEvent().Subscribe(OnPlayerJoinedServer)

    OnPlayerJoinedServer(Player:player):void=
    PlayerJoinedOnceAnalytic.Submit(Player)

  2. Let map accumulate data

  3. Review analytics in creator portal

  4. Observe analytic activation 3x or more activations than plays

Expected Result

Analytic devices using the following code:

analytics_manager:= class(creative_device):
@editable PlayerJoinedOnceAnalytic : analytics_device = analytics_device{}

OnBegin<override>()<suspends>:void=
    GetPlayspace().PlayerAddedEvent().Subscribe(OnPlayerJoinedServer) 

OnPlayerJoinedServer(Player:player):void=
    PlayerJoinedOnceAnalytic.Submit(Player)

Reports the same number of activations as plays in the creator portal

Observed Result

Analytic devices using the following code:

analytics_manager:= class(creative_device):
@editable PlayerJoinedOnceAnalytic : analytics_device = analytics_device{}

OnBegin<override>()<suspends>:void=
    GetPlayspace().PlayerAddedEvent().Subscribe(OnPlayerJoinedServer) 

OnPlayerJoinedServer(Player:player):void=
    PlayerJoinedOnceAnalytic.Submit(Player)

Reports 3x or more activations as plays in the creator portal

Platform(s)

All / N/A

Additional Notes

Hopefully this example helps demonstrate that analytic activations are being counted multiple times when displayed to the creator portal. This makes analytic devices effectively useless, as the data is not reliable.

The status of FORT-774292 incident has been moved from ‘Needs Triage’ to ‘To Do’.

Any update on this issue?