How does BATGrowth.com work?
This post was written originally to answer a question on Reddit, and it will act as an official FAQ:
Every 6 hours, BATGrowth.com fetches the new publishers that signed up as a Brave publisher through BAT’s official API, which is the same source that the Brave Browser fetches the publishers list from:
The only difference is that the Brave Browser is fetching the list less often. (The publishers list of the browser is updated about every 24 hours to avoid consuming too much data, especially on mobile.)
Once the new publishers are fetched, BATGrowth.com then performs an API call on:
Depending on the type of new publisher, different metrics are used:
- Youtube publishers are sorted by subscribers, views, and country
- Twitch publishers are sorted by views
- Websites are sorted by their Alexa Ranking
How graphs are drawn
In order to create graphs without too many data points, one point is displayed every 48h. (The database, however, contains one point every 6 hours.)
Additional technical information:
- BATGrowth.com has an API, but it is undocumented. If you would like to use it, simply send me a PM on Twitter and I’ll be happy to help!
- Every time the fetch-new-publisher script is executed (ie. every 6 hours), any existing verified channels that have become unverified are removed (ie. that used to be on publishers_list.json but are not anymore) from BATGrowth.com’s database as well.
- Every 4 hours, a script checks existing Twitch/YouTube publishers to see if their channel was banned on their respective platforms (using their respective API). If banned, the channels are then removed from BATGrowth.com’s database.
- If a new publisher reaches a certain ranking, the Twitter bot will send a tweet. The threshold for triggering a Twitter notification is: top 20k Alexa ranking for websites, 700k views for Twitch, and 250k subscribers for YouTube.
- Every 2 hours, the 40 oldest-updated YouTube/Twitch/Website publishers are refreshed.
- The entire website will be added to Github as an open source project. But first the code needs to be tidied up a bit 🙂