> ## Documentation Index
> Fetch the complete documentation index at: https://moengage.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Why Aren't Push Campaign Impressions Tracked on Android Devices?

> Troubleshoot Android push impression tracking failures caused by SDK initialization delays or custom notification display handling in your app.

## Problem

The MoEngage SDK does not track Push campaign impressions on Android devices or SDKs.

## Solution

Push campaign impression issues can be due to several factors:

* When MoEngage SDK handles push notifications by default:
  * Confirm SDK initialization. Check if the SDK is initialized with a delay.
    * If the SDK is initialized with a delay, change the SDK initialization to the default configuration, as specified in the following MoEngage documentation links. Initialize the SDK in the **onCreate()** method of the Application class on the main thread, not in any callbacks.
      * [Android Native](https://www.moengage.com/docs/developer-guide/android-sdk/sdk-integration/basic-integration/sdk-initialization)
      * [React Native](https://www.moengage.com/docs/developer-guide/react-native-sdk/sdk-integration/react-native/sdk-initialization/manual-initialization/android)
      * [Flutter](https://www.moengage.com/docs/developer-guide/flutter-sdk/sdk-integration/sdk-initialization/manual-initialization/android-sdk-initialization)
      * [Cordova](https://www.moengage.com/docs/developer-guide/cordova-sdk/sdk-integration/sdk-initialization/android-sdk-initialization)
      * [Unity](https://www.moengage.com/docs/developer-guide/unity-sdk/sdk-integration/sdk-initialization/android-sdk-initialization)
      * [Capacitor](https://www.moengage.com/docs/developer-guide/capacitor-sdk/sdk-integration/sdk-initialization/android-sdk-initialization)
  * Check for network issues. Network issues (such as Private DNS or AdBlocker) might prevent data from syncing from the SDK to the MoEngage backend.
* When MoEngage SDK handles push notifications with customizations:
  * Confirm SDK initialization. Ensure the SDK is not initialized with a delay (see the point above).
  * Check the PushMessageListener/PluginPushCallback code. Verify that the Builder does not interfere with the MoEngage SDK's callbacks.
* When the app handles push notifications:
  * Confirm SDK initialization. Ensure the SDK is not initialized with a delay (see the point above).
  * Verify push notification handling. Confirm that the app developer has notified the MoEngage SDK when a push notification is received. The App should create the push notification using the **logNotificationReceived()** method in the onMessageReceived() callback. For more information, refer to [Push Display Handled by Application](https://www.moengage.com/docs/developer-guide/android-sdk/push/advanced/push-display-handled-by-application).
