Last of the tracking

This commit is contained in:
jliddev
2020-10-16 22:57:56 -05:00
parent d63cb1fa8b
commit d9eb69c3e1
5 changed files with 58 additions and 30 deletions

View File

@@ -40,7 +40,8 @@
<button mat-button (click)="onClose()">
{{'DIALOGS.INSTALL_FROM_URL.CLOSE_BUTTON' | translate}}
</button>
<button mat-flat-button color="primary" cdkFocusInitial (click)="onImportUrl()">
<button mat-flat-button color="primary" cdkFocusInitial (click)="onImportUrl()" appUserActionTracker
category="InstallFromUrl" action="ImportUrl" [label]="query">
{{'DIALOGS.INSTALL_FROM_URL.IMPORT_BUTTON' | translate}}
</button>
</div>

View File

@@ -157,36 +157,44 @@
</div>
<mat-divider></mat-divider>
<mat-checkbox class="mat-menu-item" [checked]="listItem.addon.isIgnored"
(change)="onClickIgnoreAddon($event, listItem)">
(change)="onClickIgnoreAddon($event, listItem)" appUserActionTracker category="MyAddons" action="IgnoreAddon"
[label]="listItem.addon.name">
{{'PAGES.MY_ADDONS.ADDON_CONTEXT_MENU.IGNORE_ADDON_BUTTON' | translate}}
</mat-checkbox>
<mat-checkbox *ngIf="listItem.addon.isIgnored === false" class="mat-menu-item"
[checked]="listItem.addon.autoUpdateEnabled" (change)="onClickAutoUpdateAddon($event, listItem.addon)">
[checked]="listItem.addon.autoUpdateEnabled" (change)="onClickAutoUpdateAddon($event, listItem.addon)"
appUserActionTracker category="MyAddons" action="AutoUpdateAddon" [label]="listItem.addon.name">
{{'PAGES.MY_ADDONS.ADDON_CONTEXT_MENU.AUTO_UPDATE_ADDON_BUTTON' | translate}}
</mat-checkbox>
<button mat-menu-item [matMenuTriggerFor]="addonChannels">
{{'PAGES.MY_ADDONS.ADDON_CONTEXT_MENU.CHANNEL_SUBMENT_TITLE' | translate}}
</button>
<button mat-menu-item (click)="onShowfolder(listItem.addon)">
<button mat-menu-item (click)="onShowfolder(listItem.addon)" appUserActionTracker category="MyAddons"
action="ShowAddonFolder" [label]="listItem.addon.name">
{{'PAGES.MY_ADDONS.ADDON_CONTEXT_MENU.SHOW_FOLDER' | translate}}
</button>
<button mat-menu-item (click)="onReInstallAddon(listItem.addon)">
<button mat-menu-item (click)="onReInstallAddon(listItem.addon)" appUserActionTracker category="MyAddons"
action="ReInstallAddon" [label]="listItem.addon.name">
{{'PAGES.MY_ADDONS.ADDON_CONTEXT_MENU.REINSTALL_ADDON_BUTTON' | translate}}
</button>
<mat-divider></mat-divider>
<button mat-menu-item (click)="onRemoveAddon(listItem.addon)">
<button mat-menu-item (click)="onRemoveAddon(listItem.addon)" appUserActionTracker category="MyAddons"
action="RemoveAddon" [label]="listItem.addon.name">
{{'PAGES.MY_ADDONS.ADDON_CONTEXT_MENU.REMOVE_ADDON_BUTTON' | translate}}
</button>
<mat-menu #addonChannels="matMenu" class="addon-context-menu">
<mat-radio-group class="vertical-radio-group" [ngModel]="listItem.addon.channelType"
(change)="onSelectedAddonChannelChange($event, listItem.addon)">
<mat-radio-button class="mat-menu-item" [value]="0">
<mat-radio-button class="mat-menu-item" [value]="0" appUserActionTracker category="MyAddons"
action="SetStableAddonChannel" [label]="listItem.addon.name">
{{'PAGES.MY_ADDONS.ADDON_CONTEXT_MENU.STABLE_ADDON_CHANNEL' | translate}}
</mat-radio-button>
<mat-radio-button class="mat-menu-item" [value]="1">
<mat-radio-button class="mat-menu-item" [value]="1" appUserActionTracker category="MyAddons"
action="SetBetaAddonChannel" [label]="listItem.addon.name">
{{'PAGES.MY_ADDONS.ADDON_CONTEXT_MENU.BETA_ADDON_CHANNEL' | translate}}
</mat-radio-button>
<mat-radio-button class="mat-menu-item" [value]="2">
<mat-radio-button class="mat-menu-item" [value]="2" appUserActionTracker category="MyAddons"
action="SetAlphaAddonChannel" [label]="listItem.addon.name">
{{'PAGES.MY_ADDONS.ADDON_CONTEXT_MENU.ALPHA_ADDON_CHANNEL' | translate}}
</mat-radio-button>
</mat-radio-group>
@@ -217,11 +225,13 @@
</div>
<mat-menu #updateAllContextMenu="matMenu" class="addon-context-menu">
<ng-template matMenuContent let-columns="columns">
<button mat-menu-item (click)="onUpdateAllRetailClassic()">
<button mat-menu-item (click)="onUpdateAllRetailClassic()" appUserActionTracker category="MyAddons"
action="UpdateAllClassicRetail">
{{'PAGES.MY_ADDONS.UPDATE_ALL_CONTEXT_MENU.UPDATE_RETAIL_CLASSIC_BUTTON' | translate}}
</button>
<button mat-menu-item (click)="onUpdateAllClients()">
<button mat-menu-item (click)="onUpdateAllClients()" appUserActionTracker category="MyAddons"
action="UpdateAllClients">
{{'PAGES.MY_ADDONS.UPDATE_ALL_CONTEXT_MENU.UPDATE_ALL_CLIENTS_BUTTON' | translate}}
</button>
</ng-template>
</mat-menu>
</mat-menu>

