https://github.com/firstandthird/hapi-campaigns
campaign tracking
https://github.com/firstandthird/hapi-campaigns
hapi-plugin
Last synced: about 2 months ago
JSON representation
campaign tracking
- Host: GitHub
- URL: https://github.com/firstandthird/hapi-campaigns
- Owner: firstandthird
- License: mit
- Created: 2017-11-21T03:10:45.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2021-02-23T22:14:26.000Z (almost 5 years ago)
- Last Synced: 2025-03-04T09:40:24.654Z (11 months ago)
- Topics: hapi-plugin
- Language: JavaScript
- Size: 50.8 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# hapi-campaigns
A hapi server plugin that provides automatic tracking of campaigns and UTM campaigns
## installation
Go to your project directory and do
```console
npm install hapi-campaign
```
Register the plugin with your hapi server with
```javascript
const hapiCampaigns = require('hapi-campaigns');
const server = new hapi.Server({ port: 8000 });
await server.register(hapiCampaigns);
```
## How it Works
hapi-campaigns parses every incoming request to your
server for a campaign (or utm_campaign) cookie. It will
automatically extract any values associated with the campaign
cookie (separated by '_'), and for utm_campaigns will extract
utm_medium / utm_source fields. It also registers a 'campaign'
event that is called any time a campaign matching the specified cookie name is detected.
## Example
If you register an event handler like:
```javascript
server.events.on('campaign', (data) => {
console.log(data.hello);
});
```
When you call the route `/foo?campaign=visit_world` your
server will print:
"world"
## Options
- __cookieName__
The cookie associated with your campaign, default value is _campaigns64_
- __cookie__
- __ttl__
The TTL for the cookie, by default the cookie will last 30 days.
A JSON object specifying the cookie's properties, these along with their defaults are:
- __isSecure__: false
- __isSameSite__: false
- __isHttpOnly__: true
- __clearInvalid__: true
- __ignoreErrors__: true