description: Default value if no APIServer configuration is provided.

module: AnalyticsET


description: Default value if no UploadType is given, and UseDataRouter protocol is specified.


description: KeyName required for APIKey configuration.


description: KeyName required for APIServer configuration.


description: KeyName required for AppVersion configuration.


description: For the the data router backend protocol.


description: Optional parameter to use the legacy backend protocol.


description: Default ctor to ensure all values have their proper default.


description: Ctor exposing common configurables .

code: Config &40; FString InAPIKeyET, FString InAPIServerET, FString InAppVersionET, bool InUseLegacyProtocol, FString InAppEnvironment, FString InUploadType, TArray< FString > InAltApiServers, float InFlushIntervalSec, int32 InMaximumPayloadSize, int32 InPreallocatedPayloadSize &41;


className: Config

description: Defines required configuration values for ET analytics provider. APIKeyET MUST be set. Set APIServerET to an empty string to create a "NULL" analytics provider that will be a valid instance but will suppress sending any events.

code: struct Config

AltAPIServersET

type: TArray<FString...

description: ET Alt API Servers - Base URLs to send events on retry.

APIKeyET

type: FString

description: ET APIKey - Get from your account manager

APIServerET

description: ET API Server - Base URL to send events.

AppEnvironment

description: The AppEnvironment that the data router should use. Defaults to GetDefaultAppEnvironment.

AppVersionET

description: AppVersion - defines the app version passed to the provider.

bDropEventsOnFlushFailure

type: bool

description: When true (default), events are dropped if flush fails

FlushIntervalSec

type: float

description: Maximum time to elapse before forcing events to be flushed.

MaximumPayloadSize

description: Maximum size a payload can reach before we force a flush of the payload.

PreallocatedPayloadSize

description: We preallocate a payload.

RetryLimitCount

description: Maximum number of retries to attempt.

UploadType

description: The UploadType that the data router should use. Defaults to GetDefaultUploadType.

UseLegacyProtocol

description: When true, sends events using the legacy ET protocol that passes all attributes as URL parameters.


description: Construct an ET analytics provider directly from a config object.

