Google+ Pages – Already HERE!

Google helps to grow your audience by connecting you with new users. They introduced the +1 button so your site would stand out on search and your users could easily share your content on Google+. But, sometimes you want to join the conversation and post content directly to where people are sharing.

Today they’re introducing Google+ for Business, a collection of tools and products that help you grow your audience. At the core of this is Google+ Pages, your site’s identity on Google+.

Google+ Pages: Have real conversations with the right people

To get your site on Google+, you first need to create a Google+ Page. On your page, you can engage in conversations with your visitors, direct readers back to your site for the latest updates, send tailored messages to specific groups of people, and see how many +1’s you have across the web. Google+ Pages will help you build relationships with your users, encouraging them to spend more time engaging with your content.



Google+ Pages are at the heart of Google+ for Business

Hangouts


Sometimes you might want to chat with your users face-to-face.  For example, if you run a food blog, you may want to invite a chef to talk about her favorite recipe, or if you manage a fashion review site, beauty specialists might want to hold how-to sessions with makeup tips. Hangouts make this easy, by letting you have high-quality video chats with nine people with a single click. You can use Hangouts to hold live forums, break news or simply get to know people better, all in real time.



Hangouts let you meet your customers, face-to-face

Circles


Circles allow you to group followers of your Page into smaller audiences. You can then share specific messages with specific groups. For example, you could create a Circle containing your most loyal readers and offer them exclusive content.

The Google+ badge: Grow your audience on Google+
To help your users find your page and start sharing, there are two buttons you can add to your site by visiting our Google+ badge configuration tool:

The Google+ icon, a small icon that directly links to your Page.

 

 


The Google+ badge, which we’re introducing in the coming days. This badge lets people add your page to their circles without leaving your site, and allows them to get updates from your site via Google+.

Extend the power of +1, stand out in Google search
You can also link your site to your Google+ page so that all your +1s — from your Page, your website, and search results — will get tallied together and appear as a single total. Potential visitors will be more likely to see the recommendations your site has received, whether they’re looking at a search result, your website, or your Page, meaning your +1’s will reach not only the 40 million users of Google+, but all the people who come to Google every day. You can link your site to your Page either using the Google+ badge or with a  piece of code. To set this up, visit our Google+ badge configuration tool.

Bringing Google+ to the rest of Google


Our ultimate vision for Google+ is to transform the overall Google experience — weaving identity and sharing into all of our products. Beginning today, we’re rolling out a new experimental feature to a small group of eligible publishers,Google+ Direct Connect — an easy way for your audience to find your Google+ Page on Google search.  If you’ve linked your Page to your site and you qualify, when someone searches for your website’s name with the ‘+’ sign before it Direct Connect will send them directly to your Page. For example, try searching for ‘+YouTube’ on Google. Users will also be prompted to automatically add Pages they find through Direct Connect to their circles.



Direct Connect suggestions start populating as you type on Google.com


Just the beginning

We want to help you get your site on Google+ as soon as possible, so we’re opening the field trial for Google+ Pages to everyone today. Creating a Google+ Page only takes a few minutes. To get started, you’ll need a personal Google+ profile. If you don’t have a Google account, it’s very quick and easy to join. And if you’re looking for inspiration, check out some of the sites that are already starting to set up their Pages:

To learn more about how Google+ works for your site, check out the Google+ Your Business site. We’re just getting started, and have many more features planned for the coming weeks and months. To keep up to date on the latest news and tips, add the Google+ Your Business page to your circles. If you have ideas on how we can improve Google+ for your site, we’d love to hear them.

 

Cross posted from the Inside AdSense blog

Google Maps Masups 14

Loughborough University Campus Map


Loughborough University’s campus map is a great example of how to use the Google Maps API to help students and visitors find their way around a large campus.

The map uses the custom overlays function to overlay a custom map of the university on top of the Google Map. The custom map overlay includes features and locations that are not on Google Map’s own map tiles, such as trees, tennis courts, football pitches etc.

