mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-18 23:27:26 +01:00
Reinstate amplitude analytics
This commit is contained in:
@@ -5,7 +5,7 @@
|
|||||||
"main": "./website/src/server.js",
|
"main": "./website/src/server.js",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"amazon-payments": "0.0.4",
|
"amazon-payments": "0.0.4",
|
||||||
"amplitude": "^1.0.6",
|
"amplitude": "^2.0.1",
|
||||||
"async": "~0.9.0",
|
"async": "~0.9.0",
|
||||||
"aws-sdk": "^2.0.25",
|
"aws-sdk": "^2.0.25",
|
||||||
"babel": "^5.5.4",
|
"babel": "^5.5.4",
|
||||||
|
|||||||
@@ -8,7 +8,9 @@ describe('analytics', function() {
|
|||||||
// Mocks
|
// Mocks
|
||||||
var amplitudeMock = sinon.stub();
|
var amplitudeMock = sinon.stub();
|
||||||
var googleAnalyticsMock = sinon.stub();
|
var googleAnalyticsMock = sinon.stub();
|
||||||
var amplitudeTrack = sinon.stub();
|
var amplitudeTrack = sinon.stub().returns({
|
||||||
|
catch: function () { return true; }
|
||||||
|
});
|
||||||
var googleEvent = sinon.stub().returns({
|
var googleEvent = sinon.stub().returns({
|
||||||
send: function() { }
|
send: function() { }
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -24,14 +24,16 @@ function init(options) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function track(eventType, data) {
|
function track(eventType, data) {
|
||||||
//_sendDataToAmplitude(eventType, data);
|
_sendDataToAmplitude(eventType, data);
|
||||||
_sendDataToGoogle(eventType, data);
|
_sendDataToGoogle(eventType, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
function _sendDataToAmplitude(eventType, data) {
|
function _sendDataToAmplitude(eventType, data) {
|
||||||
var amplitudeData = _formatDataForAmplitude(data);
|
var amplitudeData = _formatDataForAmplitude(data);
|
||||||
amplitudeData.event_type = eventType;
|
amplitudeData.event_type = eventType;
|
||||||
amplitude.track(amplitudeData);
|
amplitude.track(amplitudeData).catch(function(error) {
|
||||||
|
// @TODO log error with new relic
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function _sendDataToGoogle(eventType, data) {
|
function _sendDataToGoogle(eventType, data) {
|
||||||
@@ -78,7 +80,7 @@ function _generateValueForGoogleAnalytics(data) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function trackPurchase(data) {
|
function trackPurchase(data) {
|
||||||
//_sendPurchaseDataToAmplitude(data);
|
_sendPurchaseDataToAmplitude(data);
|
||||||
_sendPurchaseDataToGoogle(data);
|
_sendPurchaseDataToGoogle(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -87,7 +89,9 @@ function _sendPurchaseDataToAmplitude(data) {
|
|||||||
amplitudeData.event_type = 'purchase';
|
amplitudeData.event_type = 'purchase';
|
||||||
amplitudeData.revenue = data.purchaseValue;
|
amplitudeData.revenue = data.purchaseValue;
|
||||||
|
|
||||||
amplitude.track(amplitudeData)
|
amplitude.track(amplitudeData).catch(function(error) {
|
||||||
|
// @TODO log error with new relic
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function _formatDataForAmplitude(data) {
|
function _formatDataForAmplitude(data) {
|
||||||
@@ -95,7 +99,7 @@ function _formatDataForAmplitude(data) {
|
|||||||
var event_properties = _.omit(data, PROPERTIES_TO_SCRUB);
|
var event_properties = _.omit(data, PROPERTIES_TO_SCRUB);
|
||||||
|
|
||||||
var ampData = {
|
var ampData = {
|
||||||
user_id: data.uuid,
|
user_id: data.uuid || 'no-user-id-was-provided',
|
||||||
platform: 'server',
|
platform: 'server',
|
||||||
event_properties: event_properties
|
event_properties: event_properties
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -118,7 +118,8 @@ api.registerUser = function(req, res, next) {
|
|||||||
var analyticsData = {
|
var analyticsData = {
|
||||||
category: 'acquisition',
|
category: 'acquisition',
|
||||||
type: 'local',
|
type: 'local',
|
||||||
gaLabel: 'local'
|
gaLabel: 'local',
|
||||||
|
uuid: user._id,
|
||||||
};
|
};
|
||||||
analytics.track('register', analyticsData)
|
analytics.track('register', analyticsData)
|
||||||
|
|
||||||
@@ -212,7 +213,8 @@ api.loginSocial = function(req, res, next) {
|
|||||||
var analyticsData = {
|
var analyticsData = {
|
||||||
category: 'acquisition',
|
category: 'acquisition',
|
||||||
type: network,
|
type: network,
|
||||||
gaLabel: network
|
gaLabel: network,
|
||||||
|
uuid: user._id,
|
||||||
};
|
};
|
||||||
analytics.track('register', analyticsData)
|
analytics.track('register', analyticsData)
|
||||||
}]
|
}]
|
||||||
|
|||||||
@@ -912,7 +912,8 @@ api.questAccept = function(req, res, next) {
|
|||||||
owner: true,
|
owner: true,
|
||||||
response: 'accept',
|
response: 'accept',
|
||||||
gaLabel: 'accept',
|
gaLabel: 'accept',
|
||||||
questName: key
|
questName: key,
|
||||||
|
uuid: user._id,
|
||||||
};
|
};
|
||||||
analytics.track('quest',analyticsData);
|
analytics.track('quest',analyticsData);
|
||||||
group.quest.members[m] = true;
|
group.quest.members[m] = true;
|
||||||
@@ -958,7 +959,8 @@ api.questAccept = function(req, res, next) {
|
|||||||
owner: false,
|
owner: false,
|
||||||
response: 'accept',
|
response: 'accept',
|
||||||
gaLabel: 'accept',
|
gaLabel: 'accept',
|
||||||
questName: group.quest.key
|
questName: group.quest.key,
|
||||||
|
uuid: user._id,
|
||||||
};
|
};
|
||||||
analytics.track('quest',analyticsData);
|
analytics.track('quest',analyticsData);
|
||||||
group.quest.members[user._id] = true;
|
group.quest.members[user._id] = true;
|
||||||
@@ -977,7 +979,8 @@ api.questReject = function(req, res, next) {
|
|||||||
owner: false,
|
owner: false,
|
||||||
response: 'reject',
|
response: 'reject',
|
||||||
gaLabel: 'reject',
|
gaLabel: 'reject',
|
||||||
questName: group.quest.key
|
questName: group.quest.key,
|
||||||
|
uuid: user._id,
|
||||||
};
|
};
|
||||||
analytics.track('quest',analyticsData);
|
analytics.track('quest',analyticsData);
|
||||||
group.quest.members[user._id] = false;
|
group.quest.members[user._id] = false;
|
||||||
|
|||||||
Reference in New Issue
Block a user