code: virtual [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [IAnalyticsProviderET](API\Runtime\AnalyticsET\IAnalyticsProviderET) > CreateAnalyticsProvider ( const [Config](API\Runtime\AnalyticsET\FAnalyticsET\Config) & ConfigValues ) const


description: IAnalyticsProviderModuleinterface. Creates the analytics provider given a configuration delegate. The keys required exactly match the field names in theConfigobject.

code: virtual [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [IAnalyticsProvider](API\Runtime\Analytics\Interfaces\IAnalyticsProvider) > CreateAnalyticsProvider ( const FAnalyticsProviderConfigurationDelegate & GetConfigValue ) const


description:
Singleton-like access to this module's interface. This is just for convenience! Beware of calling this during the shutdown phase, though. Your module might have been unloaded already.
Returns singleton instance, loading the module on demand if needed

code: static [FAnalyticsET](API\Runtime\AnalyticsET\FAnalyticsET) & Get()


className: FAnalyticsET

description: Public implementation of EpicGames.MCP.AnalyticsProvider

code: class FAnalyticsET : public [IAnalyticsProviderModule](API\Runtime\Analytics\Interfaces\IAnalyticsProviderModule)


description: End the flow for the current context and pop the stack

code: bool EndFlow ( bool bSuccess, const [TArray](API\Runtime\Core\Containers\TArray)< [FAnalyticsEventAttribute](API\Runtime\Analytics\FAnalyticsEventAttribute) > & AdditionalAttributes )


description: End an existing flow by name

code: bool EndFlow ( const [FName](API\Runtime\Core\UObject\FName) & FlowName, bool bSuccess, const [TArray](API\Runtime\Core\Containers\TArray)< [FAnalyticsEventAttribute](API\Runtime\Analytics\FAnalyticsEventAttribute) > & AdditionalAttributes )


description: End an bool flow by GUID

code: bool EndFlow ( const [FGuid](API\Runtime\Core\Misc\FGuid) & FlowGuid, bool bSuccess, const [TArray](API\Runtime\Core\Containers\TArray)< [FAnalyticsEventAttribute](API\Runtime\Analytics\FAnalyticsEventAttribute) > & AdditionalAttributes )


description: Ends all open Flows and SubFlows

code: void EndSession()


description: End an existing flow step by name

code: bool EndSubFlow ( const [FName](API\Runtime\Core\UObject\FName) & SubFlowName, bool bSuccess, const [TArray](API\Runtime\Core\Containers\TArray)< [FAnalyticsEventAttribute](API\Runtime\Analytics\FAnalyticsEventAttribute) > & AdditionalAttributes )


description: End an existing flow step by GUID

code: bool EndSubFlow ( const [FGuid](API\Runtime\Core\Misc\FGuid) & SubFlowGuid, bool bSuccess, const [TArray](API\Runtime\Core\Containers\TArray)< [FAnalyticsEventAttribute](API\Runtime\Analytics\FAnalyticsEventAttribute) > & AdditionalAttributes )


description: Sets the analytics provider for the flow tracker.

code: void SetProvider ( [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [IAnalyticsProviderET](API\Runtime\AnalyticsET\IAnalyticsProviderET) > & AnalyticsProvider )


description: Start a new Flow, the existing flow context will be pushed onto a stack and the new flow will become the current context

code: [FGuid](API\Runtime\Core\Misc\FGuid) StartFlow ( const [FName](API\Runtime\Core\UObject\FName) & FlowName )


description: Begins a new flow tracking session. Will emit Flow and SubFlow events to the specified analytics provider

code: void StartSession()


description: Start a new flow and add it to the current flow context

code: [FGuid](API\Runtime\Core\Misc\FGuid) StartSubFlow ( const [FName](API\Runtime\Core\UObject\FName) & SubFlowName )


description: Start a new flow step and add it to a specific flow context by GUID

code: [FGuid](API\Runtime\Core\Misc\FGuid) StartSubFlow ( const [FName](API\Runtime\Core\UObject\FName) & SubFlowName, const [FGuid](API\Runtime\Core\Misc\FGuid) & FlowGuid )


className: FAnalyticsFlowTracker

code: class FAnalyticsFlowTracker : private [FNoncopyable](API\Runtime\Core\Templates\FNoncopyable)


description: Adds a new event to the cache. If the estimated payload size will increase beyond MaximumPayloadSize then a flush will be queued here. This will makeHasFlushesQueued()== true.

code: void AddToCache ( [FString](API\Runtime\Core\Containers\FString) EventName, const [TArray](API\Runtime\Core\Containers\TArray)< [FAnalyticsEventAttribute](API\Runtime\Analytics\FAnalyticsEventAttribute) > & Attributes )


code: void AddToCache ( [FString](API\Runtime\Core\Containers\FString) EventName )


description: Determines whether we have anything we need to flush, either a queued flush or existing events in the payload.

code: bool CanFlush() const


description: the number of default attributes are currently being applied.

code: int32 GetDefaultAttributeCount() const


description: Flushes the cache as a UTF8 char array. Returns a uint8 because that's whatIHttpRequestprefers. If nothing is cached, returns an empty array.

code: [TArray](API\Runtime\Core\Containers\TArray)< uint8 > FlushCacheUTF8()


description:
Range checking is not done, similar toTArray. UseGetDefaultAttributeCount()first!
one attribute of the default attributes so we don't have to copy the entire attribute array.

code: [FAnalyticsEventAttribute](API\Runtime\Analytics\FAnalyticsEventAttribute) GetDefaultAttribute ( int32 AttributeIndex ) const


description: the current array of default attributes.

code: [TArray](API\Runtime\Core\Containers\TArray)< [FAnalyticsEventAttribute](API\Runtime\Analytics\FAnalyticsEventAttribute) > GetDefaultAttributes() const


description: Gets the number of cached events (doesn't include any flushes that are already queued for flush).

code: int GetNumCachedEvents() const


description: Flushes the cache as a string. This method is inefficient because we build up the array directly as UTF8. If nothing is cached, returns an empty string.

code: [FString](API\Runtime\Core\Containers\FString) FlushCache ( SIZE_T * OutEventCount )


description: Lets external code know that there are payloads queued for flush. This happens when AddCache() calls cause the payload size to exceed MaxPayloadSize. Calling code needs to notice this and flush the queue.

code: bool HasFlushesQueued() const


description: Gets the preallocated size of the payload buffer.


code: Lock &40; FAnalyticsProviderETEventCache & EventCache &41;


className: Lock

description: For when you need to take a lock across multiple API calls

code: class Lock


description: Sets the preallocated payload size

code: void SetPreallocatedPayloadSize ( int32 InSetPreallocatedPayloadSize )


description: Default ctor.

code: FAnalyticsProviderETEventCache ( int32 MaximumPayloadSize, int32 InPreallocatedPayloadSize )


description: Sets an array of attributes that will automatically be appended to any event that is sent. Logical effect is like adding them to all events before calling RecordEvent. Practically, it is implemented much more efficiently from a storage and allocation perspective.

code: void SetDefaultAttributes ( [TArray](API\Runtime\Core\Containers\TArray)< [FAnalyticsEventAttribute](API\Runtime\Analytics\FAnalyticsEventAttribute) > && DefaultAttributes )


className: FAnalyticsProviderETEventCache

description: All public APIs in this class are threadsafe. Implemented via crappy critical sections for now, but they are safe.

code: class FAnalyticsProviderETEventCache


description: Cleans up all expired files that match the analytics session filename pattern. The manager automaticallly clean up if it runs, but if the analytics is off and the manager is not instantiated anymore, some dead files can be left over.

code: static void CleanupExpiredFiles ( const [FString](API\Runtime\Core\Containers\FString) & SavedDir )


description:
Returns the age at which a session is considered expired and shouldn't be sent anymore.
The expiration delay.


className: IsUserLoggingOutProperty

description: Special key handled in CRC to decide if an abnormal shutdown crash report should be generated.

code: static const [TAnalyticsProperty](API\Runtime\Analytics\Interfaces\TAnalyticsProperty)< bool > IsUserLoggingOutProperty = TEXT("IsUserLoggingOut");


description: Creates a new property store associated to this manager process group. The manager only sends an analytics session summary when all collecting processes have closed their property store. Ensure to flush and release the store before calling the managerShutdown()to ensure the session is sent as soon a possible. Subsequent calls to MakeStore will increment an internal counter in the store's filename.

code: [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [IAnalyticsPropertyStore](API\Runtime\Analytics\Interfaces\IAnalyticsPropertyStore) > MakeStore ( uint32 InitialCapacity )


description: Sets a the user id used for reporting analytics. Allows for changing the application user after startup. Will set the user id on all existing stores created from this session summary manager.

code: void SetUserId ( const [FString](API\Runtime\Core\Containers\FString) & UserId )


description: Sets a summary sender to enable the manager to send sessions. If the sender is null, the sessions are not sent. If the sender is set, the manager will periodically search and send pending sessions, usually the one left over from processes that died unexpectedly. As a rule, the principal process is responsible to send the left over summary sessions and a subsidiary process only sends the current sessions summary if it is the last process of the group to exit. The manager deletes the session data while sending.

code: void SetSender ( [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [IAnalyticsSessionSummarySender](API\Runtime\AnalyticsET\IAnalyticsSessionSummarySender) > Sender )


description: MakeStore()

code: void Shutdown ( bool bDiscard )


className: ShutdownTypeCodeProperty

description: Special key handled by the manager for the analytics backend. Its value must be one of EAnalyticsSessionShutdownType enum value.

code: static const [TAnalyticsProperty](API\Runtime\Analytics\Interfaces\TAnalyticsProperty)< int32 > ShutdownTypeCodeProperty = TEXT("ShutdownTypeCode");


description: Constructs a manager for a subsidiary process, usually a companion process that collects extra information on the behalf of the principal process.

code: FAnalyticsSessionSummaryManager ( const [FString](API\Runtime\Core\Containers\FString) & ProcessName, const [FString](API\Runtime\Core\Containers\FString) & ProcessGroupId, uint32 PrincipalProcessId, const [FString](API\Runtime\Core\Containers\FString) & SavedDir )


description: Discovers and salvages/sends/cleans up left over from previous execution(s), if any. Only the principal process can send left over sessions.

code: void Tick()


description: IAnalyticsProviderET

code: FAnalyticsSessionSummaryManager ( const [FString](API\Runtime\Core\Containers\FString) & ProcessName, const [FString](API\Runtime\Core\Containers\FString) & ProcessGroupId, const [FString](API\Runtime\Core\Containers\FString) & UserId, const [FString](API\Runtime\Core\Containers\FString) & AppId, const [FString](API\Runtime\Core\Containers\FString) & AppVersion, const [FString](API\Runtime\Core\Containers\FString) & SessionId, const [FString](API\Runtime\Core\Containers\FString) & SavedDir )


description: Delegate constructor.

code: FAnalyticsSessionSummaryManager &40; const FString & ProcessName, const FString & ProcessGroupId, uint32 InCurrentProcessId, uint32 PrincipalProcessId, const FString & UserId, const FString & AppId, const FString & AppVersion, const FString & SessionId, const FString & SessionRootDir &41;


description: Destructor.

code: ~FAnalyticsSessionSummaryManager()


className: FAnalyticsSessionSummaryManager

description: Several processes can collaborate to collect analytics for one principal process. The common case being the Editor acting as the principal process and CrashReportClient (CRC) acting as a subsidiary process. The principal process and its subsidiaries form a group of processes tied together. The last process of the group to exit is responsible to aggregates and sends the final report for the principal process. For any reasons, if the final report cannot be sent by a group, the responsibility to deal with the left over is put on the principal process. The principal process is responsible to clean up the left over from its previous execution(s) and possibly salvage and send reports delayed.

code: class FAnalyticsSessionSummaryManager


description: Emits the summary events for the specified session id on behalf of the specified user/app/appversion. The function filters the properties by invoking the functor specified at construction.

code: virtual bool SendSessionSummary ( const [FString](API\Runtime\Core\Containers\FString) & UserId, const [FString](API\Runtime\Core\Containers\FString) & AppId, const [FString](API\Runtime\Core\Containers\FString) & AppVersion, const [FString](API\Runtime\Core\Containers\FString) & SessionId, const [TArray](API\Runtime\Core\Containers\TArray)< [FAnalyticsEventAttribute](API\Runtime\Analytics\FAnalyticsEventAttribute) > & Properties )


description: Construction a summary sender.

code: FAnalyticsSessionSummarySender ( [IAnalyticsProviderET](API\Runtime\AnalyticsET\IAnalyticsProviderET) & Provider, [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< bool(const [FAnalyticsEventAttribute](API\Runtime\Analytics\FAnalyticsEventAttribute) &)> ShouldEmitFilterFunc )


className: FAnalyticsSessionSummarySender

description: Sends the analytics session summary to Epic Games analytics service.

code: class FAnalyticsSessionSummarySender : public [IAnalyticsSessionSummarySender](API\Runtime\AnalyticsET\IAnalyticsSessionSummarySender)


description:
Method to get the AppID (APIKey)
the AppID (APIKey)

code: const [FString](API\Runtime\Core\Containers\FString) & GetAppID() const


description:
Method to get the AppVersion
the AppVersion

code: const [FString](API\Runtime\Core\Containers\FString) & GetAppVersion() const


description: Return the current provider configuration.

code: const [FAnalyticsET::Config](API\Runtime\AnalyticsET\FAnalyticsET\Config) & GetConfig() const


description:
Range checking is not done, similar toTArray. Use GetDefaultAttributeCount() first!
one attribute of the default attributes so we don't have to copy the entire attribute array.

code: [FAnalyticsEventAttribute](API\Runtime\Analytics\FAnalyticsEventAttribute) GetDefaultEventAttribute ( int AttributeIndex ) const


description: the current array of default attributes.

code: [TArray](API\Runtime\Core\Containers\TArray)< [FAnalyticsEventAttribute](API\Runtime\Analytics\FAnalyticsEventAttribute) > GetDefaultEventAttributesSafe() const


description: Blocks execution in the thread until all events have been flushed to the network.

code: void BlockUntilFlushed ( float InTimeoutSec )


className: OnEventRecorded

code: typedef [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< void(const [FString](API\Runtime\Core\Containers\FString) &EventName, const [TArray](API\Runtime\Core\Containers\TArray)< [FAnalyticsEventAttribute](API\Runtime\Analytics\FAnalyticsEventAttribute) > &Attrs, bool bJson)> OnEventRecorded


description: Primary RecordEvent API. Allow move semantics to capture the attributes.

code: void RecordEvent ( [FString](API\Runtime\Core\Containers\FString) && EventName, const [TArray](API\Runtime\Core\Containers\TArray)< [FAnalyticsEventAttribute](API\Runtime\Analytics\FAnalyticsEventAttribute) > & Attributes )


description: This class augments RecordEvent with a version that takes the EventName by rvalue reference to save a string copy. Implement the base version in terms of this one.

code: virtual void RecordEvent ( const [FString](API\Runtime\Core\Containers\FString) & EventName, const [TArray](API\Runtime\Core\Containers\TArray)< [FAnalyticsEventAttribute](API\Runtime\Analytics\FAnalyticsEventAttribute) > & Attributes )


description: Special setter to set the AppID, something that is not normally allowed for third party analytics providers.

code: void SetAppID ( [FString](API\Runtime\Core\Containers\FString) && AppID )


description: Sets the AppVersion.

code: void SetAppVersion ( [FString](API\Runtime\Core\Containers\FString) && AppVersion )


description: Set a callback to be invoked any time an event is queued.

code: void SetEventCallback ( const [OnEventRecorded](API\Runtime\AnalyticsET\IAnalyticsProviderET\OnEventRecorded) & Callback )


description:
Used with GetDefaultAttribute to iterate over the default attributes.
the number of default attributes are currently being applied.


description: Sets an array of attributes that will automatically be appended to any event that is sent. Logical effect is like adding them to all events before calling RecordEvent. Practically, it is implemented much more efficiently from a storage and allocation perspective.

code: void SetDefaultEventAttributes ( [TArray](API\Runtime\Core\Containers\TArray)< [FAnalyticsEventAttribute](API\Runtime\Analytics\FAnalyticsEventAttribute) > && Attributes )


description: Set an event filter to dynamically control whether an event should be sent.

code: void SetShouldRecordEventFunc ( const [ShouldRecordEventFunction](API\Runtime\AnalyticsET\IAnalyticsProviderET\ShouldRecordEventFunction) & ShouldRecordEventFunc )


description: Sets a header to be included with analytics http requests

code: void SetHeader ( const [FString](API\Runtime\Core\Containers\FString) & HeaderName, const [FString](API\Runtime\Core\Containers\FString) & HeaderValue )


description: Updates the default URL endpoint and AltDomains.

code: void SetURLEndpoint ( const [FString](API\Runtime\Core\Containers\FString) & UrlEndpoint, const [TArray](API\Runtime\Core\Containers\TArray)< [FString](API\Runtime\Core\Containers\FString) > & AltDomains )


description: This class augments StartSession with a version that takes the SessionID instead of always generating it. Implement the base version in terms of this one.

code: virtual bool StartSession ( const [TArray](API\Runtime\Core\Containers\TArray)< [FAnalyticsEventAttribute](API\Runtime\Analytics\FAnalyticsEventAttribute) > & Attributes )


className: ShouldRecordEventFunction

description: Callback used before any event is actually sent. Allows higher level code to disable events.

code: typedef [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< bool(const [IAnalyticsProviderET](API\Runtime\AnalyticsET\IAnalyticsProviderET) &ThisProvider, const [FString](API\Runtime\Core\Containers\FString) &EventName)> ShouldRecordEventFunction


description:
Allows higher level code to abort logic to set up for a RecordEvent call by checking the filter that will be used to send the event first.
true if the event will be recorded using the currently installed ShouldRecordEvent function

code: bool ShouldRecordEvent ( const [FString](API\Runtime\Core\Containers\FString) & EventName ) const


description: Primary StartSession API. Allow move semantics to capture the attributes.

code: bool StartSession ( [FString](API\Runtime\Core\Containers\FString) InSessionID, const [TArray](API\Runtime\Core\Containers\TArray)< [FAnalyticsEventAttribute](API\Runtime\Analytics\FAnalyticsEventAttribute) > & Attributes )


className: IAnalyticsProviderET

description: ET specific analytics provider instance. Exposes additional APIs to support Json-based events, default attributes, and allowing events to be disabled (generally via hotfixing).

code: class IAnalyticsProviderET : public [IAnalyticsProvider](API\Runtime\Analytics\Interfaces\IAnalyticsProvider)


description: Emits the summary events for the specified session id on behalf of the specified user/app/appversion. The function filters the properties by invoking the functor specified at construction.

code: bool SendSessionSummary ( const [FString](API\Runtime\Core\Containers\FString) & UserId, const [FString](API\Runtime\Core\Containers\FString) & AppId, const [FString](API\Runtime\Core\Containers\FString) & AppVersion, const [FString](API\Runtime\Core\Containers\FString) & SessionId, const [TArray](API\Runtime\Core\Containers\TArray)< [FAnalyticsEventAttribute](API\Runtime\Analytics\FAnalyticsEventAttribute) > & Properties )


className: IAnalyticsSessionSummarySender

description: Sends the analytics session summary to a backend service.

code: class IAnalyticsSessionSummarySender