Skip to content

Latest commit

 

History

History
87 lines (67 loc) · 3.61 KB

README.md

File metadata and controls

87 lines (67 loc) · 3.61 KB

Brand Monitoring

npm version

Brand Monitor helps you understand your twitter audience better. This module provides you with number of promoters & detractors, Net Promoter Score (NPS) and the total number of tweets within a particular time duration.

Approach

Using Twitter API, we gather the tweet mentions of a particular account. These tweets are searched within a given time duration. Sentiments analysis of these tweets is done using AWS Comprehend, to gather promoters and detractors.

Prerequisites

Install

npm install @plgworks/brand-monitoring --save

Initialize

const BrandMonitoring = require('@plgworks/brand-monitoring');

const twitterApiConfig = {
  bearerToken: '<bearerToken>'
};

const awsComprehendConfig = {
  region: '<region>',
  accessKeyId: '<accessKeyId>',
  secretAccessKey: '<secretAccessKey>'
};

const brandmonitoring = new BrandMonitoring(twitterApiConfig, awsComprehendConfig);

Initialization Params

  • twitterApiConfig Object which has following key(s).

    • bearerToken: Used to have a more secure point of entry to use Twitter APIs, and can be obtained from the developer portal inside the keys and tokens section of your Twitter App's settings.
  • awsComprehendConfig Object which contains AWS Comprehend access credentials. It has following keys.

    • region: AWS region.
    • accessKeyId: AWS uses this to verify your identity and grant or deny you access to specific resources.
    • secretAccessKey: AWS uses this to verify your identity and grant or deny you access to specific resources.

Get Statistics

Once the Brand Monitoring module is initialized, the next step is to perform sentimental analysis on tweets.

const reportParams = {
  twitterUsername: '<twitterUsername>',
  startTimestamp: '<startTimestamp>',
  endTimestamp: '<endTimestamp>',
  awsThreshold: {
    positive: '<positive>',
    negative: '<negative>'
  }
};

const stats = await brandmonitoring.getStats(reportParams).catch(function(err) {
  console.log('Error:: --------- ', err);
});

reportParams Object with following keys.

  • twitterUsername: Twitter username for which you want to generate the stats. Example: @PLGWorks
  • startTimestamp: Start timestamp used to search tweets
  • endTimestamp: End timestamp used to search tweets
  • awsThreshold: (Optional) Object which contains AWS Comprehend sentiment score threshold values. Default positive value is 0.55 and negative value is 0.40
    • positive: Range is from 0 to 1. If sentiment is positive and the sentiment score is greater than this threshold, then we consider the tweet as positive (i.e. promoter).
    • negative: Range is from 0 to 1. If sentiment is negative and the sentiment score is greater than this threshold, then we consider the tweet as negative (i.e. detractor).

Success Response

getStats method returns a promise which returns a stats object as shown in the following.

console.log(stats);

// stats is a object which looks like this:
//  {
//      nps: -8.333333333333336,
//      promotersCount: 14,
//      detractorsCount: 21,
//      totalTweets: 84
//  }