This topic includes best practices and other considerations for using Add-ons with your app.
This is a Platform SDK feature requiring Data Use Checkup
To use this or any other Platform SDK feature, you must complete a Data Use Checkup (DUC). The DUC ensures that you comply with Developer Policies. It requires an administrator from your organization to certify that your use of user data aligns with platform guidelines. Until the app review team reviews and approves your DUC, platform features are only available for test users.
Apps for children can't use Platform SDK features
If you self-certify your app as primarily for children under 13, you must avoid using Platform SDK features. This restriction ensures compliance with age-specific guidelines. To ensure compliance, the Data Use Checkup for your app is disabled.
Defining items in bulk
You can define your add-ons in bulk, create a tab-separated (.tsv) file with the following format. The add-ons item template with this format available from the Developer Dashboard using the following steps:
From the left-side navigation, click Monetization, then Add-ons.
Click the dropdown to the right of Create Add-on.
Click Upload TSV.
Click template to download the template.
Fill out the template.
Upload the completed template in the Upload TSV modal, and click Submit.
After you upload your items, you will be able to view them on the Add-Ons page.
SKU
NAME
Description
Currency
Amount
Item Type
unlock_level_2
Level 2 Unlock
Purchase this item to unlock the 2nd level in the game.
USD
9.99
durable
100_coins
100 Coins
100 coins to spend as in-game currency.
USD
2.99
consumable
The values for the items in the table above are:
SKU - The unique string that you use to reference each add-on item in your app. The SKU is case-sensitive and the name you define in the Dashboard must exactly match the SKU you reference in your code.
Name - The short descriptive name that the user will see.
Description - The full description of the item that the user will see. Be as descriptive as necessary to avoid any confusion.
Currency - The unit of currency in which the item will be charged in. Only USD is supported at this time. The add-on will be converted to the local user’s preferred currency at the time of purchase.
Amount - The amount to charge for the add-on. Available prices are listed below.
Item Type - The type of item for sale. Options are consumable and durable. See the description above for the difference between the two.
Once you’ve created the TSV file, you can upload your add-ons by selecting Upload TSV and following the on-screen prompts. After you upload your items, you will be able to view them on the Add-Ons page.
Note: You must enter your payment information for your account before you can download the template or upload a file.
Anti-fraud measures
In-App Purchases can be a wonderful way to increase income from your game. They also increase the content, and targeted In-App Purchase releases can draw users back to your game to try out new outfits, accessories, and more.
But popular games can be targeted for instances of fraud and other abuses of your purchases. Here are suggestions to prevent abuse of purchasable in-game content and fraud in your purchases. We suggest incorporating anti-fraud and anti-abuse measures into your game when you’re adding In-App Purchases.
Check for Voided Purchases: Only allow a user to interact with legitimately purchased items. It’s recommended to not load an item into a scene until you verify the item purchase (Unity, Native, Unreal).
Don’t package your unlocked content in your main application: Consider using asset files (Unity, Native, Unreal) instead of including In-App Purchase content with your application. Check to confirm that a user has purchased content before downloading it to your application.
Consuming purchased IAP items
When a user purchases a consumable IAP item, the app needs to acknowledge the purchase by calling the consume API (Unity, Native, Unreal). This is to signal to Meta services that your app now knows about the purchase, and has granted the user the purchased item in-app (in addition to whatever other app-level logic is appropriate on add-on purchase).
This is necessary because when a user purchases a consumable IAP item, that item’s SKU is locked for the user until their purchase is consumed. Users cannot buy the same consumable IAP again until consumed by the application. If a consumable IAP item is purchased and not consumed by the app for more than 3 days, Meta will process an automatic refund to the user.
For examples on how to use the consume API, see Consume an IAP item (Unity, Native, Unreal).