View File

@@ -111,7 +111,6 @@ export class MyAddonsComponent implements OnInit, OnDestroy {
) {
_sessionService.selectedHomeTab$.subscribe((tabIndex) => {
this.isSelectedTab = tabIndex === this.tabIndex;
console.log("TAB CHANGE", tabIndex, this.tabIndex);
if (this.isSelectedTab) {
this.setPageContextText();
}

View File

@@ -23,6 +23,7 @@ import { FileService } from "../files/file.service";
import { TocService } from "../toc/toc.service";
import { AddonUpdateEvent } from "app/models/wowup/addon-update-event";
import { AddonProviderFactory } from "./addon.provider.factory";
import { AnalyticsService } from "../analytics/analytics.service";
@Injectable({
providedIn: "root",
@@ -37,6 +38,7 @@ export class AddonService {
constructor(
private _addonStorage: AddonStorageService,
private _analyticsService: AnalyticsService,
private _warcraftService: WarcraftService,
private _wowUpService: WowUpService,
private _downloadService: DownloadSevice,
@@ -65,7 +67,12 @@ export class AddonService {
);
var searchResults = await Promise.all(searchTasks);
// await _analyticsService.TrackUserAction("Addons", "Search", $"{clientType}|{query}");
await this._analyticsService.trackUserAction(
"Addons",
"Search",
`${clientType}|${query}`
);
const flatResults = searchResults.flat(1);
return _.orderBy(flatResults, "downloadCount").reverse();
@@ -107,7 +114,6 @@ export class AddonService {
for (let clientTypeStr in clientTypeGroups) {
const clientType: WowClientType = parseInt(clientTypeStr, 10);
// console.log('clientType', clientType, clientTypeGroups[clientType]);
const synced = await this.syncAddons(
clientType,
@@ -126,7 +132,7 @@ export class AddonService {
await this.installAddon(addon.id);
updateCt += 1;
} catch (err) {
// _analyticsService.Track(ex, "Failed to install addon");
console.error(err);
}
}
}
@@ -209,7 +215,11 @@ export class AddonService {
this._addonStorage.set(addon.id, addon);
// await _analyticsService.TrackUserAction("Addons", "InstallById", $"{addon.ClientType}|{addon.Name}");
await this._analyticsService.trackUserAction(
"Addons",
"InstallById",
`${addon.clientType}|${addon.name}`
);
} catch (err) {
console.error(err);

View File

@@ -31,7 +31,9 @@ export class AnalyticsService {
}
public get telemetryEnabled() {
const preference = this._preferenceStorageService.findByKey(this.telemetryEnabledKey);
const preference = this._preferenceStorageService.findByKey(
this.telemetryEnabledKey
);
return preference === true.toString();
}
@@ -48,7 +50,7 @@ export class AnalyticsService {
this._appVersion = _electronService.remote.app.getVersion();
this._installId = this.loadInstallId();
this._telemetryEnabledSrc.next(this.telemetryEnabled);
console.log('installId', this._installId);
console.log("installId", this._installId);
}
public async trackStartup() {
@@ -58,8 +60,12 @@ export class AnalyticsService {
});
}
public async trackUserAction(category: string, action: string, label: string = null) {
await this.track(params => {
public async trackUserAction(
category: string,
action: string,
label: string = null
) {
await this.track((params) => {
params.set("t", "event");
params.set("ec", category);
params.set("ea", action);
@@ -76,12 +82,12 @@ export class AnalyticsService {
try {
let params = new URLSearchParams();
params.set('v', '1');
params.set('tid', AppConfig.googleAnalyticsId);
params.set('cid', this._installId);
params.set('ua', window.navigator.userAgent);
params.set('an', "WowUp Client");
params.set('av', this._appVersion);
params.set("v", "1");
params.set("tid", AppConfig.googleAnalyticsId);
params.set("cid", this._installId);
params.set("ua", window.navigator.userAgent);
params.set("an", "WowUp Client");
params.set("av", this._appVersion);
action?.call(this, params);
@@ -92,18 +98,20 @@ export class AnalyticsService {
fullUrl,
{},
{
responseType: 'text'
responseType: "text",
}
)
.toPromise();
} catch (e) {
// eat
console.error(e)
console.error(e);
}
}
private loadInstallId() {
let installId = this._preferenceStorageService.findByKey(this.installIdPreferenceKey);
let installId = this._preferenceStorageService.findByKey(
this.installIdPreferenceKey
);
if (installId) {
return installId;
}