Facebook Developers
DocsToolsSupportNewsApps
Log In
  • Social Plugins
  • Facebook Login
  • Open Graph
  • Facebook APIs
  • Games
  • Payments
  • App Center
  • Promote Your App
  • iOS
  • Android
  • JavaScript
  • PHP
  • More SDKs
  • Getting Started
    • Payments Tutorial
    • Register your Company
    • Payments Callback
    • Payments Reports
  • Core APIs
    • Pay Dialog
    • Order API
    • Error Codes
    • In-App Currency Orders
    • Payment Subscriptions
    • Payer Promotions
  • Local currency payments
    • Local currency payments
    • How-to: Local currency payments
    • 1. Company Registration
    • 2. Defining Products
    • 3. User Payment Flow
    • 4. Order Fulfillment
    • 5. Handling Disputes and refunds
    • 6. Testing Payments
    • Product Object
    • Pay with Mobile APIs for local currency
    • Supported Currencies & Price Floors
    • Local currency FAQ
    • Pay Dialog
  • How-Tos
    • Display prices in user's currency
    • Pay with Mobile APIs
  • Advanced
    • Payments payout FAQ
    • Disputes & Chargebacks
    • Offers with Payments
    • Payment Methods

Payer Promotions

Payer Promotions help you get players to pay more in your game. Facebook sponsors this feature, enabling you to offer certain people a discount on your game's virtual currency, such as $3 of value for free.

Benefits of Payer Promotions

  • Get more paying customers — a user who pays once is more likely to pay again in the future. In one case, 20% of people who made a first-time purchase came back to spend more within a month. Similar results have been seen in other scenarios where the discount was offered to users who had not spent in the last 30 days.

  • Facebook sponsors this promotion - you receive your revenue share just as in a regular purchase.

  • Easy to implement — with just a few simple steps, you can start converting more players of your game into payers.

Implementation options

There are three methods by which the promotion can be implemented:

  1. Promotional unit on Facebook.com
  2. Create your own Payer Promotion placement
  3. TrialPay offer wall or DealSpot placement

To get the most from this promotion, independent of implementation method, we recommend that developers update their app to support in-app currency orders. This will ensure that the promotion is redeemed in your in-app currency. If you do not do this, the user will redeem the promotion in Facebook Credits which can be spent in any app.


Promotional unit on Facebook.com

Facebook will promote the Payer Promotion to eligible players of your game, using a special banner or premium placement on the right rail of Facebook.com, as shown in the examples below.

To ensure that users are able to redeem these offers into your in-app currency, rather than in Facebook Credits, make sure you update your app to support in-app currency orders and specifically associate your app with your in-app currency so that we know which currency to redeem the offer in. You won't be required to make any other changes to take advantage of this valuable opportunity.


Create your own Payer Promotion placement

The most direct way to offer the Payer Promotion is to actively make it available from within your game, by creating a custom in-game unit for the promotion. Many developers have implemented this by showing an interstitial dialog to eligible players at relevant points in the game.

In a case study of KIXEYE's game, War Commander, which implemented Payer Promotion, we saw payer conversion grow by an average of 18%. War Commander users who saw the Payer Promotion showed a revenue lift of over 8%, compared to the control group. The game also increases conversion by offering an extra incentive, such as a free Command Center upgrade:

The details of the offer in the screenshots may not match those of the current offer.

We have seen that incentivizing users with other free virtual items increases conversion for the promotion. Context is also very important; making this promotion available along with a free virtual item, when it is needed in the game, can significantly increase conversion. You can maximize the impact of your offer by showing it at a point where premium currency can best improve a user's play experience.

Make sure you track performance. We recommend tracking user engagement (CTR), user conversion, and monetization of converted payers over time.

Implementation

First, you should implement support for In-App Currency Orders so that the promotion can be redeemed in your app currency.

Before showing the promotion to a user, query Facebook to check that the user is eligible to redeem it. Once an eligible user clicks on the promotion, you need to invoke the Facebook flow for the user to redeem the promotion.

1. Check that a user is eligible for the promotion

Before displaying the promotion, determine if the user is eligible to redeem it by issuing an HTTP GET request to the Graph API /USER_ID?fields=is_eligible_promo with a user access_token.

This query returns the following data:

NameTypeValue
is_eligible_promointThe value 1 indicating the user is eligible; if the user is not eligible, the field will not be present
idintThe user ID

