Google Announces Study Looking at Abuses in Google Maps – What Does it Mean?

Google posted on their research blog today some summary data from a study Pinning Down Abuse on Google Maps that is being presented tomorrow at the  International World Wide Web Conference. The study details released today, while an interesting necessity on the step to cleaning up  Maps, leaves many questions unanswered. Our study shows that fewer than 0.5% … Continue reading Google Announces Study Looking at Abuses in Google Maps – What Does it Mean?

My Recent Posts Elsewhere

I have been busy. Here are my posts from an assortment of sites: 4/5 LocalU: Video Deep Dive: Local Ranking Factors, Making Sense Of It All (now also available as a regular podcast) 4/3 StreetFight: The Coming DIY Cataclysm 4/3 LocalU: Video: Last Week in Local April 3rd, 2017 (now also available as a regular podcast) 3/31 GetFiveStars: Understanding Google Schema Guidelines: Review Snippets vs. … Continue reading My Recent Posts Elsewhere

Siri is Google’s nearest mobile search competitor [Report]

According to a survey from Fivesight Research, Siri had a larger share of mobile search than Bing or Yahoo.

The post Siri is Google’s nearest mobile search competitor [Report] appeared first on Search Engine Land.

Please visit Search Engine Land for the full article.

Grace the Stage at MozCon 2017: The Door is Open for Community Speaker Pitches

Posted by ronell-smith

Some of the best talks at MozCon each year come from the community speakers—those who’re able to make a pitch to grace the stage.

This group enjoys the same privileges as the other speakers, including being able to deliver a keynote-style talk, and are always well-received by the audience.

If you’re eager to be a member of this group, step right up.

We’re now open for MozCon community speaker’s pitches.

We’d be happy to have your best effort.

(This year, we’ll have six speakers.)


The nuts & bolts:

  • Submitting is as simple as filling out the form below
  • Only submit one talk (the one you’re most passionate about)
  • Pitches must be related to online marketing & 15 minutes long
  • Submissions close Sunday, April 16th at 5pm PDT
  • All decisions are final
  • Talks must must adhere to the MozCon Code of Conduct
  • You’ll be required to be present at MozCon in Seattle

if you submit a pitch, you’ll hear back from us regardless of whether you’re accepted or denied.

Loading…


Community speakers receive…

  • At least 15 minutes on the MozCon stage for a keynote-style presentation, plus 5 minutes of Q&A
  • A free ticket to MozCon. (If you already have one, we’ll either refund or transfer the ticket to someone else.)
  • Four nights of lodging covered by us at our partner hotel
  • A reimbursement for your travel (flight, train, car, etc.), up to $500 domestic and $750 international
  • A free ticket for you to give to anyone, plus a code for $300 off another ticket
  • An invitation for you and your significant other to join us for the speakers’ dinner.

If you’re curious about what the process look like, take a look at what Zeph Snapp wrote about his experience as a community speaker.

Long-time community member Samuel Scott, one of our fantastic community speakers at MozCon 2016!


How do you pick speakers?

The selection committee, comprised of Mozzers, reviews every pitch. Initially, we review only the topics. This helps us make sure the topics match our audience.

Later we look at the entirety of the pitch, with an eye for what the finished product would look like on stage.

Things to consider for your pitch:

  • Focus your pitch on online marketing. MozCon is all about actionable information.
  • Your pitch is for MozCon organizations, so detail what you’re talking about. We need to know the actual tactics you’ll be sharing.
  • Read this post on how to prepare for speaking, from pitching to the actual gig.
  • Review the topics already accepted to ensure there is no overlap.
  • Honor the form’s word limits. (Linking to Google Docs, for example, will result in an immediate disqualification.)
  • No one from the speaker selection committee will be able to evaluate your pitch in advance.
  • Lobbying on social media is frowned upon and won’t do you any good.
  • Link to a video of you presenting and to your SlideShare channel (or wherever we can take a look at decks you’ve created in the past)

A little weak in the knees about speaking at MozCon?

Don’t be scurred.

We’ve got your back.

Whether a speaker has hundreds of talks under her belt or is giving her first talk, we work with them to deliver a product she’lll be proud of and the audience will both love and learn from.

We provide instruction on topics and review the content in its entirety.

We encourage pitches from speakers of all backgrounds, knowledge levels, and speaking experiences.

A few additional things we help with:

  • Discuss and refine your topic
  • Assist in honing topic title and description
  • Review outlines and drafts
  • Best practices and guidance for slide decks, specifically for our stage
  • A comprehensive, step-by-step guide for show flow
  • Serve as an audience for practicing your talk
  • Review your final deck
  • Sunday night pre-MozCon tour of the stage to meet our A/V crew, see your presentation on the screens, and test the clicker
  • A 15-person dedicated crew to make your A/V outstanding
  • Whatever else we can do to make your talk outstanding

