Trump's Tweets Aren't Getting The Same Television News Attention They Did In 2017

President Trump has eschewed many of the traditional presidential communications norms to speak directly to the world through his @realDonaldTrump Twitter account. When television news discusses one of his tweets, they typically show his Twitter handle "@realDonaldTrump" onscreen. As part of the Visual Global Entity Graph 2.0, Google's Cloud Video API was used to OCR every frame of ABC, CBS and NBC's evening news broadcasts back a decade, making it possible to search the totality of their onscreen text for any mention of "@realDonaldTrump".

The first appearance of his Twitter handle on the three networks were two seconds of airtime on NBC's evening news on July 6, 2015. In all, since that day, Trump's tweets have appeared a total of 1,284 seconds, with 561 seconds on ABC, 395 seconds on NBC and 328 seconds on CBS, as seen in the chart below.

Looking over time, the timeline below shows the total number of airtime seconds per day by station that mentioned his Twitter handle.

The timeline below shows the same results, but using a 14 day rolling average to smooth the results and make the underlying trends more visible.

The three networks are poorly correlated, with ABC-CBS having r=0.02, ABC-NBC having r=0.13 and CBS-NBC having r=0.01. In short, all three networks have covered his tweets, but seem to have focused on them at different times, rather than moving in lockstep.

Taken together, the timeline below shows a 14 day rolling window average of the combined tweet airtime of the three networks. Here Trump's tweets can be seen to have attracted their largest airtime in early 2016 as he surged to the media forefront, then leap through 2017 during his first year in office.

However, the evening news media's interest in his tweets seems to have leveled off within a year, with his tweets receiving far less attention since February 2018. While there have been bursts of coverage here and there since, it is clear that his tweets are not getting nearly the same evening news attention as they once did.

While these results cover only evening news broadcasts and are likely incomplete due to OCR error, missing programs and presentation of tweets that did not include the "@realDonaldTrump" handle, they nevertheless paint a fascinating portrait of how at least one microcosm of the media ecosystem has gradually shifted away from letting Trump's tweets do the talking.

TECHNICAL DETAILS

The entire analysis above was conducted with a single SQL query in BigQuery. While the query below is lengthy, it is actually just a series of UNION ALL's of a set of simple queries. The first three tally up the number of records by day (converting from UTC to PST and excluding weekends since not all three networks run weekend evening news broadcasts) that contained "realdonaldtrump" in the onscreen OCR text, while the next three tally the total number of airtime processed for that day. Having the total airtime counts makes it possible to identify whether an outlier day was due to a monitoring outage on that day, etc. The query takes just 4.5 seconds and consumes 1.4GB.

select DATE, SUM(KGO) KGO, SUM(KPIX) KPIX, SUM(KNTV) KNTV, SUM(KGO)+SUM(KPIX)+SUM(KNTV) Total, SUM(KGOAll) KGOAll, SUM(KPIXAll) KPIXAll, SUM(KNTVAll) KNTVAll, SUM(KGOAll)+SUM(KPIXAll)+SUM(KNTVAll) TotalAll from (
 (SELECT DATE(date, "America/Los_Angeles") DATE, count(1) KGO, 0 KPIX, 0 KNTV, 0 KGOAll, 0 KPIXAll, 0 KNTVAll FROM `gdelt-bq.gdeltv2.vgegv2_iatv` WHERE station='KGO' and LOWER(OCRText) like '%realdonaldtrump%' and EXTRACT(DAYOFWEEK from DATE(date, "America/Los_Angeles")) >= 2 and EXTRACT(DAYOFWEEK from DATE(date, "America/Los_Angeles")) <= 6 group by DATE)
UNION ALL
 (SELECT DATE(date, "America/Los_Angeles") DATE, 0 KGO, count(1) KPIX, 0 KNTV, 0 KGOAll, 0 KPIXAll, 0 KNTVAll FROM `gdelt-bq.gdeltv2.vgegv2_iatv` WHERE station='KPIX' and LOWER(OCRText) like '%realdonaldtrump%' and EXTRACT(DAYOFWEEK from DATE(date, "America/Los_Angeles")) >= 2 and EXTRACT(DAYOFWEEK from DATE(date, "America/Los_Angeles")) <= 6 group by DATE)
UNION ALL
 (SELECT DATE(date, "America/Los_Angeles") DATE, 0 KGO, 0 KPIX, count(1) KNTV, 0 KGOAll, 0 KPIXAll, 0 KNTVAll FROM `gdelt-bq.gdeltv2.vgegv2_iatv` WHERE station='KNTV' and LOWER(OCRText) like '%realdonaldtrump%' and EXTRACT(DAYOFWEEK from DATE(date, "America/Los_Angeles")) >= 2 and EXTRACT(DAYOFWEEK from DATE(date, "America/Los_Angeles")) <= 6 group by DATE)
UNION ALL
 (SELECT DATE(date, "America/Los_Angeles") DATE, 0 KGO, 0 KPIX, 0 KNTV, count(1) KGOAll, 0 KPIXAll, 0 KNTVAll FROM `gdelt-bq.gdeltv2.vgegv2_iatv` WHERE station='KGO' and EXTRACT(DAYOFWEEK from DATE(date, "America/Los_Angeles")) >= 2 and EXTRACT(DAYOFWEEK from DATE(date, "America/Los_Angeles")) <= 6 group by DATE)
UNION ALL
 (SELECT DATE(date, "America/Los_Angeles") DATE, 0 KGO, 0 KPIX, 0 KNTV, 0 KGOAll, count(1) KPIXAll, 0 KNTVAll FROM `gdelt-bq.gdeltv2.vgegv2_iatv` WHERE station='KPIX' and EXTRACT(DAYOFWEEK from DATE(date, "America/Los_Angeles")) >= 2 and EXTRACT(DAYOFWEEK from DATE(date, "America/Los_Angeles")) <= 6 group by DATE)
UNION ALL
 (SELECT DATE(date, "America/Los_Angeles") DATE, 0 KGO, 0 KPIX, 0 KNTV, 0 KGOAll, 0 KPIXAll, count(1) KNTVAll FROM `gdelt-bq.gdeltv2.vgegv2_iatv` WHERE station='KNTV' and EXTRACT(DAYOFWEEK from DATE(date, "America/Los_Angeles")) >= 2 and EXTRACT(DAYOFWEEK from DATE(date, "America/Los_Angeles")) <= 6 group by DATE)
) GROUP BY DATE order by DATE asc