The map also makes good use of polygons to make buildings on the map interactive. If you click on any of the buildings you can view the building’s name, a photo of the building and links to its page on the university’s website.

Finally, the map includes a very nice search facility that allows you to search for a building or feature by name or by category.

Greenpeace – Moscow Recycling Map


Greenpeace has released a Google Map of recycling stations in Moscow.

The map shows the locations of recycling stations for paper, glass, plastic bottles, old electronics and clothing in the Russian capital. The map includes custom made markers that are colour coordinated to indicate the type of recycling possible at each station.

It is also possible for users to add the location of missing recycling locations to the map.

Google Hotel Finder


Google has today launched Hotel Finder, a new search tool to help you find a hotel.

The tool includes an interesting Google Maps interface that allows you to search for hotels by location. When you enter a location into the Hotel Finder the map shows an initial shape based on the most popular area for visitors to stay. Users can drag the shape to define more closely this area, e.g. close to the ocean or along Sunset Boulevard.

Hotel Finder also shines a “tourist spotlight” on the most visited areas in the selected city. Tools in the sidebar allow you to adjust the price of hotels you wish to view on the map and to compare the current price to the hotel’s typical price.

Livebookings Live Map


Online clothes retailer Zappos started a trend when they created their live Zappos Map. This real-time map was created to show the latest orders placed on Zappos live on a Google Map.

The Zappos Map was quickly followed by Net-a-Porter Live, ThisNext and The Book Depository Live. Now Livebookings, Europe’s largest online booking service for restaurants, has released a live map of restaurant tables booked by its customers.

Livebookings Live takes the reservations coming in, removes the customers’ names, and plots them on a map showing where, for how many, and with what frequency the Livebookings system is used.

Geohashing Wiki


The xkcd Geohashing Wiki is inviting you to participate in the wonderful world of random location meet-ups.

Geohashing is a method for finding a random location near your current location and then visiting it. Every day the geohashing algorithm generates a new set of coordinates for your location. Everyone in a given region gets the same set of coordinates.

After you have visited the random location you can document your expedition on the Geohashing Wiki, including details of who was involved in your expedition and pictures of your adventure.

To get your daily randomised coordinates visit the Geohashing Google Map. Click on the map to show your location and, using the geohashing algorithm, your random location will be generated by the map.

Zoopla: UK Property Heat Map


Real-estate website Zoopla has created a heat-map of UK property prices.

The Google Map provides a quick overview of where properties are affordable and where houses are more expensive. For example if you zoom in on London, you can see a distinct pattern of expensive property in the commuter belt around the capital.

World Tour Schedules on Google Maps


Artist / DJ Richie Hawtin has created a gorgeous looking Google Map for his current world tour. Custom map tiles have been used to give the map a distinct design. The dot-matix look of the design is continued in the custom made map markers and information windows.

Dates on the tour are displayed on the map and a slide-out sidebar shows the dates in list form.

The ‘One City’ world tour continues until December.

The Email Settings and the Profiles APIs

Updating all signatures to make them adopt the same visually appealing style sounds like a perfect task to automate, however we’d still need to collect various pieces of information for each user, such as phone number or job title, and the Email Settings API has no knowledge of them.

The Google Apps Profiles API provides exactly what we are looking for and in the rest of this article we’ll see how to have the two APIs interact to reach our goal.

Let’s assume we want our signatures to look like the one in the screenshot below, with a bold name, italic job title and clickable link for the email address. Of course you can edit the style as you like with a bit of HTML skills:

Python is the programming language of our choice for this small script and we use the Google Data APIs Python Client Library to send requests to the Email Settings and Profiles APIs.

The first few lines of the script import the required libraries and set the values of the credentials that will be used to authorize our requests. You can find the consumer key and secret for your domain in your Control Panel, under Advanced Tools – Manage OAuth domain key. Remember to replace the dummy values in the script below with yours before running it:

import gdata.apps.emailsettings.client

import gdata.contacts.client

# replace these values with yours

CONSUMER_KEY = 'mydomain.com'

CONSUMER_SECRET = 'my_consumer_secret'

