17.0.0 • Published 1 year ago

@renet-consulting/ngx-tracking-analytics v17.0.0

Weekly downloads
1
License
MIT
Repository
github
Last release
1 year 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 v17.0.0

  • Converted project to Angular v17

Release v16.0.0

  • Converted project to Angular v16

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

17.0.0

1 year ago

15.0.0

1 year ago

15.0.1

1 year ago

14.0.0

2 years ago

14.0.1

2 years ago

14.0.2

2 years ago

14.0.3

2 years ago

14.0.4

2 years ago

9.0.0

5 years ago

8.0.1

6 years ago

8.0.0

6 years ago

8.0.0-preview-2

6 years ago

8.0.0-preview-1

6 years ago

2.0.1

6 years ago

2.0.0

6 years ago

1.0.3

7 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago

0.0.4

7 years ago

0.0.3

7 years ago

0.0.2

7 years ago

0.0.1

7 years ago