When managing in-app purchases through platforms like Apple, Vizio, or other app stores, you may encounter subscriptions tied to an "Unidentified User."
This article explains who an Unidentified User is, why it occurs, and how the situation is resolved.
Who is an Unidentified User?
An "Unidentified User" is a temporary, system-level placeholder account created by Cleeng.
This account is generated when a subscriber makes a valid in-app purchase via an app store (such as Apple or Vizio), and the app store successfully shares the transaction details with Cleeng, but the subscriber's user details (e.g., their email address) are not properly synced.
Technically, this happens when Cleeng receives a Server-to-Server (S2S) notification from the app store regarding a transaction, but does not receive the matching purchase registration API call (e.g., the /purchases call for Apple StoreKit 2) from your client application.
This mechanism acts as a safety net to ensure transaction continuity. If a purchase validation request fails to reach our connector due to connectivity issues or other disruptions, the purchase is still processed and securely recorded in our system. The "dummy" user acts as a placeholder, allowing the transaction to be reconciled and the subscription transferred once the user’s details are verified.
Placeholder accounts can be identified in your dashboard by the following email pattern: unidentified.customer+...@cleeng.com.
Why does it happen?
You will typically encounter "Unidentified Users" if you receive support tickets from viewers reporting that they "paid but have no access." These represent valid subscriptions currently held within placeholder accounts.
This is expected behavior when the transaction lifecycle is incomplete. The final step - your application sending the API call required to associate the transaction with the correct user account - has not occurred.
This situation usually arises due to a gap in your client application's logic, where it successfully processes the transaction with the app store but fails to trigger the corresponding API call to Cleeng to finalize the sync.
When and how is this situation resolved?
The "Unidentified User" status is designed to be strictly temporary. It is typically resolved as soon as your application correctly communicates the missing data to Cleeng.
- Resolution: Once your application sends a valid purchase registration call referencing the exact same subscription identified (
originalTransactionIdfor Apple,subscriptionIdfor Vizio, etc.) provided in the S2S notification, the subscription is immediately transferred to the correct user account within Cleeng. - Persistence: Please note that unidentified customer records are not entirely deleted from our system. When the missing request is finally received, the active subscription is transferred to the real customer (who then receives full entitlements and can access content normally). No active subscriptions remain permanently stuck under an unidentified customer once the flow is completed.
How to prevent?
To prevent "Unidentified User" scenarios and ensure a seamless, immediate viewing experience for your customers, it is your responsibility to:
- Ensure consistent API calls: Verify that your application consistently sends the correct purchase registration API calls for all in-app transactions. This must include initial purchases, subscription renewals, and purchase restorations.
- Reconciliation: If you identify subscriptions stuck in unidentified accounts, Cleeng can provide a list of these accounts to aid your reconciliation efforts.
- Once identified, you can re-trigger the registration API call from your application using the real customer's credentials.
- Alternatively, if the real customer is known, Cleeng can assist with a manual transfer using specific endpoints (such as the
/purchases/transfersendpoint for Apple integrations).
By diligently implementing and testing the purchase API calls within your in-app integrations, you can effectively prevent the creation of "Unidentified Users" and guarantee that your customers always have immediate access to the content they purchased.
FAQs
Can Cleeng "reconcile" unidentified users so the subscription is transferred to the correct real user?
No. Cleeng has no information on which exact customer needs to own a specific subscription from the External Store. This is your responsibility to link the real customer to the subscription in Cleeng by sending an appropriate purchase validation request. Alternatively, offer restore purchase flow for your customers that paid but don't have access.
Do real users who paid have access to the content if we see unidentified customers with non-terminated subscriptions for them?
No. Until the appropriate purchase validation request has been sent by your application or middleware backend, the subscription will remain linked to the unidentified user and the real user will not have access to the content.
How do we prevent unidentified users from being created?
Make sure that you always send the appropriate purchase validation request for each purchase. We recommend sending the appropriate purchase validation request on each transaction happening in your application such as initial purchase and renewals.