@renet-consulting/ngx-tracking-analytics

15.0.1 • Public • Published

Tracking-Analytics

NPM version NPM downloads MIT license

The application is custom implementation Google Analytics to handle a behavior of a user. It's only the front-end part of the tracking user's data, see the back-end part on the TODO-add a link.

Installation

npm install @renet-consulting/ngx-tracking-analytics --save

Include it in your application

  1. Add NgxTrackerModule to your root NgModule passing an config with a loader TrackerHttpService
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { RouterModule, Routes } from '@angular/router';

import { NgxTrackerModule } from '@renet-consulting/ngx-tracking-analytics';

const ROUTES: Routes = [
    { path: '', component: HomeComponent },
    { path: 'about', component: AboutComponent }
];

export function trackerHttpServiceFactory(trackerService: NgxTrackerService, http: HttpClient): TrackerHttpService {
    return new TrackerHttpService(trackerService, http);
}

@NgModule({
    imports: [
        BrowserModule,
        RouterModule.forRoot(ROUTES),

        // added to imports
        NgxTrackerModule.forRoot({
			loader: { provide: NgxTrackerHttpService, useFactory: (trackerHttpServiceFactory), deps: [NgxTrackerService, HttpClient] },
			baseUrl: { provide: NGX_BASE_URL, useValue: window.location.host },
		}),
    ],
    declarations: [AppComponent],
    bootstrap: [AppComponent],
})
  1. Where the TrackerHttpService is:
@Injectable()
export class TrackerHttpService {

    public readonly keyId: string = "Encrypt-Key";
    public readonly ivId: string = "Encrypt-Iv";

    constructor(
        private trackerService: NgxTrackerService,
        private http: HttpClient,
    ) { }

    public addTracker = (item: TrackerModel): Observable<any> => {
        const keyId: string = this.trackerService.randomValue;
        const ivId: string = this.trackerService.randomValue;
        const value: string = this.trackerService.encrypt(item, keyId, ivId);
        return this.http
            .get(`api/ra?model=${value}`, {
                responseType: "text",
                headers: new HttpHeaders({
                    [this.keyId]: keyId,
                    [this.ivId]: ivId
                })
            });
    }
}

Usage

Collect basic data

import { Component } from "@angular/core";

@Component({
    selector: "app",
    template: `
	<router-outlet></router-outlet>
	<ngx-tracker></ngx-tracker>
	`
})
export class AppComponent {
    
	constructor() { }
}

Release v15.0.0

Converted project to Angular v15
Updated crypto-js to v4.2.0
Updated @types/crypto-js to v4.2.2

Release v14.0.3

Upgrade version to 2 and change t>en

Release v14.0.1

Upgrade "rxjs" to "~6.6.7"

Release v14.0.0

Converted project to Angular v14

Release v9.0.0

Converted project to Angular v9

Readme

Keywords

none

Package Sidebar

Install

npm i @renet-consulting/ngx-tracking-analytics

Weekly Downloads

1

Version

15.0.1

License

MIT

Unpacked Size

32.6 kB

Total Files

19

Last publish

Collaborators

  • illia.antonov
  • aaltotsky