Skip to content

Commit

Permalink
fix: analytics events not well formed in some cases
Browse files Browse the repository at this point in the history
Signed-off-by: Paul Horton <[email protected]>
  • Loading branch information
madpah committed Nov 26, 2024
1 parent 74d13b4 commit dd54e2e
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 12 deletions.
16 changes: 9 additions & 7 deletions src/extension_service_worker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ _browser.runtime.onInstalled.addListener((details) => {
} else if (details.reason == 'update') {
performUpgrade(details.fromVersion, details.reason).then(() => {
analytics.fireEvent(ANALYTICS_EVENT_TYPES.EXTENSION_UPDATE, {
previousVersion: details.previousVersion,
previous_extension_version: details.previousVersion,
reason: details.reason,
})
})
Expand Down Expand Up @@ -190,12 +190,14 @@ function enableDisableExtensionForUrl(url: string, tabId: number): void {
if (response !== undefined && response.status == MESSAGE_RESPONSE_STATUS.SUCCESS) {
const packageUrl = PackageURL.fromString(response.data.purl)
analytics.fireEvent(ANALYTICS_EVENT_TYPES.PURL_CALCULATED, {
name: packageUrl.name,
namespace: packageUrl.namespace,
purl: response.data.purl,
qualifiers: packageUrl.qualifiers,
type: packageUrl.type,
version: packageUrl.version,
purl_type: packageUrl.type,
purl_namespace: ((packageUrl.namespace != null) ? packageUrl.namespace : ''),
purl_name: packageUrl.name,
purl_version: packageUrl.version,
purl_qualifier_extension: (packageUrl.qualifiers ? packageUrl.qualifiers['extension'] : ''),
purl_qualifier_qualifier: (packageUrl.qualifiers ? packageUrl.qualifiers['qualifier'] : ''),
purl_qualifier_type: (packageUrl.qualifiers ? packageUrl.qualifiers['type'] : ''),
purl_string: response.data.purl
})

requestComponentEvaluationByPurls({
Expand Down
14 changes: 9 additions & 5 deletions src/utils/Analytics.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,8 @@ export enum ANALYTICS_EVENT_TYPES {
}

// eslint-disable-next-line @typescript-eslint/strict-boolean-expressions, @typescript-eslint/no-explicit-any
const _browser: any = chrome ? chrome : browser
const _browser: any = chrome || browser
const extension = _browser.runtime.getManifest()

export class Analytics {
// Returns the client id, or creates a new one if one doesn't exist.
Expand Down Expand Up @@ -87,12 +88,15 @@ export class Analytics {
// Configure session id and engagement time if not present, for more details see:
// https://developers.google.com/analytics/devguides/collection/protocol/ga4/sending-events?client_type=gtag#recommended_parameters_for_reports
// eslint-disable-next-line @typescript-eslint/strict-boolean-expressions
if ('session_id' in params) {
params.session_id = await this.getOrCreateSessionId()
if (!('session_id' in params)) {
params['session_id'] = await this.getOrCreateSessionId()
}
if ('engagement_time_msec' in params) {
params.engagement_time_msec = DEFAULT_ENGAGEMENT_TIME_MSEC
if (!('engagement_time_msec' in params)) {
params['engagement_time_msec'] = DEFAULT_ENGAGEMENT_TIME_MSEC
}

// Load in Extension Version
params['extension_version'] = extension.version

try {
await fetch(`${GA_ENDPOINT}?measurement_id=${MEASUREMENT_ID}&api_secret=${API_SECRET}`, {
Expand Down

0 comments on commit dd54e2e

Please sign in to comment.