Unreal Engine SDK

1. Unreal Engine Compatibility

This SDK is compatible with Unreal Engine 4.19 ~ 4.25.
(Please use the contact form if you need use for Unreal Engine prior to version 4.19)

Android Platform Requirements:
* Android 2.3 and above.

iOS Platform Requirements:
* iOS 9.0 and above.
* Confirmed correct operation when using remote builds under Unreal Engine 4.20, 4.22, 4.23, 4.24, 4.25.

2. Unreal Engine Project SDK Integration

Step1: Smartbeat Plugin Integration

Download SmartBeat SDK from below.

Decompress SmartBeat-UE4.zip and move the SmartBeat folder to the project’s Plugins folder. (Create the Plugins folder if it does not already exist)

After completing the above step, the first time opening the project in Unreal Editor, a dialog like the one shown below will be shown. Click yes to build the project.

The plugin will not be build properly when embedded in a Blueprint only project without C++ support. From the Unreal Editor menu, select File > New C++ Class... and add a C++ class. Selecting "None" as the type and adding the class with the default name is sufficient. After adding the C++ class, re-open the project.
* If the project was initially created with C++ support, adding a new C++ class is unnecessary.

Step2: Set API key

From the Unreal Editor toolbar select Settings > Project Settings... > Project Settings.

On the Plugins - SmartBeat page, below the IOS/Android title, find the API Key input box, and enter the API Key from the SmartBeat Console.

Step3(Only for Android): Duplicate user count prevention

There are no settings needed.
※ Unreal Engine utilizes the GooglePlayService so this feature is automatically enabled.
※ This only works for the users whose device is using Google Play services 4.0 and above (Otherwise, users are counted as before).

Step4(Android):Audience feature settings

By using the Advertising ID, it's possible to understand the gender and age distribution of your users.
On Android, use of the duplicate user count prevention feature also enables the audience feature. Check here for details on how to enable the duplicate user count prevention feature.

Step3(Only for iOS): Duplicate user count prevention

No additional steps are necessary for iOS when using Unreal Engine SDK 1.2.12 and later. Duplicate users are determined automatically. Because of this, unwanted increases in MAU(Monthly Active Users) will be suppressed even if an applications is repeatedly re-installed. (Commonly referred to as a "reset marathon")

Step4(iOS):Audience feature settings

By using IDFA, it's possible to understand the gender and age distribution of your users.
From the Project Settings > Platform - iOS page, set the following under the "Additional Non-Shipping Linker Flags" and the “Additional Shipping Linker Flags” items.

-force_load "Project Path /Plugins/SmartBeat/Lib/IOS/libSmartBeatIdfa.a"


※ Unreal Engine 4.10 doesn’t correctly apply Additional Shipping Linker Flags, so even after entering the above setting correctly, the duplicate user count feature will not function.

Step4(Only for iOS): Remote Build Settings for UE 4.21 and later

※ This item is required for builds targeting iOS via remote build from Windows utilizing UE 4.21 and later.

Place the following content in the file located at /<project path>/Build/Rsync/RsyncProject.txt

+ Plugins/SmartBeat/Lib/IOS/**

3. Extra functions

3.1 Include LogCat/NSLog

Extracting and sending crash data to the SmartBeat server in the event of a native layer (Objective-C/C++ for iOS, Java/C++ for Android) crash.
※ The most recent 64KB or 500 lines of log will be included in crash reports.
※ Errors which occur in the Blueprint layer are not included in LogCat/NSLog.
※ As of iOS 10, even if enabled, this section's NSLog feature will not function.

How to activate

From the Project Settings > Plugins - SmartBeat page, enable the options “Enable NSLog” (for iOS) or “Enable Logcat”. (for Android)

3.2 Logging

Blueprint layer logs are included in crash data sent to the SmartBeat server.
※ The most recent 64KB or 500 lines of log will be included in crash reports.

How to activate

From the Blueprint Graph Editor’s context menu, add the SmartBeat > Log for SmartBeat node.

In the node’s “Message” field, set the log message.

3.3 Set user identifier

If your application provides a user ID for each user, you can include it with crash/exception data. That help you find specific user’s errors by using this user ID on the SmartBeat web console.

How to activate

From the Blueprint Graph Editor’s context menu, add the SmartBeat > Set User ID for SmartBeat node.

In the node’s “User ID” field, set the user ID.

3.4 Add Extra data

You have another option to add extra custom information into the crash/exception reports. This will help you reproduce and fix errors. (e.g. user’s entering parameters, API return values etc.)

How to activate

From the Blueprint Graph Editor’s context menu, add the SmartBeat > Add Extra Data for SmartBeat node.

In the node’s “key” and “value” fields, set the key and value.

The values will be overwritten by new one which has the same key.

3.5 Breadcrumb function

You can know what the user did by adding breadcrumbs at any point.

How to activate

From the Blueprint Graph Editor’s context menu, add the SmartBeat > Leave Breadcrumb for SmartBeat node.

In the node’s “Breadcrumb” field, set the breadcrumb content.

Only last 128 breadcrumbs are saved and displayed on SmartBeat console.
Typical actions and status changes are automatically recorded as breadcrumbs. Please see here(Android / iOS) for details of what is recorded.

If you leave breadcrumbs when the screen transition (like :Map screen -> Game screen -> Setting screen), you can know the screen transition history just before the error occurred.

3.6 Disabling crash/exception report by default

It’s possible to start with error capture disabled, and enable error capture at a later time.

How to activate

From the Project Settings > Plugins - SmartBeat page, use the “Disable at Startup” to control whether SmartBeat is enabled or disabled when the app starts.

To later enable Smartbeat, add the SmartBeat > Enable Smartbeat node from the Blueprint Graph Editor’s context menu. After the Enable SmartBeat node runs, error capture will be enabled.