Skip to content

Commit 129a268

Browse files
Updated GTM data layer config. Resolves #1067. (#1118)
1 parent dc94a28 commit 129a268

File tree

5 files changed

+38
-27
lines changed

5 files changed

+38
-27
lines changed

spa/src/app/files/releases/release-files-modal/release-files-modal.component.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,12 @@ <h4 class="fontsize-l" [ngClass]="{'singleDataset': state.singleDataset}">
2121
<mat-table [dataSource]="state.releaseDataset.files">
2222
<ng-container matColumnDef="download">
2323
<mat-cell *matCellDef="let element" class="download fontsize-xxs">
24-
<a [href]="getReleaseFileUrl(element.url)" (click)="trackDownload(element)"></a>
24+
<a (click)="trackDownload(state.releaseDataset.projectShortname, element)"></a>
2525
</mat-cell>
2626
</ng-container>
2727
<ng-container matColumnDef="description">
2828
<mat-cell *matCellDef="let element" class="description">
29-
<span class="fontsize-s">{{element.url}}</span>
29+
<span class="fontsize-s">{{element.url}}!!</span>
3030
<span class="fontsize-xxs">{{element.description}}</span>
3131
</mat-cell>
3232
</ng-container>

spa/src/app/files/releases/release-files-modal/release-files-modal.component.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,11 +119,12 @@ export class ReleaseFilesModalComponent implements OnDestroy, OnInit {
119119
/**
120120
* Track download of release file.
121121
*
122+
* @param {string} projectShortname
122123
* @param {ReleaseFileView} releaseFile
123124
*/
124-
public trackDownload(releaseFile: ReleaseFileView): void {
125+
public trackDownload(projectShortname: string, releaseFile: ReleaseFileView): void {
125126

126-
this.gtmService.trackDownload(releaseFile.url);
127+
this.gtmService.trackDownload(projectShortname, releaseFile.url);
127128
}
128129

129130
/**

spa/src/app/files/releases/release-table/release-table.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ <h2 class="fontsize-xl">{{organView.organ}}</h2>
6969
[tooltipDisabled]="false"
7070
[tooltipPosition]="'above'">
7171
<a href={{visualization.url}} target="_blank"
72-
rel="noopener noreferrer" (click)="trackExternalLink(visualization.url)">{{visualization.title}}</a>
72+
rel="noopener noreferrer" (click)="trackExternalLink(element.projectShortname, visualization.url)">{{visualization.title}}</a>
7373
</hca-tooltip>
7474
</ng-container>
7575
</mat-cell>

spa/src/app/files/releases/release-table/release-table.component.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,10 +85,11 @@ export class ReleaseTableComponent {
8585
/**
8686
* Track click on link to external visualization tool.
8787
*
88+
* @param {string} projectShortname
8889
* @param {string} url
8990
*/
90-
public trackExternalLink(url: string): void {
91+
public trackExternalLink(projectShortname: string, url: string): void {
9192

92-
this.gtmService.trackExternalLink(url);
93+
this.gtmService.trackExternalLink(projectShortname, url);
9394
}
9495
}

spa/src/app/shared/gtm/gtm.service.ts

Lines changed: 29 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -11,65 +11,74 @@ import { Inject, Injectable } from "@angular/core";
1111
@Injectable()
1212
export class GTMService {
1313

14-
private EVENT_NAME_DOWNLOAD = "download";
15-
private EVENT_NAME_EXTERNAL_LINK = "externalLink";
16-
17-
private dataLayer;
14+
private EVENT_NAME_DOWNLOAD = "Download";
15+
private EVENT_NAME_VISUALIZE = "Visualize";
1816

1917
/**
2018
* @param {Window} window
2119
*/
2220
constructor(@Inject("Window") private window: Window) {
23-
24-
this.dataLayer = window["dataLayer"];
2521
}
2622

2723
/**
2824
* Send custom "download" GTM event.
29-
*
30-
* @param {string} url
25+
*
26+
* @param {string} action
27+
* @param {string} label
3128
*/
32-
public trackDownload(url: string): void {
29+
public trackDownload(action: string, label: string): void {
3330

3431
if ( !this.isTracking() ) {
3532
return;
3633
}
37-
this.trackEvent(this.EVENT_NAME_DOWNLOAD, {url});
34+
this.trackEvent(this.EVENT_NAME_DOWNLOAD, action, label);
3835
}
3936

4037
/**
4138
* Send custom "download" GTM event.
4239
*
43-
* @param {string} url
40+
* @param {string} action
41+
* @param {string} label
4442
*/
45-
public trackExternalLink(url: string): void {
43+
public trackExternalLink(action: string, label: string): void {
4644

4745
if ( !this.isTracking() ) {
4846
return;
4947
}
50-
this.trackEvent(this.EVENT_NAME_EXTERNAL_LINK, {url});
48+
this.trackEvent(this.EVENT_NAME_VISUALIZE, action, label);
5149
}
52-
50+
51+
/**
52+
* Return the GTM data layer.
53+
*/
54+
private getDataLayer(): any[] {
55+
56+
return this.window["dataLayer"];
57+
}
58+
5359
/**
5460
* Returns true if GTM is enabled.
5561
*
5662
* @returns {boolean}
5763
*/
5864
private isTracking(): boolean {
5965

60-
return !!this.dataLayer;
66+
return !!this.getDataLayer();
6167
}
6268

6369
/**
6470
* Track the specified event.
6571
*
6672
* @param {string} eventName
67-
* @param {any} eventVariables
73+
* @param {string} label
6874
*/
69-
private trackEvent(eventName: string, eventVariables: any): void {
75+
private trackEvent(eventName: string, action: string, label: string): void {
7076

71-
this.dataLayer.push(Object.assign({
72-
"event": eventName
73-
}, eventVariables));
77+
const eventConfig = {
78+
event: eventName,
79+
eventAction: action,
80+
eventLabel: label
81+
};
82+
this.getDataLayer().push(eventConfig);
7483
}
7584
}

0 commit comments

Comments
 (0)