Referrer Parser
A simple library for parsing referrer URLs to identify their source and medium.
Installation
npm install @tryghost/referrer-parser
yarn add @tryghost/referrer-parser
Usage
Basic Usage
const { parse } = require('@tryghost/referrer-parser');
const result = parse('https://www.google.com/search?q=ghost+cms');
console.log(result);
With Site Configuration
const { parse } = require('@tryghost/referrer-parser');
const result = parse(
'https://example.com/blog?utm_source=newsletter&utm_medium=email',
{
siteUrl: 'https://example.com',
adminUrl: 'https://example.com/ghost'
}
);
Using the ReferrerParser Class
For more advanced usage, you can use the ReferrerParser
class directly:
const { ReferrerParser } = require('@tryghost/referrer-parser');
const parser = new ReferrerParser({
siteUrl: 'https://example.com',
adminUrl: 'https://example.com/ghost'
});
const result1 = parser.parse('https://www.google.com/search?q=ghost+cms');
const result2 = parser.parse('https://twitter.com/ghostcms');
Features
- Identifies sources and mediums from known referrers
- Handles special cases for Ghost Explore and Ghost Newsletters
- Detects UTM parameters
- Works with or without site/admin URL configuration
- TypeScript support
TypeScript Support
This package is fully written in TypeScript and provides its own type definitions.
import { parse, ReferrerParser, ReferrerData, ParserOptions } from '@tryghost/referrer-parser';
const result: ReferrerData = parse('https://www.google.com/search?q=ghost+cms');
console.log(result.referrerSource);
console.log(result.referrerMedium);
console.log(result.referrerUrl);
const options: ParserOptions = {
siteUrl: 'https://example.com',
adminUrl: 'https://example.com/ghost'
};
const parser = new ReferrerParser(options);
const customResult = parser.parse('https://example.com/blog?utm_source=newsletter');
License
MIT
Testing
Run the tests with:
yarn test
This will run the test suite using Mocha and report on test coverage.