- DataDome benefits
- Installation
- Network tracking & Captcha
- Event tracking
- Optional settings
- Sample app
The DataDome SDK has two major benefits:
1 - Network tracking & Captcha
Handles the 403 API response, generated by the DataDome server-side integration, to display the Captcha.
2 - Event Tracking
The SDK tracks user interactions inside the app, only when the app is active, and sends it to the DataDome API.
Installation (Android 16+):
Gradle dependency
build.gradle in the root:
allprojects {
repositories {
maven { url 'https://dl.bintray.com/datadome-org/datadome/' }
}
}
build.gradle in the module, according to the latest version of the SDK:
dependencies {
implementation 'co.datadome.sdk:sdk:+'
}
1 - Network tracking & Captcha
The default and recommended integration is with the OkHttp Client interceptor:
Manual integration is also available:
- Manual integration
(We strongly recommend using OkHttp integration whenever possible.)
2 - Event tracking
We provide 2 event tracking types:
- Touch screen tracking
- Custom event tracking
Touch Screen Event tracking
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
dataDomeSDK.handleTouchEvent(event);
return super.dispatchTouchEvent(event);
}
Custom event Tracking
import android.app.Application;
class MainActivity extends AppCompatActivity {
private DataDomeSDK.Builder dataDomeSDK;
@Override
protected void OnCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dataDomeSDK = DataDomeSDK
.with(getApplication(), "Client_Side_Key", BuildConfig.VERSION_NAME)
.listener(DataDomeSDKListener);
}
[...]
public void isClick(View v) {
datadomeSDK.logEvent(102, "isClicked", MainActivity.class.getSimpleName())
}
}
Optional settings
Use custom Accept header
By default, the DataDome SDK overrides the default Accept
header for each API call to JSON
.
Please follow the 2 steps below to change this behavior:
1 - Inside the Mobile app
Set the 4th parameter to true
during Interceptor
instantiation.
import android.app.Application;
class MainActivity extends AppCompatActivity {
private DataDomeSDK.Builder dataDomeSDK;
public void makeRequest(){
OkHttpClient.Builder builder = new OkHttpClient.Builder();
builder.addInterceptor(new DataDomeInterceptor(getApplication(), dataDomeSDKListener, "Client_Side_Key", BuildConfig.VERSION_NAME, true));
OkHttpClient client = builder.build();
}
[...]
}
2 - DataDome Dashboard
Force the response format inside the mobile app
endpoint settings to JSON
.


Force a Captcha display
You can simulate a Captcha display using the framework by providing a user agent with the value BLOCKUA.
You can pass this value while building the instance of DataDomeSDK
using the following API:
dataDomeSDK = DataDomeSDK
.with(getApplication(), "Client_Side_Key", BuildConfig.VERSION_NAME)
.listener(DataDomeSDKListener)
.agent("BLOCKUA");
IMPORTANT NOTE
Make sure the BLOCKUA user agent is not used in production. Otherwise, the Captcha will appear at least once for each user.
Sample app
Below is a sample app demonstrating the implementation of DataDomeSDK in a basic Android application:
Manual cookie handling
If your application has multiple HTTP client instances (example: okhttp and webview), you need to share the cookie between the instances.
To do that you can use the following 2 methods: setCookie(HEADER)
and getCookie
from dataDomeSDK Object:
if (DataDomeUtils.isValidCookie(header)) {
dataDomeSDK.setCookie(header);
}
String dataDomeCookie = dataDomeSDK.getCookie();
Updated 2 months ago