Dr Duncan Riach


A Chinese Unicorn (Unintentionally) Shoots Down Medium’s Read Ratio

Image from Reddit

This started on Saturday January 6, 2018. I was looking at my Medium stats when I noticed that the reads-per-view ratio on one of my stories, entitled I Almost Died. This Is What I learned, was plummeting from what had been a stable 60%. Suddenly the ratio was dropping as views increased rapidly but reads did not. At the time of writing, the story has been viewed 6.1K times but read only 786 times, producing a measly reads-per-view ratio of 13%.

Medium runs on stats, and stats are what sets it apart from other blogging, writing, and publishing platforms. By tracking stats like reads-per-view (“read ratio”), and probably also fans-per-read, claps-per-fan, and total-minutes-read, Medium’s algorithms are able to estimate the relative quality of the stories that are published on the platform.

This enables Medium’s staff and algorithms to identify and promote the highest quality content. In the long-term, this could lead to Medium having the highest-quality written content on the Internet, and therefore the lion’s share of the reading eyeballs. Because of it’s success, many established print and online publications such as The Financial Times, The New York Times, and The Atlantic now have a presence on Medium.

I want my writing to be visible on Medium, so I dutifully play the game of producing extremely high-quality content, which takes a lot of time and effort. I take the reads-per-view ratios very seriously, and I wrote recently about the importance of matching view-demographic to read-demographic so as to maximize reads-per-view. Because of all of this, when I see reads-per-view dropping precipitously, I panic a little. Initially, I had no idea what was going on, but then I examined the referral sources, which Medium provides to us.

A quick visit to nativeapp.toutiao.com reveals that it is the “toutiao in-app referrer placeholder.” For my stories, the top three referral slots are usually populated from the following list:

  • Medium for iOS
  • Medium for Android
  • email, IM, direct
  • medium.com
  • google.com
  • facebook.com
  • hackernoon.com

These all make sense. So I found it very strange to suddenly be receiving thousands of views from nativeapp.toutiao.com. I assumed that Toutiao was the name of a company, so I searched for it on Crunchbase. It turns out that Toutiao is a Chinese, non-public company, founded in 2012, which has, so far, received 3.1 billion dollars of private equity investment.

That’s a massive amount of private equity. I was wondering how some presumably tiny, unknown start-up could get this much funding. For comparison, Airbnb, a household name, has raised 4.4 billion dollars. (I’m amazed that Airbnb is not yet publicly traded, by the way.)

Investigating further, I discovered that, according to Wikipedia, Toutiao is “China’s largest mobile platform of content creation, aggregation and distribution underpinned by machine learning techniques, with 120 million daily active users as of September 2017.”

Toutiao … is a Beijing-based news and information content platform powered by artificial intelligence technology. By analyzing the features of content, users and users’ interaction with content, the company’s algorithm models generate a tailored feed list of content for each user. — Wikipedia

Tóutiáo (头条) means “headline” in Chinese. According to the economist, those 120 million daily active users (DAUs) spend more time on the Toutiao app than users of other social media apps anywhere in the world, including Facebook.

Screenshot from the Toutiao iOS native app

On a desktop or laptop computer, Medium stories are usually viewed through a web-browser, such as Chrome, Edge, or Safari. On smartphones, stories are usually viewed in Medium’s native iOS or Android app, but sometimes in a mobile web browser. On the mobile platforms, it’s also possible for Facebook to present the Medium story inside a web-browser software component which is linked into the Facebook app.

I imagine that when viewed through a web-browser, Javascript in the page tracks the reader’s interaction with the page so that it can send a read event for the story to the Medium server (via a background AJAX update) once it’s reasonable to consider the story read by that user.

On the other hand, when a reader views a story in one of Medium’s native mobile apps (for iOS or Android), native code determines when the story has been read and sends an event back to the Medium server to increment the read count. As far as I know, the API for reporting read events to the Medium server is not publicly documented.

From playing with the Toutiao app, it seems that even though most of the content is in Chinese, it is able to pull and present content from the open web using a web-browser-like interface. Toutiao also seems to be translating some or all of the content into Chinese. This might be happening on their servers, or in the app.

My hypothesis for what is happening is that the Toutiao app is using a non-standard web-browser to view the pages, and that this web-browser is not sending read events back to the Medium server.

As Toutiao continues to grow, the result could be that increasing amounts of the best content on Medium, content with high reads-per-view ratios to start with, will be viewed through this app. This will then drive down the reads-per-view ratios on Medium, resulting in Medium not auto-promoting high quality stories.

Medium does currently count views from RSS readers, Facebook Instant Articles, and Google Accelerated Mobile Pages (AMP), but, presumably, because these viewing mechanisms are not able to reliably report reads, factoring the views into the reads-per-view ratio would artificially suppress that ratio. So medium does not include these views in the main view count.

However, I suspect that Medium is counting HTML GET requests for stories coming from nativeapp.toutiao.com as regular views, even though the app is not reporting the corresponding read events. This is resulting in Medium pages that are indexed by the Toutiao app getting suppressed reads-per-view ratios, and presumably getting less visibility on Medium.

If this is all true, and if other people are experiencing this on other stories, then I hope that Medium can soon make a change to the stats mechanism so that views from Toutiao are not counted towards the reads-per-view ratio.


I received a report from a writer who had a story that got 23K views from the Toutiao native app in a single day. After that, the story got bursts of about 1K views from Toutiao approximately once a month. He eventually deleted the story because it was messing with his stats too much. Medium customer support has also told me that others have now reported experiencing this problem.

I am concerned about the security of the API for incrementing the read count on stories. If someone found a way to artificially increment the read count on stories, then they could seriously and unfairly game Medium. I hope that read count increment is always predicated on some form of authentication.

If you appreciated this story, then please give it some claps 👏. If you would like to read more from me, then follow me here on Medium. I would love to read further technical insights or reports from others who have experienced anything similar. Please respond below.

More by Dr Duncan Riach

Topics of interest

More Related Stories