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

# Add Subscription Product

> Pick the Google Play subscription your purchase controller buys when a user accepts an offer.

## Overview

<Note>
  This step applies to **Reduce Churn** placements only. A [reward placement](/publishers/guides/reward-placements) never runs a purchase, so an app that presents only reward placements can skip it.
</Note>

Now that placements are presenting, choose the subscription product Encore offers. When a user accepts an offer at a churn moment, Encore hands the product you pick to your registered purchase controller, which runs a real Google Play subscription purchase, and Google Play handles all entitlement state; no custom entitlement tracking code is needed in your app.

The setup itself is store-console work, done once in Google Play Console and your app's **Entitlements** step:

<Card title="Google Play Subscription Product" icon="android" href="/publishers/android/platform-setup/subscription-product">
  Connect your Google Play catalog and pick the subscription, base plan, and offer Encore uses, let Encore create one for you, or enter a Product ID manually.
</Card>

***

## What the SDK does with the Product ID at runtime

You never hard-code the Product ID in your app; Encore delivers it to the SDK as **remote configuration**:

* The SDK reads the configured subscription Product ID from your app's Encore config automatically.
* When a user accepts an offer, the SDK invokes your registered [`EncorePurchaseController`](../sdk-reference/purchase-controller) with that Product ID as `request.productId` and awaits your verdict.

Because it's remote config, changing the product in the Encore Dashboard takes effect without an app update.

<Warning>
  A configured product with no registered purchase controller never charges anyone: the claim flow still completes, the result records `PublisherOutcome.NotAttempted`, a warning is logged at every log level, and the `sdk_iap_no_purchase_controller` analytics event makes the misconfiguration visible.
</Warning>

***

## Next Steps

* [Configure Analytics](../quickstart/configure-analytics) - Forward Google Play subscription events so Encore can measure offer impact


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.