Skip to main content

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

note

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
  1. Create an Adjust account.

  2. On the Adjust console, click New app to create a new application.

    Image: Adjust dashboard

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

    Image: Adjust dashboard

2. Obtain app token (ID)
  1. Enter Adjust console, and select AppView > All apps from the left navigation bar.

  2. App token will be displayed next to the respective application name.

    Image: Adjust dashboard

info

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.

caution

After creating the tracking link, it takes more than 3 hours to view related data in the Adjust control panel.

  1. On the Adjust console, go to Campaign Lab > Custom links, and click New Link on the top right.

    Images: Configure tracking links

  2. Select the application and click Next.

    Images: Configure tracking links 2

  3. Enter the link name and click Quick create.

    Images: Check tracker token

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

    Images: Check tracker token 2

  1. Access Player Network SDK.

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>
caution

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_ENABLE sets 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_ENABLE sets 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.

note

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
info

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

info

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.

caution

Must support Adjust V2 signature.

  1. 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
    }
    }
  2. Handle tracking token logic in the created task.

caution
  1. The data is in big-endian mode.
  2. The protocol header is fixed new byte[]-106.
  1. 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;
    }
    }
  2. Use blockid 0x717874 to write data to APKSigningBlock.

  3. Build Gradle package using ./gradlew assemble${variantName}Channels.

  4. In the log view, enter set default tracker : ${tracker_token} to check if the Gradle build is successful.

    Image: Verification

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 time
  • login: When the user logs in to the game subsequently

Report events manually

1. Create New Event
  1. Select application in the Adjust console.

    Image: Adjust App ID

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

    Image: Adjust App ID

  3. Enter the event name and click Add Event.

    Image: Adjust Event Token

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

    Image: Adjust App ID

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

    Image: Adjust Event Token

note

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.

  1. Select application in the Adjust console.

    Image: Adjust App ID

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

    Image: Adjust App ID

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

    Image: Unique Events

For more information, see Adjust events.

  • If Adjust partner parameter is used, add parameters in extraJson:
    "{\"isPartnerParameters\":true}"
  • If the extraJson field is empty, or isPartnerParameters is set to false, the reporting parameters will be set in Adjust's callback_params.
  • EventName must fill in the event token to track the event.For details, see Adjust Event Tracking.

For more information, see Analytics.

Funnel Events

note

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

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

caution

Events are not reported in real-time, with a delay of over 1 hour.

  1. On the Adjust console, click Installs.

    Image: Adjust App ID

  2. View all reported data in the statistics table.

    Image: Adjust App ID

Enable Sandbox Mode to view reported events

note

Delay in Sandbox Mode is about 10 minutes.

Configuration

Report data to Adjust Sandbox Mode:

  1. Add Adjust in the DEBUG_CHANNEL configuration in INTLConfig.ini.
  2. Set LOG_LEVEL = 1 or LOG_LEVEL = 0 in 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:

Image: Adjust Sandbox

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

    Image: Input ad ID

  2. Enter ad ID to view device data.

Image: Input ad ID

note

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

On your device, select Settings > Google > Ads to view the advertising ID for this device.

Image

View reported data
  1. Configure INTLConfig.ini to enable client Sandbox Mode for data reporting.

  2. On the Adjust console, click Installs.

    Image: Adjust App ID

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

    Image: Adjust App ID

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

    Image: Adjust App ID

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
    1. First-time guest login
    2. Log out
    3. Log in again with the same account
    4. Export data on the management end to view reported events
  • Expected output information reported successfully, check as follows:
    1. View on the management console:
      1. Report registration event for first-time guest login (adjust_complete_registration): Reported count +1
      2. Log in with the same account and report login event (adjust_login): Reported count +1
    2. Data export verification: contact [killuachen] and pull logs into the group for final confirmation.
      1. Report registration event for first-time guest login (adjust_complete_registration): Reported count +1
      2. Log in with the same account and report login event (adjust_login): Reported count +1
      3. Player Network SDK OpenID carried in event parameters

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
    1. Use Facebook for first-time login
    2. Log out
    3. Log in again with the same account
    4. Export data on the management end to view reported events
  • Expected output information reported successfully, check as follows:
    1. Management end view:
      1. Report registration event for first-time guest login (adjust_complete_registration): Reported count +1
      2. Log in with the same account and report login event (adjust_login): Reported count +1
    2. Data export verification: contact [killuachen] and pull logs into the group for final confirmation.
      1. Report registration event for first-time guest login (adjust_complete_registration): Reported count +1
      2. Log in with the same account and report login event (adjust_login): Reported count +1
      3. Player Network SDK OpenID carried in event parameters

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
    1. First-time Facebook login
    2. Log out
    3. Log in again with the same account
    4. Export data on the management end to view reported events
  • Expected output information reported successfully, check as follows:
    1. Management end view:
      1. Report registration event for first-time guest login (adjust_complete_registration): Reported count +1
      2. Log in with the same account and report login event (adjust_login): Reported count +1
    2. Export data verification:
      1. Report registration event for first-time guest login (adjust_complete_registration): Reported count +1
      2. Log in with the same account and report login event (adjust_login): Reported count +1
      3. Customer User ID matches Player Network SDK OpenID

Acceptance Case 4

  • Sub-feature module: Reporting
  • Feature point: Event Reporting
  • Test Point: Successful Adjust event reporting
  • Prerequisite: Initialize analytics module
  • Operation steps/inputs
    1. Request Report Event
    2. eventName = Report_Event, paramsDic-key1=k1, paramsDic-value1=v1, paramsDic-key2=k2, paramsDic-value2=v2, spChannels=Adjust
    3. Uninstall and install SDK and start the game
    4. View reported data on the management end and export INSTALL data table
  • Expected output information reporting success, check the following:
    1. Management end view:
      1. Custom Event: Adjust can find reported custom Report_Event event count +1
      2. Installation Event: View the number of reported INSTALL events for uninstalling and installing increased by 1 (only reported once without clearing the device)
    2. Export Data Verification: Contact [killuachen] to pull the group and export the log for final confirmation.
      1. 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.
      2. 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.

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
    1. Request ReportRevenue
    2. eventName = (customizable), spChannels = Adjust, Currency = USD, Revenue = 100
    3. Query reported events in Adjust
    4. DD Platform query AnalyticsReportRevenue events
  • Expected output information reporting success, check the following:
    1. View ReportRevenue event +1 in Adjust delivery data. ReportRevenue (revenue) event amount +100.
    2. Export Data Verification (2-4 Hours): Exported data includes revenue events, amount data
    3. DD platform successfully queries methodName as AnalyticsReportRevenue and method_id=715 event reports.

Acceptance Case 6

  • Sub-module: ReportRevenue
  • Feature: Adjust Payment Event Reporting
  • Test Point: Query reported events after requesting ReportRevenue in a disconnected network state (Adjust)
  • Prerequisite: Disconnect network state
  • Operation steps/inputs
    1. Request ReportRevenue
    2. eventName = (customizable), spChannels = Adjust, Currency = USD, Revenue = 1000
    3. Reconnect to the network
    4. Query reported events in Adjust
    5. DD Platform query AnalyticsReportRevenue events
  • Expected output information reporting success, check the following:
    1. After reconnecting to the network
    2. View ReportRevenue event +1 in Adjust delivery data. ReportRevenue (revenue) event amount +1000.
    3. Export Data Verification (2-4 Hours): Exported data includes revenue events, amount data
    4. DD platform successfully queries methodName as AnalyticsReportRevenue and method_id=715 event reports.

Frequently Asked Questions

For more information, see FAQ.

Error Codes

For more information, see Adjust Help Center.