Intro

#U2Request took place on April 14th, 2015. U2 fans from all over the world united with the goal to have their voices heard,
voting for songs they would like to see played live on the new Innocence + Experience Tour, starting on May 14th 2015 in Vancouver.

Fans from around the world sent over 50K tweets to #U2Request,
and 39K of tweets and retweets on April 14th from midnight to 23:59:59 their local time.

These are the results from this massive effort

Top100 Requests

The Top requested U2 songs

TW FB Song
359264Acrobat
128925A Sort Of Homecoming
119532Exit
106214So Cruel
82319Please
64812Lemon
64318Who's Gonna Ride Your Wild Horses
61018Gone
60324Heartland
60111Kite
59422Bad
58813Mofo
56216Running To Stand Still
54614Red Hill Mining Town
49613One Tree Hill
47116Love Is Blindness
46610Two Hearts Beat As One
4607A Celebration
4595Lady With The Spinning Head
4476Original Of The Species
4375Seconds
4236Numb
42213Gloria
4108Electrical Storm
39814Drowning Man
39012Stay
3777Dirty Day
3657God Part II
3651540
3608In God's Country
3589Ultraviolet
3546Spanish Eyes
3513Fire
33510Hawkmoon 269
3239Like A Song
3177Tomorrow
31619Love Comes Tumbling
3029The Ground Beneath Her Feet
30110Do You Feel Loved
2945Invisible
2914The Crystal Ballroom
2866Out Of Control
2826Zooropa
27114Wire
2718Last Night On Earth
2673When I Look At The World
2674Surrender
2543One
2516Promenade
251711 O'clock Tick Tock
2458Discotheque
2414Window In The Skies
2419A Day Without Me
2372Miracle Drug
2237Mercy
2205Luminous Times
2148Van Diemen's Land
2025A Man and A Woman
2014The Wanderer
1941Ordinary Love
1893The Electric Co
1844The Fly
1836Staring At The Sun
1793Sweetest Thing
1773Twilight
1758If God Will Send His Angels
1725The Unforgettable Fire
1716Silver and Gold
1680Indian Summer Sky
1672Crumbs From Your Table
1644Bullet The Blue Sky
1628All I Want Is You
1617October
1615Another Time, Another Place
1555Rejoice
1515Love Rescue Me
1517If You Wear That Velvet Dress
1491Hallelujah (Here she Comes)
1486Tryin' to Throw Your Arms Around the World
1487Party Girl
1443Pride
1442An Cat Dubh
1366The First Time
1332I Fall Down
1323Zoo Station
1310Salome
1304North And South Of The River
1283Wake Up Dead Man
1243Stories For Boys
1232North Star
1237Babyface
1225Daddy's Gonna Pay For Your Crashed Car
1205Fez - Being Born
1192Some Days Are Better Than Others
1173Yahweh
1142Every Breaking Wave
1131Iris
1090Sometimes You Can't Make it On Your Own
1056Trip Through Your Wires
1042Stand Up Comedy

Top25 Users

The fans with the most tweets

1177moreno75
1105U2USAFanfeed
913D_Darroch
908R0mdak
834vanycf
746TheeEdge
687U2UKFanfeed
653snorkelgirl44
585Leahu2
563Simosol69
558U2lyric
540gotsoul1209
521Noodles105
512LittleHoundales
385itsolnlyU2
383MountTemple76
378hchoo
361EileenCummings9
341PattiU2
323padawanbeck84
314bloom74800
307U2Kouklitsa
295bonogrl4loveco1
290U2ismylife4ever
283FayuOfficial

Tweet Map

A small sample of requests on the map

Word Cloud

words most mentioned on #U2Request

Info

Gathering, Processing and counting all the tweets for #U2Request was no easy task, especially since there is a lot of room for error.
This is how I approached this project.

DISCLAIMER: Some of the details below may be too technical, and therefore boring,
but I wanted to be 100% clear on how this was all achieved, and leave no room for misunderstandings, or dispute of results.

Gathering the tweets

There are many different ways to gather a stream of tweets.
You can use Search, a 3rd party tool, you can write a client to talk to the REST API, or the Streaming API.
Talking to the Twitter API is obviously the most efficient way to get our stats, as we can then customize the data to fit our needs.
I used the Streaming API for real time analysis of the data and generation of the word cloud, and the REST API for post-event counting of requests.
To achieve all this, I wrote a client (in Python) that listens on the Streaming API of Twitter in real time and records all tweets with the #U2Request hashtag.
I then repeated the same with the REST API.
I deployed the client on an Amazon Web Services (AWS) instance here in Dublin. (the same place where the Word Cloud lived).

Processing the tweets

Fans were encouraged to tweet their requests on April 14th, between midnight and 23:59:59, their local time, to keep things simple.

    The challenges here are:
  • This is not a 24 hour period that we need to count, but a 24 hour period per timezone.
  • What happens if someone tweets a request outside of their timezone?
    How will I know whether the tweet is within the allowed time frame? It might be valid if tweeted from Australia, but not if tweeted from Greece.
  • What if someone tweets within their local timezone say in New York, but I retweet from Dublin? Will my retweet still count?
  • How do I know which tweets are valid and should be counted, and which ones were sent outside of the agreed times, and keep the results accurate?
This is another example where using Twitter Search or third party tools would not work for our purposes. What I did was to use Coordinated Universal Time (UTC) as the standard timezone. Then, each timezone on earth can be from UTC-12 to UTC+14. Dublin is currently UTC+1 for example. More info here
With this in mind, I processed every single tweet in UTC, and depending on the UTC offset of their country of origin, and came up with the following formula, that works for all timezones:

START_TIME_UTC + UTC_OFFSET <= TIME_OF_TWEET_IN_UTC < END_TIME_UTC + UTC_OFFSET

Producing the stats

All requests were matched against a database I built with all released and unreleased U2 tracks to date.
Some of the tweets did not follow the guidelines, and contained comments or lyrics other than the song name, or even typos, so they could not match the songs in the database. I sanitized those tweets with a series of scripts that performed regular expression filtering, to help make as many tweets possible count, rather than discard them.

Notes

  • The word cloud may not match exactly the final report. This is normal. That is because a word cloud counts the frequency some words are mentioned, not song titles. So for example, the word "love" on the word cloud, could be referring to "Love Is Blindness" or "Everlasting Love" or "Hold On To Love", "One" might be also getting points from "One Three Hill" etc.
    Moreover, I enabled a spam filter on the word cloud, since it was being updated in real time, in order not to get irrelevant words to #U2Request. Some words would have been caught by the filter, "Mofo" being a good example. Which explains why "Mofo" is not part of the word cloud.

  • Twitter gives you the option to send your geo location along with your tweet. Some users had that feature enabled. I used that data to generate the Tweet Map above, which shows a small sample of requests, and where they came from.
    I have intentionally kept the data anonymous, all you can see is a geo location, and the song that was requested from that location.

  • The event's Facebook page also had around 1K of requests. We will be adding those to the final report within the next few days, but we do not anticipate that they will shift the results, due to their low volume.
    Update: FB requests added.