Merge pull request #1497 from thecodingmachine/betterAnalytics
FEATURE: analytics client now scrape user email and room instance
This commit is contained in:
commit
524a6c2c4d
@ -19,10 +19,10 @@ class AnalyticsClient {
|
||||
}
|
||||
}
|
||||
|
||||
identifyUser(uuid: string) {
|
||||
identifyUser(uuid: string, email: string | null) {
|
||||
this.posthogPromise
|
||||
.then((posthog) => {
|
||||
posthog.identify(uuid, { uuid, wa: true });
|
||||
posthog.identify(uuid, { uuid, email, wa: true });
|
||||
})
|
||||
.catch();
|
||||
}
|
||||
@ -43,10 +43,10 @@ class AnalyticsClient {
|
||||
.catch();
|
||||
}
|
||||
|
||||
enteredRoom(roomId: string) {
|
||||
enteredRoom(roomId: string, roomGroup: string | null) {
|
||||
this.posthogPromise
|
||||
.then((posthog) => {
|
||||
posthog.capture("$pageView", { roomId });
|
||||
posthog.capture("$pageView", { roomId, roomGroup });
|
||||
})
|
||||
.catch();
|
||||
}
|
||||
|
@ -112,7 +112,7 @@ class ConnectionManager {
|
||||
const data = await Axios.post(`${PUSHER_URL}/register`, { organizationMemberToken }).then(
|
||||
(res) => res.data
|
||||
);
|
||||
this.localUser = new LocalUser(data.userUuid, data.textures);
|
||||
this.localUser = new LocalUser(data.userUuid, data.textures, data.email);
|
||||
this.authToken = data.authToken;
|
||||
localUserStore.saveUser(this.localUser);
|
||||
localUserStore.setAuthToken(this.authToken);
|
||||
@ -196,7 +196,7 @@ class ConnectionManager {
|
||||
return Promise.reject(new Error("Invalid URL"));
|
||||
}
|
||||
if (this.localUser) {
|
||||
analyticsClient.identifyUser(this.localUser.uuid);
|
||||
analyticsClient.identifyUser(this.localUser.uuid, this.localUser.email);
|
||||
}
|
||||
|
||||
this.serviceWorker = new _ServiceWorker();
|
||||
|
@ -24,5 +24,9 @@ export function areCharacterLayersValid(value: string[] | null): boolean {
|
||||
}
|
||||
|
||||
export class LocalUser {
|
||||
constructor(public readonly uuid: string, public textures: CharacterTexture[]) {}
|
||||
constructor(
|
||||
public readonly uuid: string,
|
||||
public textures: CharacterTexture[],
|
||||
public email: string | null = null
|
||||
) {}
|
||||
}
|
||||
|
@ -21,6 +21,7 @@ export class Room {
|
||||
private instance: string | undefined;
|
||||
private readonly _search: URLSearchParams;
|
||||
private _contactPage: string | undefined;
|
||||
private _group: string | null = null;
|
||||
|
||||
private constructor(private roomUrl: URL) {
|
||||
this.id = roomUrl.pathname;
|
||||
@ -104,6 +105,7 @@ export class Room {
|
||||
console.log("Map ", this.id, " resolves to URL ", data.mapUrl);
|
||||
this._mapUrl = data.mapUrl;
|
||||
this._textures = data.textures;
|
||||
this._group = data.group;
|
||||
this._authenticationMandatory = data.authenticationMandatory || false;
|
||||
this._iframeAuthentication = data.iframeAuthentication;
|
||||
this._contactPage = data.contactPage || CONTACT_URL;
|
||||
@ -185,4 +187,8 @@ export class Room {
|
||||
get contactPage(): string | undefined {
|
||||
return this._contactPage;
|
||||
}
|
||||
|
||||
get group(): string | null {
|
||||
return this._group;
|
||||
}
|
||||
}
|
||||
|
@ -428,7 +428,7 @@ export class GameScene extends DirtyScene {
|
||||
|
||||
gameManager.gameSceneIsCreated(this);
|
||||
urlManager.pushRoomIdToUrl(this.room);
|
||||
analyticsClient.enteredRoom(this.room.id);
|
||||
analyticsClient.enteredRoom(this.room.id, this.room.group);
|
||||
contactPageStore.set(this.room.contactPage);
|
||||
|
||||
if (touchScreenManager.supportTouchScreen) {
|
||||
|
@ -148,6 +148,7 @@ export class AuthenticateController extends BaseController {
|
||||
JSON.stringify({
|
||||
authToken,
|
||||
userUuid,
|
||||
email,
|
||||
roomUrl,
|
||||
mapUrlStart,
|
||||
organizationMemberToken,
|
||||
|
@ -60,6 +60,7 @@ export class MapController extends BaseController {
|
||||
mapUrl,
|
||||
policy_type: GameRoomPolicyTypes.ANONYMOUS_POLICY,
|
||||
roomSlug: "", // Deprecated
|
||||
group: null,
|
||||
tags: [],
|
||||
textures: [],
|
||||
contactPage: undefined,
|
||||
|
Loading…
Reference in New Issue
Block a user