New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

sails-affiliate-tracker

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sails-affiliate-tracker

A simple http middleware package to track your websites affiliates visitors in a sails application

  • 0.0.1
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
1
decreased by-50%
Maintainers
1
Weekly downloads
 
Created
Source

sails-affiliate-tracker

sails-affiliate-tracker is middleware that can be used to track your application affiliate's by checking if an affiliate code is present in the URL.

It will assign a cookie '{referral:1234}' to the request, if one does not already exist, based on a user ID found from the username in the URL after a Users.find({username:username}) query.

This is quite a rigid package and will only work if you want your affiliate URL structures in the format of: http://mydomain.com/{unique-affiliate-username} or http://mydomain.com/page1/page2/etc/{unique-affiliate-username}. It will not work for query strings, although it could be modified quite easily to do so. I just do not have the need to do so.

However, it does have some nifty features for SEO, in that it will NOT perform a redirect to serve the original page. Instead it will modify the req.url to remove the affiliates username and pass that through behind the scenes - meaning your normal routes apply and controller logic for that page is executed.

One other SEO thing it will do is provide your views with a parameter for canonical links, should it be required. You use it like this in your view files:

<% if(typeof req.affiliateTracker !== 'undefined' && typeof req.affiliateTracker.canon !== 'undefined'){ %>
<link rel="canonical" href="<%= sails.getBaseurl() + req.affiliateTracker.canon %>" />
<% } %>

Installation

Via git:

$ git clone git://github.com/mrpetef10/sails-affiliate-tracker.git ~/.node_libraries/sails-affiliate-tracker

Via npm:

$ npm install sails-affiliate-tracker

Setup

There are a couple of things you must do to set this up first.

  1. Require this in your config/http.js config file and add an entry 'affiliateTracker' after cookieParser:

    middleware: {

     affiliateTracker: require('sails-affiliate-tracker'),
    

    /***************************************************************************

    •                                                                      *
      
    • The order in which middleware should be run for HTTP request. (the Sails *
    • router is invoked by the "router" middleware below.) *
    •                                                                      *
      

    ***************************************************************************/

    order: [ ....., ....., 'cookieParser', 'affiliateTracker', ....., ....., ],

  2. Since I am still new to working with node.js/sails.js I am unsure how to actually pass custom config vars to this middleware (I would welcome anyone to create a pull request with an update to add this in!). Due to that you need to go into the node_modules/sails-affiliate-tracker/index.js file, go to line 42 and change the regex to your specific affiliate URL format. I set mine to use:

    // Will match /page1/user-mrpetef10 // or /page1/user-anotherusername var regex = /^user-[\w]{5,22}$/i;

I set it in this way so that it is easily extractable from URLs and I could still if I want to in future link to my users profile pages without concern of this breaking it.

Not the best way to creating this I know, however it is an initial version that took around 15 mins to put together.

Keywords

FAQs

Package last updated on 06 Oct 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc