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.
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.
npm install @plgworks/brand-monitoring --save
const BrandMonitoring = require('@plgworks/brand-monitoring');
const twitterApiConfig = {
bearerToken: '<bearerToken>'
};
const awsComprehendConfig = {
region: '<region>',
accessKeyId: '<accessKeyId>',
secretAccessKey: '<secretAccessKey>'
};
const brandmonitoring = new BrandMonitoring(twitterApiConfig, awsComprehendConfig);
-
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.
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).
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
// }