Configure Adjust reporting
This document aims to introduce how to set up the Adjust analytics platform so that your game can directly report analytics data to Adjust.
Prerequisites
Adjust supports multi-store channel packs, allowing multiple app IDs to be created under the same developer account.Create additional game applications on the Adjust site and complete the configuration of additional game applications by repeating the following steps.
1. Set up Adjust account and create new application
-
Create an Adjust account.
-
On the Adjust console, click New app to create a new application.

-
After filling in application information, click Add app to create the application.

2. Obtain app token (ID)
-
Enter Adjust console, and select AppView > All apps from the left navigation bar.
-
App token will be displayed next to the respective application name.

App token is generally a string of characters; iOS and Android have their own different app tokens.
3. [Optional] Create tracking link
Tracking links only need to be created when the application is distributed via third-party app stores (such as Samsung, Xiaomi, Huawei, etc.), not Google Play Store.
The tracking token must be embedded in the APK to track natural installs and user behavior from these platforms.
After creating the tracking link, it takes more than 3 hours to view related data in the Adjust control panel.
-
On the Adjust console, go to Campaign Lab > Custom links, and click New Link on the top right.

-
Select the application and click Next.

-
Enter the link name and click Quick create.

-
Once created, the tracker token appears as 6 or more alphanumeric characters after the Adjust interface.