Now over to you.

If you’ve ever had a vision of making onto the MozCon stage, this is your best shot.

So, umm, shouldn’t you be typing feverishly in the Google Form above?

Good luck.

Sign up for The Moz Top 10, a semimonthly mailer updating you on the top ten hottest pieces of SEO news, tips, and rad links uncovered by the Moz team. Think of it as your exclusive digest of stuff you don’t have time to hunt down but want to read!

How to Get All Your Search Console Data from the API (Plus, Learn How to Use Python)

Posted by Dom-Woodman

What will you learn from this post?

  • How to get lots of Search Console data quickly and easily
  • How to run a Python script

And who can do it? Hopefully, it should be accessible to any beginner.

Why do we use the API to get Search Console data?

At Distilled, we often want to use Google Search Console data, but getting it from the interface is incredibly clunky:

  • You’re limited to the top 1,000 queries
  • You have to apply each filter one at a time
  • The interface is slow
  • And if you want to do this regularly, you have to repeat this process often.

We can get around that by using the API. Now we can get up to 5,000 queries at a time, we can apply multiple filters instantly, and we can run multiple queries quickly and easily.

We do this with Python.

Why is it useful to be able to run Python scripts?

Being able to run scripts is incredibly valuable. There are lots of amazing scripts out there, both on Github and written by other people in the industry; using them, you can pull down data more quickly and faster than you otherwise could.

We’ll be using Python for this tutorial because it’s a very popular language, particularly when working with large amounts of data.

Crucially, you don’t need to be able to write in Python to use the scripts — you just need to understand some basics about how to use them.

With APIs you can pull data from all sorts of exciting places, far more quickly than through the user interface. You can also often get more data.

How do we run Python?

If you’re on a Mac or a PC, I’d recommend downloading Anaconda. That will get you set up and running with Python 3, and save a lot of fiddling around.

If you need administrator permission to install things on your work computer, then make sure you only install Anaconda for your user, not all users. If you try and install for all users, then you’ll need administrator permission.

Then we’re going to need a good shell (a command line interface, the place where you can run the script from). Mac has Terminal installed by default; on Windows, I would recommend Cmder.

Go ahead and install that.

(The rest of this tutorial is shown in Windows, but the same basic steps should be fine for a Mac!)

Double-check that Python has installed correctly

First open up the shell, type in python and hit enter.

Exit python by typing in exit().

Download our example script

For this example we’ll be using the search console script, written by one of our consultants, Stephan.

You can download it from his Github here. I’m not going to include a full tutorial on Git in this (although it’s a very useful tool for coding), so if you’re unsure how to clone a repository, just download the zip file:

Screen Shot 2017-03-17 at 12.54.48.png

Running our example script

Once we’ve downloaded the example script (and unzipped the folder, if necessary), we need to navigate in our shell to the folder where we just downloaded the script..

The command line functions like the Windows File Explorer or Finder that you normally use. Just like file explorer has a specific folder open, so does the command line, so we need to navigate to the folder where we have the script downloaded.

A command line shell functions a lot like a file explorer, only everything happens through text. You don’t get a mouse or a GUI.

Some command line basics

To change folders you’ll need some command line basics, most notably these two super-important commands:

  1. cd [path]
  2. ls -g

The first navigates you to the path given. (Or, if you use .. as your path, takes you a step backwards “cd ..”)

The second lists all the files and folders in the directory you’re currently in.

That’s all you need, but to make yourself faster there are two other things that are useful to know:

Hitting tab will cause the shell to try and complete the path you’re typing.

Suppose you’re in a folder with two files:

  • Moz_1990_ranking_data.txt
  • Moz_180_rankings.txt
  • 180_rankings.txt

If you type:

  • 180 and hit tab: It will autocomplete to 180_rankings.txt
  • Moz and hit tab: It will autocomplete to Moz_

Secondly, hitting the up key goes through all the commands you’ve used. The reason a lot of people enjoy using the shell is they find it quicker than using a file explorer — and those two commands are a large part of that.

Congrats — now you’re ready to run the script. Next we need to get permission for the Google Search Console (GSC) API.

Turning on the API

In the same way you have to log in to see Search Console data, you need permission to use the API. Otherwise, anyone could get your data.

We also need to check whether the API is turned on — by default, it isn’t.

All the Google APIs live in the same place; Google Analytics is there, too. You can find them all at:

You’ll need to sign in (making sure to use the Gmail account with access to your Search Console data). Then you can search for the Search Console API.

Once it’s selected, if it says “Enable here,” you’ll need to enable it.

