{"version":3,"file":"TrackingEvents-CnkooD9M.js","sources":["../../Client/shared/TrackingEvents.ts"],"sourcesContent":["import { Path } from '@app/Views';\r\nimport { getUtmParameters } from '@shared/Common';\r\nimport * as Storage from '@shared/Storage';\r\n\r\ndeclare let fbq: any;\r\ndeclare let dotq: any;\r\ndeclare let obApi: any;\r\ndeclare let dataLayer: {\r\n push: (args: { event: 'single_page_application'; view: Path | string; action: string; value: string }) => void;\r\n};\r\n\r\nclass TrackingEvents {\r\n private yahooProjectId: string;\r\n private yahooPixelId: string;\r\n\r\n constructor() {\r\n this.yahooPixelId = '10056678';\r\n this.yahooProjectId = '10000';\r\n }\r\n\r\n track(type: EventType, action: EventAction) {\r\n switch (type) {\r\n case EventType.Purchase:\r\n this.trackPurchase();\r\n break;\r\n default:\r\n this.trackInteractions(type, action);\r\n }\r\n }\r\n\r\n trackSinglePageApplication(path: Path | string, action: string, value?: string) {\r\n if (typeof dataLayer !== 'object') return;\r\n\r\n dataLayer.push({ event: 'single_page_application', view: path, action, value: value || action });\r\n }\r\n\r\n private trackInteractions(type: EventType, action: EventAction) {\r\n let isAgent = Storage.hasAuth(),\r\n utm = getUtmParameters();\r\n\r\n if (typeof fbq === 'function')\r\n fbq('trackCustom', type + `${isAgent ? 'Agent' : 'DTC'}`, utm && utm.campaign ? utm : null);\r\n\r\n if (typeof ga === 'function')\r\n ga('send', 'event', {\r\n eventCategory: action,\r\n eventAction: eventTypeLabels[type],\r\n eventValue: isAgent ? 'Agent' : 'DTC',\r\n });\r\n\r\n if (typeof dotq === 'object' && dotq.push && typeof dotq.push === 'function')\r\n dotq.push({\r\n projectId: this.yahooProjectId,\r\n properties: {\r\n pixelId: this.yahooPixelId,\r\n qstrings: {\r\n et: 'custom',\r\n ec: action,\r\n ea: eventTypeLabels[type],\r\n ev: isAgent ? 'Agent' : 'DTC',\r\n },\r\n },\r\n });\r\n\r\n if (typeof obApi === 'function') obApi('track', type + `${isAgent ? 'Agent' : 'DTC'}`);\r\n\r\n // LinkedIn doesn't provide any APIs to track clicks; they do event tracking by loading pixels onto a page,\r\n // so we have to improvise and make a GET to the pixel image URL.\r\n const url = `https://dc.ads.linkedin.com/collect/?pid=294177&conversionId=${\r\n isAgent ? '470497' : '470489'\r\n }&fmt=gif`;\r\n let img = document.createElement('img');\r\n img.setAttribute('src', url);\r\n document.body.appendChild(img);\r\n }\r\n\r\n private trackPurchase() {\r\n let isAgent = Storage.hasAuth(),\r\n utm = getUtmParameters();\r\n\r\n if (typeof fbq === 'function')\r\n fbq('trackCustom', `Purchase${isAgent ? 'Agent' : 'DTC'}`, utm && utm.campaign ? utm : null);\r\n\r\n if (typeof ga === 'function')\r\n ga('send', 'event', {\r\n eventCategory: 'button',\r\n eventAction: 'purchase',\r\n eventValue: isAgent ? 'Agent' : 'DTC',\r\n });\r\n\r\n if (typeof dotq === 'object' && dotq.push && typeof dotq.push === 'function')\r\n dotq.push({\r\n projectId: this.yahooProjectId,\r\n properties: {\r\n pixelId: this.yahooPixelId,\r\n qstrings: {\r\n et: 'custom',\r\n ec: 'button',\r\n ea: 'purchase',\r\n ev: isAgent ? 'Agent' : 'DTC',\r\n },\r\n },\r\n });\r\n\r\n if (typeof obApi === 'function') obApi('track', `Purchase${isAgent ? 'Agent' : 'DTC'}`);\r\n\r\n // LinkedIn doesn't provide any APIs to track clicks; they do event tracking by loading pixels onto a page,\r\n // so we have to improvise and make a GET to the pixel image URL.\r\n const url = `https://dc.ads.linkedin.com/collect/?pid=294177&conversionId=${\r\n isAgent ? '470497' : '470489'\r\n }&fmt=gif`;\r\n let img = document.createElement('img');\r\n img.setAttribute('src', url);\r\n document.body.appendChild(img);\r\n }\r\n}\r\n\r\nexport enum EventType {\r\n Purchase,\r\n SinglePageApplication,\r\n BindSingleQuote,\r\n NavigateToNotifications,\r\n}\r\n\r\nexport enum EventAction {\r\n Button,\r\n Input,\r\n}\r\n\r\nexport const eventTypeLabels = {\r\n Purchase: 'Purchase',\r\n ViewClassic: 'View Classic Quote',\r\n BindSingleQuote: 'Bind Single Quote from Quote Compare Page',\r\n};\r\n\r\nlet trackingEvents = new TrackingEvents();\r\nexport { trackingEvents as TrackingEvent };\r\n"],"names":["TrackingEvents","__publicField","type","action","path","value","isAgent","Storage.hasAuth","utm","getUtmParameters","eventTypeLabels","url","img","EventType","EventType2","EventAction","EventAction2","trackingEvents"],"mappings":"oNAWA,MAAMA,CAAe,CAIjB,aAAc,CAHNC,EAAA,uBACAA,EAAA,qBAGJ,KAAK,aAAe,WACpB,KAAK,eAAiB,OAAA,CAG1B,MAAMC,EAAiBC,EAAqB,CACxC,OAAQD,EAAM,CACV,IAAK,GACD,KAAK,cAAc,EACnB,MACJ,QACS,KAAA,kBAAkBA,EAAMC,CAAM,CAAA,CAC3C,CAGJ,2BAA2BC,EAAqBD,EAAgBE,EAAgB,CACxE,OAAO,WAAc,UAEf,UAAA,KAAK,CAAE,MAAO,0BAA2B,KAAMD,EAAM,OAAAD,EAAQ,MAAOE,GAASF,CAAA,CAAQ,CAAA,CAG3F,kBAAkBD,EAAiBC,EAAqB,CAC5D,IAAIG,EAAUC,IACVC,EAAMC,EAAiB,EAEvB,OAAO,KAAQ,YACX,IAAA,cAAeP,EAAO,GAAGI,EAAU,QAAU,KAAK,GAAWE,EAAI,SAAWA,EAAM,IAAI,EAE1F,OAAO,IAAO,YACd,GAAG,OAAQ,QAAS,CAChB,cAAeL,EACf,YAAaO,EAAgBR,CAAI,EACjC,WAAYI,EAAU,QAAU,KAAA,CACnC,EAED,OAAO,MAAS,UAAY,KAAK,MAAQ,OAAO,KAAK,MAAS,YAC9D,KAAK,KAAK,CACN,UAAW,KAAK,eAChB,WAAY,CACR,QAAS,KAAK,aACd,SAAU,CACN,GAAI,SACJ,GAAIH,EACJ,GAAIO,EAAgBR,CAAI,EACxB,GAAII,EAAU,QAAU,KAAA,CAC5B,CACJ,CACH,EAED,OAAO,OAAU,YAAkB,MAAA,QAASJ,EAAO,GAAGI,EAAU,QAAU,KAAK,EAAE,EAIrF,MAAMK,EAAM,gEACRL,EAAU,SAAW,QACzB,WACI,IAAAM,EAAM,SAAS,cAAc,KAAK,EAClCA,EAAA,aAAa,MAAOD,CAAG,EAClB,SAAA,KAAK,YAAYC,CAAG,CAAA,CAGzB,eAAgB,CACpB,IAAIN,EAAUC,IACVC,EAAMC,EAAiB,EAEvB,OAAO,KAAQ,YACX,IAAA,cAAe,WAAWH,EAAU,QAAU,KAAK,GAAWE,EAAI,SAAWA,EAAM,IAAI,EAE3F,OAAO,IAAO,YACd,GAAG,OAAQ,QAAS,CAChB,cAAe,SACf,YAAa,WACb,WAAYF,EAAU,QAAU,KAAA,CACnC,EAED,OAAO,MAAS,UAAY,KAAK,MAAQ,OAAO,KAAK,MAAS,YAC9D,KAAK,KAAK,CACN,UAAW,KAAK,eAChB,WAAY,CACR,QAAS,KAAK,aACd,SAAU,CACN,GAAI,SACJ,GAAI,SACJ,GAAI,WACJ,GAAIA,EAAU,QAAU,KAAA,CAC5B,CACJ,CACH,EAED,OAAO,OAAU,YAAY,MAAM,QAAS,WAAWA,EAAU,QAAU,KAAK,EAAE,EAItF,MAAMK,EAAM,gEACRL,EAAU,SAAW,QACzB,WACI,IAAAM,EAAM,SAAS,cAAc,KAAK,EAClCA,EAAA,aAAa,MAAOD,CAAG,EAClB,SAAA,KAAK,YAAYC,CAAG,CAAA,CAErC,CAEY,IAAAC,GAAAA,IACRA,EAAAC,EAAA,SAAA,CAAA,EAAA,WACAD,EAAAC,EAAA,sBAAA,CAAA,EAAA,wBACAD,EAAAC,EAAA,gBAAA,CAAA,EAAA,kBACAD,EAAAC,EAAA,wBAAA,CAAA,EAAA,0BAJQD,IAAAA,GAAA,CAAA,CAAA,EAOAE,GAAAA,IACRA,EAAAC,EAAA,OAAA,CAAA,EAAA,SACAD,EAAAC,EAAA,MAAA,CAAA,EAAA,QAFQD,IAAAA,GAAA,CAAA,CAAA,EAKL,MAAML,EAAkB,CAC3B,SAAU,WACV,YAAa,qBACb,gBAAiB,2CACrB,EAEI,IAAAO,EAAiB,IAAIjB"}