Your browser doesn't support the features required by impress.js, so you are presented with a simplified version of this presentation.

For the best experience please use the latest Chrome, Safari or Firefox browser.

Monetizing Digital Goods

With Google Wallet

Pali Bhat - Product Manager, Google
Joel Leitch - Software Engineer, Google
Dan Zink - Software Engineer, Google
Bryan Schwab - Development Director, Kabam


What is Google Wallet?

Your wallet in the cloud

That works on any device

Optimized for digital content

Wallet powers Google
and powers great developers
<script type="text/javascript">
function buy() {{
    parameters: {},
    jwt: "eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiIxNDIwNDk...",
    success: function() {window.alert("success")},
    failure: function() {window.alert("failure")}
Easy Integration
Attractive Pricing
Since we launched at I/O 2011

Chrome Web Store and G+ Games launch

Streamlined user experience

18 Seller Countries, 140+ Buyer Countries, 9 Currencies

Streamlined signup flow

Mobile web support
You asked for it and we listened
  • Simple to use
  • Monthly Subscriptions
  • Free Trial Support
  • Live in Sandbox

Subscriptions Management

Enhanced Analytics

Create a JWT

generated_jwt = jwt.encode( {
    'iss': sellerIdentifier,
    'aud': 'Google',
    'typ': 'google/payments/inapp/item/v1',
    'exp': ( + 3600).to_i,
    'request': {
      'name': 'Piece of Cake',
        'Virtual chocolate cake to fill your virtual tummy',
      'price': '10.50',
      'currencyCode': 'USD',
      'sellerData': 'user_id:1224245,affiliate:aksdfbovu'

Call our JavaScript library

function purchase() {
    'jwt'     : generatedJwt,
    'success' : successHandler,
    'failure' : failureHandler

<button onClick="purchase()">

Add subscriptions to the JWT

generated_jwt = jwt.encode( {
    'iss': sellerIdentifier,
    'aud': 'Google',
    'typ': 'google/payments/inapp/subscription/v1',
    'exp': ( + 3600).to_i,
    'request': {
      'name': 'Monthly piece of cake',
      'description': 'A monthly dose of cake',
      'sellerData': 'user_id:1224245,affiliate:aksdfbovu'
      'recurrence': {
        'price': '4.99',
        'currencyCode': 'USD',
        'frequency': 'monthly',
Live Integration
Four easy steps
  1. Add a buy button to your page
  2. Build a JWT
  3. Call
  4. Write a postback handler
  • G+ Games Launch Partner
  • Chrome Web Store

ProTip #1:
  Leverage the developer docs & libraries

ProTip #2:
  Create unit tests to validate JWT generation

ProTip #3:
  Test in sandbox to iron out issues

Best Practices

  • Price matrix
  • Geolocate users
  • Native language/currency purchase flow
  • Scale bonus items
  • Enable gifting

Tips for Developers

  • Idempotent postbacks
  • Track analytics/data about payments
  • Internationalize from the start
Great for microtransactions
not ideal for Large transactions
1.9% + 30¢
Lowest fees auto-applied to all transactions
Available to everyone, starting today

Wrap Up

Next Steps


Thanks to - impress.js