Initialize the Android SDK
Rokt partners can use the Android SDK to display overlay or embedded placements, while Rokt brands can use it to record conversions for their campaigns. The Rokt Android SDK is deployed using Maven and Gradle.
Rokt's Android SDK contains ProGuard rules and does not require additional configuration.
All use cases of the SDK follow the same initial steps to integrate and initialize the SDK. At a high level, these steps are:
- Set up a workspace and enable the Rokt Gradle repository
- Add the Rokt Placement plugin
- Add the Rokt Android SDK module
- Initialize the Rokt Android SDK
Following these steps, the execute
method of the SDK can then be used in various ways to suit the required use case.
Before you begin
This guide assumes that you are familiar with Gradle and know how to install a plugin for Android development.
Setting up the Android SDK
- Set up a workspace and enable the Rokt Gradle repository. To set up a repository, follow Gradle's instructions.
- Add the Rokt Widget plugin repository URL in the
build.gradle
file for the project.
// file => build.gradle (Project: ....)
allprojects {
repositories {
google()
mavenCentral()
maven {
url "https://apps.rokt.com/msdk"
}
}
}
Or if you are using Gradle 7.0.0 and above, where the repository settings that were previously in the top-level build.gradle file are now in the settings.gradle file, add the following in settings.gradle file.
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
maven {
url "https://apps.rokt.com/msdk"
}
}
}
- Add the Rokt Android SDK module to
build.gradle
for the module.
// file => build.gradle (Module: ...)
dependencies {
...
implementation 'com.rokt:roktsdk:4.3.0'
...
}
- Initialize the Rokt SDK prior to using it in any activity. We recommend calling the
init
method from theLauncherActivity
class.
Contact Rokt to get the Rokt Account ID associated with your account. To test your integration, you can use the Rokt Account ID below, but you need to replace it with your unique Rokt Account ID before launching in production.
Test account ID: 222
- Java
- Kotlin
import com.rokt.roktsdk.Rokt
public class LauncherActivity: Activity {
override fun onCreate(savedInstanceState: Bundle?) {
...
// The following will reveal a demo integration. To view your integration:
// 1) Replace the integration test tag ID (222) with your unique Rokt Tag ID
// 2) Replace Y.Y.Y with the application version
Rokt.init("222", "Y.Y.Y", this@LauncherActivity)
...
}
}
import com.rokt.roktsdk.Rokt;
public class LauncherActivity extends Activity {
override fun onCreate(savedInstanceState: Bundle?) {
...
// The following will reveal a demo integration. To view your integration:
// 1) Replace the integration test tag ID (222) with your unique Rokt Tag ID
// 2) Replace Y.Y.Y with the application version
Rokt.INSTANCE.init("222", "Y.Y.Y", LauncherActivity.this)
...
}
}
Initializing with Fonts
This functionality is supported from version 4.2.0 of the Rokt Android SDK.
Instead of or in addition to supplying your desired fonts on One Platform, you may choose to utilize the fonts already bundled with your application. This carries the advantage of removing the potential for fonts to be downloaded at initialization time, reducing network utilization and the chances of download errors. You may choose to either use font resources located in the assets
directory of your application or to pass your own Typeface
objects.
Using Font Assets
You may utilize the fonts stored in the assets
directory of your application. For this, you may pass a map to the init
method that maps the fonts' postscript names to the filepath in the assets directory (where the assets directory is the root directory). The postscript names should match those being used in your layout, please check with your account manager if you are unsure.
- Java
- Kotlin
import com.rokt.roktsdk.Rokt
public class LauncherActivity: Activity {
override fun onCreate(savedInstanceState: Bundle?) {
...
Rokt.init(
"222",
"Y.Y.Y",
this@LauncherActivity,
fontFilePathMap = mapOf("Arial-Bold", "fonts/arialbold.otf")
)
...
}
}
import com.rokt.roktsdk.Rokt;
public class LauncherActivity extends Activity {
override fun onCreate(savedInstanceState: Bundle?) {
...
Map<String,String> fontFilePathMap = new HashMap<String, String>();
fontFilePathMap.put("Arial-Bold", "fonts/arialbold.otf");
Rokt.INSTANCE.init(
"222",
"Y.Y.Y",
LauncherActivity.this,
new HashSet<>(), // fontPostScriptNames can be empty
fontFilePathMap
);
...
}
}
Using Font Typefaces
You may also use Typeface objects that you have created in your application. For this, you must pass a set of the fonts' postscript names to the init
function, and later pass the Typefaces to the execute
function (detailed in Adding a placement).
- Java
- Kotlin
import com.rokt.roktsdk.Rokt
public class LauncherActivity: Activity {
override fun onCreate(savedInstanceState: Bundle?) {
...
Rokt.init(
"222",
"Y.Y.Y",
this@LauncherActivity,
fontPostScriptNames = setOf("Arial-Bold")
)
...
}
}
import com.rokt.roktsdk.Rokt;
public class LauncherActivity extends Activity {
override fun onCreate(savedInstanceState: Bundle?) {
...
Set<String> fontPostScriptNames = new HashSet<String>();
fontFilePathMap.add("Arial-Bold");
Rokt.INSTANCE.init(
"222",
"Y.Y.Y",
LauncherActivity.this,
fontPostScriptNames
);
...
}
}
Debugging
Use the Rokt.setLoggingEnabled(enable = true)
API to enable debug logs from the Rokt SDK.
Next steps
The subsequent steps depend on your use case for integration. Check out these topics for more: