Skip to main content

Actual Activation: Android Developer Guide

Prerequisites

Before integrating Actual Activation, you must have the Actual Capture SDK (BlinkReceipt) installed and working. Activation extends the receipt scanning experience with rewards and monetization.

  • Complete the BlinkReceipt Android integration
  • Android minSdk 24+, target SDK 34+
  • Kotlin 2.0+, Gradle 8.0+
  • Jetpack Compose enabled in your module (buildFeatures { compose = true })
  • Camera permission granted (for receipt scanning)
  • Obtain a license key with Activation features enabled (contact your account team)
  • Google Ad Manager account configured for monetization (see Ad Monetization Setup and GAM MCM Setup)
  • An HTTPS server endpoint with valid SSL certificate to receive webhook POST requests (see Webhooks)

Dependencies

  • BlinkReceipt SDK (Actual Capture)
  • Google Mobile Ads SDK — included transitively via the Activation SDK

Installation

Gradle (Required)

Add the following dependencies to your app-level build.gradle:

dependencies {
implementation "com.microblink.blinkreceipt:blinkreceipt-recognizer:<version>"
implementation "com.microblink.blinkreceipt:blinkreceipt-camera-ui:<version>"
// Activation pulls in the Google Mobile Ads SDK transitively
implementation "com.actualplatform:activation:<version>"
}

These resolve from Google's Maven repository and Maven Central, so make sure both google() and mavenCentral() are declared in your settings.gradle (Android Studio includes these by default):

dependencyResolutionManagement {
repositories {
google()
mavenCentral()
}
}

License Configuration

Three keys must be declared in AndroidManifest.xml:

<manifest>
<application>
<!-- BlinkReceipt license key -->
<meta-data
android:name="com.microblink.LicenseKey"
android:value="YOUR_BLINKRECEIPT_LICENSE_KEY" />

<!-- Product Intelligence key — required for matching scanned products to promotions -->
<meta-data
android:name="com.microblink.ProductIntelligence"
android:value="YOUR_PRODUCT_INTELLIGENCE_KEY" />

<!-- Google Ad Manager app ID — required for ad serving -->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-XXXXXXXXXXXXXXXX~XXXXXXXXXX" />
</application>
</manifest>
warning

Without the Product Intelligence key, the SDK cannot match scanned products to offers and users will not earn rewards.

Ensure Jetpack Compose is enabled in your build.gradle:

android {
buildFeatures {
compose true
}
composeOptions {
kotlinCompilerExtensionVersion = "1.5.14" // Match your Kotlin version
}
}
Difference from iOS

On iOS, you must explicitly set BRScanManager.shared().enableBlinkEngage = true to enable the Activation features. On Android, the SDK auto-detects the Activations SDK on the classpath — no explicit enable flag is needed.

Ad Monetization Setup (Google Ad Manager)

Activation serves the offer wall's ads through Google Ad Manager (GAM) using the Google Mobile Ads SDK. The SDK ships transitively with the Activation SDK (added in Installation) and is initialized internally — you don't add it as a separate dependency or initialize it yourself. The only step specific to Ad Manager is declaring your app ID. For account- and network-side configuration (ad units, Multiple Customer Management), see GAM MCM Setup.

Add your Ad Manager app ID as a meta-data tag inside the <application> element of AndroidManifest.xml (also listed under License Configuration):

<manifest>
<application>
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-XXXXXXXXXXXXXXXX~XXXXXXXXXX" />
</application>
</manifest>

The app ID uses the format ca-app-pub-################~########## — note the ~ separating the publisher ID from the app ID (this differs from an ad unit ID, which uses a /). Find your app ID in your Ad Manager account; see GAM MCM Setup.