{"id":1772,"date":"2020-04-12T10:34:48","date_gmt":"2020-04-12T09:34:48","guid":{"rendered":"http:\/\/www.jamiemaguire.net\/?p=1772"},"modified":"2020-04-12T10:38:29","modified_gmt":"2020-04-12T09:38:29","slug":"visualising-twitter-labs-filtered-stream-data-with-the-social-opinion-web-app","status":"publish","type":"post","link":"https:\/\/jamiemaguire.net\/index.php\/2020\/04\/12\/visualising-twitter-labs-filtered-stream-data-with-the-social-opinion-web-app\/","title":{"rendered":"Visualising Twitter Labs Filtered Stream Data with the Social Opinion Web App"},"content":{"rendered":"<p style=\"font-weight: 400;\">In my\u00a0<a href=\"http:\/\/www.jamiemaguire.net\/index.php\/2020\/04\/05\/connecting-to-the-twitter-labs-filtered-stream-with-c\/\">last post, I shared how the Social Opinion API<\/a>\u00a0can be used to extra real-time data from the Twitter Labs Filtered Stream firehose.<\/p>\n<p style=\"font-weight: 400;\">With less than 5 lines of code, you can process over 1,200 Tweets every 5 minutes and surface a whole range of actionable insights.<\/p>\n<p style=\"font-weight: 400;\">In this blog post, I follow on from the last and share some screenshots of dashboards and visualisations I\u2019ve built using ASP.NET Core that let you:<\/p>\n<ul>\n<li style=\"font-weight: 400;\">Create Rules (to extract Tweets with powerful querying operators)<\/li>\n<li style=\"font-weight: 400;\">View existing Rules you have created<\/li>\n<li style=\"font-weight: 400;\">See at-a-glance, an overview of all key metrics<\/li>\n<li style=\"font-weight: 400;\">Drill down into the detail of the data being processed by the Social Opinion API<\/li>\n<\/ul>\n<p style=\"font-weight: 400;\">Let\u2019s look at these screens now.<\/p>\n<h3>Creating a new Rule<\/h3>\n<p style=\"font-weight: 400;\">This screen lets you create up to 10 Rules. You give your Rule a tag (description) and input a Rule value (the data to find):<\/p>\n<h2><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1773\" src=\"http:\/\/www.jamiemaguire.net\/wp-content\/uploads\/2020\/04\/image001-1.jpg\" alt=\"\" width=\"753\" height=\"354\" srcset=\"https:\/\/jamiemaguire.net\/wp-content\/uploads\/2020\/04\/image001-1.jpg 753w, https:\/\/jamiemaguire.net\/wp-content\/uploads\/2020\/04\/image001-1-750x353.jpg 750w\" sizes=\"auto, (max-width: 753px) 100vw, 753px\" \/><\/h2>\n<h2>Viewing Existing Rules<\/h2>\n<p style=\"font-weight: 400;\">You can view all your previously create Rules in this screen. Clicking the Details link takes you to a Dashboard that contains data specific to that Rule.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1774\" src=\"http:\/\/www.jamiemaguire.net\/wp-content\/uploads\/2020\/04\/image002-1.jpg\" alt=\"\" width=\"753\" height=\"354\" srcset=\"https:\/\/jamiemaguire.net\/wp-content\/uploads\/2020\/04\/image002-1.jpg 753w, https:\/\/jamiemaguire.net\/wp-content\/uploads\/2020\/04\/image002-1-750x353.jpg 750w\" sizes=\"auto, (max-width: 753px) 100vw, 753px\" \/><\/p>\n<h2>Settings<\/h2>\n<p style=\"font-weight: 400;\">This screen lets you amend the various settings that are used by the Social Opinion API service. It also contains some diagnostics and error logging information. You can also enable or disable the service here:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1775\" src=\"http:\/\/www.jamiemaguire.net\/wp-content\/uploads\/2020\/04\/image003-1.jpg\" alt=\"\" width=\"753\" height=\"354\" srcset=\"https:\/\/jamiemaguire.net\/wp-content\/uploads\/2020\/04\/image003-1.jpg 753w, https:\/\/jamiemaguire.net\/wp-content\/uploads\/2020\/04\/image003-1-750x353.jpg 750w\" sizes=\"auto, (max-width: 753px) 100vw, 753px\" \/><\/p>\n<h2>Dashboard<\/h2>\n<p style=\"font-weight: 400;\">The main dashboard screen consists of several sections contain various pieces of information related to data your Rules process.<\/p>\n<h2>Overview<\/h2>\n<p style=\"font-weight: 400;\">The Overview section contains some basic information.\u00a0 Here you get a quick view of:<\/p>\n<ul>\n<li style=\"font-weight: 400;\">The number of Rules you have setup<\/li>\n<li style=\"font-weight: 400;\">The number of Tweets that have been processed by all Rules<\/li>\n<li style=\"font-weight: 400;\">The user id of the person that sent the most Tweets (and the number of Tweets)<\/li>\n<li style=\"font-weight: 400;\">Tweets that received the Most Likes, Comments and Retweets<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1776\" src=\"http:\/\/www.jamiemaguire.net\/wp-content\/uploads\/2020\/04\/image004.jpg\" alt=\"\" width=\"752\" height=\"319\" srcset=\"https:\/\/jamiemaguire.net\/wp-content\/uploads\/2020\/04\/image004.jpg 752w, https:\/\/jamiemaguire.net\/wp-content\/uploads\/2020\/04\/image004-750x318.jpg 750w\" sizes=\"auto, (max-width: 752px) 100vw, 752px\" \/><\/p>\n<p style=\"font-weight: 400;\">Future updates will detail the metrics for each Rule.<\/p>\n<h2>Highlights<\/h2>\n<p style=\"font-weight: 400;\">This collection of tiles gives you a quick insight into the main data-points being collected by the Social Opinion API.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1777\" src=\"http:\/\/www.jamiemaguire.net\/wp-content\/uploads\/2020\/04\/image005-1.jpg\" alt=\"\" width=\"752\" height=\"304\" srcset=\"https:\/\/jamiemaguire.net\/wp-content\/uploads\/2020\/04\/image005-1.jpg 752w, https:\/\/jamiemaguire.net\/wp-content\/uploads\/2020\/04\/image005-1-750x303.jpg 750w\" sizes=\"auto, (max-width: 752px) 100vw, 752px\" \/><\/p>\n<p style=\"font-weight: 400;\">In the above you can see:<\/p>\n<ul>\n<li style=\"font-weight: 400;\">most discussed person, place, organisation and product<\/li>\n<li style=\"font-weight: 400;\">number of Tweets processed<\/li>\n<li style=\"font-weight: 400;\">number of Rules setup<\/li>\n<li style=\"font-weight: 400;\">number of\u00a0<a href=\"https:\/\/developer.twitter.com\/en\/docs\/labs\/overview\/whats-new\/annotations\">Context Annotations<\/a>\u00a0identified<\/li>\n<li style=\"font-weight: 400;\">number of\u00a0<a href=\"https:\/\/developer.twitter.com\/en\/docs\/labs\/overview\/whats-new\/annotations\">Entity Annotations<\/a>\u00a0identified<\/li>\n<li style=\"font-weight: 400;\">number of Domains identified<\/li>\n<li style=\"font-weight: 400;\">number of Entities identified<\/li>\n<\/ul>\n<p style=\"font-weight: 400;\">You can view further details by clicking on the View hyperlinks. At the time of writing about 60% of the details screens are built.<\/p>\n<h3>Highlights \u2013 Domains Identified<\/h3>\n<p style=\"font-weight: 400;\">Clicking on the tile Domains Identified takes you to the following screen.\u00a0 Here you can see all the main topics and \u201cdomains\u201d being discussed in processed Tweets:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1778\" src=\"http:\/\/www.jamiemaguire.net\/wp-content\/uploads\/2020\/04\/image006-1.jpg\" alt=\"\" width=\"753\" height=\"354\" srcset=\"https:\/\/jamiemaguire.net\/wp-content\/uploads\/2020\/04\/image006-1.jpg 753w, https:\/\/jamiemaguire.net\/wp-content\/uploads\/2020\/04\/image006-1-750x353.jpg 750w\" sizes=\"auto, (max-width: 753px) 100vw, 753px\" \/><\/p>\n<p style=\"font-weight: 400;\">Future functionality will let you:<\/p>\n<ul>\n<li style=\"font-weight: 400;\">View Tweets by Domain<\/li>\n<li style=\"font-weight: 400;\">Export users and associated details per domain<\/li>\n<\/ul>\n<p style=\"font-weight: 400;\">The Social Opinion API already contains functionality that lets you push user account details to the Twitter Ads set of APIs.\u00a0 Using this new functionality lets you hyper-target users per domain.<\/p>\n<h3>Highlights \u2013 Entities Identified<\/h3>\n<p style=\"font-weight: 400;\">This screen lets you visualise the main entities or things being discussed in your processed Tweets. For example, here you can see people have been discussing the 2020 NFL Draft and 1984 by George Orwell:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1779\" src=\"http:\/\/www.jamiemaguire.net\/wp-content\/uploads\/2020\/04\/image007-1.jpg\" alt=\"\" width=\"753\" height=\"354\" srcset=\"https:\/\/jamiemaguire.net\/wp-content\/uploads\/2020\/04\/image007-1.jpg 753w, https:\/\/jamiemaguire.net\/wp-content\/uploads\/2020\/04\/image007-1-750x353.jpg 750w\" sizes=\"auto, (max-width: 753px) 100vw, 753px\" \/><\/p>\n<p style=\"font-weight: 400;\">Future functionality on this screen will let you view users and Tweets per Entity.\u00a0 Functionality already exists to let you export users per Entity. This then lets you, for example, target users with ad\/creative based on the entity being discussed.<\/p>\n<p style=\"font-weight: 400;\">Just-in-Time (JiT) advertising!<\/p>\n<h2>Top 10 Person, Places, Organisations and Products being Discussed<\/h2>\n<p style=\"font-weight: 400;\">In the tables, you can see more details on the most popular Person, Place, Organisation, and Products being discussed:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1780\" src=\"http:\/\/www.jamiemaguire.net\/wp-content\/uploads\/2020\/04\/image008-1.jpg\" alt=\"\" width=\"752\" height=\"360\" srcset=\"https:\/\/jamiemaguire.net\/wp-content\/uploads\/2020\/04\/image008-1.jpg 752w, https:\/\/jamiemaguire.net\/wp-content\/uploads\/2020\/04\/image008-1-750x359.jpg 750w\" sizes=\"auto, (max-width: 752px) 100vw, 752px\" \/><\/p>\n<h2>Most Discussed Domains and Entities<\/h2>\n<p style=\"font-weight: 400;\">These tables contain the most discussed Domains and Entities. You can see the most discussed domain is \u201congoing news stories like Brexit.\u00a0 This makes sense as the rule I have set-up is set to track \u201c#COVID19\u201d.<\/p>\n<p style=\"font-weight: 400;\">There are some errors in the Entities section, and I\u2019ll feed this back to the Twitter DevRel Team to see what\u2019s going on with those Entities.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1781\" src=\"http:\/\/www.jamiemaguire.net\/wp-content\/uploads\/2020\/04\/image009-1.jpg\" alt=\"\" width=\"752\" height=\"248\" srcset=\"https:\/\/jamiemaguire.net\/wp-content\/uploads\/2020\/04\/image009-1.jpg 752w, https:\/\/jamiemaguire.net\/wp-content\/uploads\/2020\/04\/image009-1-750x247.jpg 750w\" sizes=\"auto, (max-width: 752px) 100vw, 752px\" \/><\/p>\n<h2>Summary<\/h2>\n<p style=\"font-weight: 400;\">That brings this post to an end.<\/p>\n<p style=\"font-weight: 400;\">With the Social Opinion API and dashboards, you can build audiences on-demand, identify what\u2019s being discussed, where it&#8217;s being discussed and more.\u00a0 With the help of Just-in-Time Audiences, you can target the right person at the right time with the right message.<\/p>\n<p style=\"font-weight: 400;\">I&#8217;ll be using Social Opinion JiT Audience&#8217;s to raise awareness of the Instagram Graph API developer eBook I wrote a few months ago.<\/p>\n<p>I&#8217;ll create a series of Rules that extract and process Tweets related to developer topics.\u00a0 I&#8217;ll then use the internal Social Opinion API to push the identified user id&#8217;s to the Twitter Ads API servers and allocate an ad-spend budget.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.jamiemaguire.net\/wp-content\/uploads\/2020\/01\/image001-1-816x329.png\" \/><\/p>\n<p style=\"font-weight: 400;\">This free 50+ page eBook shows developers how to connect to the Instagram Graph API with C#, then using Microsoft AI to surface additional insights using text analytics and computer vision.<\/p>\n<p>The next steps for the Social Opinion Web App are to complete the remaining dashboards. Other ideas I have are around creating a Bot Framework Skill that lets you interact with the data being processed and Stripe integration.<\/p>\n<ul>\n<li style=\"font-weight: 400;\">Got a question?<\/li>\n<li style=\"font-weight: 400;\">Want to know more?<\/li>\n<li style=\"font-weight: 400;\">Interested in this web application?<\/li>\n<\/ul>\n<p style=\"font-weight: 400;\">Drop me a message below or reach out on social.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In my\u00a0last post, I shared how the Social Opinion API\u00a0can be used to extra real-time data from the Twitter Labs Filtered Stream firehose. With less than 5 lines of code, you can process over 1,200&#8230;<\/p>\n","protected":false},"author":1,"featured_media":1789,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[36,37,14,59,58,6,57,35],"tags":[],"class_list":["post-1772","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ads-api","category-adtech","category-analytics-and-big-data","category-asp-net-core","category-bot-framework","category-c","category-mvp","category-twitter"],"_links":{"self":[{"href":"https:\/\/jamiemaguire.net\/index.php\/wp-json\/wp\/v2\/posts\/1772","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jamiemaguire.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jamiemaguire.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jamiemaguire.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jamiemaguire.net\/index.php\/wp-json\/wp\/v2\/comments?post=1772"}],"version-history":[{"count":0,"href":"https:\/\/jamiemaguire.net\/index.php\/wp-json\/wp\/v2\/posts\/1772\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jamiemaguire.net\/index.php\/wp-json\/wp\/v2\/media\/1789"}],"wp:attachment":[{"href":"https:\/\/jamiemaguire.net\/index.php\/wp-json\/wp\/v2\/media?parent=1772"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jamiemaguire.net\/index.php\/wp-json\/wp\/v2\/categories?post=1772"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jamiemaguire.net\/index.php\/wp-json\/wp\/v2\/tags?post=1772"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}