Once that’s done we need to download an API key (which is equivalent to our password when signing into Search Console). A single API key gives you access to all of the Google services, in the same way that you use the same Gmail address to sign into Google Analytics and Search Console.

What is an API key? Different APIs have different types of keys. Sometimes it will just be a text string like “AHNSKDSJKS434SDJ”; other times it’s a file. The most common Google API key is a file.

So how do we get our Google API key? Once we’ve enabled the API, we select the “Credentials” tab and then create credentials. The three main kinds of API key are a basic text key, user OAuth credentials, and service account keys.

The first is quick and simple, the second is more secure and intended for users who will authenticate with a login, the third for automated data pulling.

There are some subtleties around permissions with these that we don’t really want to delve into here. The script is set up to use the second, so we’ll use that.

Go ahead and create an OAuth Client ID:

Ignore the pop-up and download the file from the credentials screen:

Move it to the same folder as your script. For ease of use, we’ll also rename it “credentials.json,” which is what the script is expecting the API key to be called. (A script will tell you what it’s expecting the API key to be called when you run it, or will have this in the documentation… assuming it’s well-written, of course).

Crucial note: By default, most versions of Windows will hide file extensions. Rather than naming the file “credentials.json,” you’ll accidentally name it “credentials.json.json.”

Because the file is already a JSON file, you can just name it “credentials” and check that the type is JSON. You can also turn on file extensions (instructions here) and then name it “credentials.json.”

In the screenshot below, I have file extensions visible. I’m afraid I don’t know if something equivalent exists in Mac — if you do, drop it in the comments!

Running our script

And we’re ready to go!

Hopefully now you’ve navigated to the folder with the script in using cd:

Now we try and run the script:

We get a module missing error. Normally you can solve this by running:

  • pip install missing_module — or, in our case,
  • pip install httplib2

And because we’ll get several of these errors, we need to install a couple modules.

  • pip install oauth2client
  • pip install –user –upgrade google-api-python-client

Interesting side point: It’s worth noting that the flag “–user” is the “pip” command line equivalent to the choice you often see when installing programs on a computer to install for all users or just you. (We saw this with Anaconda earlier.) If you do see permissions errors appearing in the command line with pip, try adding –user. And back to our script.

Now that we’ve installed all the things the script needs, we can try again (remember, you can just press up to see the previous command). Now we should get the script help, which will tell us how to run it. Any well-documented script should return something like this:

First, pay attention to the last line. Which arguments are required?

  • property_uri
  • start_date
  • end_date

Our script needs to have these 3 arguments first in that order. Which looks like:

python search_console_query.py <a href="https://www.distilled.net/">https://www.distilled.net/</a> 2017-02-05 2017-02-06

Run that command and remember to change the URL to a property you have access to!

Your browser will open up and you’ll need to log in and authenticate the script (because it’s the first time we’re running the script):

You should be taken to a page that doesn’t load. If you look at the script, it’s now asking for an authentication code.

This is in the URL of the page, everything from the = up to the hash, which you’ll need to copy and paste back into the script and hit enter.

Check your folder where you saved the script and it should now look something like this:

The permission we gave the script is now saved in webmaster_credentials.dat. Each of our days of Search Console data we asked for sits in those CSV files. The script is designed to pull data for each day individually.

If we look back at our script options:

We can see some of the other options this script takes that we can use. This is where we can filter the results, change the country, device, etc.

  • “Pages” takes a file of pages to individually query (example file)
    • By default, it pulls for the entire property.
  • “Devices” takes a space-separated list
    • By default, it queries mobile, desktop, and tablet.
  • Countries
  • By default the script will pull 100 rows of data per day. The API allows a limit of up to 5,000.

Here are some example queries using those options and what they do:

#get top queries for the search console property

python search_console_query.py https://www.distilled.net/ 2017-02-05 2017-02-06

#get top queries for multiple pages stored in file_of_pages and aggregate together

python search_console_query.py https://www.distilled.net/ 2017-02-05 2017-02-06 --pages file_of_pages

#get top queries for the property from desktop and mobile

python search_console_query.py https://www.distilled.net/ 2017-02-05 2017-02-06 --devices desktop mobile

#get the top queries for the property from the US & the UK

python search_console_query.py https://www.distilled.net/ 2017-02-05 2017-02-06 --countries USA GBR

#get the 5000 top queries for the property

python search_console_query.py https://www.distilled.net/ 2017-02-05 2017-02-06 --max-rows-per-day 5000

Sign up for The Moz Top 10, a semimonthly mailer updating you on the top ten hottest pieces of SEO news, tips, and rad links uncovered by the Moz team. Think of it as your exclusive digest of stuff you don’t have time to hunt down but want to read!