Unreal integration makes no sense
under review
Sergio Garces
I just spent an afternoon trying to get the Unreal integration to work.
To be clear, I'm installing from GitHub (which already had issues because if you try to download the Source.zip from releases, the big .lib file isn't there, instead you get the LFS stub). I'm using UE5.4.4 and C++ (not Blueprints).
I almost gave up, but I dug into the issues and here's what I found.
The instructions from https://docs.gameanalytics.com/integrations/sdk/unreal seem to indicate that GameAnalytics acts as an analytics provide for Unreal. This sounds great, except that Unreal doesn't run analytics provider in non-editor builds - so game/cooked builds wouldn't work properly. This is obvious if you look at the function "void FEngineAnalytics::Initialize()" in "EngineAnalytics.cpp" (this is Unreal's code).
As a result, simply calling UGameAnalytics::initialize as the instructions indicate is insufficient, and the analytics engine is misconfigured.
Besides, all the configuration that exists in the Project Settings is completely ignored, because it's only accessed when a session is started using the analytics provider interface.
It was also very inconvenient that the SDK-CPP lib came in binary format, preventing me from debugging it and figuring out the issue much faster. I even had to modify the integration to add a log handler to understand why some events (resource) were not being sent correctly.
Overall, I'm disappointed by the integration process. I don't know if going with Blueprints would've been better - though it that still relies on the analytics provider interface I doubt it.
My advice would've been to essentially expose a very thin interface over the CPP lib, just transforming from FString to char*, and then make those available to Blueprints as static functions. The module already handles Startup and Shutdown, so integration could be seamless.
Nicky Toma
under review
Nicky Toma
Hi Sergio! Apologies for the inconvenience and thank you for the detailed feedback! Has already sparked some conversations internally.
If you'd like and have the time, we would love to set up a meeting to talk about some of our plans regarding this, and also you could ask any questions that you're having difficulties with!
Let me know if you'd want to set up a meeting!