20

We're using Firebase Analytics to track our Android app. We've connected it to our Google Play account in hopes to receive the automatic in_app_purchase events. What we later realized is that does not support in-app subscriptions: https://support.google.com/firebase/answer/6317485?hl=en

How do we track subscription revenue events?
We thought about using the ecommerce_purchase event (https://support.google.com/firebase/answer/6317499?hl=en) so we could track the ARPU, ARPPU and LTV of our users.

The problem we are facing is dealing with subscription recurrence. Should we manually send this event each month/year and stop sending once the subscription is cancelled? It seems like a error-prone hack ...

Any other ideas?

Thanks!

alechko
  • 376
  • 3
  • 8
  • 1
    I am currently facing the same issue, and the situation is particularly frustrating. Using `ecommerce_purchase` appears to be the only option at this time, however it would be interesting to hear an official opinion from Google, whether or not support for this is going to be introduced at a later time. Regarding recurring subscriptions, there is no definitive way of tracking them. For example, if a person were to purchase a subscription charged monthly, and does not open the application within the period, there is no way of finding out whether or not they were actually charged. – Kazimieras Sep 23 '16 at 04:48
  • @Kazimieras Haven't thought about the problem of users that don't open the app the month after. That's a real problem. I contacted Firebase support and received the following response: _We're definitely aware that many developers, such as yourself, would like to automatically track in-app subscriptions. We're exploring potential solutions, but I can't share any details or timelines at this time_ They also suggested sending the `ecommerce_purchase` event manually. – alechko Oct 06 '16 at 08:53
  • @alechko Sending `ecommerce_purchase` event manually? I thought you could ONLY send it manually. Is there a way to have subscription purchases trigger it automatically without calling it from the code? – Evorlor Sep 09 '17 at 21:07
  • I guess what you need is [Real-time developer notifications](https://developer.android.com/google/play/billing/realtime_developer_notifications). You can also check the official implementation for mobile and server side [here](https://github.com/googlesamples/android-play-billing/tree/master/ClassyTaxi). – gabhor May 02 '19 at 12:20

2 Answers2

1

If you want to pursue the technique you described, from your server, you can track whether a google subscription event is active or cancelled via the subscriptions API.

If you poll this API, you should be able to determine when to send the ecommerce_purchase event to firebase.

Here is a ruby example of polling the API for Google Play. You can poll the iTunes API with a similar technique.

0

supscriptions are a complex thing to measure and track in app, because the app might not get the cancel/change event and therefore continue tracking on something, that does not exist anymore. This leads to corrupt and untrustworthy data.

For that reason, we implemented it as follows:

client side: We track all creation, changes and cancelations as custom events.

server side: whenever we charge a subscription, we track this as a "purchase" event. Therefore, the calculated life-time-value of the user is correct and we still have a workflow of all the actions, changes, ... the user made.

I can really recommend this solution, because - even though it is slightly more complex - allows you to follow the full user journey, while having correct firebase stats at the same time.

SimonEritsch
  • 1,047
  • 1
  • 8
  • 22