Step 1: Permissions and project configuration
Android
User Permissions
Adjust requires access to network and WiFi state permissions.
<uses-permission android:name="android.permission.INTERNET" />\n<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
The receiver configuration is used to track the installation source.Player Network SDK has integrated the configuration, the service can check within the SDK package.
<receiver android:name="com.adjust.sdk.AdjustReferrerReceiver" android:exported="true" >
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
Adjust does not provide an interface to manually control the collection of the Mac address, relying solely on ACCESS_WIFI_STATE permission.
Due to compliance requirements, Mac addresses cannot be collected, and Player Network SDK does not apply for WiFi state permissions by default for Adjust.At the same time, all plugins within the Player Network SDK do not apply for this permission by default.
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
Project Configuration
Add the following configuration in the INTLConfig.ini file:
[Adjust Debug Mode]
DEBUG_CHANNEL = Adjust
[Android LifeCycle]
LIFECYCLE = Adjust
[Adjust Configurations]
ADJUST_OPEN_DEEPLINK_ENABLE = 0
ADJUST_APP_TOKEN_ANDROID = {ADJUST_APP_TOKEN_ANDROID}
ADJUST_REGISTER_EVENT_TOKEN_ANDROID = {REGISTER_TOKEN}
ADJUST_LOGIN_EVENT_TOKEN_ANDROID = {LOGIN_TOKEN}
ADJUST_APPSECRET_ANDROID = {ADJUST_SECRET_ID}
ADJUST_INFO1_ANDROID = {INFO_01}
ADJUST_INFO2_ANDROID = {INFO_02}
ADJUST_INFO3_ANDROID = {INFO_03}
ADJUST_INFO4_ANDROID = {INFO_04}
ADJUST_SUB_DOMAIN = {ADJUST_SUBDOMAIN}
ADJUST_URL_STRATEGY_ANDROID = {ADJUST_URL_STRATEGY_ANDROID}
ADJUST_SIGNATURE_VERSION_ANDROID = {ADJUST_SIGNATURE_VERSION_ANDROID}
ADJUST_CHANNEL_START_EVENT_TOKEN_ANDROID = {ADJUST_CHANNEL_START_EVENT_TOKEN_ANDROID}
-
Set the Adjust channel in
DEBUG_CHANNEL, which indicates the activation of Adjust debug mode. -
Add Adjust in
LIFECYCLE.For more information, please see SDK Environment. -
ADJUST_OPEN_DEEPLINK_ENABLEsets whether to enable deep linking functionality, default is 0 to disable. -
Fill in the value of the Android App Token obtained from the management terminal in
{ADJUST_APP_TOKEN_ANDROID}. -
[Optional] If you want to have a registration event, you can create a registration event and use the event token to set
{REGISTER_TOKEN}. -
[Optional] If you want to have a login event, you can create a login event and use the corresponding event token to set
{LOGIN_TOKEN}. -
{ADJUST_SECRET_ID}is configured for anti-Tamper, supported by Adjust SDK 4.12.0 or later versions.{INFO_01},{INFO_02},{INFO_03},{INFO_04}configurations are only valid after{ADJUST_SECRET_ID}is set.
Configure as per the instructions in SDK Signature. -
{ADJUST_SUBDOMAIN}can be configured for the Adjust report relay server; leave it empty if not needed. -
{ADJUST_URL_STRATEGY_ANDROID}can configure the region where Adjust data resides; leave it empty if not needed.For more information, see Adjust Channel Configuration. -
{ADJUST_SIGNATURE_VERSION_ANDROID}can configure Adjust's signature version, 1 for v1 signature, 2 for v2 signature. -
Replace
{ADJUST_CHANNEL_START_EVENT_TOKEN_ANDROID}with Adjust custom start event token.
iOS
Project Configuration
Add configuration in the INTLConfig.ini file:
[Adjust Debug Mode]
DEBUG_CHANNEL = Adjust
[Adjust Configurations]
ADJUST_OPEN_DEEPLINK_ENABLE = 0
ADJUST_APP_TOKEN_IOS = {ADJUST_APP_TOKEN_IOS}
ADJUST_REGISTER_EVENT_TOKEN_IOS = {REGISTER_TOKEN}
ADJUST_LOGIN_EVENT_TOKEN_IOS = {LOGIN_TOKEN}
ADJUST_APPSECRET_IOS = {ADJUST_SECRET_ID}
ADJUST_INFO1_IOS = {INFO_01}
ADJUST_INFO2_IOS = {INFO_02}
ADJUST_INFO3_IOS = {INFO_03}
ADJUST_INFO4_IOS = {INFO_04}
ADJUST_SUB_DOMAIN = {ADJUST_SUBDOMAIN}
ADJUST_URL_STRATEGY_IOS = {ADJUST_URL_STRATEGY_IOS}
ADJUST_SIGNATURE_VERSION_IOS = {ADJUST_SIGNATURE_VERSION_IOS}
ADJUST_CHANNEL_START_EVENT_TOKEN_IOS = {ADJUST_CHANNEL_START_EVENT_TOKEN_IOS}
- Set the Adjust channel in
DEBUG_CHANNEL, indicating the activation of Adjust debug mode. ADJUST_OPEN_DEEPLINK_ENABLEsets whether to enable deep linking functionality, default is 0 to disable.- Fill in the value of the iOS App Token obtained from the management terminal in
{ADJUST_APP_TOKEN_IOS}. - [Optional] If you want to have a registration event, you can create a registration event and use the event token to set
{REGISTER_TOKEN}. - [Optional] If you want to have a login event, you can create a login event and use the corresponding event token to set
{LOGIN_TOKEN}. {ADJUST_SECRET_ID}is configured for anti-Tamper as numeric.{INFO_01},{INFO_02},{INFO_03},{INFO_04}configurations are only valid after{ADJUST_SECRET_ID}is set.Please contact Tencent internal Adjust account administrator for INFO values, contact person: [kchuang] Jiaqi Huang.{ADJUST_SUBDOMAIN}can be configured for the Adjust report relay server; leave it empty if not needed.{ADJUST_URL_STRATEGY_IOS}can configure the region where Adjust data resides; leave it empty if not needed.For more information, see Adjust Channel Configuration.{ADJUST_SIGNATURE_VERSION_IOS}can be configured to Adjust's signature version, 1 for v1 signature, 2 for v2 signature.- Replace
{ADJUST_CHANNEL_START_EVENT_TOKEN_IOS}with Adjust custom start event token.
[Optional] Unity engine export to Xcode
When Unity exports to Xcode project, you need to configure the .projmods file.
The game needs to check the configuration written by INTLCoreKit.projmods.
{
"group": "INTL",
"libs": ["libz.tbd", "libsqlite3.tbd"],
"frameworks": ["AdSupport.framework", "iAd.framework", "CoreTelephony.framework", "SystemConfiguration.framework"],
"files": [],
"folders": [],
"excludes": [],
"headerpaths":[],
"build_settings":{},
"system_capabilities": {},
"Info.plist":{}
}
[Optional] Deep Linking
Add the following code in AppDelegate.m:
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler
Adjust automatically supports deferred deep links. If you need to handle deferred deep link content in your application, please refer to the official Adjust guide.
Step 2: Add tracking token to APK package
This step is only required when you need to track natural installs and user behavior from third-party app stores (like Samsung, Xiaomi, Huawei, etc.).
Adjust tracker user behavior attributes adjusted to the source camp.Adjust automatically assigns a unique tracker token for each tracker.For more information, see Adjust Links.
Must support Adjust V2 signature.
-
Customize Gradle plugin and create a task.
project.afterEvaluate {
ChannelMaker channelMaker = project.tasks.create("assemble${variantName}Channels", ChannelMaker);
channelMaker.targetProject = project;
channelMaker.variant = variant;
channelMaker.setup();
// task add dependencies
if (variant.hasProperty('assembleProvider')) {
channelMaker.dependsOn variant.assembleProvider.get()
} else {
channelMaker.dependsOn variant.assemble
}
} -
Handle tracking token logic in the created task.
- The data is in big-endian mode.
- The protocol header is fixed new byte[]-106.
-
Retrieve incoming data
// get the input data
byte[] encode() throws IOException {
ByteArrayOutputStream out = new ByteArrayOutputStream();
// write protocol header
out.write(new byte[]{-6, -106});
String s = "adjustTrackerToken=${tracek_token}";
byte[] bytes = s.getBytes("UTF-8");
out.write(new ZipShort(bytes.length).getBytes());
out.write(bytes);
return out.toByteArray();
}public final class ZipShort implements Cloneable {
private int value;
public ZipShort(byte[] bytes) {
this(bytes, 0);
}
public ZipShort(byte[] bytes, int offset) {
this.value = bytes[offset + 1] << 8 & '\uff00';
this.value += bytes[offset] & 255;
}
public ZipShort(int value) {
this.value = value;
}
public boolean equals(Object o) {
if (o != null && o instanceof ZipShort) {
return this.value == ((ZipShort)o).getValue();
} else {
return false;
}
}
public byte[] getBytes() {
byte[] result = new byte[]{(byte)(this.value & 255), (byte)((this.value & '\uff00') >> 8)};
return result;
}
public int getValue() {
return this.value;
}
public int hashCode() {
return this.value;
}
} -
Use blockid
0x717874to write data toAPKSigningBlock. -
Build Gradle package using
./gradlew assemble${variantName}Channels. -
In the log view, enter
set default tracker : ${tracker_token}to check if the Gradle build is successful.
Step 4: Configure Event Reporting
Auto-report Events
If ANALYTICS_AUTH_REPORT_ENABLE is enabled and Adjust's registration and login tokens are set within the INTLConfig.ini file, Player Network SDK will automatically report the following events:
completed_registration: When the user logs in to the game for the first timelogin: When the user logs in to the game subsequently
Report events manually
1. Create New Event
-
Select application in the Adjust console.

