Unity IAP FAQs

Thank you for using Unity IAP. We appreciate your feedback and suggestions.

NOTE: Find similar and more up to date information on our Knowledge Base.

Here are a list of FAQs that we will add to as questions pop up:
[May 2016 - Updated 4, and 6. Added questions 14+. June 2016 - Added questions 22+. July 2016 - Added question 24. October 2016 - Added questions 25+. Jan 2017 - Moved some Q to KB.]

1. On Apple’s Sandbox Testing Environment why do no transactions complete?
[Moved to KB]

2. Why does my app hang if I try to make a purchase after not completing (via returning PurchaseProcessingResult.Complete from ProcessPurchase) a previous purchase?
[Moved to KB]

3. Why does the Android build fail with Unity IAP and AdMob?
[Moved to KB]

4. Is receipt validation supported with Unity IAP, for added security?
[Moved to KB]

5. Is Unity IAP on Windows for IL2CPP (a.k.a. 64bit, x64) supported?
No. IL2CPP is considered experimental and a required DLL accessibility feature needed for any plugin to run on Windows IL2CPP has not yet been released.

6. Is Unity IAP for Amazon or Samsung supported?
[Moved to KB] Yes.

7. What is the difference between WindowsPhone8 and WinRT?
From a Unity IAP API perspective there is no difference. This redundancy has been eliminated in a recent plugin update.

8. What is unverified revenue?
[Moved to KB]

9. Why do I see “Unable to purchase ” in the Android log for Google Play only for consumable products?
[Moved to KB]

10. How do I configure my Product IDs for the app stores?
[Moved to KB]

11. How do I resolve error code 0x805A0194, shown in logs when the launching my Windows game?
[Moved to KB]

12. How does Unity IAP initialization work?
[Moved to KB]

13. How does Unity IAP purchasing work?
[Moved to KB]

14. How does product restoration work on iOS?
[Moved to KB]

15. How does product restoration work on Android’s Google Play Store?
Google Play and Unity IAP offer automatic restoration of purchased products that have not been consumed. This restoration happens automatically the first time an app is opened after a user re-installs it or installs it for the first time on a new device.

16. Once a product has been restored what do I need to do to reflect in the app that the user owns the product?
Nothing! Once product restoration has started (either automatically on Unity IAP initialization for Google Play or after the RestoreTransactions method has been called for iOS), Unity IAP’s backend process will call the ProcessPurchase method (via the IStoreListener) on each item being restored. This means that whatever code the app has for the first time a purchase is made, this code will be executed again for the purchases being restored.

17. Are there code examples of Unity IAP I can look at?
[Moved to KB]

18. On Apple, why is ProcessPurchase not being called at launch for previously made but unconsumed purchases?
NOTICE: This is fixed by Unity IAP 1.6.1. For Unity IAP 1.6.0 and earlier:
A third party plugin may be consuming Apple’s SKPaymentQueue SKPaymentTransaction notifications before your game initializes Unity IAP. Unity IAP requires those notifications to account for previously unconsumed purchases. This timing issue can be resolved on some plugins’ configuration settings. For Google’s AdMob call [GADMobileAds disableAutomatedInAppPurchaseReporting] (see also AdMob’s IAP reporting documentation) early in your -[UnityAppController application: didFinishLaunchingWithOptions:] (see the generated Xcode project’s UnityAppController.mm). For Facebook’s SDK v3.22 and higher disable IAP logging with the switch at https://developers.facebook.com > Your App > Settings > Basic > iOS > “iOS Only: Log In-App Purchase Events Automatically (Recommended)” (see also the Facebook SDK IAP App Event logging documentation).

19. Why does Unity IAP stop receiving callbacks on our IStoreListener implementation?
[Moved to KB]

20. On Google Play how do I reset non-consumable purchases for repurchasing on a test account?
You can reset Google Play owned items in the Google Payments Merchant Center. You’ll also need to clear the Google Play app’s cache since it caches a record of what the player owns.

21. How do I build for different Android stores e.g. switch from Google Play to Amazon Appstore?
[Moved to KB]

22. Why does integrating Unity IAP result in compiler errors?
[Moved to KB]

23. Why can’t I enable In-App Purchasing? Who can activate Unity Services (Analytics, Ads, etc.)?
[Moved to KB]

24. How to troubleshoot Windows Universal and Windows Phone 8.1 issues?

  1. When exporting the Visual Studio project from Unity enable the InternetClientServer capability in Publishing Settings
  2. Check the phone date and time are correct
  3. In the project’s generated Package.appxmanifest file make sure the following fields matches the published app:
    3a) Package/Identity/Name
    3b) Package/Identity/Publisher
    3c) PhoneProductId
    3d) PublisherDisplayName
    3e) EntryPoint
    These values can be found in the Developer Center’s “App management > App identity” section.

25. Why does Apple initialization return NoProductsAvailable after I set up my iTunes Account?
While testing if NoProductsAvailable is returned, in spite of having defined products, the iTunes Account may require additional configuration. Ensure your iTunes Account also contains completed agreements on tax and banking. Without these the App Store may refuse to interact with an IAP client.



6 Likes

Hi @nicholasr , i tried to implement the Unity IAP services. Everything goes as planned during implementation and during Unity editor testing, until i build it to my iOS text device. During the test, is there no pop up message to confirm the purchase? I used the function and it directly purchased the iap without any pop up confirmation box. Fyi, i even haven’t log in as a sandbox tester in my test device. I am using Unity 5.3.2p. Thank you.

