0.1.9 • Published 1 year ago

@condenast/cna-st-codec v0.1.9

Weekly downloads
-
License
ISC
Repository
github
Last release
1 year ago

@condenast/cna-st-codec

Standalone library to service all cna.st encoding requests. Below are the services provided by the library:

  • Encode affilate links
  • Encode product embeds
  • Decode affiliate links

Installation

    npm install @condenast/cna-st-codec

Usage

Documentation: Click here

Input params

Query ParameterTypeRequiredExampleDescription
originstringyes60d5a8e87a19ee043b25fb5bOrigin of this link (ex: Copilot page id, newsletter id, etc)
localestringnoUKUsed for localised links.
brandstringyes4gKgcF5Myw5MXdcFAvDQL5L1iAGHId of the source’s brand
channelstringnonewsletter, website, instagramThe channel where the click originated
campaignstringnosummersaleCustom Campaign parameter
productstringno30d5a8eKa919ee043b25fP9IKID of product
componentstringnoPLP-Carousel_4Name to identify which component is generating revenue (including the position)
bucketstringnoBr1639018827824exxA+B test cell bucket ID
actionIdstringno123456Unique ID to reference a click back to a conversion with GA
offerUrlstringyesRetailer product/offer URL
referrerstringnoOrigin URL where click happened
sourcestringnoversosource name eg: verso, amp

To generate encoded text

const cnaStCodec = require('@condenast/cna-st-codec');

const params = {
    brand: "4gKgcEs3YBmxYhgNxdHg8VnbgTnc",
    offerUrl: "http://www.amazon.com/",
    origin: "60d5a8e87a19ee043b25fb5b"
};

let encodedText = cnaStCodec.encodeAffiliateParams(params);
console.log(encodedText);

// Output: 4jjCSCMwBgMHssUvJ6jQbjEfYZMoqQmMUyrkXyfPygqXC4jXjS8nfaa7CwiuVicTz35jocCjuWUSzdvRi6RpqSkKB7ybSrg4KShpeGTbBdLesvvhbgo

To update existing params or add new value to an encoded text

const cnaStCodec = require('@condenast/cna-st-codec');

let encodedText = "4jjCSCMwBgMHssUvJ6jQbjEfYZMoqQmMUyrkXyfPygqXC4jXjS8nfaa7CwiuVicTz35jocCjuWUSzdvRi6RpqSkKB7ybSrg4KShpeGTbBdLesvvhbgo";
const params = {
    offerUrl: "http://go.skimlinks.com/",
    campaign: "test"
};

encodedText = cnaStCodec.encodeAffiliateParams(encodedText, params);
console.log(encodedText);

// Output: RTBwSQLjveX2mJoa9QBGwjuqBsCuZwtP3mdimfraBSaLWCnYkwWyZL85Nvj1ML5qYfokBdnhojbDXLW4mWjBPvotMHwFYNCg4YLYAaSRCYB4eaT79vayNPto

To decode the encoded text

const cnaStCodec = require('@condenast/cna-st-codec');

let encodedText = "4jjCSCMwBgMHssUvJ6jQbjEfYZMoqQmMUyrkXyfPygqXC4jXjS8nfaa7CwiuVicTz35jocCjuWUSzdvRi6RpqSkKB7ybSrg4KShpeGTbBdLesvvhbgo";
let decoded = cnaStCodec.decodeAffiliateParams(encodedText);
console.log(decoded);

// Output: {
//   referrer: '',
//   actionId: '',
//   bucket: '',
//   component: '',
//   campaign: 'test',
//   channel: '',
//   locale: '',
//   origin: '60d5a8e87a19ee043b25fb5b',
//   product: '',
//   offerUrl: 'https://go.skimlinks.com',
//   brand: '4gKgcEs3YBmxYhgNxdHg8VnbgTnc'
// }
0.1.3-dev.0

1 year ago

0.1.8

1 year ago

0.1.9

1 year ago

0.1.3

1 year ago

0.1.6

1 year ago

0.1.2

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago

0.1.0-dev.0

2 years ago

0.0.4

2 years ago

0.0.4-dev.0

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago

0.0.2-dev.3

2 years ago

0.0.2-dev.2

2 years ago

0.0.2-dev.1

2 years ago