Using GameAnalytics (Retention and Monetisation) (Ez mode)

Not sure if GameAnalytics.com has changed things on their end, but some of your above examples do not work when using the arguments with colons.

For example, these do not work since the last argument has a colon in it:

Analytics.RecordTransaction(Player,  500,  "Pet:Dragon")

Analytics.RecordResource(Player, 100, “Sink”, “Gold”, “Boost”, “Rainbow:Big”)

It seems that only custom (design) events accept the colon notation, as in your example in the Sending Other Events section.

@DeepBlueNoSpace

It keeps printing Submit events failed due to 400 BAD_REQUEST.

Analytics_Module.RecordResource(plr,x,'Sink','Cash','Cosmetics','Pet:'..Name)

when I removed “:” it didn’t error…

You put a space at the 'Pet: ' part. The OP said to not put a space or it will break.

Where’s the space?

'Pet:'..Name

I’m sure that I didn’t added a space, I read the OP.

Woops I misread it. I thought there was a space there. Sorry for the inconvinience! :frowning:

When testing in studio, I noticed the game stutters when the game analytics sends out the events. Should I be concerned about this? Does this happen in a live game?

That would be the message encryption in action. I’m not sure why it’s so expensive, but it is. It will only be the server freezing up for ~0.5-1 second, so your clients probably won’t notice.

1 Like

This might be a stupid question but for the SendWait variable in the Analytics module, how long should it be for actual games?

I’ve left mine at around 300 seconds however, my game is beginning to lag and I’m guessing it might because of this value so I was wondering what your SendWait variables are.

Sorry for the bump :c

1 Like

For anyone looking at this now like I am, GameAnalytics now provides a built in Roblox SDK pack, just scroll to the bottom in the SDK list.

1 Like

It’s also easier to use and provides you with in-depth instructions to using it.

1 Like

I don’t think so, source? AFAIK they do not sell the actual data but generate industry-wide reports.

EDIT: here’s a statement by someone who works at GameAnalytics: Link to official GameAnalytics Roblox SDK - #18 by sdk_ga

4 Likes

Thats not what it says, it says they may. I’m inclined to believe their statement on it, and I think this was just added so they have the ability to change business model.

REGARDLESS, the costs of having your anonymised data sent off to someone is very low, and is far outweighed by the benefits of proper analytics. They’re GDPR compliant, so they definitely won’t be sending off specific user data

1 Like

For the record, large customer data platforms, cloud analytics platforms, and mobile application telemetry apis all have privacy policies like that @TheAviator01. It wouldn’t surprise me that GameAnalytics has something similar. This is just a legal disclaimer for the fact that they may utilize third-party customer data processing apis which likely could be used to track or inform advertisers or vendors.

For comparison’s sake, any Android or iOS mobile application can choose to track IDFA/IDFV data about consumers that persists across app sessions and can be used (legally or illegally) to inform 3rd parties. You’d be surprised what GDPR, HIPAA, and other data privacy compliant platforms could do with your information. I’d not be any more concerned about GameAnalytics than I would be about Clash of Clans or Roblox itself.

2 Likes

Just now seeing this. Nice module.

I have one question. What would I do if I have a sink/source that involves two currencies at the same time? My game has two currencies and some transactions take both at the same time.

Im getting this error:

14:31:44.409 - AnnotateEvent is not a valid member of ReplicatedStorage
14:31:44.410 - Stack Begin
14:31:44.410 - Script ‘ReplicatedStorage.Analytics.AnalyticsModule’, Line 442 - function ClientInit
14:31:44.411 - Script ‘Players.hisokachan.PlayerScripts.Analytics.LocalScript’, Line 2
14:31:44.411 - Stack End

All I’ve done is make a folder in RepStorage and PlayerScripts and copied the code from the guide. The player script is a local script btw.

Any thoughts?

I was attempting to Initiate the module from Replicated Storage which doesn’t run scripts therefore the module wasn’t running. I fixed this issue by moving my main init script to ServerScriptService

I’m now getting this error several times after I join the game

15:15:28.512 - ReplicatedStorage.Analytics.AnalyticsModule:244: attempt to index nil with ‘Name’
15:15:28.513 - Stack Begin
15:15:28.513 - Script ‘ReplicatedStorage.Analytics.AnalyticsModule’, Line 244 - function AnnotateEvent
15:15:28.515 - Script ‘ReplicatedStorage.Analytics.AnalyticsModule’, Line 141 - function AddToEventQueue
15:15:28.516 - Script ‘ReplicatedStorage.Analytics.AnalyticsModule’, Line 338
15:15:28.517 - Stack End
15:15:28.520 - Maximum event re-entrancy depth exceeded for ScriptContext.Error

By the way, GameAnalytics has a Roblox SDK! You don’t even have to use a custom module!

Its custom SDK doesn’t work last time I checked - at all!

Whenever I’ve used their Roblox SDK it’s worked fine. Are you only testing in Studio? When in Studio requests are sent to the sandbox API, not the production API.