Comment on page
Unreal Engine
The SDK is available in GitHub repository. Download the Source code (zip) of latest release. Unzip the archive and copy DTDAnalytics folder to the Plugins folder of your project.
For a C++ project type, add the
DTDAnalytics
name to the list of dependency module names to the <module_name>.Build.cs file of the module in which you plan to use the plugin.Example:
PublicDependencyModuleNames.Add("DTDAnalytics");
A class that implements analytic methods.
Header file:
#include "DTDAnalytics/Public/DTDAnalyticsBPLibrary.h"
A class that implements user card methods.
The class header:
#include "DTDAnalytics/Public/DTDUserCardBPLibrary.h"
SDK tracking status.
Header file:
#include "DTDAnalytics/Public/DTDTrackingStatus.h"
Values:
Unknown = 0
- leave tracking unchangedEnable = 1
- tracking enabledDisable = 2
- tracking disabled
Example:
EDTDTrackingStatus TrackingStatus = EDTDTrackingStatus::Enable;
SDK logging level.
Header file:
#include "DTDAnalytics/Public/DTDLogLevel.h"
Values:
Unknown = 0
- leave logging level unchangedNo = 1
- logging disabledError = 2
- logging of errorsWarning = 3
- logging of warnings and errorsInfo = 4
- logging of information messages, warnings and errorsDebug = 5
- logging of debugging messages, informational messages, warnings and errors
Example:
EDTDLogLevel LogLevel = EDTDLogLevel::Info;
Types of resource accumulation.
Header file:
#include "DTDAnalytics/Public/DTDAccrualType.h"
Values:
Earned = 0
- earned resourcesBought = 1
- purchased resources
Example:
EDTDAccrualType AccrualType = EDTDAccrualType::Earned;
Predefined social media.
Header file:
#include "DTDAnalytics/Public/DTDSocialNetwork.h"
Values:
Facebook = 0
Vkontakte = 1
Twitter = 2
Googleplus = 3
Whatsapp = 4
Viber = 5
Evernote = 6
Googlemail = 7
Linkedin = 8
Pinterest = 9
Reddit = 10
Renren = 11
Tumblr = 12
Qzone = 13
Example:
EDTDSocialNetwork SocialNetwork = EDTDSocialNetwork::Facebook;
User gender.
Header file:
#include "DTDAnalytics/Public/DTDGender.h"
Values:
Unknown = 0
Male = 1
Female = 2
Example:
EDTDGender Gender = EDTDGender::Female;
Referral properties.
Header file:
#include "DTDAnalytics/Public/DTDReferralProperty.h"
Values:
Source = 0
Medium = 1
Content = 2
Campaign = 3
Term = 4
Example:
EDTDReferralProperty ReferralProperty = EDTDReferralProperty::Source;
An optional parameter of int32 type
Header file:
#include "DTDAnalytics/Public/DTDOptionalInt32.h"
Member | Type | Description |
---|---|---|
HasValue | bool | Option label |
Value | int32 | Parameter value |
For your convenience, we implemented the conversion constructor:
FDTDOptionalInt32(int32 value) : HasValue(true), Value(value) {}
Example:
FDTDOptionalInt32 OptionalParameter = 1;
An optional parameter of FString type.
Header file:
#include "DTDAnalytics/Public/DTDOptionalString.h
Member | Type | Description |
---|---|---|
HasValue | bool | Option label |
Value | FString | Parameter value |
For your convenience, we implemented the conversion constructor:
FDTDOptionalString(FString value) : HasValue(true), Value(value) {}
Example:
FDTDOptionalString OptionalParameter = FString("StringValue");
Configuration of the analytics plugin.
Header file:
#include "DTDAnalytics/Public/DTDAnalyticsConfiguration.h"
Member | Type | Description |
---|---|---|
LogLevel | EDTDLogLevel | Logging level |
CurrentLevel | FDTDOptionalInt32 | Current level |
UserId | FDTDOptionalString | User ID |
ApplicationVersion | FDTDOptionalString | Application version (Windows) |
TrackingAvailability | EDTDTrackingStatus | Tracking settings |
Example:
FDTDAnalyticsConfiguration config;
config.LogLevel = EDTDLogLevel::Debug;
config.CurrentLevel = 3;
config.UserId = FString("CUID");
config.ApplicationVersion = FString("1.2.3");
config.TrackingAvailability = EDTDTrackingStatus::Enable;
Custom parameters of a custom event.
Header file:
#include "DTDAnalytics/Public/DTDCustomEventParams.h"
Member | Type | Description |
---|---|---|
StringParameters | TMap<FString, FString> | String parameters |
IntParameters | TMap<FString, int64> | Integer parameters |
FloatParameters | TMap<FString, float> | Real parameters (floating-point numbers) |
BoolParameters | TMap<FString, bool> | Boolean parameters |
Warning: avoid duplicating keys in parameters of different types, because in native code dictionaries are merged into a single dictionary [string: any].
Example:
FDTDCustomEventParams params;
params.BoolParameters.Add("BoolKey", true);
params.FloatParameters.Add("FloatKey", 3.3);
params.IntParameters.Add("IntKey");
params.StringParameters.Add("StringKey", "StringValue");
Parameters of the progression start event.
Header file:
#include "DTDAnalytics/Public/DTDStartProgressionEventParams.h"
Member | Type | Description |
---|---|---|
Difficulty | FDTDOptionalInt32 | Difficulty |
Source | FDTDOptionalString | Source |
Example:
FDTDStartProgressionEventParams params;
params.Difficulty = 3;
params.Source = FString("Source");
Parameters of the progression completion event.
Header file:
#include "DTDAnalytics/Public/DTDFinishProgressionEventParams.h"
Member | Type | Description |
---|---|---|
SuccessfulCompletion | bool | Successful completion of the progression (‘false’ by default) |
Duration | int32 | Duration (if 0, duration is calculated automatically) |
Spent | TMap<FString, int64> | Resources spent |
Earned | TMap<FString, int64> | Resources earned |
Example:
FDTDFinishProgressionEventParams params;
params.Duration = 200;
params.SuccessfulCompletion = true;
params.Earned.Add("CurrencyName1", 1);
params.Spent.Add("CurrencyName2", 2);
Header file:
#include "DTDAnalytics/Public/DTDDelegates.h"
Definitions:
DECLARE_DELEGATE_OneParam(FDTDLongListenerDelegate, int64);
DECLARE_DELEGATE_OneParam(FDTDGetterStringDelegate, const FString&);
DECLARE_DELEGATE_OneParam(FDTDGetterBoolDelegate, bool);
DECLARE_DELEGATE_OneParam(FDTDGetterIntDelegate, int32);
DECLARE_DELEGATE_OneParam(FDTDGetterLongDelegate, int64);
DECLARE_DELEGATE_OneParam(FDTDGetterGenderDelegate, EDTDGender);
DECLARE_DELEGATE_TwoParams(FDTDGetterOptionalStringDelegate, bool, const FString&);
DECLARE_DELEGATE_TwoParams(FDTDGetterOptionalBoolDelegate, bool, bool);
DECLARE_DELEGATE_TwoParams(FDTDGetterOptionalFloatDelegate, bool, float);
DECLARE_DELEGATE_TwoParams(FDTDGetterOptionalLongDelegate, bool, int64);
DECLARE_DELEGATE_ThreeParams(FDTDGetterOptionalStringWithKeyDelegate, bool, const FString&, const FString&);
DECLARE_DELEGATE_ThreeParams(FDTDGetterOptionalBoolWithKeyDelegate, bool, const FString&, bool);
DECLARE_DELEGATE_ThreeParams(FDTDGetterOptionalFloatWithKeyDelegate, bool, const FString&, float);
DECLARE_DELEGATE_ThreeParams(FDTDGetterOptionalLongWithKeyDelegate, bool, const FString&, int64);

Blueprint
Member | Type | Description |
---|---|---|
appKey | FString | You can find it in the settings of the corresponding application in devtodev (Settings → SDK → Integration → Credentials) |
UDTDAnalyticsBPLibrary::Initialize("AppKey");

Blueprint
Member | Type | Description |
---|---|---|
appKey | FString | You can find it in the settings of the corresponding application in devtodev (Settings → SDK → Integration → Credentials) |
config | FDTDAnalyticsConfiguration | Initialization parameters |
FDTDAnalyticsConfiguration config;
config.LogLevel = EDTDLogLevel::No;
config.CurrentLevel = 3;
config.UserId = FString("CUID");
config.ApplicationVersion = FString("1.2.3");
config.TrackingAvailability = EDTDTrackingStatus::Enable;
UDTDAnalyticsBPLibrary::InitializeWithConfig("AppKey", config);
Last modified 8mo ago