easy-ngx-google-analytics

1.0.5 • Public • Published

easy-ngx-google-analytics

npm version Build Status Li Join the chat at https://gitter.im/easy-ngx-google-analytics/Lobby

Easy Ngx Google Analytics Angular Module

This module used the latest Global Site Tag (gtag.js).

prerequisite

Generates a google analytics tracking ID

It might take up to a day for Real-Time data to show for a new google analytics tracking ID

Installation

npm install easy-ngx-google-analytics --save

install gtag.js by copying the following snippet and pasting it immediately after the head tag on index.html. Replace GA_TRACKING_ID with the tracking ID of the Google Analytics property you want to send data to.

<!doctype html>
<html lang="en">
<head>
    <script async src="https://www.googletagmanager.com/gtag/js?id=GA_TRACKING_ID"></script> 
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());
      gtag('config', 'GA_TRACKING_ID', { 'send_page_view': false });
    </script> 
  <meta charset="utf-8">
  <title>MyModuleTestApp</title>
  <base href="/">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<body>
  <app-root></app-root>
</body>
</html>

Add below code to your app module. Next we import the EasyNgxGoogleAnalyticsModule to app module

import { RouterModule, Routes } from '@angular/router';
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
 
import { AppComponent } from './app.component';
// Wr import the EasyNgxGoogleAnalyticsModule
import { EasyNgxGoogleAnalyticsModule} from 'easy-ngx-google-analytics';
 
const appRoutes: Routes = [
  { path: '', component: AppComponent },
  { path: '1', component: AppComponent },
  { path: '2', component: AppComponent }
 
];
 
@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    // import the module here
    EasyNgxGoogleAnalyticsModule,
    RouterModule.forRoot(appRoutes)
  ],
  bootstrap: [AppComponent]
})
export class AppModule { }
 
 

Finally, we add the code below to inside our app.component.ts(our initial template).

import { EasyAnalyticsConfig } from 'easy-ngx-google-analytics';
import { Component } from '@angular/core';
 
@Component({
  selector: 'app-root',
  // here we configure the analytic module
  template: `<easy-ngx-google-analytics [config] = 'easyAnalyticsConfig'></easy-ngx-google-analytics>`,
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'app';
  easyAnalyticsConfig: EasyAnalyticsConfig = {
  
    // required field, same as the GA_TRACKING_ID
    gaTrackingId : 'UA-XXXXXXXXX-X',
    // If you have any routes you need to ignore, update the config
    // you can add a regex array
    // Here we will add /loading to ignore list
    routesToIgnore : [/\/loading$/],
    
    // you can pass a function/arrow function to remove or add information from the url
    // sometime, we might need to remove the id, or authenticating keys.
    urlTrimmerFunction: (originalUrl: string) => {
      originalUrl = originalUrl.replace(/\d/, '');
      return originalUrl;
    }
  };
}

Support

Chat with us on Join the chat at https://gitter.im/easy-ngx-google-analytics/Lobby

SystemJs

If you use SystemJS to load your files, you might have to update your config with this if you don't use defaultJSExtensions: true:

System.config({
    packages: {
        "/easy-ngx-google-analytics": {"defaultExtension": "js"}
    }
});

License

MIT

Package Sidebar

Install

npm i easy-ngx-google-analytics

Weekly Downloads

32

Version

1.0.5

License

MIT

Last publish

Collaborators

  • sharukworld