Documentation

Evaluate D2C payments for your project

Compare app store commission, payment provider fees, and merchant of record responsibilities to decide whether to add a Direct to Consumer webshop or payment provider.
Read time 9 minutesLast updated 16 hours ago

Direct-to-Consumer (D2C) payments let you sell your In-App Purchasing (IAP) catalog through your own checkout instead of Apple's or Google's in-app billing. A webshop puts that checkout on the web as a branded storefront you configure in the Unity Dashboard. Both sell the same catalog, use the same payment providers, and report into the same dashboards as the rest of your IAP revenue.
Most games that sell one-time purchases can run a D2C channel, so it's useful to know when it's best to implement one.
This page covers the following topics:
  • When a D2C channel fits your project.
  • What you keep after commission and fees.
  • How webshops help you reach more players.
  • How using one catalog for all payment channels works.
  • How to use routing to serve D2C to specific players.
  • What responsibilities are handled by the Merchant of Record (MoR).
  • What reporting and measurement tools are provided.
  • What the requirements are for implementing D2C.
For how to build D2C payments into your project, refer to Integrate D2C payment providers workflow and Create and publish your first webshop.

When a D2C channel fits

D2C channels run alongside other app stores, sell the same catalog, and don't require you to replace your native billing. However, checkouts that open from inside your app are still subject to Apple's and Google's external purchase programs, which cover only eligible apps and regions, and D2C sales can displace sales that otherwise go to the app stores. Refer to Comply with Apple and Google external purchase requirements.
Webshops are common among top-grossing mobile titles, particularly in the social casino, strategy, and action genres, and running one doesn't require a dedicated commerce engineering team. For Unity's analysis of D2C adoption and earnings, refer to Why go D2C now: The mobile game webshop business case (Unity blog).
The following table compares the signals for each case:

When to add a D2C channel now

When to build toward a D2C channel

You can re-engage existing players outside the app, through email, social channels, or your communityYou're still building channels to reach existing players outside the app
Your top sellers are one-time purchases, such as consumables, currency, or bundlesYour one-time purchases are a small share of revenue, because subscriptions stay on the app stores
Purchase volume makes negotiated provider fees worth the setup effortYour volume is still growing toward the setup effort
Someone can own provider setup, fulfillment, and complianceYou don't yet have someone to own provider setup and compliance

Commission, fees, and what you keep

Each payment provider sets its own transaction fees and currency conversion margins, which you negotiate directly. Unity IAP supports Stripe and Coda.
Note
Unity doesn't charge a fee to use IAP with D2C payment providers, including webshop purchases.
How much of a sale you keep depends on how the player reached checkout:

Route to checkout

Platform commission

In-app purchase through Apple or Google billingThe platform's standard commission for digital goods.
Checkout or webshop opened from inside your appSet by the platform's external purchase program, and specific to your app and region.
Webshop opened directly by a signed-in player, outside your appNone. The purchase doesn't pass through an app store.
Rates and program terms vary by platform, region, and your annual earnings, and they change as platform policy changes. Work from each platform's current published terms rather than a rate quoted elsewhere. Refer to App Store Small Business Program (Apple) and Understanding Google Play's service fee (Google).
Whether a D2C sale nets more than an in-app sale depends on three figures you control or negotiate: your app store commission, the discount you offer players to buy on the web, and your provider's transaction fee. The gap is widest at the standard commission rate and narrows as your rate drops, until provider fees decide the outcome, so run the comparison with your own figures before you set discounts. You also set your own price points on a webshop rather than choosing from platform pricing tiers.
Because your provider is the merchant of record (MoR), it also carries the payment processing, tax, and fraud costs that fall on you when you build your own storefront.

Player reach beyond the app stores

A webshop is a browser-based storefront at a public URL, in the form
shop.unity.com/{studio}/game/{slug}
. A webshop requires an authenticated player for every purchase. The following table shows the different authentication experiences, depending on how players open the shop:

How the player opens the shop

What the shop does

From your gameAuthenticates the player from the session the game passes. The player doesn't sign in.
From a browser, bookmark, or link, after signing inRecognizes the player's linked Unity Player Account without reopening the game.
From a browser, with no game session and no sign-inShows an unauthenticated landing page that prompts the player to open the shop from the game.
A webshop is therefore a channel for your existing players, not an acquisition channel. It extends selling to moments that in-app billing can't reach:
  • Players between sessions, on desktop, or away from the device they play on.
  • Re-engagement campaigns and offers sent to signed-in players by email or push.
  • Community and social placements, such as a Discord channel or your own website, that signed-in players can open directly.
