UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Analytics.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
8#include "CoreGlobals.h"
9#include "CoreMinimal.h"
10#include "Delegates/Delegate.h"
11#include "HAL/Platform.h"
12#include "Logging/LogMacros.h"
13#include "Misc/ConfigCacheIni.h"
17#include "UObject/NameTypes.h"
18
20
23
38{
39 //--------------------------------------------------------------------------
40 // Module functionality
41 //--------------------------------------------------------------------------
42public:
43 FAnalytics();
44 virtual ~FAnalytics();
45
52 static inline FAnalytics& Get()
53 {
54 return FModuleManager::LoadModuleChecked< FAnalytics >( "Analytics" );
55 }
56
62 static inline bool IsAvailable()
63 {
64 return FModuleManager::Get().IsModuleLoaded( "Analytics" );
65 }
66
67 //--------------------------------------------------------------------------
68 // Provider Factory functions.
69 //--------------------------------------------------------------------------
70public:
78
87 {
88 FAnalytics::ConfigFromIni AnalyticsConfig; // configure using the default INI sections.
89 return FAnalytics::Get().CreateAnalyticsProvider( // call the factory function
90 FAnalytics::ConfigFromIni::GetDefaultProviderModuleName(), // use the default config to find the provider name
91 FAnalyticsProviderConfigurationDelegate::CreateRaw( // bind to the delegate using default INI sections
92 &AnalyticsConfig, // use default INI config sections
94 }
95
96 //--------------------------------------------------------------------------
97 // Configuration helper classes and methods
98 //--------------------------------------------------------------------------
99public:
107 {
121
128
130 ConfigFromIni(const FString& InIniName, const FString& InSectionName)
133 {
134 }
135
149
151 FString GetValue(const FString& KeyName, bool bIsRequired) const
152 {
153 return FAnalytics::Get().GetConfigValueFromIni(IniName, SectionName, KeyName, bIsRequired);
154 }
155
163 {
164 FString ProviderModuleName;
165 GConfig->GetString(TEXT("Analytics"), TEXT("ProviderModuleName"), ProviderModuleName, GEngineIni);
166 return FName(*ProviderModuleName);
167 }
168
171 {
173 ? TEXT("Analytics")
175 ? TEXT("AnalyticsDebug")
177 ? TEXT("AnalyticsTest")
178 : TEXT("AnalyticsDevelopment");
179 }
180
182 FString IniName;
184 FString SectionName;
185 };
186
191 virtual FString GetConfigValueFromIni(const FString& IniName, const FString& SectionName, const FString& KeyName, bool bIsRequired);
192
196 virtual void WriteConfigValueToIni(const FString& IniName, const FString& SectionName, const FString& KeyName, const FString& Value);
197
198private:
199 virtual void StartupModule() override;
200 virtual void ShutdownModule() override;
201};
EAnalyticsBuildType
Definition AnalyticsBuildType.h:9
ANALYTICS_API EAnalyticsBuildType GetAnalyticsBuildType()
Definition Analytics.cpp:73
FString GEngineIni
Definition CoreGlobals.cpp:237
FConfigCacheIni * GConfig
Definition CoreGlobals.cpp:54
#define TEXT(x)
Definition Platform.h:1272
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
DIRECTLINK_API Display
Definition DirectLinkLog.h:8
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
Definition Analytics.h:38
virtual TSharedPtr< IAnalyticsTracer > CreateAnalyticsTracer()
Definition Analytics.cpp:44
virtual void WriteConfigValueToIni(const FString &IniName, const FString &SectionName, const FString &KeyName, const FString &Value)
Definition Analytics.cpp:59
static FAnalytics & Get()
Definition Analytics.h:52
virtual FString GetConfigValueFromIni(const FString &IniName, const FString &SectionName, const FString &KeyName, bool bIsRequired)
Definition Analytics.cpp:49
virtual TSharedPtr< IAnalyticsProvider > GetDefaultConfiguredProvider()
Definition Analytics.h:86
virtual TSharedPtr< IAnalyticsProvider > CreateAnalyticsProvider(const FName &ProviderModuleName, const FAnalyticsProviderConfigurationDelegate &GetConfigValue)
Definition Analytics.cpp:21
virtual ~FAnalytics()
Definition Analytics.cpp:16
FAnalytics()
Definition Analytics.cpp:12
static bool IsAvailable()
Definition Analytics.h:62
CORE_API bool GetString(const TCHAR *Section, const TCHAR *Key, FString &Value, const FString &Filename)
Definition ConfigCacheIni.cpp:4649
CORE_API bool IsModuleLoaded(const FName InModuleName) const
Definition ModuleManager.cpp:347
static CORE_API FModuleManager & Get()
Definition ModuleManager.cpp:199
Definition NameTypes.h:617
Definition IAnalyticsProvider.h:52
Definition IAnalyticsTracer.h:77
Definition ModuleInterface.h:14
Definition SharedPointer.h:692
Definition Analytics.h:107
FString IniName
Definition Analytics.h:182
ConfigFromIni()
Definition Analytics.h:116
void SetSectionNameByBuildType(EAnalyticsBuildType InBuildType)
Definition Analytics.h:170
ConfigFromIni(EAnalyticsBuildType InBuildType)
Definition Analytics.h:123
static FName GetDefaultProviderModuleName()
Definition Analytics.h:162
FString GetValue(const FString &KeyName, bool bIsRequired) const
Definition Analytics.h:151
FString SectionName
Definition Analytics.h:184
ConfigFromIni(const FString &InIniName, const FString &InSectionName)
Definition Analytics.h:130
ConfigFromIni(const FString &InIniName, const FString &SectionNameDevelopment, const FString &SectionNameDebug, const FString &SectionNameTest, const FString &SectionNameRelease)
Definition Analytics.h:137