A social media bot… is an application that does automation on various SM (social media) platforms such as Twitter and Instagram. For 16 months leading up to the API purge on June 1st, 2016, I was an Instagram API freelance developer. The June 1st purge was a necessary measure to combat illicit and rogue Instagram applications that ran unchecked. During my tenure, I witnessed some interesting things. Mostly, creative solutions to things I would have never thought about. But the majority of the work involved in trying to help influencers grow their base.
IG influencer marketing is one of the hottest trends in digital advertising. In short an influencer is a user with a sizable audience of followers. For influencers, the higher the follower count, the more they can demand in terms of sponsorship fees. Some resort to buying phantom follower accounts and likes. These phantom accounts are rather obvious. They often have up to 3 posts taken a few weeks to months prior with no current activity. They often have little followings and can follow up to 7000 followers. Furthermore, buying likes is not a viable long-term solution. As the follower count increases, the more likes would need to be purchased to maintain a good
Engagement Ratio (ER). ER is the number of interactions (likes/comments) relative to your follower count. 4% is considered good ER. If you had 1000 users, you should have 40 likes to maintain a 4% ER. For 50,000 followers, 4% ER means you must have around 2,000 likes and comments. Rather than buy fake likes and followers, many have engaged in other non-organic tactics. They include auto-liking and the F/UF (Follow Un-follow method) which requires automation.
The general premise of auto-liking and F/UF is that an IG influencer can spark the attention of a possible user and convert them into a follower. The analogy argument for this like leaving mass fliers on cars parked in a garage. Some of those users will notice the interaction and may opt to check out the influencer’s feed. Some of those users eventually convert and become followers. There are many websites and application that provide this service. Some influencers may auto-like up to 2400 images and follow up to 800 users a day. If a user doesn’t reciprocate, the influencer will un-follow that user 2 to 3 days later. Some even go as far as un-liking an image. Many influencers don’t care about reciprocity and simply un-follow regardless. These tactics have their critics and I am one of them. I’m not a big fan of these methods but I got myself caught up developing specialized bots. Driven by greed, I did it for the money and I like to share some interesting insight from a developer’s point of view.
Rewind 18-20 months prior, I got myself involved in IG API programming because some clients had real “analytical” needs. Many still do. One of my first clients wanted Excel reports of postings by Geographic locations by their customers to see who was posting at or nearby their stores. In order to do this, I needed access to the API. Since I am versed at generating Excel reports in a LAMP stack (using PHPExcel), all I needed to familiarize myself was the API endpoints. There were a few GITHUB repos that had turn-key PHP classes and libraries that interfaced with the official Instagram API. All that was needed was tokens and within a few hours, I was querying the API and generating reports for this client.
This initial exposure lead to other projects such as scraping email addresses on competitor’s posts. The competitors would sponsor a giveaway and end-users would naively post their email addresses to enter. Instead of hiring a VA (Virtual Assistant) to comb the competitor’s feed, I wrote some scripts to scrape and paginate across all the posts of that particular client. Within 30 minutes, I gathered about 600 emails versus having a VA spend four days to do this manually. There was a real need for reports and other analytics. With each client encounter, I learned more and more of what they wanted that I started to beef up my own “IG engine.”
Even if I didn’t secure a freelance contract, I still gained valuable information. During the interview phase, clients would provide me with use case scenarios and they would often consider going elsewhere; hiring $3 an hour off-shore developers. I would take those features I found valuable and incorporate them into my own app.
After 4 months, I had a solid bot that did a lot of cool things. I also learned to protect myself and position myself against my competing $3 an hour off-shore developers. My method was basically to give way my app for a trial run and I would add features based on request. My stipulation was clear, I’d give the client full access to my app and I would add the features in. It was very compelling but there was some gotchas.
The app would be delivered as self expiring virtual machines that ran on my own cloud or packaged as VMWare OVF files. The client would spool up the web appliance and the system would run for 2 weeks. The Virtual Machines would phone “home” and if the client didn’t agree to terms, the application would self destruct. The Home page would alert the client to pay for a license to continue running. The other minor point was the fact, I would incorporate those new features at my discretion and have the ability to monetize my work for future prospects. It was basically a low-risk for me and a big win for my clients. They’d get 90% working app at sign-on and no upfront cost if I didn’t deliver. This also eliminated my competition pool. The big risk for clients was the threat I would re-sell the work to someone else if they didn’t pay. Thus, this provided them an incentive to meet terms.
As mentioned earlier, there are tons of applications and websites that provide these services. MassPlanner is a web service and for many self proclaimed Instagram marketing agencies, it wasn’t a cost-effective solution when acquiring more clients. Then there is a Windows application, FollowLiker. For $99, you can run an application on Window desktop that does automation. I ended up getting a copy to see what it had and I have to say, for small time users, it has a rich feature-set. It does a lot of things outside of the published API endpoints so it was clearly violating the TOS (Terms of Service). FollowLiker was also very unstable in a large deployment. Clients had to run multiple Window boxes and the built in database was prone to corruption; requiring extensive rebuilds. So I was tasked with building a FollowLiker clone. I didn’t have to replicate all the features, I just had to make them better.
One of the problem with auto-liking is most services do not take “weighting” into consideration. Weighting is what I call curating content. A post can have 30 hashtags but people often hashtag spam that the post no longer bear relevance. For example, in the #interiordesign niche, you can have multiple genres from traditional, modern, upcycle, thrift, to industrial. So if you wanted to attract a modernist enthusiast customer, my system would look for multiple hits of #moderndesign, #dwelldesign, #minimalist, and #knoll to filter out those against Target bargain home decor. The weighting also provided blacklisting as I notice brands would auto-like their competitors and their enemies. For example, a Swiss watch brand may want to catalog all those users who post pictures of their watches but want to avoid those who post replicas and counterfeits. It would be embarrassing for a company like Rolex to auto-like a knock-off dealer out of Thailand. This type of weighting was very specialized and resource heavy. Instagram allows 5,000 API calls per hours and the system had to do some machine learning and multiple cross queries. You simply cannot have this level of sophistication on a paid public platform. For each unique user, the app had to be dedicated to individual nodes of a multi-farm cluster. A dedicate node also allow the ability to run some reports like competitors’ posting habits, hash-tag usage and other things.
My implementation of F/UF was more granular than FollowLiker or MassPlanner. My pitch was to target “newbies.” These would be real public users who normally post regular content on versus a phantom account. I would factor in their following, average likes, and their posting schedules. The premise was clear, the bot would not waste a like on a popular user with 15,000 followers and 1500 average likes. The automated like would simply be lost among the other engagement. Thus, the bot had defined thresholds. It would only like accounts with configurable limits such as following counts of under 300. The average post should have less than 50 likes and be older than 2 days. Having the bot interact a few days later presented more authenticity. These newbies would be more willing to follow back. Unfollow was also programmed to run much longer and even un-followed, the bot would still automate likes so the user would not notice the un-follow.
During this time, I was adding more features as more clients with real analytic needs were coming to me. Using a LAMP stack was great because I could easily add new features using public open source projects. One example is examining dominant colors. There is a PHP class, Color-Thief ( https://github.com/ksubileau/color-thief-php) that allows you to visually analyze the colors of image. Some clients want to see which colors and visual look was generating the most likes. Some brands ran contests using sponsored hash-tags so I leverage my other skills such as reporting and generating infographics using tools like WKHTMLTOPDF and HighCharts to make graphs. For new clients who only wanted a specific bot, I would strip and only add specific features.
Then June 1st, 2016 came along. I have to admit, I was caught by surprise as I didn’t keep up with the developer news. I just did my thing and many others were caught off guard as well. Other developers were scrambling to get approvals and some even offered $10,000 bounties to get approved. Fortunately, I sold off my application months prior. My experience taught me some important lessons. It simply isn’t worth it to automate. It eventually catches up to you. I believe Instagram has factored in some of these activities. The Algorithm changed along with the API lock-down. Posts are now not shown in order. The number of people you follow in relationship to your follower count is factored in the discovery and trending.
Good content will always win. When you automate, you don’t have a relevant audience pool. Those users may not be fully vested or interested in your feed. They simply are not germane to your niche. The less interaction you have with them, your reach and impressions are affected. If users are not engaging, you start to lose other important metrics.
Here is an example of an Instagram feed that went south after the API change. This feed was an e-commerce store with 100K followers and decent engagement of 3000 likes per post. They posted on a popular freelance site; actively crying for help. A few weeks later, they followed with another job post revealing they’ve lost traffic to their website and revenues dropped from $15k a month to $5k and falling. Fast forward 4 months later, the feed is completely gone. The website and business was shuttered. I redacted the name to save them from embarrassment.
This user sold luxury goods. Out of those 100K followers, many of those were pre-teen kids. A 12 year old in India isn’t going to buy his handbag. This is why it is important to have relevant followers. In the luxury lifestyle niche, there a lot of kids posting pictures of exotic cars and fancy watches using those hashtags, it doesn’t mean they can afford to buy a real luxury item.
There are ways to grow Instagram without these tools. For future endeavors, I would strongly advise against them as newer analytic tools can weed out the fake influencers from the real ones.