company_name = 'ACME Inc.'

admin_username = 'admin'

We’ll use 2-legged OAuth as the authorization mechanism and set the administrator’s email address as the value of the xoauth_requestor_id parameter, identifying the user we are sending the requests on behalf of.

The consumer key and secret plus the requestor id are the only parameters needed to create an OAuth token that we can pass to the Email Settings and Profiles clients:

# request a 2-legged OAuth token

requestor_id = admin_username + '@' + CONSUMER_KEY

two_legged_oauth_token = gdata.gauth.TwoLeggedOAuthHmacToken(

  CONSUMER_KEY, CONSUMER_SECRET, requestor_id)

# Email Settings API client

email_settings_client = gdata.apps.emailsettings.client.EmailSettingsClient(

  domain=CONSUMER_KEY)

email_settings_client.auth_token = two_legged_oauth_token

# User Profiles API client

profiles_client = gdata.contacts.client.ContactsClient(

  domain=CONSUMER_KEY)

profiles_client.auth_token = two_legged_oauth_token

Let’s define a class that generates the signatures for our users on the basis of a set of optional attributes (occupation, phone number, email, etc). This is the class you need to edit or extend if you want to change the style of the signatures for your domain. In the example below, the HtmlSignature() method simply concatenates some strings with hard-coded styling, but you may want to use a more elaborate templating system instead:

# helper class used to build signatures

class SignatureBuilder(object):

def HtmlSignature(self):

  signature = '%s' % self.name

  if self.occupation:

    signature += '%s' % self.occupation

  if self.company:

    signature += '%s' % self.company

  signature += 'Email: %s - Phone: %s' % (

      self.email, self.email, self.phone_number)

  return signature

def __init__(

    self, name, company='', occupation='', email='', phone_number=''):

  self.name = name

  self.company = company

  self.occupation = occupation

  self.email = email

  self.phone_number = phone_number

Let’s use profiles_client to retrieve a feed containing all profiles for the domain. Each call to GetProfilesFeed() only returns a page of users, so we need to follow the next links until we get all users:

# get all user profiles for the domain

profiles = []

feed_uri = profiles_client.GetFeedUri('profiles')

while feed_uri:

  feed = profiles_client.GetProfilesFeed(uri=feed_uri)

  profiles.extend(feed.entry)

  feed_uri = feed.FindNextLink()

At this point profiles will contain the list of users we want to process. For each of them, we instantiate a SignatureBuilder object and set its properties name, company, occupation, email and phone_number with the data for that user.

A call to the HtmlSignature() method of the SignatureBuilder instance will provide us with a properly formatted HTML-encoded signature.

# extract relevant pieces of data for each profile

for entry in profiles:

builder = SignatureBuilder(entry.name.full_name.text)

builder.company = company_name

if entry.occupation:

  builder.occupation = entry.occupation.text

for email in entry.email:

  if email.primary and email.primary == 'true':

    builder.email = email.address

for number in entry.phone_number:

  if number.primary and number.primary == 'true':

    builder.phone_number = number.text

# build the signature

signature = builder.HtmlSignature()

The Email Settings API client exposes a method called UpdateSignature to set the signature for a target user. This methods accepts two parameters, the username of the user to be affected and a string containing the signature. We just built the latter, so we only need the retrieve the unique username that identifies each user and that can be easily inferred from the entry identifier returned by the Profiles API, as described in the code and the comment below.

It is worth mentioning that you can also retrieve usernames with the Provisioning API, but for the sake of simplicity we’ll rely on this small hack:

# entry.id has the following structure:

# http://www.google.com/m8/feeds/profiles/domain/DOMAIN_NAME/full/USERNAME

# the username is the string that follows the last /

username = entry.id.text[entry.id.text.rfind('/')+1:]

It’s time to send the requests to the Email Settings API and update the signature:

# set the user's signature using the Email Settings API

email_settings_client.UpdateSignature(username=username, signature=signature)

For further details on what can be accomplished with the Google Apps APIs, please check our documentation .