An example developer request:

 https://graph.facebook.com/USER_ID?fields=is_eligible_promo&access_token=USER_ACCESS_TOKEN

A note on testing

Most developer accounts will not be eligible for this promotion, which is targeted largely at first-time or lapsed payers. So to test your implementation, you can add your account to the Payments Tester list, or alternatively create Facebook platform test users, and add them to your Payments Tester list; accounts on that list are treated as eligible.

When testing with a user forced into eligibility in this way, the credits callback will contain an additional top-level property, test_mode, whose value will be 1. Transactions marked as test_mode will not be credited to the app as purchases.

2. Invoke the promotion dialog

Assuming the user is eligible for the promotion, the developer displays the custom Payer Promotion unit. When the user clicks on the unit, invoke the fbpromotion dialog with the following Javascript call:

var obj = {
  method: 'fbpromotion',
  display: 'popup',
  package_name: 'zero_promo',
  product: 'http://currency.object.url'
};

FB.ui(obj, npp_callback);

with the following required properties:

NameTypeValueRequired
methodStringThe constant fbpromotionYes
displayStringThe constant popup; it is not possible to invoke the dialog with any other display modeYes
package_nameStringThe constant zero_promoYes
productStringThe URL of your currency objectYes

The Javascript callback will fire once the dialog is closed, with no arguments. To find out whether the user completed the payment flow or canceled out, query your app server in the callback, and update your app client with the user's new balance if applicable.

As an alternative to using the JS SDK to pop up the offer, you can load the dialog resource directly in a window that you create for it:

dialog_window = window.open("https://www.facebook.com/dialog/fbpromotion/?" +
                      "app_id=YOUR_APP_ID&package_name=zero_promo&product=" +
                      encode_uri_component("http://currency.object.url"));

In this case, no Javascript callback is provided; you may want to set a callback of your own for the onclose event of dialog_window.

To minimize ineligible users opening the offer, it's recommend that users are only allowed to click on the unit once per load of the client.

An example of a Payer Promotion dialog:

Sample code:

    <!-- Simple unit for Payer Promotion (payer_promotion)
         Determine visibility of the unit from the above eligibility API -->
    <button onclick="payer_promotion();">Payer Promotion</button>

    <script>
      // On load, the user hasn't clicked on the payer_promotion unit
      var has_clicked = false;
      var dialog_window;

      function payer_promotion() {
        if (!has_clicked) {
          // If first click, open payer_promotion dialog
          var obj = {
            method: 'fbpromotion',
            display: 'popup',
            package_name: 'zero_promo',
            product: 'http://currency.object.url'
          };

          FB.ui(obj, function(){
            // call back to your server to see if user's balance changed
          });

          // Mark unit as clicked by user
          has_clicked = true;
        } else {
          // For subsequent clicks, alert user
          alert("Payer Promotion already clicked!");
        }
      }
    </script>


TrialPay offer wall or DealSpot placement

While we have seen highest conversions with in-game implementation, developers can also get the benefits of Payer Promotion in their game by simply integrating with TrialPay offers.

If you have already implemented in-app currency offers, then the Payer Promotion is already available, and prominently displayed to eligible users.

TrialPay has also created a dedicated Payer Promotion-only DealSpot unit that doesn't include any other offers. If you choose to implement this flow, only users who are eligible for the promotion will see the in-game icon promoting the offer; ineligible users won't see anything. If a user clicks that icon, a special Payer Promotion-only offer overlay will be shown on top of your game, and if the offer is completed, the player will receive $3 worth of your in-game currency for free.

Implementation

First, you should implement support for In-App Currency Orders so that the promotion can be redeemed in your app currency.

Next, implement TrialPay's Payer Promotion-only DealSpot.


Testing

To test Payer Promotions, use an account which has been added to the "Payments Testers" list in your app's Payments settings, in the App Dashboard.

Any Payments test user is always eligible to invoke the Payer Promotion flow in your app. They don't need to enter credit card details to complete the flow; the flow always completes successfully.

When we make our payments_status_update request to your credits callback URL, there will be an additional parameter, test_mode=1, which indicates that the value of the request won't be paid out, as it was made in a testing environment. - The developer should not have the $3 promo balance of credits applied to their account, so there is no cost to Facebook associated with a developer testing the flow

Updated on Monday
Facebook © 2013 · English (US)
AboutAdvertisingCareersPlatform PoliciesPrivacy Policy