UNPKG

ngx-hotjar

Version:

A simple ng wrapper to load hotjar dependency by angular way

112 lines (75 loc) 2.59 kB
# Ngx Hotjar ![Build and Tests](https://github.com/maxandriani/ngx-hotjar/workflows/Build%20and%20Tests/badge.svg?branch=master) An easy implementation to track hotjar on angular6+ apps. Feedbacks on https://github.com/maxandriani/ngx-hotjar * [Setup](#setup) * [NgxHotjarService](#ngxhotjarservice) * [Changelog](./CHANGELOG.md) ## Setup ### NPM First, you should add ngx-hotjar as a package dependency. ``` npm install ngx-hotjar ``` ### Angular Sertup After install `ngx-hotjar` package, you must add `NgxHotjarModule` on import list of your highest level application module, aka, AppModule. Please pay attention to provide a valid Hotjar Tracking Code (Site ID). ```typescript \@NgModule({ ... imports: [ ... NgxHotjarModule.forRoot(envorinment.hj) // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ] }) ``` ### Angular Router Setup We also provide a helper module to easy setup Hotjar navigation triggers on `Router` events. We just add an event listener on `Router`'s `NavigationEnd` event. But, if you feel that to over complicated, we provided an easy setup for you. ```typescript \@NgModule({ ... imports: [ ... NgxHotjarModule.forRoot(envorinment.hj), NgxHotjajRouterModule // ^^^^^^^^^^^^^^^^^^^^^^^ ] }) ``` ## NgxHotjarService We also provide a Angular Service to wrap `hj()` function and avoid deal with/ typescript annoying warning when use unknown global functions. ### Hotjar Library Access Provide direct access to the `hj.*` static functions. If the desired function is not available on type definition, you can cast to `any` as following. ```typescript (hjService.lib as any).myBrandNewStaticFn() ``` ### Hotjar Direct Fn Calls Expose Hotjar Function calls. ```typescript hjService.hj(... my args); ``` ### Virtual Page View Fires an PageView event on Hotjar. Use this method to trigger an virtual url path. ```typescript hjService.virtualPageView(path: string): void ``` ### Trigger Hotjar Events Fires an event on Hotjar. Use this method to trigger events on forms and start video recordings. ```typescript hjService.trigger(path: string): void; ``` ### Tag Recording Allows you to tag recordings on Hotjar of all visitors passing through a page. ```typescript hjService.tagRecording('tag1', 'tag2', 'tag3', ...); ``` ### State Change This option is available in case you need to set up page change tracking manually. ```typescript hjService.stateChange(path: string): void ``` ### Form Events Signals form submission status. ```typescript hjService.formSubmitSuccessful(); hjService.formSubmitFailed(); ```