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

Agenda

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() {
  goog.payments.inapp.buy({
    parameters: {},
    jwt: "eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiIxNDIwNDk...",
    success: function() {window.alert("success")},
    failure: function() {window.alert("failure")}
  });
}
</script>
        
Easy Integration
Attractive Pricing
Since we launched at I/O 2011
July-Aug

Chrome Web Store and G+ Games launch
Sept-Oct

Streamlined user experience
Nov-Dec

18 Seller Countries, 140+ Buyer Countries, 9 Currencies
Jan-Feb

Streamlined signup flow
Mar-Apr

Mobile web support
May-June
???
You asked for it and we listened
Subscriptions!
  • 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': (Time.now + 3600).to_i,
    'iat': Time.now.to_i,
    'request': {
      'name': 'Piece of Cake',
      'description':
        'Virtual chocolate cake to fill your virtual tummy',
      'price': '10.50',
      'currencyCode': 'USD',
      'sellerData': 'user_id:1224245,affiliate:aksdfbovu'
    }
  }, SELLER_SECRET)
    

Call our JavaScript library

function purchase() {
  ...
  goog.payments.inapp.buy({
    'jwt'     : generatedJwt,
    'success' : successHandler,
    'failure' : failureHandler
  });
}

<button onClick="purchase()">
  Buy
</button>
      

Add subscriptions to the JWT

generated_jwt = jwt.encode( {
    'iss': sellerIdentifier,
    'aud': 'Google',
    'typ': 'google/payments/inapp/subscription/v1',
    'exp': (Time.now + 3600).to_i,
    'iat': Time.now.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',
      }
    }
  }, SELLER_SECRET)
      
Live Integration
Four easy steps
  1. Add a buy button to your page
  2. Build a JWT
  3. Call goog.payments.inapp.buy()
  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
5%
Great for microtransactions
not ideal for Large transactions
5%
or
1.9% + 30¢
Lowest fees auto-applied to all transactions
Available to everyone, starting today

Wrap Up

Next Steps

Questions?

Thanks to - impress.js flickr.com/photos/basictheory/3240640014/ flickr.com/photos/mr_mdr/4957239071/ flickr.com/photos/bayasaa/2693161493/