-
Go to the Events page and click Add Event on the top right.

-
Enter the event name and click Add Event.

2. Obtain event token
-
Select application in the Adjust console.

-
Go to the Events page -- each event's token will be shown in the token column.

During event reporting, the fields to be reported must be configured on the console first, and then the corresponding token field assigned by the console must be reported in the code.
3. Set Event Uniqueness
When registering an event, you can select event uniqueness, so that the event will be counted only once per device upon reporting.
-
Select application in the Adjust console.

-
Go to the Events page and click the edit icon beside the relevant event.

-
Check "This is a unique event" and save changes.

For more information, see Adjust events.
- If Adjust partner parameter is used, add parameters in
extraJson:"{\"isPartnerParameters\":true}" - If the
extraJsonfield is empty, orisPartnerParametersis set tofalse, the reporting parameters will be set in Adjust'scallback_params. EventNamemust fill in the event token to track the event.For details, see Adjust Event Tracking.
For more information, see Analytics.
Funnel Events
Supported since Player Network SDK V1.20.
In INTLConfig.ini, increase the required funnel events and corresponding tokens to be reported in Adjust channels in the ADJUST_REPORT_FUNNEL_EVENTS_TOKEN_IOS (iOS platform) and ADJUST_REPORT_FUNNEL_EVENTS_TOKEN_ANDROID (Android platform) configurations, formatted as event1:token1,event2:token....
[Adjust]
ADJUST_REPORT_FUNNEL_EVENTS_TOKEN_IOS = app_launch:your_token,confirm_login_channel:your_token,channel_auth_success:your_token,login_auth_success:your_token,query_complicance:your_token,select_region_and_age:your_token,agree_privacy_policy:your_token,privacy_auth_sucess:your_token,show_server_list:your_token,submit_area:your_token,confirm_area:your_token,connect_svr_success:your_token,show_user_agreement:your_token,finish_user_agreement:your_token,check_for_updates:your_token,download_updates:your_token,unzip_files:your_token,complete_updates:your_token,show_enter_game:your_token,click_into_game:your_token,enter_lobby_success:your_token,authentication:your_token,pull_up_the_list_of_goods:your_token,pull_up_price_list:your_token,start_order:your_token,successful_order:your_token,start_payment:your_token,successful_payment:your_token,start_delivery:your_token,successful_delivery:your_token,register_success:your_token
ADJUST_REPORT_FUNNEL_EVENTS_TOKEN_ANDROID = app_launch:your_token,confirm_login_channel:your_token,channel_auth_success:your_token,login_auth_success:your_token,query_complicance:your_token,select_region_and_age:your_token,agree_privacy_policy:your_token,privacy_auth_sucess:your_token,show_server_list:your_token,submit_area:your_token,confirm_area:your_token,connect_svr_success:your_token,show_user_agreement:your_token,finish_user_agreement:your_token,check_for_updates:your_token,download_updates:your_token,unzip_files:your_token,complete_updates:your_token,show_enter_game:your_token,click_into_game:your_token,enter_lobby_success:your_token,authentication:your_token,pull_up_the_list_of_goods:your_token,pull_up_price_list:your_token,start_order:your_token,successful_order:your_token,start_payment:your_token,successful_payment:your_token,start_delivery:your_token,successful_delivery:your_token,register_success:your_token
In the INTLConfig.ini configuration for ANALYTICS_REPORT_FUNNEL_CHANNEL add the Adjust channel. Player Network SDK will synchronize reporting of funnel events to the Adjust channel.
[ANALYTICS]
ANALYTICS_REPORT_FUNNEL_CHANNEL = Adjust
Refer to Data Query to view reported events.
Step 4: Initialize analytics module
- Unity
- Unreal Engine
Initialize the analytics module, then call ReportEvent to start reporting data to Adjust.
Initialize the analytics module, then call ReportEvent to start reporting data to Adjust.
Reporting Data Acceptance
Document Reference
Data Dimension
Adjust events are categorized as:
- InstallEvent (UnInstallEvent/ReInstallEvent)
- InAppEvent
For more information about event data attributes, see Adjust Event Attributes.
View Reported Events from Management Console
Events are not reported in real-time, with a delay of over 1 hour.
-
On the Adjust console, click Installs.

