Offerwall

How it works

Offerwall is a page featuring various paid ads and offers that reward users with free virtual currency for completing certain tasks (e.g., earn 1000 coins for reaching level 11). The Offerwall functions as a marketplace connecting advertisers, game publishers, and their users.

The quests or offers are paid placements from advertisers — both gaming and non-gaming — who pay based on performance or engagement. Gaming advertisers typically use these quests for user acquisition, while non-gaming advertisers run cost-per-acquisition (CPA) campaigns and pay for actions such as app downloads, account sign-ups, or other purchases.

When you agree to integrate the Offerwall into your game (either in-app or via your Web Shop), you set the currency exchange rate through a webhook integration (X USD = Y units of game-specific currency). Once a quest is completed, the advertiser pays Xsolla the gross amount, which is then shared with the game publisher according to a revenue-sharing model.

Note
Conversions are tracked by Xsolla via our ad server and MMP integrations (3rd party tracking companies like Adjust, AppsFlyer, and Singular).

How to get it

  1. Complete the prerequisites.
  2. Attract users to your Offerwall page:

Prerequisites

  1. Create virtual currency.
Note
For optimal configuration, the virtual currency should be priced at a low USD equivalent value. For example, a unit price of 0.001 USD implies an exchange rate of 1 USD = 1,000 units of virtual currency. The default exchange rate for that currency must be set in USD. The virtual currency status must always remain available.
  1. Set up webhooks to validate users and reward them with virtual currency:
    1. Configure handling for the following webhooks:
      • User validation. Xsolla sends this webhook to verify that a user is registered in the game. The request is sent multiple times as part of the rewarding/payment process.
Copy
Full screen
Small screen
 1{
 2  "notification_type": "user_validation",
 3  "settings": {
 4    "project_id": 123456,
 5    "merchant_id": 789012
 6  },
 7  "user": {
 8    "id": "11111111-1111-1111-1111-111111111111"
 9  }
10}
Copy
Full screen
Small screen
 1{
 2  "user": {
 3    "email": "noreply+offewall@xsolla.com",
 4    "country": "US",
 5    "external_id": "11111111-1111-1111-1111-111111111111"
 6  },
 7  "items": [
 8    {
 9      "sku": "GOLD_COINS",
10      "type": "virtual_currency",
11      "amount": "0.01",
12      "quantity": 100,
13      "promotions": [],
14      "is_pre_order": false
15    }
16  ]
17}
Note
To ensure secure data transmission, verify that the webhook was actually sent from the Xsolla server. To do this, generate your own signature based on the request body and compare it with the signature from the authorization header of the same request.
    1. Test your webhooks.

How to add block to site built with Xsolla site builder

To add an Offerwall block:

  1. Open the project in Publisher Account and go to the Storefronts > Websites section.
  2. In the Sites section, select your site and click Open Site Builder.
  3. Click Add block.
  4. Select the Offerwall block.

  1. Customize the block (optional):
    • Configure the block layout.
    • Select the background color and image.
Note
You can retain the default call-to-action button or remove it if your background image includes a built-in call-to-action graphic.
    • Configure a button.
    • Configure a header.
Note
Use clear, action-driven language that emphasizes the value users gain and motivates them to act. Users respond best to motivating copy that promises meaningful in-game rewards, for example:
  • Earn free coins now!
  • Unlock premium content at no cost!
  • Complete a quest and get rewarded!
If you need help with the integration, contact your Customer Success Manager or email to offerwall_publishers@xsolla.com.

You can provide users with a direct link to the Offerwall, for example:

  • An upsell image in the in-app purchase shop.
  • A marketing message in the app feed or main menu (e.g., “Earn Free Coins!”).
  • A push notification (with user consent) leading to an in-app Offerwall page.
  • Note
    If you plan to use the Offerwall independently of your site built with Xsolla site builder, please contact the Offerwall team at offerwall_publishers@xsolla.com.
    Offerwall URL address has the format given below, where:
    • GAMER_ID is the in-game user ID unique to your app, Xsolla supports any simple alphanumeric string. We recommend using the UUID format.
    • PLACEMENT_ID is the placement ID driving the traffic, which also indicates the app from which the user is coming.
    Copy
    Full screen
    Small screen
      1http://quests.xsolla.com/offerwall/<PLACEMENT_ID>?gamer_id=<GAMER_ID>  
      
      Was this article helpful?
      Thank you!
      Is there anything we can improve? Message
      We’re sorry to hear that
      Please explain why this article wasn’t helpful to you. Message
      Thank you for your feedback!
      We’ll review your message and use it to help us improve your experience.
      Last updated: January 26, 2026

      Found a typo or other text error? Select the text and press Ctrl+Enter.

    Report a problem
    We always review our content. Your feedback helps us improve it.
    Provide an email so we can follow up
    Thank you for your feedback!
    We couldn't send your feedback
    Try again later or contact us at doc_feedback@xsolla.com.