UNPKG

@kattoshi/ngx-ga4

Version:

Easily call Google Analytics 4 properties from your angular project.

1 lines 12 kB
{"version":3,"file":"kattoshi-ngx-ga4.mjs","sources":["../../../projects/ngx-ga4/src/lib/ngx-ga4.service.ts","../../../projects/ngx-ga4/src/lib/ngx-ga4tag.directive.ts","../../../projects/ngx-ga4/src/lib/ngx-ga4.module.ts","../../../projects/ngx-ga4/src/public-api.ts","../../../projects/ngx-ga4/src/kattoshi-ngx-ga4.ts"],"sourcesContent":["import { Injectable,Inject, Optional } from '@angular/core';\nimport { NgxGa4GlobalSettingType ,\n NgxGa4GlobalSettingValue,\n NgxGa4StreamSetting\n } from './ngx-ga4.interface';\n\n/**\n * Config \n */\n export class NgxGa4Config {\n /**\n * GA4 Measurement Id (If omitted, set as NgxGa4Service.initalize$())\n */\n measurementId?: string;\n}\n\n\ndeclare global {\n interface Window {\n dataLayer : any;\n }\n}\n/**\n * Google Analytics4 Service\n */\n@Injectable({ providedIn: 'root'})\nexport class NgxGa4Service {\n /**\n * Measurement Id\n */\n private measurementId? : string;\n /**\n * constructor\n * @param ng4Config \n */\n constructor(\n @Optional() ng4Config? : NgxGa4Config ) {\n if (ng4Config) {\n this.measurementId = ng4Config.measurementId;\n }\n }\n /**\n * Google Analytics script load\n * @param measurementId Measurement Id()\n * @returns \n */\n install$ (measurementId? : string): Promise<void> {\n return new Promise((resolve, reject) => {\n if (measurementId) {\n this.measurementId = measurementId;\n }\n if (this.measurementId == null) {\n reject(`Measurement ID not set`);\n }\n \n const scriptId = `ga-gtag`;\n if (document.getElementById(scriptId)) {\n reject(new Error(`script id ${scriptId} is already loaded`));\n }\n const { head } = document;\n const script = document.createElement(\"script\");\n script.id = scriptId;\n script.type = \"text/javascript\";\n script.async = true;\n script.onerror = () => {\n reject(`GA4 script load error`);\n }\n script.onload = () => {\n window.dataLayer = window.dataLayer || [];\n resolve();\n }\n script.src = `https://www.googletagmanager.com/gtag/js?id=${this.measurementId}`;\n head.insertBefore(script, head.firstChild);\n });\n }\n /**\n * gtag naitive call\n * @param arg\n */\n gtag (...arg : any) : void {\n if (window.dataLayer) {\n window.dataLayer.push(arguments);\n }\n else {\n throw new Error(`NgxGa4Service not initalized.`);\n }\n }\n /**\n * gtag(\"js\", date)\n * @param date date\n */\n js (date : Date = new Date()) : void {\n this.gtag(\"js\" , date);\n }\n /**\n * gtag(\"config\", ... )\n * @param streamSetting \n */\n config (streamSetting? : NgxGa4StreamSetting) : void {\n if (streamSetting == null) {\n this.gtag(\"config\", this.measurementId);\n }\n else {\n this.gtag(\"config\", this.measurementId , streamSetting);\n }\n }\n /**\n * config (Group and route data)\n * https://developers.google.com/tag-platform/gtagjs/routing\n * @param mesureId menure id\n * @param groupName group name\n */\n configGroups (mesureId : string , groupName? : string ) : void {\n if (mesureId == null) {\n this.gtag(\"config\", this.measurementId);\n }\n else if (groupName == null) {\n this.gtag(\"config\", mesureId );\n }\n else {\n this.gtag(\"config\", mesureId , { \"groups\" : groupName});\n }\n }\n /**\n * gtag(\"event\" , ... )\n * @param eventName string event name \n * @param eventParams? object event parameter\n */\n event (eventName: string , eventParams?: object) : void {\n if (eventParams == null) {\n this.gtag(\"event\", eventName);\n }\n else {\n this.gtag(\"event\", eventName, eventParams);\n }\n }\n /**\n * gtag (\"set\" , ...)\n * @param config NgxGa4GlobalSettingType \n * @param value NgxGa4GlobalSettingValue \n */\n set ( config : NgxGa4GlobalSettingType, value : NgxGa4GlobalSettingValue) : void {\n this.gtag(\"set\", config , value);\n }\n}\n","import { Directive, Input,AfterViewInit,ElementRef , Renderer2} from '@angular/core';\nimport { NgxGa4Service } from './ngx-ga4.service';\n\n@Directive({\n selector: '[gtagEvent]'\n})\n/**\n * Directive\n */\nexport class NgxGa4tagDirective implements AfterViewInit {\n /** HTML DOM Event */\n @Input() trackOn?: string;\n /** event name for ga4 event */\n @Input() action?: string;\n /** param for ga4 event */\n @Input() params?: object;\n\n constructor(\n private ga4service: NgxGa4Service,\n private renderer: Renderer2,\n private el: ElementRef\n ) {}\n /**\n * AfterViewInit\n */\n ngAfterViewInit() {\n try {\n if (!!this.trackOn && !!this.action) {\n this.renderer.listen(this.el.nativeElement, this.trackOn, () => {\n this.ga4service.event(this.action! || this.trackOn!, {\n ...this.params\n });\n });\n }\n } catch (err) {\n throw err;\n }\n }\n}\n","import { NgModule , ModuleWithProviders, Optional, SkipSelf } from '@angular/core';\nimport { NgxGa4Config } from './ngx-ga4.service';\nimport { CommonModule } from '@angular/common';\nimport { NgxGa4tagDirective } from './ngx-ga4tag.directive';\n\n@NgModule({\n declarations: [\n NgxGa4tagDirective\n ],\n imports: [CommonModule],\n exports: [NgxGa4tagDirective],\n providers:[]\n})\n/**\n * NgxGa4Module\n */\nexport class NgxGa4Module {\n constructor(@Optional() @SkipSelf() parentModule?: NgxGa4Module) {\n if (parentModule) {\n throw new Error(\n 'NgxGa4Module is already loaded. Import it in the AppModule only');\n }\n }\n /**\n * Constant parameter inject to NGxGa4Service\n * @param config \n * @returns \n */\n public static forRoot(config: NgxGa4Config): ModuleWithProviders<NgxGa4Module> {\n return {\n ngModule: NgxGa4Module,\n providers: [\n { provide: NgxGa4Config, useValue: config }\n ]\n };\n }\n}\n","/*\n * Public API Surface of ngx-ga4\n */\n\nexport * from './lib/ngx-ga4.service';\nexport * from './lib/ngx-ga4.module';\nexport * from './lib/ngx-ga4.interface';\nexport * from './lib/ngx-ga4tag.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.NgxGa4Service"],"mappings":"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"}