Sunteți pe pagina 1din 12

Google Analytics Recurring

Revenue and Subscriptions


Tracking Guide
Specialized Tracking

Since subscription payments (other than the first payment) are not triggered by users’
action, they need to be tracked server side.
When a user first sign up, assign him a unique user id.
You can use login id as user id.
Just make sure that the id does not contain Personally Identifiable data like name, email
address, IP address etc.
Any data that allows Google to personally identify an individual or data that permanently
identifies a particular device (such as a unique device identifier, if such an identifier
cannot be reset) is Personally Identifiable data.
If you upload any data that allows Google to personally identify an individual, your
Google Analytics account can be terminated, and you may lose your Google Analytics
data as this is against Google Terms of Service.
The user id is used to sum up the recurring revenue by a user.
When a user make the first initial purchase you can set a unique user id for him and
note down his transaction ID.
For second and subsequent purchases, send transaction data (with unique transaction
ID) to Google Analytics via measurement protocol whenever you process payment.
When a subscription stops then stop sending the transaction data via measurement
protocol for a particular user.

About Measurement protocol


Measurement protocol is a set of rules which your application must follow in order to
send raw hit data directly to Google Analytics server.
Through this protocol you can collect and send raw user interaction data (hits) directly to
GA server from any device/system which can be connected to the internet.
This device/system can be a smart phone, tablet PC, digital appliances (washing
machine, coffee machine, slot machine), point of purchase systems etc.
However, you need to format your data according to the measurement protocol before
you can send it to the Google Analytics server.
So for example, if you want to send data from a cash counter machine, coffee machine
or slot machine then you first need to format the data according to the measurement
protocol.
Without such formatting, you can’t send data to GA.

In order to make an HTTP request to the GA server (for sending the raw hit data
directly), you need to format your HTTP request according to the measurement
protocol.
This formatted HTTP request is called the measurement protocol request.
Here is how the measurement protocol request looks like:

The measurement
protocol request is made up of: user agent, transport and payload data:
Payload data is the data
you send to Google Analytics server using the measurement protocol.
In other words, the payload data is the data which has been formatted according to
Measurement Protocol.
Following is an example of payload data:
v=1&tid=UA-123456-2&cid=36009a59-2a05-49e7-b826-
2b884d0f935b&t=pageview&dp=%2Fhome

The payload data resembles a URL query string.


Payload data is made up of multiple parameters.
Each parameter is made up of ‘key = value’ pairs.
Each parameter is separated from another parameter via & character.
Since each parameter is made up of ‘key = value‘ pairs, so each ‘key=value’ pair is
separated by ‘&’ character.
Syntax of payload data:

parameter1&parameter2&parameter3

or
key1=value1&key2=value2&key3=value3

Example of payload data:


v=1&tid=UA-123456-2&cid=36009a59-2a05-49e7-b826-
2b884d0f935b&t=pageview&dp=%2Fhome
Here v, tid, cid, t and dp are called the keys.
‘1’, ‘UA-123456-2’, ‘36009a59-2a05-49e7-b826-2b884d0f935b’, ‘pageview’ and
‘%2Fhome’ are called the values.
For example, following are the parameters for measuring purchases via measurement
protocol:

Source: https://developers.google.com/analytics/devguides/collection/protocol/v1/devgui
de
Click on the link ‘view this hit in the measurement protocol hit builder‘ to see how
this hit actually looks like.
All values you sent via measurement protocol to GA, must be both UTF-8 encoded
and URL encoded.
For example, / is encoded to %2F
If the values are not encoded correctly then they will be replaced with unicode
replacement character xFFFD
Note (1): You can learn more about URL encoding from
here: http://www.w3schools.com/tags/ref_urlencode.asp
Note (2): All protocol parameters must be set on the same line. They should not have
any spaces between them. Comments are not allowed in protocol parameters.
The measurement protocol supports following data types for the values in the
‘key = value’ pairs of the payload data:
1. Integer – used to represent a number
2. Text – used to represent a string
3. Boolean – used to represent a boolean value (true or false)
4. Currency – used to represent the total value of a currency in up to 6 decimal points.
Transport defines where and how to send the payload data.
Following is an example of transport:
POST http://www.google-analytics.com/collect

A transport is made up of:


#1 GET/POST method – which defines how to send the payload data
#2 Location of the GA server – which defines where to send the payload data
#3 URL endpoint – this is used to define whether a single or multiple hits should be
sent to the GA server or whether to send the payload data to measurement protocol
validation server.
There are rules regarding which parameters can be sent together and which parameters
can’t be sent together. There are rules regarding the length and format of parameters.
Each parameter has specific type that requires a particular format.
Each payload data must contain a valid hit type.
Each hit type must have its own set of required parameters set.
For more details, regarding these rules, refer to Measurement Protocol Parameter
Reference: https://developers.google.com/analytics/devguides/collection/protocol/v1/pa
rameters?hl=en
You can get complete list of all of the measurement protocols from
here: https://developers.google.com/analytics/devguides/collection/protocol/v1/paramet
ers

You can send payload data by either using the GET method or POST method.
Google recommends using POST method, as then you can send larger payload data to
GA server.
The location of the GA server is: https://www.google-analytics.com
This is where we send the payload data.
The payload data need to be URL encoded, if you are making HTTP POST request to
the GA server.
The size of Payload data, if you are making HTTP POST request to the GA server can
be maximum of 8191 Bytes.
However, if you make HTTP GET request to the GA server, then the size of payload
data cannot be more than 2000 Bytes.
Write a script to make the following similar HTTP POST request to the GA server in
order to send the payload data:
User-Agent: user_agent_string