Please take a look at the debug log from within XCode which will have more diagnostic information.

Does it support showing local prices? Also any plan to implement remote crediting as well?
There is no IAP console like In-App Purchases (IAP) Software for Mobile Games | Unity (like Unity - Manual: Unity Analytics) ?
Thanks.

How does the IStore interface fit into this?

I’m looking to use it to pull down all the products I have listed in the store so I can populate my in game shop that way instead of explicitly typing out all of the product ID’s.

Is it possible to use an IStore Object for this?

You can read localized product information from the IStoreController. If you want to maintain your own catalog server for listing products, you can.

Hi @hk1973 ,

Yes, IAP does support showing local prices - the IStoreController includes a products variable that stores metadata sent from the relevant app store. This will include the local prices as its set up in the app store.

Edit In addition to the IStoreController documentation linked to above, these pages are useful for more information about accessing metadata:
http://docs.unity3d.com/ScriptReference/Purchasing.Product.html
http://docs.unity3d.com/ScriptReference/Purchasing.ProductMetadata.html
*

IAP does not have it’s own dashboard because it is part of the analytics dashboard. IAP transactions automatically send a transaction event, which shows up in the analytics dashboard under the total revenue, verified revenue and unverified revenue metrics.

1 Like

Amazing and can’t wait to try it out! Thanks a lot!!
Btw, not sure if this is the right thread to ask, we are even thinking to switch from Flurry to Unity analytic completely but I can’t find a side by side feature comparison anywhere to help us make the decision. Can you help?

Hey @hk1973 ,

I am sorry we do not have a side by side comparison with Flurry but I can tell you that we have a lot of similar features, like funnels, custom events, raw data export, and user sessions. We also provide some other features that you might be interested in as well, such as Unity IAP and Heatmaps!

Hi @hk1973 and all interested,

You can find a post that goes into a little more detail of Unity Analytics features here: Flurry Events - Unity Services - Unity Discussions

Hi guys. Well impressed with the GDC stuff yesterday and wanted to ask about Unity IAP for Amazon. I notice above it says no date in the FAQ but was wondering if this has changed after what we saw yesterday? If not, is there an approx eta? Amazon houses one of my biggest customer bases and its a real pain right now to add IAPs from their dated Sdk.

cheers

G

Hi @FranticThumbs ,

Unfortunately I don’t have any information on an exact date for when we will be rolling out Amazon IAP but I can tell you that it will be soon.

1 Like

It’ll likely be within the next couple of weeks.

2 Likes

Many thanks chaps/ettes! Keep up the awesome work :slight_smile:

2 Likes

Hi. I have a few questions.

  1. As I see firstly I must initialize Store with store-ids. But can I get list of available product from service (GooglePlay, etc)? For example I have added new consumable product (crystals) via Google Player Developer Console, how application can be notified ?

  2. How can I reinitialize store? For example when application is started the 3-rd party server sends a list of available IAP products. When the app is running , the new product is added and server sends new list of products. How can I refresh store’s product list at run-time? Currently I must restart app.

  3. Tester has bought non-consumable product. How can I reset this product to test it again ?

  4. Were can I found information about is product active? I disabled product via dev console, but ‘availableToPurchase’ field is true.

Thanks

Why is IAP under Unity Analytics?
Should it not have own category?

@MichaelFil -

(1) notifying the app can be accomplished by:

  • updating the app (re-submission), although that is the most painful
  • with a URL that you host containing a list of products that you download when the application launches, and you programmatically “ConfigurationBuilder.AddProduct( myProduct )” iterate through before Initialize()
  • with our alpha “Cloud Catalog” feature available only in Unity 5.4 beta, available for sign-up Unity and the ConfigurationBuilder.useCloudCatalog=true; flag, although the number of alpha’s and beta’s in that might not suitable for your project

(2) Unity IAP does not support re-initialization. It does in Unity 5.4 beta, however, support adding products at runtime via the FetchAdditionalProducts API: Unity - Scripting API: Purchasing.IStoreController.FetchAdditionalProducts

(3) I don’t have an answer for this just yet - sorry - I’ll look into it and respond if I find one!

(4) I would expect disabling via the dev console would set availableToPurchase == false, how much time elapsed between disabling and using availableToPurchase?

@MrEsquire organizationally Unity chose to home the IAP team inside the Analytics team to help collaboration developing related ‘joined’ products - Verified Revenue which existed in the Analytics Dashboard before IAP is ‘reinforced’ by IAP, for instance.

3 Likes

@MichaelFil You can reset google play owned items in your google merchant account. You’ll have to clear the google play app’s cache since it caches a record of what the player owns.

Disabling a product in the google play dashboard will not cause availableToPurchase to be false - Google Play does not indicate to Unity IAP that the product cannot be bought.

It would be false if the product did not exist at all in the dashboard.

1 Like

HI, @nicholasr , I trying to implement the Unity IAP in our game, because we need to support app store in different country ,so I have some question about IAP.
(1) Can I get the currency symbol directly?
(2) Can I change the product price base on current currency exchange rate?
We need to show this information in our game UI, Thank you for your help.

You can get the currency symbol from ProductMetadata.isoCurrencyCode. Prices cannot be changed from the client, you must use each store’s dashboard.

1 Like