-
View all reported data in the statistics table.

Enable Sandbox Mode to view reported events
Delay in Sandbox Mode is about 10 minutes.
Configuration
Report data to Adjust Sandbox Mode:
- Add Adjust in the
DEBUG_CHANNELconfiguration in INTLConfig.ini. - Set
LOG_LEVEL = 1orLOG_LEVEL = 0in the INTLConfig.ini.
When publishing your game and reporting data to the official Adjust environment, set LOG_LEVEL = 3.
To report data to the official Adjust environment, remove Adjust from the DEBUG_CHANNEL in the configured INTLConfig.ini.
When data is successfully reported to Sandbox Mode, the log file appears as follows:

View device data in the testing console
-
On the Adjust console, go to Testing Console.

-
Enter ad ID to view device data.

On iOS 14 and above, App Tracking Transparency (ATT) tracking permission must be granted before initializing Adjust SDK to view device data in the testing console.
Adjust only performs Registration for each device install once.If you need to test multiple installs or unique events on the same device, open the testing console and click Forget Device.This will clear all device data for the application, allowing to test new test events.
View ad ID
- Android
- iOS
On your device, select Settings > Google > Ads to view the advertising ID for this device.

A third-party tool is needed to view the device's ad ID.There are many applications on the App Store providing this feature, such as My Device ID (by AppsFlyer) and Adjust Insights, as shown below:

Open the app on the device, initialize Player Network SDK, and upload events to obtain the string corresponding to gps_adid on the control panel.
View reported data
-
Configure INTLConfig.ini to enable client Sandbox Mode for data reporting.
-
On the Adjust console, click Installs.

-
Check Environment under Data configuration, and environment options will appear.

-
Select Sandbox environment to view reported events in Sandbox Mode.