POST https://www.google-analytics.com/collect?payload_data
Use measurement protocol hit builder to validate hits: https://ga-dev-
tools.appspot.com/hit-builder/
Note: GA hit builder use only one URL endpoint, /collect

To use the measurement protocol, you need to do following three things:


#1 Ask your developer to write an application (program) that can pull data from your
desired data source (could be your database/backend):

#2 Your application must convert the retrieved data into the payload data according to
the measurement protocol:

#3 Your application must make a HTTP POST request to the end point (Google
Analytics server) in order to send the payload data to the GA server. The HTTP request
should be made up of user agent, transport and payload data:

When GA receives the HTTP request from your application, it try to process the payload
data in the HTTP request.
If GA successfully processes the payload data then its server will send 2XX response
code back to your application:
If GA is not successful, in processing the payload data, then its server does not send
any error code back to your application.

As you create monthly invoices for our customers, you could have a request sent
through the measurement protocol which specifies the invoice details as soon as the
payment comes in as successfully processed.

Recommendation regarding updating


the original transaction
Do not update the original transaction every month.

Assign a unique transaction ID for each new transaction for a particular user.

If you update the original transaction with new value then you won’t be able to see
individual transactions for a particular user over time.
If you don’t assign an unique transaction ID for each new transaction for a particular
user then you will have duplicate transaction issues.
You can segment the data by user id and should be able to see all of the transactions
for a particular user in the user explorer report in the user id view :
In addition to that you can create a custom dimension and pass user id value to it.
Then you create a user id custom segment.
By doing that you can segment any GA report by user id custom segment and do
detailed analysis for a particular user.
If some of your customers book well in advance, say 2 months in advance then send
transaction data via measurement protocol after 2 months to maintain the accuracy of
the sales data.
Record sales only on the day of the actual sales whether the sales is user
generated or generated by you in response to billing.

Recommendation for refunds,


chargebacks and unsuccessful
payments
When sending transaction data via measurement protocol, add negative amount for
the sales.
This is known as reversing the transaction.
When you reverse a transaction in Google Analytics, it does not remove it.
GA simply deduct a particular amount from the revenue total.
So what is removed is the revenue/sales associated with the reversal transaction.

No other information associated with the transaction is removed.

For example,

Lets say User ‘A’ placed an order of $200 on Monday.

Lets say the total website sales on Monday was $500.

Now if you reverse the transaction on Monday, then the total sales amount for Monday
would be reported to be: $500 – $200 = $300
If you reverse the same transaction on say Tuesday, thenthe total sales amount for
Monday would remain $500
the total sales amount for Tuesday would be: Total website sales for Tuesday – $200

So if the original transaction occurred on Monday and you reversed it on


Tuesday then make sure that you are analyzing a date range that includes both Monday
and Tuesday.Google in fact recommends to do the reversal on the same day as the
original transaction.
Note: Both original and reversal transaction will be included and reported in the
transaction count.

Other Articles on Specialised Tracking


in Google Analytics
1. Google Analytics Recurring Revenue and Subscriptions Tracking Guide
2. How to track the impact of cookie consent on website traffic in Google Analytics
3. Phone Call Tracking in Google Analytics and Beyond
4. Scroll Tracking via Scroll Depth Trigger in Google Tag Manager
5. Video Tracking via YouTube Video Trigger In Google Tag Manager
6. Calculated Metrics in Google Analytics – Complete Guide
7. The one thing that you don’t know about PayPal.com and the referral exclusion list
8. Introduction to Postbacks in Google Analytics
9. Creating Content Group in Google Analytics via tracking code using gtag.js
10. Tracking Site Search without Query Parameter in Google Tag Manager
11. Setting Up Site Search Tracking for POST based search engines in Google Analytics
12. Tracking Site Search for GET-Based Search Engines in Google Analytics
13. Understanding site search tracking in Google Analytics
14. Tracking Virtual Pageviews in Google Tag Manager – Complete Guide
15. Creating and using Site Search Funnel in Google Analytics
16. Learn to Setup Facebook Pixel Tracking via Google Tag Manager
17. How to use Keyword Hero to reveal Not Provided keywords in Google Analytics
18. Guide to Event Tracking via Google Tag Manager
19. Learn to track Qualified and Won leads in Google Analytics
20. Creating your own Google Analytics Tag Auditing System
21. Using multiple Google Analytics tracking codes on web pages
22. Guide to Offline Conversion Tracking in Google Analytics
23. Google Analytics and YouTube Integration Guide
24. Complete Guide to Google Analytics for Facebook
25. Tracking true referrals in Google Analytics when using PayPal and other payment
gateways
26. Virtual pageviews in Google Analytics – Complete Guide
27. YouTube Video tracking via Google Tag Manager
28. Implementing E-Commerce Tracking via Google Tag Manager
29. Event Tracking in Google Analytics – Complete Guide
30. E-Commerce Tracking in Google Analytics – Complete Guide
31. Google Analytics Cross Domain Tracking Explained Like Never Before
32. Google Analytics Social Tracking – Twitter, Facebook, Google Plus and LinkedIn
33. Setting up & Tracking AMP Pages in Google Analytics
34. Setting up Sales Funnel across websites in Google Analytics
35. Using Data Visualization to analyze the SEO Performance
36. Tracking offline conversions in Google Adwords
37. How to Correctly Measure Conversion Date & Time in Google Analytics
38. Tracking Twitter and Linkedin Social Interactions in Google Analytics
39. Implementing Scroll Tracking via Google Tag Manager
40. Phone Call Tracking and ROI calculations – Champion’s Guide
41. Google Analytics Cross Domain Tracking (ga.js)
42. Open Graph Protocol for Facebook Explained with Examples

S-ar putea să vă placă și