Summary:
This article explains why some Android players could lose access to DLC after its product ID was changed in Google Play, despite the store showing they still own it. The issue occurs because Unity IAP matches purchases by product ID and cannot recognise purchases tied to the old ID, creating “orphaned” purchases. The resolution is to map the old Google Play product ID to the new Unity IAP product using StoreSpecificIds in the IAP catalogue.
Symptoms:
- Players who redeemed DLC keys on Android no longer have access to the DLC after a product ID change.
- Google Play shows that affected players own the DLC, but the app does not unlock it.
- Google Support indicates the issue is related to Unity IAP’s handling of Play Billing tokens and product mapping.
Cause:
Unity IAP matches Google Play purchases to in-app products using product IDs. After the DLC product ID was changed in the Google Play console, existing purchase records remained tied to the old ID. When Unity IAP retrieves purchase data, it receives records with the old product ID, but the app’s catalogue only defines the new ID. Because there is no matching product for the old ID, Unity IAP treats these as unrecognised, orphaned purchases, resulting in users losing DLC access.
Resolution:
1. Update the Unity IAP product catalogue to explicitly map the old Google Play product ID to the new Unity product ID.
2. Use the StoreSpecificIds feature when adding products to the catalogue so that the same Unity product can recognise multiple store IDs.
3. Configure the Unity IAP catalogue such that the DLC product includes the old Google Play product ID as its store-specific ID.
4. Rebuild and deploy the updated app.
5. Once live, Unity IAP will correctly match existing purchases using the old ID to the current DLC product, restoring access for affected users.