Introduction to platform compliance
Understand where you can sell direct to consumers, how platform fees apply, what each platform requires you to present in-app, and which transactions you must report.
Read time 6 minutesLast updated 4 days ago
Apple and Google permit Direct-to-Consumer (D2C) selling, which includes webshops, link-outs, and alternative payments, in all regions of the world, with varying requirements for each region and platform. While compliance with Apple's and Google's developer terms is your responsibility as the app publisher, Unity IAP and the webshop include tools to help meet those requirements so you can successfully sell to players anywhere your games operate.
Apple and Google each have their own rules about how you can sell, platform fees, presentation requirements, and reporting. This page summarizes the four requirement areas and shows how Unity's commerce tools address each one:
- Where you can sell direct to consumers: you can run a webshop that serves players anywhere. What differs by region is whether you may advertise or link to D2C payments from inside your game.
- Platform fees: direct webshop traffic is generally outside platform control and commission.
- Presentation requirements: Unity's purchase options UI presents the payment choices you configure. Unity doesn't call Apple's external purchase notice or Google's external link APIs, so your app must make its own disclosure and eligibility calls before a purchase starts.
- Transaction reporting: reporting assistance surfaces the data you need to file the reports platforms require.
For the specific requirements that apply in each region, refer to Platform compliance requirements reference.
What Unity handles and what you handle
The following table shows which parts of the workflow Unity's tools support and which sit with you or your payment provider.
Task | Handled by |
|---|---|
| Processing payments, tax, refunds, and disputes | Your payment provider (Stripe, Coda, or both), you, or a combination, depending on your terms with your payment provider |
| Controlling where D2C offers appear, by region | Unity, with routing rules |
| Purchase presentation in-game | Unity, with the purchase options UI, which you configure per region and platform |
| Direct-to-player sales channel | Unity, with the webshop |
| Obtaining Apple and Google reporting tokens in-app | You, with the Unity SDK |
| Filing external transaction reports, enrolling in external purchase programs, and maintaining external purchase entitlements | You, through your own systems and Apple or Google developer configs |
Where you can sell direct to consumers
Selling directly to consumers is allowed in all regions of the world; however, you may only display advertisements or links to D2C payments inside your game in certain regions. For the regions where you can display in-game D2C options, refer to Platform compliance requirements reference.
Run a webshop anywhere in the world
The webshop lets you run a D2C shop for all of your players, no matter where they are. In regions where you cannot display D2C in your game, your webshop can still operate as an independent website. You can reach your players through email lists, community Discord servers, or other hubs where your most dedicated players gather.
Control where D2C options appear
Routing rules are dashboard-configured rules that determine whether D2C options are shown when a player selects Buy on an item in your game. You can configure them by platform, region, and rollout percentage, and define fallback behavior when no rule matches.
D2C routing is off by default, so external purchase options don't appear until you add a rule that enables them. This helps prevent your game from exposing a purchasing option where you don't intend to offer it. A rule becomes active as soon as you select Save, so don't add one until you're ready for it to take effect.
Platform fees
Platforms treat D2C purchases differently depending on how the player reaches checkout:
- With a link-out, the player leaves the app and completes the purchase in a browser or on your webshop. Platform commissions usually apply to purchases made within the platform's attribution window after that click, but depend on the platform's own attribution rules and your agreement with that platform.
- With an in-app checkout, the player completes the purchase without leaving the app. Using the Unity IAP SDK, you can support this by displaying your webshop or payment provider checkout in a webview.
For the commission that applies to each platform and region, refer to Platform compliance requirements reference.
Direct webshop visits and fees
If it's made outside of a link-out attribution period, a purchase made on a direct visit to your webshop typically does not incur a fee from platforms, in any region. This can include cases where the player opens your webshop from a bookmark, email, social post, or search result. You should still always confirm the current policy on the platform's own pages before relying on direct visits for revenue planning.
Presentation requirements
Where external purchasing is allowed, both platforms regulate how it appears in your app. Broadly, the platforms tend to require one of three presentations:
- Native and D2C presented side by side
- Native and D2C presented side by side, with payment methods listed
- Either native or D2C presented, not both
For the presentation each platform requires in each region, refer to Platform compliance requirements reference.
Purchase options UI
The purchase options UI is a Unity-provided interstitial that lists eligible payment options (platform IAP, D2C providers, or your webshop) whenever a player initiates a purchase. It is designed to support the presentation patterns the platforms describe for each region. You remain responsible for confirming your implementation meets your obligations to Apple and Google, and are able to modify the purchase options UI as needed.
The purchase options UI presents the payment options side by side. Use routing rules to control where D2C options are eligible. This is how you meet a requirement for a single payment option, or keep D2C offers out of your game in a given region. When no D2C option is available for the player, only the native option remains and the purchase goes to the native store. For the complete flow, including setup, callbacks, and testing, refer to Initiate a purchase.
Sell through the webshop alone
If you want D2C revenue without touching your in-game purchase flow, use the webshop on its own: promote it outside the game through email, social, community, or your website, and players buy there directly. Because nothing changes inside your app, there are no presentation requirements to meet and your existing IAP flow is undisturbed.
Transaction reporting
Apple and Google policies require you to report external transactions in order to calculate any commission due.
Unity IAP assists in reporting by surfacing the platform tokens (Apple acquisition and services tokens, Google external transaction tokens) via the SDK. You acquire each token from the platform yourself, then attach it to the order with before the purchase starts. Unity returns the tokens in the order webhook so you can assemble each platform's line items.
GenerateURLThe reporting obligation stays with you. For the SDK and webhook tools behind this, the report payloads each platform expects, and the reporting tasks you must complete yourself, refer to Report transactions to Apple and Google.