Unity serves the storefront through a content delivery network, and your game can deep link players in and back after purchase. Refer to Player sign-in for webshops.
For in-app D2C checkouts, your provider's web checkout opens from inside an iOS or Android app, in the regions where Apple and Google permit external purchases, and under the compliance requirements.

One catalog across every channel

A webshop reads the IAP catalog from your Unity Cloud project and routes each purchase to the payment providers already configured for it. There's no separate web catalog, price list, or ledger to maintain. Having the same catalog for both in-app and webshop D2C purchases has the following benefits:
  • Catalog, price, and promotion changes reach the webshop the next time a player loads it, with no republish.
  • Sales, badges, and bonus promotions come from catalog fields, so in-game merchandising renders on the web automatically. Refer to Catalog and payments in webshops.
  • Receipt validation, entitlement grants, and refunds use the same IAP flows as in-game purchases.
  • Per-currency prices live in one place, and your provider handles conversion and settlement. Refer to Currencies and exchange rates for D2C payments.
You configure theme and branding in the Unity Dashboard rather than in code, and can generate a theme with AI to start.

Provider routing without an app release

Unity IAP evaluates provider routing rules at runtime, so you can change which provider each player gets, and which providers fall back behind it, without a client update. There are multiple ways you can use provider routing:
  • Target rules by platform and country, on webshops as well as in-app checkout.
  • Roll a new provider out to a percentage of matching players first.
  • In webshops, route by player tag, so a segment such as
    highSpender
    sees a different provider.
Routing selects the highest priority eligible provider for each player. The remaining eligible providers act as fallbacks and don't appear at checkout.
Each webshop also partitions its configuration by environment, so you can try themes, branding, and routing before players see them. Refer to Add a routing rule and Payment provider routing in webshops.

Work your merchant of record absorbs

Your payment provider acts as the merchant of record and takes legal responsibility for the transaction:

Work

Owner

Payment processing, tax, and fraud preventionYour payment provider, as MoR
Refunds, chargebacks, and disputesYour payment provider, as MoR
Player billing and transaction supportYour payment provider, as MoR
Supported currencies and payment methodsYour payment provider, as MoR
Granting and revoking entitlementsYou, through the SDK, a backend, or Cloud Code
Platform compliance for external purchasesYou
How a refund or a lost dispute reaches your game depends on whether you fulfill purchases through a webhook, a Cloud Code module, or the IAP SDK alone. Refer to Refunds and disputes for D2C payments.

Measurement in the Unity Dashboard

The Unity Dashboard reports D2C revenue next to the rest of your IAP revenue:
  • The D2C Performance page tracks transaction success, checkout drop-off, and refund and dispute volume. Refer to D2C performance.
  • The Revenue Performance page shows how D2C contributes to overall IAP revenue and how it compares to native stores. Refer to Revenue Performance reference.
Combined with rollout percentages, this reporting lets you measure a provider change on part of your population before you apply it to everyone.

Requirements before you start

The following table lists what a D2C channel requires before you launch one:

Requirement

Detail

Unity IAP 5.4 or laterIAP 5.4 also requires Unity Editor 2022.3 or later. Refer to Upgrade from IAP version 4 to version 5.
Unity AuthenticationEvery purchase requires an authenticated player, on both the in-app and webshop paths. Your game signs the player in with Unity Authentication, and a webshop opened from your game reuses that session.
Remote CatalogPayment providers read products from the Remote Catalog service, so you can change products without shipping an app update. If you have an existing catalog, you can import an App Store or Google Play catalog, or, from IAP SDK version 5.4.4, you can migrate a local Unity catalog. Refer to Create your Remote Catalog.
A payment provider accountStripe or Coda, with fees you negotiate directly. Refer to Configure your payment provider.
Purchase fulfillmentA webhook, a Cloud Code module, or SDK fulfillment. Refer to Fulfill purchases.
Platform complianceApplies to the in-app paths: checkout opened inside your app, and in-game redirects to a webshop. For those, you determine your eligibility and report transactions to Apple and Google.
A D2C channel has the following limitations:
  • Product types: D2C sells one-time purchases, such as consumables, currency, and bundles. Subscriptions stay on the Apple App Store and Google Play Store, alongside your D2C channel.
  • In-app checkout platforms: In-app D2C checkout runs on iOS and Android, and doesn't support WebGL builds.
  • Webshop platforms: A hosted webshop runs in any modern browser, including for WebGL games. Its custom-scheme return deep link back into the game resolves only in a built player, not in WebGL or the Unity Editor.

Next steps