# Unity Ads Android integration requirements

> Review the integration requirements for Unity Ads SDK to ensure your Android app meets the necessary prerequisites to implement ad formats.

Review the requirements and supported tools to complete the Unity Ads integration with your Android app before [installing](/monetization/sdk-integration/android-sdk/install-sdk.md), [initializing](/monetization/sdk-integration/android-sdk/initialize-sdk.md), and implementing [interstitial](/monetization/sdk-integration/android-sdk/interstitial-ads.md), [rewarded](/monetization/sdk-integration/android-sdk/rewarded-ads.md), or [banner](/monetization/sdk-integration/android-sdk/banner-ads.md) ads to earn revenue.

## App prerequisites

Before you integrate the Unity Ads SDK, confirm your app meets the following Android Gradle Plugin (AGP) version and build configuration requirements. Each one affects whether the SDK builds and delivers events correctly.

### Android Gradle Plugin versions

Your Android Gradle Plugin (AGP) version must be at least 4.2.0, supporting up to AGP version 9.

If you use AGP 9 with `isMinifyEnabled = true`, the steps you need to follow depend on your Unity Ads SDK version.

#### Unity Ads SDK 4.20.0 or later

If you’re upgrading or plan to upgrade to AGP 9 with `isMinifyEnabled = true`, install the Unity Ads SDK 4.20.0. This is the recommended path because the required R8 keep rules ship with the SDK, so no action is required from you.

#### Unity Ads SDK earlier than 4.20.0

If you’re using a Unity Ads SDK version earlier than 4.20.0 with Android Gradle Plugin 9 with `isMinifyEnabled = true`, you must add the required keep rules to your own ProGuard configuration. Without them, Unity Ads diagnostic and operative events are silently dropped under R8.

Do the following steps to add the required keep rules to your Proguard configuration.

1. Add the following three rules to your app’s `proguard-rules.pro`.

```xml
  # Keep WorkManager components that are instantiated via reflection,
  # which R8 full mode (AGP 9+) can otherwise strip. Fixes Unity Ads
  # diagnostic/operative event delivery and a potential WorkDatabase
  # startup crash.
  -keep class androidx.work.impl.WorkDatabase_Impl { *; }

  -keep class * extends androidx.work.ListenableWorker {
  <init>(android.content.Context, androidx.work.WorkerParameters);
  }

  -keep class * extends androidx.work.InputMerger {
  <init>();
  } 
```

2. Rebuild your minified release variant.
3. Confirm the logcat errors are gone and events arrive as expected.

### Build configuration

Ensure your `build.gradle` file specifies the following:

* Kotlin version to 2.1.x.
* `minSDKversion` to be `19` or higher
* `compileSdkVersion` to be `33` or higher
* [Java 8 targeting](/monetization/sdk-integration/android-sdk/install-sdk.md) for the Unity Ads SDK version 4.7.0 and higher
* `Protobuf-kotlin-lite` or `protobuf-java-lite` and the version used

  > **Note:**
  >
  > The Unity Ads SDK isn’t compatible with the full protobuf version  (
  >
  > `protobuf-kotlin`
  >
  > &#x20;or&#x20;
  >
  > `protobuf-java`
  >
  > ) due to a known dependency conflict with&#x20;
  >
  > `protobuf-kotlin-lite`
  >
  > &#x20;or&#x20;
  >
  > `protobuf-java-lite`
  >
  > , which is required by the SDK.
