Twitter API Best Practices: Follower Quality vs. Quantity

This guest post comes from Adam Green, a Twitter API consultant who Builds custom Twitter apps for clients, and blogs about Twitter programming at Follow him at @140dev.

The recent controversy over Governor Romney's surge in Twitter followers once again brought up the issue of the true value of a follower count.

This graph (provided by CNNTech) from the Twitter Counter analytics tool shows a big spike in Romney followers from July 20-23.

Whatever the cause of Romney's sudden gain in followers, it is clear that follower count is a number that can be manipulated, therefore it has little value as a measurement of social media success. At the same time, follower count is the principle metric used by the press to measure the popularity of politicians and celebrities on social media. I also see this in my work with clients, who want more followers, but aren't sure what to do with them. This is an unsustainable pattern. If follower count is the most important Twitter metric, and validity of follower count is becoming more questionable, we are racing towards a cliff.

We seem to have forgotten why followers are important on Twitter. Everyone understands that unless people are following you, your tweets are invisible. Followers are the audience for your message, but that simplistic argument ignores the true value of social media. It isn't about advertising to a captive audience. It is about finding an audience who will help spread your message to their own followers. We need to shift towards more targeted following and metrics based on quality of followers instead of quantity. This week's column will show you some of the ways you can make that transition.

Gathering engagement data

The Twitter API gives you a wide range of methods for gathering data about the level of engagement an account is experiencing. If you just need basic account stats, such as follower and friend count, you can get that for a single account with the /users/show API call. This doesn't even need OAuth Authentication. Here is an example using @MittRomney. You can see that the JSON data returned has all the basic values, including the number of lists an account is on, a metric that is surprisingly underutilized.

For more sophisticated analysis, you can use the Streaming API to gather all tweets by and about an account. If you tell this part of the API to follow an account, you will get all the retweets and replies to that account. You can also have the API track the account screen name as a keyword, and receive all @mentions. Storing the results of the Streaming API in a database will give you all the data you need to construct meaningful engagement metrics.

Useful engagement metrics

Once you have data on retweets and @mentions, there are many useful metrics you can create to judge the effectiveness of a Twitter campaign. Some of the ones I find revealing are:

  • Unique mentioners. This is done with a SQL query that finds the DISTINCT screen names among the tweets with @mentions of your account.
  • Unique retweeters. This is also done with a DISTINCT SQL query that looks at all the screen names that have done a retweet of your account.
  • Average retweets per tweet. Retweets are the closest thing on Twitter to a vote of approval. By collecting the total number of retweets each tweet receives, and then averaging that over time, you can see if your message is resonating.
  • New @mentioners and retweeters. As your followers retweet and @mention you, their followers will repeat this process. You can see your influence spread by counting the number of @mentioners or retweeters who have been gathered by your Streaming API results for the first time.

Finding quality followers

A simple way of finding potential followers who should be interested in the tweets from an account is to create a set of target keywords, and then use Twitter search to find anyone who tweets with these words. You can also use the Streaming API to collect these tweets and their authors. I've used that type of data collection for years, but lately I've shifted to a new model that is much more effective based on what I call seed accounts.

I find that if I start with a set of authoritative accounts on any subject, and then find people who follow a large number of these authoritative accounts, the result is a very good set of follow candidates. Here is the basic algorithm:

  1. Find a Twitter list with a good set of accounts for the subject you are interested in.
  2. Use the /lists/members API call to gather the accounts on this list. These are your "seed accounts".
  3. Use /followers/ids to collect the followers of each seed account, and store them in a database table. I use the basic structure of the seed account user id and the follow account user id in each row.
  4. Run a SQL "GROUP BY" query to find out how many seed accounts each potential follower follows.
  5. Extract any account that follows 10 or more seed accounts.

The basic logic is that if someone follows a large number (10 is usually enough) of accounts that are authoritative on a specific subject, they are probably interested in that subject. This approach has pretty remarkable results. I've used it many times, and I'm always amazed at how good a job it does at putting together a list of potential follows on any topic.

Follow candidate metrics

Once I have good list of candidate accounts for following, I also apply a simple screen that lets me reject accounts that are either too new or possible spam bots. I use the same criteria I discussed in last week's column. The /followers/ids call will only give you user ids of potential followers. To turn these into complete account profiles for further analysis, you need to use /users/lookup, and store the results for each account in a database.

Focus on engaged followers instead of non-followers

It is funny how many tools there are that tell you which of your followers aren't following back, so you can unfollow them. This just perpetuates the type of follower churn that Twitter hates so much. What we really need are tools that tell you which followers retweet and mention you, so you can cultivate these relationships. You can get this information by comparing a list of current account followers with the retweeters and @mentioners collected from the Streaming API. Accumulating this data over time will let you produce a report listing the followers who are most engaged with your account.

Be sure to read the next Best Practices article: REST, Hypermedia, and the Future of Enterprise Web APIs