Analyze your Google+ Posts with R [Update]

Google

Hey everybody,

today I show you how you can start working with the Google+ API and R. We create a personal API key, get our own stats and plot them in a nice looking graph.

Get the API Key

You can get our API key on the Google Developer console here: https://code.google.com/apis/console

There you can see an overview of you API activities if you have some. To create a new API connection click on “APIs” and turn on the Google+ API.

Google API Console API

Google API console API menu

After you did this, you can click on “Google+” and you see a list of the available API calls. Now click on “Credentials” on the left and click on “Create new key” to create a new public API access. Then click on “Browser key” and then “Create”.

Google API calls

Google API credentials

Google API accessGoogle API key

And there it is: you API key.

The R Part

For our first analysis we need the packages


library(RCurl);

library(RJSONIO);

And we need our api key and our user id:


api_key<-"XXX"

user_id <- "105616015219357887822"

In this case I used my own Google+ ID but you can use every ID you want. But we can just receive the public posts.

We get our raw data and put it in a JSON object with:


data <- getURL(paste("https://www.googleapis.com/plus/v1/people/",user_id,"/activities/public?maxResults=100&key=", api_key, sep=""),ssl.verifypeer = FALSE)

js <- fromJSON(data, asText=TRUE);

We can now put the data in a DataFrame to make it more readable. But we don´t need all the values we received as these are a lot. We get the fields

df


df = data.frame(no = 1:length(js$items))

for (i in 1:nrow(df)){

df$kind[i] = js$items[[i]]$verb

df$title[i] = js$items[[i]]$title

df$replies[i] = js$items[[i]]$object$replies$totalItems

df$plusones[i] = js$items[[i]]$object$plusoners$totalItems

df$reshares[i] = js$items[[i]]$object$resharers$totalItems

df$url[i] = js$items[[i]]$object$url

}

We can save this DataFrame as a CSV file with:

filename <- paste("gplus_data_", user_id, sep="") # in case we have more user_ids


write.table(df, file = paste0(filename,".csv"), sep = ",", col.names = NA,
 qmethod = "double")

Visualize your Posts

To visualize your posts we extract the informations we need and store them in the Data Frame df_graph


df_graph = df[,c(1,4,5,6)]

Then we can plot it with


require(ggplot2)

require(reshape2)

melted=melt(df_graph,id.vars='no')

ggplot(melted,aes(x=factor(no),y=value,color=factor(variable),group=factor(variable)))+
 geom_line()+xlab('no')+guides(color=guide_legend("metrics"))+
 labs(title="Google+")

Bildschirmfoto 2013-12-28 um 19.43.45

You can find the complete code on my github page here.

Please follow me on Twitter to stay up to date.

6 thoughts on “Analyze your Google+ Posts with R [Update]

    • Hey hypergeometric,
      thanks for your comment.
      My purpose of this post was on the one hand to show again the possibilities of R as something more than “just” a statistical language. With all its packages R got a lot of more different layers.
      And on the other hand to show some of the possibilities of the Google+ API, which is not as developed as the Facebook API but also has some cool functions.
      And to bring these two aspects together I wrote this post.
      And you should do this when you are interested in your posts performance on Google+. This is more about Social Monitoring than about statistical computing.
      I hope I could help you.
      Regards

    • Hey Demas,
      there are a lot of possibilites of working with Google+. This is a very interesting topic and I will write some new tutorials when I have some time. So follow my blog and you get noticed when there are new tutorials available.

      Regards

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s