update: more analytics work

This commit is contained in:
CuriousMagpie
2022-09-09 15:37:08 -04:00
parent 5c13bf1980
commit e6f903fd2e
3 changed files with 59 additions and 11 deletions

View File

@@ -251,7 +251,7 @@ import { mapState } from '@/libs/store';
import paymentsButtons from '@/components/payments/buttons/list';
import selectTranslatedArray from '@/components/tasks/modal-controls/selectTranslatedArray';
import lockableLabel from '@/components/tasks/modal-controls/lockableLabel';
// import * as Analytics from '@/libs/analytics';
import * as Analytics from '@/libs/analytics';
export default {
components: {
@@ -282,6 +282,7 @@ export default {
challenges: false,
},
demographics: null,
user: '',
},
activePage: 'create-group',
type: 'guild',
@@ -305,10 +306,6 @@ export default {
this.activePage = page;
},
createGroup () {
// Analytics.track({
// name: this.paymentData.demographics,
// },
// console.log(this.paymentData.demographics));
this.changePage(this.PAGES.PAY);
},
pay (paymentMethod) {
@@ -320,6 +317,16 @@ export default {
demographics: demographicsKey,
};
Analytics.track({
hitType: 'event',
eventName: 'group plan create',
eventAction: 'group plan create',
eventCategory: 'behavior',
createGroupName: this.newGroup.name,
demographicsCreated: this.newGroup.demographics,
typeCreated: this.newGroup.type,
});
if (this.upgradingGroup && this.upgradingGroup._id) {
paymentData.groupId = this.upgradingGroup._id;
paymentData.group = this.upgradingGroup;

View File

@@ -290,6 +290,7 @@
<script>
import checkIcon from '@/assets/svg/check.svg';
import gemIcon from '@/assets/svg/gem.svg';
import { mapState } from '@/libs/store';
import subscriptionBlocks from '@/../../common/script/content/subscriptionBlocks';
import selectTranslatedArray from '@/components/tasks/modal-controls/selectTranslatedArray';
import lockableLabel from '@/components/tasks/modal-controls/lockableLabel';
@@ -309,16 +310,16 @@ export default {
gem: gemIcon,
}),
paymentData: {},
groupPlanUpgraded: {
upgradedGroupInfo: {
demographics: null,
},
};
},
computed: {
...mapState({ user: 'user.data', group: 'group.data' }),
groupPlanCost () {
const sub = this.paymentData.subscription;
const memberCount = this.paymentData.group.memberCount || 1;
console.log(this.paymentData);
return sub.price + 3 * (memberCount - 1);
},
isFromBalance () {
@@ -327,10 +328,15 @@ export default {
upgradedGroup () {
const upgradedGroup = (this.paymentData.paymentType !== 'groupPlan' || this.paymentData.newGroup);
const demographicsKey = upgradedGroup.demographics;
const upgradedGroupName = upgradedGroup.name;
const upgradedGroupType = upgradedGroup.type;
const groupPlanUpgraded = {
demographics: demographicsKey,
name: upgradedGroupName,
type: upgradedGroupType,
};
return groupPlanUpgraded.demographics;
console.log(groupPlanUpgraded.demographics, groupPlanUpgraded.name, groupPlanUpgraded.type);
return (groupPlanUpgraded.demographics, groupPlanUpgraded.name, groupPlanUpgraded.type);
},
},
mounted () {
@@ -349,9 +355,14 @@ export default {
methods: {
submit () {
Analytics.track({
name: this.groupPlanUpgraded.demographics,
},
console.log(Analytics.track));
hitType: 'event',
eventName: 'group plan upgrade',
eventAction: 'group plan upgrade',
eventCategory: 'behavior',
upgradedGroupName: this.upgradedGroup.name,
demographicsUpgraded: this.upgradedGroup.demographics,
typeUpgraded: this.upgradedGroup.type,
});
this.paymentData = {};
this.$root.$emit('bv::hide::modal', 'payments-success-modal');
},

View File

@@ -75,6 +75,22 @@ function _gatherUserStats (properties) {
if (user.purchased.plan.planId) properties.subscription = user.purchased.plan.planId;
}
// added to gather group stats
function _gatherGroupStats (properties) {
const store = getStore();
const user = store.state.user.data;
const group = store.state.groups.data;
properties.UUID = user._id;
properties.createGroupName = group.newGroup.name;
properties.demographicsCreated = group.newGroup.demographics;
properties.typeCreated = group.newGroup.type;
properties.upgradedGroupName = group.upgradedGroup.name;
properties.demographicsUpgraded = group.upgradedGroup.demographics;
properties.typeUpgraded = group.upgradedGroup.type;
}
export function setUser () {
const store = getStore();
const user = store.state.user.data;
@@ -89,6 +105,7 @@ export function track (properties, options = {}) {
if (_doesNotHaveAllowedHitType(properties)) return;
const trackOnClient = options && options.trackOnClient === true;
console.log(properties, options); // delete this!
// Track events on the server by default
if (trackOnClient === true) {
amplitude.getInstance().logEvent(properties.eventAction, properties);
@@ -114,6 +131,19 @@ export function updateUser (properties = {}) {
});
}
// added to get group data
export function updateGroup (properties = {}) {
Vue.nextTick(() => {
_gatherGroupStats(properties);
forEach(properties, (value, key) => {
const idGroup = new amplitude.Identify().set(key, value);
amplitude.getInstance().identify(idGroup);
});
window.ga('set', properties);
});
}
export function setup () {
// Setup queues until the real scripts are loaded