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 paymentsButtons from '@/components/payments/buttons/list';
import selectTranslatedArray from '@/components/tasks/modal-controls/selectTranslatedArray'; import selectTranslatedArray from '@/components/tasks/modal-controls/selectTranslatedArray';
import lockableLabel from '@/components/tasks/modal-controls/lockableLabel'; import lockableLabel from '@/components/tasks/modal-controls/lockableLabel';
// import * as Analytics from '@/libs/analytics'; import * as Analytics from '@/libs/analytics';
export default { export default {
components: { components: {
@@ -282,6 +282,7 @@ export default {
challenges: false, challenges: false,
}, },
demographics: null, demographics: null,
user: '',
}, },
activePage: 'create-group', activePage: 'create-group',
type: 'guild', type: 'guild',
@@ -305,10 +306,6 @@ export default {
this.activePage = page; this.activePage = page;
}, },
createGroup () { createGroup () {
// Analytics.track({
// name: this.paymentData.demographics,
// },
// console.log(this.paymentData.demographics));
this.changePage(this.PAGES.PAY); this.changePage(this.PAGES.PAY);
}, },
pay (paymentMethod) { pay (paymentMethod) {
@@ -320,6 +317,16 @@ export default {
demographics: demographicsKey, 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) { if (this.upgradingGroup && this.upgradingGroup._id) {
paymentData.groupId = this.upgradingGroup._id; paymentData.groupId = this.upgradingGroup._id;
paymentData.group = this.upgradingGroup; paymentData.group = this.upgradingGroup;

View File

@@ -290,6 +290,7 @@
<script> <script>
import checkIcon from '@/assets/svg/check.svg'; import checkIcon from '@/assets/svg/check.svg';
import gemIcon from '@/assets/svg/gem.svg'; import gemIcon from '@/assets/svg/gem.svg';
import { mapState } from '@/libs/store';
import subscriptionBlocks from '@/../../common/script/content/subscriptionBlocks'; import subscriptionBlocks from '@/../../common/script/content/subscriptionBlocks';
import selectTranslatedArray from '@/components/tasks/modal-controls/selectTranslatedArray'; import selectTranslatedArray from '@/components/tasks/modal-controls/selectTranslatedArray';
import lockableLabel from '@/components/tasks/modal-controls/lockableLabel'; import lockableLabel from '@/components/tasks/modal-controls/lockableLabel';
@@ -309,16 +310,16 @@ export default {
gem: gemIcon, gem: gemIcon,
}), }),
paymentData: {}, paymentData: {},
groupPlanUpgraded: { upgradedGroupInfo: {
demographics: null, demographics: null,
}, },
}; };
}, },
computed: { computed: {
...mapState({ user: 'user.data', group: 'group.data' }),
groupPlanCost () { groupPlanCost () {
const sub = this.paymentData.subscription; const sub = this.paymentData.subscription;
const memberCount = this.paymentData.group.memberCount || 1; const memberCount = this.paymentData.group.memberCount || 1;
console.log(this.paymentData);
return sub.price + 3 * (memberCount - 1); return sub.price + 3 * (memberCount - 1);
}, },
isFromBalance () { isFromBalance () {
@@ -327,10 +328,15 @@ export default {
upgradedGroup () { upgradedGroup () {
const upgradedGroup = (this.paymentData.paymentType !== 'groupPlan' || this.paymentData.newGroup); const upgradedGroup = (this.paymentData.paymentType !== 'groupPlan' || this.paymentData.newGroup);
const demographicsKey = upgradedGroup.demographics; const demographicsKey = upgradedGroup.demographics;
const upgradedGroupName = upgradedGroup.name;
const upgradedGroupType = upgradedGroup.type;
const groupPlanUpgraded = { const groupPlanUpgraded = {
demographics: demographicsKey, 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 () { mounted () {
@@ -349,9 +355,14 @@ export default {
methods: { methods: {
submit () { submit () {
Analytics.track({ Analytics.track({
name: this.groupPlanUpgraded.demographics, hitType: 'event',
}, eventName: 'group plan upgrade',
console.log(Analytics.track)); eventAction: 'group plan upgrade',
eventCategory: 'behavior',
upgradedGroupName: this.upgradedGroup.name,
demographicsUpgraded: this.upgradedGroup.demographics,
typeUpgraded: this.upgradedGroup.type,
});
this.paymentData = {}; this.paymentData = {};
this.$root.$emit('bv::hide::modal', 'payments-success-modal'); 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; 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 () { export function setUser () {
const store = getStore(); const store = getStore();
const user = store.state.user.data; const user = store.state.user.data;
@@ -89,6 +105,7 @@ export function track (properties, options = {}) {
if (_doesNotHaveAllowedHitType(properties)) return; if (_doesNotHaveAllowedHitType(properties)) return;
const trackOnClient = options && options.trackOnClient === true; const trackOnClient = options && options.trackOnClient === true;
console.log(properties, options); // delete this!
// Track events on the server by default // Track events on the server by default
if (trackOnClient === true) { if (trackOnClient === true) {
amplitude.getInstance().logEvent(properties.eventAction, properties); 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 () { export function setup () {
// Setup queues until the real scripts are loaded // Setup queues until the real scripts are loaded