Skip to main content

1. Launch SDK

Initialize the SDK:
import com.qonversion.android.sdk.Qonversion;
import com.qonversion.android.sdk.QonversionConfig;
import com.qonversion.android.sdk.Qonversion.dto.QLaunchMode;

public class App extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        final QonversionConfig qonversionConfig = new QonversionConfig.Builder(
                this,
                "[projectKey]",
                QLaunchMode.Analytics
        ).build();
        Qonversion.initialize(qonversionConfig);
    }
}
import com.qonversion.android.sdk.Qonversion
import com.qonversion.android.sdk.QonversionConfig
import com.qonversion.android.sdk.Qonversion.dto.QLaunchMode

public class App : Application {
    override fun onCreate() {
        super.onCreate()
        val qonversionConfig = QonversionConfig.Builder(
            this,
            "[projectKey]",
            QLaunchMode.Analytics
        ).build()
        Qonversion.initialize(qonversionConfig)
    }
}

2. Sync Purchases

  1. Check whether you have set your products up correctly. Make your GooglePlay subscriptions backwards compatible with having the best possible accuracy in Qonversion. Learn more here
  2. While you are using Qonversion SDKs in Analytics Mode, in-app purchases implementation is entirely on your side. Please remember to make sure you consume and acknowledge purchases to attribute them to users. Otherwise, the purchases will be automatically refunded in 3 days. See the official Android Developer documentation for processing purchase details.
  3. Sync data with Qonversion in your current purchase flow. Call syncPurchases() after every purchase.
Qonversion.getSharedInstance().syncPurchases();
Qonversion.shared.syncPurchases()
📘 Please, do not use the Google Play Billing AIDL library to integrate Qonversion SDK with your application. It was deprecated and is not supported by Qonversion SDK.

3. (Optional) Set User ID

If you want to implement cross-platform (Android, IOS, and Web) user entitlement management, please, follow the User Identity guide. To match Qonversion revenue events to users in third-party tools, you need to set the identical user IDs in all of them:
Qonversion.getSharedInstance().setProperty(QUserProperty.CustomUserId, "yourSideUserID");
Qonversion.shared.setProperty(QUserProperty.CustomUserId, "yourSideUserID")
The user ID improves the quality of events matching to the platforms where event attribution is not exclusively based on GAID.

4. (Optional) Set ASID (App set ID, Android 12+ only)

On Android 12+, you can provide an App set ID to have it used in Qonversion integrations. Add com.google.android.gms:play-services-appset as the dependency to your project and write the following code.
final AppSetIdClient client = AppSet.getClient(context);
final Task<AppSetIdInfo> task = client.getAppSetIdInfo();
task.addOnSuccessListener(info -> {
    final String id = info.getId();
    Qonversion.getSharedInstance().setProperty(QUserProperty.AppSetId, id);
});
val client = AppSet.getClient(requireContext())
client.appSetIdInfo.addOnSuccessListener { info: AppSetIdInfo ->
    Qonversion.shared.setProperty(QUserProperty.AppSetId, info.id)
}