15.0.1 • Published 3 months ago

@renet-consulting/ngx-tracking-analytics v15.0.1

Weekly downloads
1
License
MIT
Repository
github
Last release
3 months ago

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

15.0.0

3 months ago

15.0.1

3 months ago

14.0.0

1 year ago

14.0.1

1 year ago

14.0.2

1 year ago

14.0.3

1 year ago

14.0.4

12 months ago

9.0.0

4 years ago

8.0.1

5 years ago

8.0.0

5 years ago

8.0.0-preview-2

5 years ago

8.0.0-preview-1

5 years ago

2.0.1

5 years ago

2.0.0

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

6 years ago

1.0.0

6 years ago

0.0.4

6 years ago

0.0.3

6 years ago

0.0.2

6 years ago

0.0.1

6 years ago