The document provides tips for using spreadsheets to improve digital PR workflows. It discusses using formulas like COUNTIF, VLOOKUP, and TRIM to extract useful information from data. Specific tips include building a 200+ contact list for a new topic in 10 minutes using BuzzSumo data and formulas. Another tip is to keep a "little black book" of past successful campaigns for inspiration. The document also explains how to find all instances of content syndication and how to scrape websites to extract things like journalist names programmatically.
2. Hello! I’m…
bad at Photoshop
My name’s Tom Chivers.
I’ve worked in Digital Marketing for six years,
both at agency and in-house.
I’ve created some amazing Digital PR campaigns,
and a few woefully misunderstood ones.
I’m currently working as freelance Digital PR,
so feel free to get in touch with me afterwards if
you’re in the market for that kind of thing...
3. I absolutely love
Digital PR hacks
Why?
Because if you get good at them you can turn all
your hour-long jobs into a ten minute ones.
Leaving you more time to do the things you
actually WANT to be doing.
4. But what fancy expensive tools
do I need to buy
to make my life so much easier,
I hear you ask?
5.
6. Spreadsheets
are the bees knees
They’re free and if you know what you’re doing,
they’re damn effective.
Yes, employing tools like BuzzSumo can be a huge
help when you’re doing Digital PR.
But a lot of people overlook the massive benefits
that can come from learning the time saving tips and
tricks that come from being a spreadsheet nerd.
All you need is a spreadsheet and a dream.
12. Spreadsheets are incredibly useful,
but they take practice to master
Rome wasn’t built in a day,
and your ability to do VLOOKUPS
blindfolded with one arm tied behind your back
doesn’t come to fruition overnight.
They can be overwhelming at first,
but sometimes all you need
is to be shown a few examples
to take away and learn.
13. That’s what this talk is all about.
A few practical exercises that
you can go away and try
yourself!
14. 01 - The
must-know
formulas
02 - Building a
200+ email list in
10 minutes
04 - Finding
EVERY news
syndication
05 - How to
scrape a news
website
03 - Your little
black book of
links
06 - Question
time & general
chit chat
15. Learning the tricks of the trade for becoming a
spreadsheets whizz and all around nerd.
The must-know
formulas
17. Everyday formulas
=COUNTIF
Finds data in a table, based on what you want.
If you’re working with big data sources, this is your perfect solution rather than combing through it manually.
=VLOOKUP
Gets rid of errant spaces.
If you’re trying to make a formula work, sometimes a space that you can’t see can be your undoing.
=TRIM
Counts the number of times something appears.
Great for finding out how many journalists write about a single topic, which I’ll go into a little bit later.
18. Everyday formulas
=CONCATENATE
The opposite of concatenate.
Split up a sentences into separate cells using spaces, commas, or whatever your heart desires.
=SPLIT
Replace something in a cell with whatever you like.
Can be used to change a massive bunch of journalist urls into just their names.
=SUBSTITUTE
Combines two separate cells together.
Want to combine a journalist’s first and last name from an export you’ve pulled? Use this.
20. Every once in a while formulas
=LEN
Imports data from another spreadsheet.
Tremendous for keeping internal data secret from a client while showing them results.
=IMPORTRANGE
Pulls in data horizontally.
If you’re pulling a big set of data and you don’t want it to overlap anything, this will make sure it pulls across.
=TRANSPOSE
Tells you how many characters are in a cell.
Helpful if you’re trying to weed out longer sentences using filters or even write tweets in under 280 characters.
21. Every once in a while formulas
=PROPER
If your formula has an error, this will write something specific.
If you get an #N/A that you can’t resolve, you can get it to write whatever you want in its place.
=IFERROR
Extract information from a website using a query.
Want to extract prices from a website or even a journalist’s name from an article? This is the formula for you.
=IMPORTXML
Capitalises the first word of every sentence.
It’s Really Horrible For People Who Love Sentence Case… but quite good for journalist names.
23. Pretty neat formulas
=GOOGLEFINANCE
Translates sentences to your chosen language.
Maybe not a good idea if you want to translate your outreach emails, but good for a few phrases here and there.
=GOOGLETRANSLATE
Creates custom graphs based on your data.
I’ll admit to never using this in my life, but the bar charts look cool at least.
=SPARKLINE
Pulls in up-to-date financial data.
Useful if you fancy yourself as Gordon Gecko - can be used to check currency conversions or the stock market.
24. Utilising spreadsheets to create a bulletproof
seeding list for a topic you know nothing about.
Building a 200+
email list in 10
minutes
25. Enter
BuzzSumo
BuzzSumo is an absolutely fantastic tool.
And I’m not just saying that because they
invited me to host a webinar.
But we can make it work even hard for you
than it already does…
26. How?
Say you’re building a seeding list of
journalists on a topic that’s completely alien
to you.
You can find a single article here and there,
but how do you find out which journalists
write about that topic the most?
You guessed it, BuzzSumo.
27. How, though?
BuzzSumo doesn’t have this information
within its dashboard, so you have to do a little
digging.
With some simple excel wizardry, you can
turn a data heavy export into something a
little less daunting.
29. Into this list of journalists
who write about that topic the most.
In 8 steps.
30. Step 1: Search the topic.
Go to BuzzSumo, type in your topic and click export as CSV.
This will send a file to your email.
31. Step 2: Add a new sheet to your data.
Open up that CSV in sheets and add a separate sheet.
32. Step 3: Pull through all the unique author names.
In your new sheet, write the formula =UNIQUE
and the highlight column M in the previous sheet where that big list of names lives.
33. Step 4: Count the number of articles that journalist has written.
Next to your first newly populated name, write the formula =COUNTIF
highlight the previous M column like you did before, put a comma, and then go back to the new
sheet and write A2… or whatever cell the name is in.
34. Step 5: Pull out the publication the journalist writes for.
Hop back into your sheet with all the data in and insert a new column to the right of author name,
then write the following: =REGEXREPLACE(B2,"http://|https://|www.|blog.|/.*|?.*|#.*","")
This extracts the domain from the article URL.
Don’t worry, I’m uploading these slides to slideshare so you can download them for reference!
35. Step 6: Find the publication linked to the journalist.
Hop back into your new sheet and get ready to do a VLOOKUP!
Basically, a vlookup has 3 questions you need to answer:
What you’re looking for, where you’re looking for it and in what column will you find it in.
36. Step 6 continued:
So basically,
1. You’re looking for the author’s name in A2 (which is Sam Carney)
2. You’re looking for it in columns M:N in the 1st sheet (where the author’s name and domain appear)
3. You’re looking for it in 2 (the second column)
37. Step 7: Remove all the formulas from your sheet.
To find out who the best journalists are, you’re going to use a filter, which isn’t going to work with the
formulas still there.
Just highlight columns A-C, click copy and then paste as values.
38. Step 8: Find out who the best journalists are for that topic.
Put a filter on your data and then sort Count by Z-A.
You’ve now got a ready to go list of the journalists who write about that topic the most!
39. Discover how journalists aren’t the only thing
you should keep in your little black book.
Your little black
book of links
40. Lots of PRs talk
about their
‘little black book’
When they do, they’re referring to their
database of journalists. I’m here to tell you
that you want to start building a database of
campaigns.
Because if every time you spot a campaign
and add it to your database, it’ll make you a
better PR.
41. But Why?
Not convinced? Here’s some benefits:
● It make your ideation brainstorms easier,
being able to use a wealth of past
campaigns as inspiration.
● You’ll be able to see what types of
campaign work best, especially when it
comes to link potential.
● You can use those campaign links to
discover new journalists who don’t mind
covering PR content.
42. What to include?
● Campaign title - URLs don’t often give
context.
● Campaign domain - if you’re stalking a
specific competitor, you can filter all their
campaigns here.
● Campaign type - dream job, index, most
searched?
● Company niche - what niche do the
company sit in?
● Campaign niche - companies will often do
campaigns across several niches.
● Links - how many links did this campaign
get?
44. You can then play around with the filters to your heart’s content.
Say you want to see what the best dream job campaigns are:
all you need to do is filter by campaign type and sort by most links.
46. The Grapevine
From the experts!
The Weekly PR Digital PR Ex.
Iona Townsley’s monthly
newsletter spells out
over 100 campaigns a
month in every niche!
Bethanie Durham’s
weekly newsletter posts
a mixture of campaigns,
insights & resources!
The Digital PR Examples’
Twitter account posts
all the best campaigns
that it can find!
47. Great, you’ve been covered!
Now how do you find all those sweet, sweet
syndications?
Finding EVERY
news syndication
48. What’s a
syndication?
Content syndication is the practice of online
publishers republishing content across a
range of websites that they own.
Reach PLC, Newsquest & JPI Media are 3
examples of publishers that regularly do this.
It’s an absolute dream for a Digital PR who
just saw their one piece of coverage turn into
27 individual pieces.
I got links… they’re multiplyin’
49. So what’s the
problem?
Because this content will most likely have a
canonical tag, that means Google (as well as
most mentions monitoring software) will only
typically display one piece of coverage: the
original.
So how do you find those other missing 26
pieces without trawling through every news
website?
I got links… they’re multiplyin’
50. Syndicated coverage tends
to have one similarity
Look at these 3 links from a piece of syndicated coverage from Newsquest:
● https://www.gazette-news.co.uk/news/national/uk-today/20156433.loyalty
-cards-best-saving-shoppers-money/
● https://www.dailyecho.co.uk/news/national/uk-today/20156433.loyalty-car
ds-best-saving-shoppers-money/
● https://www.dorsetecho.co.uk/news/national/uk-today/20156433.loyalty-c
ards-best-saving-shoppers-money/
What’s the thing they all have in common?
51. The url path following the
domain is all the same
Every link shares the same URL path to the letter:
● /news/national/uk-today/20156433.loyalty-cards-best-saving-shoppers-
money/
● https://www.gazette-news.co.uk/news/national/uk-today/20156433.loyalty
-cards-best-saving-shoppers-money/
● https://www.dailyecho.co.uk/news/national/uk-today/20156433.loyalty-car
ds-best-saving-shoppers-money/
● https://www.dorsetecho.co.uk/news/national/uk-today/20156433.loyalty-c
ards-best-saving-shoppers-money/
52. Once you have one link, you
can use it as a key
Use this one link as your key to unlocking all your coverage across the web for
all the sites that publisher owns.
If you don’t know all the websites that each publications owns,
go hunting and start building a database of them!
53. That sounds well hard,
can’t you just do it for me?
Oh go on then… I’ll get you started at least.
So the main three publishers in the UK are Reach PLC, Newsquest and JPI Media.
At time of writing, I’ve found:
● 56 Reach PLC titles
● 187 Newsquest titles
● 282 JPI Media titles
And I’m going to share them all with you in template spreadsheet.
54. That looks a little something
like this…
All you need to do is drop your one link into this spreadsheet, and you’ll know in
seconds whether Reach, Newsquest or JPI have syndicated it.
55. How?
Just input your URL into B2 in either the JPI Media, Reach PLC or Newsquest
tabs depending on which publisher your article belongs to.
This then extracts the URL path for you automatically (with formula magic) and
cross references it across all the websites that belong to that publication.
Then, check the status code for each link. Simple as that!
56. Wait… Status codes?
Don’t worry, this is really easy to get your head around
if you didn’t already know.
There are plenty of articles out there explaining what
different status codes mean.
But basically, all you need to know are these three:
● 200 - this link is live
● 301 - this link redirects - check where it goes
● 404 - this link doesn’t exist
57. Your downloadable template
is available here.
Because this involves some scripts coding spreadsheet wizardry,
I’ve done all the difficult bits for you.
All you have to do is visit this template sheet and make a copy.
Be sure to include the attached scripts file, which is how the custom formula
=getstatuscode runs.
58. Make the needlessly complicated fairly easy…
with a little practice.
How to scrape a
news website
59. What do I mean by
‘scraping’?
A website is nothing more than a collection of structured data.
Scraping means you’re extracting that data from a website.
When you scrape a website, you are pulling structured data from a URL using a
query.
So, you are essentially saying:
“I know this data lives here, show me that information for all these URLs”.
60. Why bother?
99 times out of 100, a website’s structure is uniform.
Meaning it’s the same across the board.
So if the ‘price’ data for a certain product sits on one
specific place on a url, it’s a sure bet that it will be in the
exact same spot for the rest of the products on that
website.
61.
62. So what?
This means that once you know a website’s structure,
and how to write the query to extract the data you want…
You can extract that info from the entire website,
if you wanted to.
68. Picture this:
A journalist’s name appears in the exact
same spot for each news site.
Once you figure out how to write the query
for that one website - let’s say, The
Guardian - all you would need is that one
query to extract the journalist’s name from
a massive list of urls.
You could extract everyone who writes for
the Guardian sports section in seconds.
69. How do you
write these
queries?
I’m going to show you exactly how.
With painstaking detail AND a template you
can download and play with.
70. The Steps…
Go onto any publication - in this case, The
Guardian - and find out where the author is
placed on the article.
Inspect the page source (CTRL + Shift + i)
and click on the author’s name.
71. The Steps…
In the code, right click the section with the author's name in and click “copy element” then
paste this element in a Google sheet.
It should look something like this: <a rel="author" data-link-name="auto tag link"
href="//www.theguardian.com/profile/andyhunter">Andy Hunter</a>
72. The Steps…
So now you’ve got the element you’re looking for, you need to translate it into query language.
Which in this case, is: //a[@rel='author']
Basically, the query will usually be structured the same:
● What appears at the start of the line - usually a, div, span, meta, p.
● Followed by the middle of the line of the line - usually class, name, rel, property.
● And a named element - in this case, ‘author’ - in brackets.
73. The Steps…
The formula you want to use is =IMPORTXML.
All it needs is two bits of information, where you’re looking and what you’re looking for.
Which looks a little something like this:
=IMPORTXML(https://www.theguardian.com/football/2022/oct/14/jurgen-klopp-liverpool-ma
nchester-city-ffp, “//a[@rel='author']”)
75. Some other examples
from other websites
Campaignlive.co.uk - <div class="articleAuthor">Staff</div>
BECOMES //div[@class='articleAuthor']
Eurogamer.net - <p class="name"><a href="/authors/63Ā">Tom Phillips</a></p>
BECOMES //p[@class='name']/a
Stuff.co.nz - <span itemprop="name" content="Stuff.co.nz">Jonathan Guildford</span>
BECOMES //span[@itemprop='name']
76. The Steps…
Basically, the point I’m trying to make here is that most of the time
all you will ever need to do is collect three bits of information:
//?[@?=’?’]
1st ? - The start of the section
2nd ? - The element within the section
3rd ? - The name of that element
77. Your downloadable template
is available here.
I’ve included the queries for 3 websites for you to play with.
All you have to do is visit this template sheet and make a copy.
Try experimenting with different sites using the same structure as the three
example websites.
Remember: you’re never going to get it right first time,
trial and error is the key to learning here!
78. Ask me about anything!
Except the football,
I’ve had enough this season.
Question time &
general chit chat
79. You can reach me here if you
have an questions…
@chivers1994
linkedin.com/in/tomchivers
slideshare.net/TomChivers