UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
IAnalyticsProvider.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
7
8class Error;
9
16{
17 Cached,
19};
20
22
52{
53public:
69
75 virtual bool StartSession(const TArray<FAnalyticsEventAttribute>& Attributes) = 0;
76
86
93 bool StartSession(const FString& ParamName, const FString& ParamValue)
94 {
96 }
97
101 virtual void EndSession() = 0;
102
106 virtual FString GetSessionID() const = 0;
107
114 virtual bool SetSessionID(const FString& InSessionID) = 0;
115
122 virtual void FlushEvents() = 0;
123
130 virtual void SetUserID(const FString& InUserID) = 0;
131
136 virtual FString GetUserID() const = 0;
137
138
145
150
157
164 virtual FAnalyticsEventAttribute GetDefaultEventAttribute(int AttributeIndex) const = 0;
165
169 virtual void SetBuildInfo(const FString& InBuildInfo)
170 {
172 }
173
177 virtual void SetGender(const FString& InGender)
178 {
180 }
181
185 virtual void SetLocation(const FString& InLocation)
186 {
188 }
189
193 virtual void SetAge(const int32 InAge)
194 {
196 }
197
204 virtual void RecordEvent(const FString& EventName, const TArray<FAnalyticsEventAttribute>& Attributes) = 0;
205
213 virtual void RecordEvent(const FString& EventName, const TArray<FAnalyticsEventAttribute>& Attributes, EAnalyticsRecordEventMode Mode)
214 {
215 RecordEvent(EventName, Attributes);
216 }
217
223 void RecordEvent(const FString& EventName)
224 {
226 }
227
234 void RecordEvent(const FString& EventName, const FAnalyticsEventAttribute& Attribute)
235 {
237 }
238
246 void RecordEvent(const FString& EventName, const FString& ParamName, const FString& ParamValue)
247 {
248 RecordEvent(EventName, TArray<FAnalyticsEventAttribute> { FAnalyticsEventAttribute(ParamName, ParamValue) });
249 }
250
262 virtual void RecordItemPurchase(const FString& ItemId, const FString& Currency, int PerItemCost, int ItemQuantity)
263 {
265 Params.Add(FAnalyticsEventAttribute(TEXT("Currency"), Currency));
266 Params.Add(FAnalyticsEventAttribute(TEXT("PerItemCost"), PerItemCost));
267 RecordItemPurchase(ItemId, ItemQuantity, Params);
268 }
269
280 virtual void RecordItemPurchase(const FString& ItemId, int ItemQuantity, const TArray<FAnalyticsEventAttribute>& EventAttrs)
281 {
283 Params.Add(FAnalyticsEventAttribute(TEXT("ItemId"), ItemId));
284 Params.Add(FAnalyticsEventAttribute(TEXT("ItemQuantity"), ItemQuantity));
285 RecordEvent(TEXT("Item Purchase"), Params);
286 }
287
297 void RecordItemPurchase(const FString& ItemId, int ItemQuantity)
298 {
300 }
301
314 virtual void RecordCurrencyPurchase(const FString& GameCurrencyType, int GameCurrencyAmount, const FString& RealCurrencyType, float RealMoneyCost, const FString& PaymentProvider)
315 {
317 Params.Add(FAnalyticsEventAttribute(TEXT("RealCurrencyType"), RealCurrencyType));
318 Params.Add(FAnalyticsEventAttribute(TEXT("RealMoneyCost"), RealMoneyCost));
319 Params.Add(FAnalyticsEventAttribute(TEXT("PaymentProvider"), PaymentProvider));
321 }
322
334 {
336 Params.Add(FAnalyticsEventAttribute(TEXT("GameCurrencyType"), GameCurrencyType));
337 Params.Add(FAnalyticsEventAttribute(TEXT("GameCurrencyAmount"), GameCurrencyAmount));
338 RecordEvent(TEXT("Currency Purchase"), Params);
339 }
340
354
368
380 {
382 Params.Add(FAnalyticsEventAttribute(TEXT("GameCurrencyType"), GameCurrencyType));
383 Params.Add(FAnalyticsEventAttribute(TEXT("GameCurrencyAmount"), GameCurrencyAmount));
384 RecordEvent(TEXT("Currency Given"), Params);
385 }
386
397 {
399 Params.Add(FAnalyticsEventAttribute(TEXT("Error"), *Error));
400 RecordEvent(TEXT("Game Error"), Params);
401 }
402
411 virtual void RecordError(const FString& Error)
412 {
414 }
415
425 {
427 Params.Add(FAnalyticsEventAttribute(TEXT("ProgressType"), *ProgressType));
428 FString Hierarchy;
429 // Build a dotted hierarchy string from the list of hierarchy progress
430 for (int32 Index = 0; Index < ProgressHierarchy.Num(); Index++)
431 {
433 if (Index + 1 < ProgressHierarchy.Num())
434 {
435 Hierarchy += TEXT(".");
436 }
437 }
438 Params.Add(FAnalyticsEventAttribute(TEXT("ProgressHierarchy"), *Hierarchy));
439 RecordEvent(TEXT("Progression"), Params);
440 }
441
456
471
473
474protected:
475
476};
477
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EAnalyticsRecordEventMode
Definition IAnalyticsProvider.h:16
const TCHAR * LexToString(EAnalyticsRecordEventMode Mode)
Definition IAnalyticsProvider.cpp:5
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition IAnalyticsProvider.h:52
virtual void RecordItemPurchase(const FString &ItemId, int ItemQuantity, const TArray< FAnalyticsEventAttribute > &EventAttrs)
Definition IAnalyticsProvider.h:280
bool StartSession()
Definition IAnalyticsProvider.h:65
void RecordEvent(const FString &EventName, const FAnalyticsEventAttribute &Attribute)
Definition IAnalyticsProvider.h:234
virtual void SetGender(const FString &InGender)
Definition IAnalyticsProvider.h:177
virtual void RecordCurrencyGiven(const FString &GameCurrencyType, int GameCurrencyAmount)
Definition IAnalyticsProvider.h:364
virtual void RecordCurrencyPurchase(const FString &GameCurrencyType, int GameCurrencyAmount)
Definition IAnalyticsProvider.h:350
virtual bool SetSessionID(const FString &InSessionID)=0
virtual void RecordItemPurchase(const FString &ItemId, const FString &Currency, int PerItemCost, int ItemQuantity)
Definition IAnalyticsProvider.h:262
bool StartSession(const FAnalyticsEventAttribute &Attribute)
Definition IAnalyticsProvider.h:82
virtual void RecordError(const FString &Error)
Definition IAnalyticsProvider.h:411
virtual void FlushEvents()=0
virtual FString GetSessionID() const =0
void RecordItemPurchase(const FString &ItemId, int ItemQuantity)
Definition IAnalyticsProvider.h:297
virtual void SetBuildInfo(const FString &InBuildInfo)
Definition IAnalyticsProvider.h:169
bool StartSession(const FString &ParamName, const FString &ParamValue)
Definition IAnalyticsProvider.h:93
virtual void SetLocation(const FString &InLocation)
Definition IAnalyticsProvider.h:185
virtual void SetAge(const int32 InAge)
Definition IAnalyticsProvider.h:193
virtual void RecordCurrencyPurchase(const FString &GameCurrencyType, int GameCurrencyAmount, const FString &RealCurrencyType, float RealMoneyCost, const FString &PaymentProvider)
Definition IAnalyticsProvider.h:314
virtual void EndSession()=0
virtual void RecordEvent(const FString &EventName, const TArray< FAnalyticsEventAttribute > &Attributes, EAnalyticsRecordEventMode Mode)
Definition IAnalyticsProvider.h:213
virtual FAnalyticsEventAttribute GetDefaultEventAttribute(int AttributeIndex) const =0
virtual void RecordError(const FString &Error, const TArray< FAnalyticsEventAttribute > &EventAttrs)
Definition IAnalyticsProvider.h:396
virtual void SetDefaultEventAttributes(TArray< FAnalyticsEventAttribute > &&Attributes)=0
virtual void SetUserID(const FString &InUserID)=0
virtual ~IAnalyticsProvider()
Definition IAnalyticsProvider.h:472
virtual bool StartSession(const TArray< FAnalyticsEventAttribute > &Attributes)=0
virtual TArray< FAnalyticsEventAttribute > GetDefaultEventAttributesSafe() const =0
void RecordEvent(const FString &EventName, const FString &ParamName, const FString &ParamValue)
Definition IAnalyticsProvider.h:246
virtual int32 GetDefaultEventAttributeCount() const =0
virtual FString GetUserID() const =0
virtual void RecordCurrencyPurchase(const FString &GameCurrencyType, int GameCurrencyAmount, const TArray< FAnalyticsEventAttribute > &EventAttrs)
Definition IAnalyticsProvider.h:333
virtual void RecordProgress(const FString &ProgressType, const TArray< FString > &ProgressHierarchy, const TArray< FAnalyticsEventAttribute > &EventAttrs)
Definition IAnalyticsProvider.h:424
virtual void RecordCurrencyGiven(const FString &GameCurrencyType, int GameCurrencyAmount, const TArray< FAnalyticsEventAttribute > &EventAttrs)
Definition IAnalyticsProvider.h:379
virtual void RecordProgress(const FString &ProgressType, const FString &ProgressHierarchy, const TArray< FAnalyticsEventAttribute > &EventAttrs)
Definition IAnalyticsProvider.h:465
virtual void RecordEvent(const FString &EventName, const TArray< FAnalyticsEventAttribute > &Attributes)=0
void RecordEvent(const FString &EventName)
Definition IAnalyticsProvider.h:223
virtual void RecordProgress(const FString &ProgressType, const FString &ProgressHierarchy)
Definition IAnalyticsProvider.h:450
Definition Array.h:670
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
U16 Index
Definition radfft.cpp:71
Definition AnalyticsEventAttribute.h:48