Acceptance Case 1
- Sub-function Module: Reporting
- Feature: Event Reporting
- Test Point: Guest login, first login, check Adjust login report
- Prerequisite: Initialize the analytics module
- Operation Steps/Input
- First-time guest login
- Log out
- Log in again with the same account
- Export data on the management end to view reported events
- Expected output information reported successfully, check as follows:
- View on the management console:
- Report registration event for first-time guest login (adjust_complete_registration): Reported count +1
- Log in with the same account and report login event (adjust_login): Reported count +1
- Data export verification: contact [killuachen] and pull logs into the group for final confirmation.
- Report registration event for first-time guest login (adjust_complete_registration): Reported count +1
- Log in with the same account and report login event (adjust_login): Reported count +1
- Player Network SDK OpenID carried in event parameters
- View on the management console:
Acceptance Test Case 2
- Sub-feature module: Reporting
- Feature point: Event Reporting
- Test Point: Facebook login, not the first login, check Adjust login reporting
- Prerequisite: Initialize analytics module
- Operation Steps/Input
- Use Facebook for first-time login
- Log out
- Log in again with the same account
- Export data on the management end to view reported events
- Expected output information reported successfully, check as follows:
- Management end view:
- Report registration event for first-time guest login (adjust_complete_registration): Reported count +1
- Log in with the same account and report login event (adjust_login): Reported count +1
- Data export verification: contact [killuachen] and pull logs into the group for final confirmation.
- Report registration event for first-time guest login (adjust_complete_registration): Reported count +1
- Log in with the same account and report login event (adjust_login): Reported count +1
- Player Network SDK OpenID carried in event parameters
- Management end view:
Acceptance Test Case 3
- Sub-feature module: Reporting
- Feature point: Event Reporting
- Test Point: Facebook login, first-time and subsequent logins, check Adjust login reporting
- Prerequisite: Initialize analytics module
- Operation Steps/Input
- First-time Facebook login
- Log out
- Log in again with the same account
- Export data on the management end to view reported events
- Expected output information reported successfully, check as follows:
- Management end view:
- Report registration event for first-time guest login (adjust_complete_registration): Reported count +1
- Log in with the same account and report login event (adjust_login): Reported count +1
- Export data verification:
- Report registration event for first-time guest login (adjust_complete_registration): Reported count +1
- Log in with the same account and report login event (adjust_login): Reported count +1
- Customer User ID matches Player Network SDK OpenID
- Management end view:
Acceptance Case 4
- Sub-feature module: Reporting
- Feature point: Event Reporting
- Test Point: Successful Adjust event reporting
- Prerequisite: Initialize analytics module
- Operation steps/inputs
- Request Report Event
- eventName =
Report_Event, paramsDic-key1=k1, paramsDic-value1=v1, paramsDic-key2=k2, paramsDic-value2=v2, spChannels=Adjust - Uninstall and install SDK and start the game
- View reported data on the management end and export INSTALL data table
- Expected output information reporting success, check the following:
- Management end view:
- Custom Event: Adjust can find reported custom
Report_Eventevent count +1 - Installation Event: View the number of reported INSTALL events for uninstalling and installing increased by 1 (only reported once without clearing the device)
- Custom Event: Adjust can find reported custom
- Export Data Verification: Contact [killuachen] to pull the group and export the log for final confirmation.
- Custom Event: Corresponding reporting data is correct (management terminal exports data that can correspond)
install_time={installed_at}comparison, check if it is installation time.event_name={event_name}Custom Event. - Installation Event: Uninstall and install INSTALL data table installation Installs report count +1 (only reported once without clearing the device)
activity_kind={activity_kind}will add a new installation.
- Custom Event: Corresponding reporting data is correct (management terminal exports data that can correspond)
- Management end view:
Acceptance Case 5
- Sub-module: ReportRevenue
- Feature: Adjust Payment Event Reporting
- Test Point: Query reported events after requesting
ReportRevenue(Adjust) - Prerequisite: Network connection normal
- Operation steps/inputs
- Request
ReportRevenue - eventName = (customizable), spChannels =
Adjust, Currency =USD, Revenue = 100 - Query reported events in Adjust
- DD Platform query
AnalyticsReportRevenueevents
- Request
- Expected output information reporting success, check the following:
- View
ReportRevenueevent +1 in Adjust delivery data.ReportRevenue(revenue) event amount +100. - Export Data Verification (2-4 Hours): Exported data includes revenue events, amount data
- DD platform successfully queries
methodNameasAnalyticsReportRevenueandmethod_id=715event reports.
- View
Acceptance Case 6
- Sub-module: ReportRevenue
- Feature: Adjust Payment Event Reporting
- Test Point: Query reported events after requesting
ReportRevenuein a disconnected network state (Adjust) - Prerequisite: Disconnect network state
- Operation steps/inputs
- Request
ReportRevenue - eventName = (customizable), spChannels =
Adjust, Currency =USD, Revenue = 1000 - Reconnect to the network
- Query reported events in Adjust
- DD Platform query
AnalyticsReportRevenueevents
- Request
- Expected output information reporting success, check the following:
- After reconnecting to the network
- View
ReportRevenueevent +1 in Adjust delivery data.ReportRevenue(revenue) event amount +1000. - Export Data Verification (2-4 Hours): Exported data includes revenue events, amount data
- DD platform successfully queries
methodNameasAnalyticsReportRevenueandmethod_id=715event reports.
Frequently Asked Questions
For more information, see FAQ.
Error Codes
For more information, see Adjust Help Center.