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

# Launch analytics mode Capacitor

<Info>
  Replace `[projectKey]` with your Qonversion project key. You can find it in the [Qonversion dashboard](https://dash.qonversion.io) under **Project Settings → Project Key**.
</Info>

## 1. Launch SDK

Initialize the SDK:

```javascript Capacitor theme={null}
import Qonversion, {
  QonversionConfigBuilder,
  LaunchMode,
  UserPropertyKey,
} from '@qonversion/capacitor-plugin';

const config = new QonversionConfigBuilder(
  '[projectKey]',
  LaunchMode.ANALYTICS
).build();
Qonversion.initialize(config);
```

## 2. Sync Purchases (Android only)

1. Check whether you have set your products up correctly. Make your GooglePlay subscriptions backwards compatible with having the best possible accuracy in Qonversion. <a href="/docs/android-in-app-products" target="_blank">Learn more here</a>

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 <a href="https://developer.android.com/google/play/billing/integrate#process" target="_blank">processing purchase details</a>.

3. Sync data with Qonversion in your current purchase flow. Call `syncPurchases()` after every purchase.

```javascript Capacitor theme={null}
Qonversion.getSharedInstance().syncPurchases();
```

> 📘
>
> Please, do not use the [Google Play Billing AIDL](https://developer.android.com/google/play/billing/integrate) library to integrate Qonversion SDK with your application. It was deprecated and is not supported by Qonversion SDK.

<Info>
  **iOS:** there is no `syncPurchases()` on iOS. Call `Qonversion.getSharedInstance().syncHistoricalData()` once on the very first launch after integrating Qonversion to backfill existing subscribers.
</Info>

## 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](/docs/user-identifiers#3-user-identity).

To match Qonversion revenue events to users in <a href="/docs/integrations-overview" target="_blank" rel="noopener">third-party tools</a>, you need to set the identical user IDs in all of them:

```javascript Capacitor theme={null}
Qonversion.getSharedInstance().setUserProperty(UserPropertyKey.CUSTOM_USER_ID, 'yourSideUserId');
```

The user ID improves the quality of events matching to the platforms where event attribution is not exclusively based on IDFA or GAID.

## 4. (Optional) Set IDFA (Identifier for Advertisers, iOS 14.5+ only)

On iOS 14.5+, after requesting the app tracking permission using ATT, you need to notify Qonversion if tracking is allowed and IDFA is available. This will help to have precise attribution in Adjust, AppsFlyer, Singular and other <a href="/docs/integrations-overview" target="_blank" rel="noopener">Qonversion integrations</a>.

```javascript Capacitor theme={null}
Qonversion.getSharedInstance().collectAdvertisingId();
```

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

On Android 12+, you can provide an App set ID to have it used in <a href="/docs/integrations-overview" target="_blank" rel="noopener">Qonversion integrations</a>.

Add `com.google.android.gms:play-services-appset` as the dependency to your project and write the following code.

```javascript Capacitor theme={null}
Qonversion.getSharedInstance().setUserProperty(UserPropertyKey.APP_SET_ID, appSetId);
```
