Tuesday, October 12, 2010
Global Developers Integrating with Google Apps
Brightpearl joins us from the United Kingdom
SprinxCRM is from the Czech Republic
Producteev’s founders hail from France
Clio calls Canada home
With the addition of these apps, Google Apps customers now have easy access to apps from 25 countries outside the United States, including Australia, Germany, India, Russia, Singapore and more. While the initial version of the Google Apps Marketplace Billing API will only be available to US sellers, we want all developers to be able to integrate with Google Apps and sell their business-focused web apps on the Apps Marketplace. Because of this, we recently modified our revenue sharing exemption period to last until 3 months after the release of the Marketplace Billing APIs for a country where you are located. So, if you would like to build an app for the Google Apps Marketplace, Get Started now.
Don’t forget our first ever G-Days in Egypt and Jordan are coming up soon, as our our Google Developer Days and Dev Fests in São Paulo, Buenos Aries, Munich, Prague, and Moscow. If you’re attending those events, please stop by and introduce yourself to members of the Google Apps Marketplace team and tell us about the exciting apps you’re building!
Friday, October 01, 2010
Python Library for Google Analytics Management API
Since Python is one of our more popular languages, we’ve updated the Google Analytics Python Client Library to access all 5 feeds of the Management API. Now it’s easier than ever to get your configuration data from the API.
To show you how simple it is to use the library, here is an example which returns all the goal names for a profile:
import gdata.analytics.client
APP_NAME = 'goal_names_demo'
my_client = gdata.analytics.client.AnalyticsClient(source=APP_NAME)
# Authorize
my_client.client_login(
INSERT_USER_NAME,
INSERT_PASSWORD,
APP_NAME,
service='analytics')
# Make a query.
query = gdata.analytics.client.GoalQuery(
acct_id='INSERT_ACCOUNT_ID',
web_prop_id='INSERT_WEB_PROP_ID',
profile_id='INSERT_PROFILE_ID')
# Get and print results.
results = my_client.GetManagementFeed(query)
for entry in results.entry:
print 'Goal number = %s' % entry.goal.number
print 'Goal name = %s' % entry.goal.name
print 'Goal value = %s' % entry.goal.value
To get you started, we wrote a reference example which accesses all the important information for each feed. We also added links to the source and PyDoc from the Management API Libraries and Examples page. Have a look and let us know what you think!
By Nick Mihailovski, Google Analytics API Team
Thursday, September 30, 2010
WebP, a new image format for the Web
Cross-posted from the Chromium Blog
As part of Google’s initiative to make the web faster, over the past few months we have released a number of tools to help site owners speed up their websites. We launched the Page Speed Firefox extension to evaluate the performance of web pages and to get suggestions on how to improve them, we introduced the Speed Tracer Chrome extension to help identify and fix performance problems in web applications, and we released a set of closure tools to help build rich web applications with fully optimized JavaScript code. While these tools have been incredibly successful in helping developers optimize their sites, as we’ve evaluated our progress, we continue to notice a single component of web pages is consistently responsible for the majority of the latency on pages across the web: images.
Most of the common image formats on the web today were established over a decade ago and are based on technology from around that time. Some engineers at Google decided to figure out if there was a way to further compress lossy images like JPEG to make them load faster, while still preserving quality and resolution. As part of this effort, we are releasing a developer preview of a new image format, WebP, that promises to significantly reduce the byte size of photos on the web, allowing web sites to load faster than before.
Images and photos make up about 65% of the bytes transmitted per web page today. They can significantly slow down a user’s web experience, especially on bandwidth-constrained networks such as a mobile network. Images on the web consist primarily of lossy formats such as JPEG, and to a lesser extent lossless formats such as PNG and GIF. Our team focused on improving compression of the lossy images, which constitute the larger percentage of images on the web today.
To improve on the compression that JPEG provides, we used an image compressor based on the VP8 codec that Google open-sourced in May 2010. We applied the techniques from VP8 video intra frame coding to push the envelope in still image coding. We also adapted a very lightweight container based on RIFF. While this container format contributes a minimal overhead of only 20 bytes per image, it is extensible to allow authors to save meta-data they would like to store.
While the benefits of a VP8 based image format were clear in theory, we needed to test them in the real world. In order to gauge the effectiveness of our efforts, we randomly picked about 1,000,000 images from the web (mostly JPEGs and some PNGs and GIFs) and re-encoded them to WebP without perceptibly compromising visual quality. This resulted in an average 39% reduction in file size. We expect that developers will achieve in practice even better file size reduction with WebP when starting from an uncompressed image.
To help you assess WebP’s performance with other formats, we have shared a selection of open-source and classic images along with file sizes so you can visually compare them on this site. We are also releasing a conversion tool that you can use to convert images to the WebP format. We’re looking forward to working with the browser and web developer community on the WebP spec and on adding native support for WebP. While WebP images can’t be viewed until browsers support the format, we are developing a patch for WebKit to provide native support for WebP in an upcoming release of Google Chrome. We plan to add support for a transparency layer, also known as alpha channel in a future update.
We’re excited to hear feedback from the developer community on our discussion group, so download the conversion tool, try it out on your favorite set of images, and let us know what you think.
By Richard Rabbat, WebP TeamMonday, September 27, 2010
New OAuth support for Google Apps APIs
Cross-posted from the Google Enterprise Blog
Google Apps is designed to provide a secure and reliable platform for your data. Until today, Google Apps administrators had to sign requests for calls to Google Apps APIs using their username and password (this is called ClientLogin Authorization).
Yet sharing passwords across sites can pose security risks. Furthering our commitment to make the cloud more secure for our users, today we are pleased to announce support for OAuth authorization on Google Apps APIs.
There are several advantages to using OAuth instead of the username/password model:
- OAuth is more secure: OAuth tokens can be scoped and set to expire by a certain date, making them more secure than using the ClientLogin mechanism.
- OAuth is customizable: Using OAuth, you can create tokens that scripts may only use to access data of a particular scope when calling Google Apps APIs. For instance, a token set to call the Email Migration API would not be able to use your login credentials to access the Google Apps Provisioning API.
- OAuth is an open standard: OAuth is an open source standard, making it a familiar choice for developers to work with.
The Google Apps APIs that support the OAuth signing mechanism are:
- Provisioning API
- Email Migration API
- Admin Settings API
- Calendar Resource API
- Email Settings API
- Audit API
OAuth support for Google Apps APIs is another step towards making Google Apps the most secure, reliable cloud based computing environment for organizations. To learn more about OAuth support and other administrative capacities launched in Google Apps this quarter, join us for a live webinar on Wednesday, September 29th at 9am PT / 12pm EST / 5pm GMT.
Administrators for Google Apps Premier, Education, and Government Editions can use OAuth authorization for Google Apps APIs starting today.For more information about the OAuth standard, visit http://oauth.net.
By Ankur Jain, Google Apps TeamThursday, September 23, 2010
Our first ever G-days in Egypt and Jordan
Google is dedicated to making the Internet relevant and useful to Arabic speakers, and to developing meaningful and local products for the Middle East. We fully realise that we cannot foster this growing Internet ecosystem alone, and we therefore believe that tech entrepreneurs and developers have the opportunity to transform the Web for the world and for the Middle East.
So for the first time ever in Egypt and Jordan, Google is very excited to host its G-days, in Cairo between December 8th and 10th for G-Egypt, and Amman between December 12th and 14th for G-Jordan.
Each day of the 3-day conference will cater to a different audience, spanning computer science students and professors, professional developers, webmasters, entrepreneurs, small businesses and tech marketers. Take a look at our sites (G-Egypt and G-Jordan) to learn more about the G-day that might fit your appetite. You must pre-register on the websites as space is limited - you will then be fully registered as soon as we send you a confirmation.
Some of Google’s best and most engaging engineers, product managers, business managers and leadership will be speaking about Google’s open web and mobile technologies. Attendees will have the chance to interact with Googlers and explore Google’s technologies through a combination of tech talks and breakout sessions. We’re getting ready to make these events fun, insightful and interesting so we hope to see you there !
On Twitter : #gegypt #gjordan @GoogleDevMENA
By Sebastian Trzcinski-Clément, Developer Relations for the Middle East and Northern AfricaTuesday, September 21, 2010
Google Developer Day registration open for Munich, Moscow and Prague

Registration opens today for Google Developer Day in Europe and Russia! As you saw from our agenda announcement, they promise to be jam-packed with great speakers and fantastic content.
Register to attend on the following dates, in the following places:
Stay updated on Developer Day news by following us at:
- Germany: Google Produkt Compass blog
- Russia: Developer blog and @gddru
- Czech Republic: Google Česká republika blog and @gddcz
Our official hashtags are #gddde, #gddru and #gddcz.
Look forward to seeing you there!
By Ben Wallace, Developer Marketing EMEAThursday, September 16, 2010
Google Relaunches Instantiations Developer Tools - Now Available for Free
(Cross-posted from the Google Web Toolkit blog)
In early August, Google acquired Instantiations, a company known for its focus on Eclipse Java developer tools, including GWT Designer. We're happy to announce today that we're relaunching the following former Instantiations products under the Google name and making them available to all developers at no charge:
-
GWT Designer
Powerful Eclipse-based development tools that enable Java developers to quickly create Ajax user interfaces using Google Web Toolkit (GWT) -
CodePro AnalytiX
Comprehensive automated software code quality and security analysis tools to improve software quality, reliability, and maintainability -
WindowBuilder Pro
Java graphical user interface designer for Swing, SWT, GWT, RCP, and XWT UI frameworks -
WindowTester Pro
Test GUI interactions within Java client rich applications for the SWT and Swing UI frameworks
Now that these products are available again, we hope you’ll start using them within your GWT projects. Meanwhile, our next step is to more deeply unify them into the GWT family of tools by blending the fantastic Instantiations technology into the Google Plugin for Eclipse (GPE). So, there’s much more to come, including things we’re pretty sure you’ll like, such as UiBinder support in GWT Designer.
You can download any of the tools from the GWT download page. If you have questions or comments we’d love to hear from you. The best place to discuss the tools above is at http://forums.instantiations.com. As always, continue to discuss GWT and GPE at the main GWT Group.
We would love to stay in better touch with you as we have more news about how we are integrating the Instantiations products into the Google Web Toolkit suite. Sign up if you’d like to receive email updates on these products and other developer tools.
By Bruce Johnson, Google Developer TeamWednesday, September 15, 2010
Google Developer Day Registration Now Open for Brazil
Follow @googledevbr (hashtag: #gddbr) to stay updated on developer news in Brazil.
By Susan Taing, Google Developer Team
Prediction API: Make smart apps even smarter
Since its announcement at Google I/O, the Google Prediction API has seen an outstanding response from the developer community. Developers participating in the Prediction API preview are already using it to identify spam, categorize news, and more.
Today we’re adding new features to the Prediction API to make your apps even smarter:
Multi-category prediction: Imagine you’re writing a news aggregator that suggests articles based on the kinds of stories the user has read before. Previously, using the Prediction API, each article could only be tagged with one label - the most pertinent one. For example, an article about a new truck might be labeled as “truck,” but not “roomy” or “quiet.” Now articles can be tagged with all of those labels, with the labels ranked by pertinence, enabling your app to make better recommendations.
Continuous Output: You’d like to create a wine recommendation app. Matching a wine to personal preferences is a tricky task, dependent on many factors, including origin, grape, age, growing environment, and flavor presence. Previously, your app could only label wine as “good,” “decent,” “bad,” or some other set of pre-defined values. Using the new continuous output option, your app can provide a fine-grained ranking of wines based on how well they fit the user’s preferences.
Mixed Inputs: You’re creating an automatic moderator for your blog. You could already classify incoming posts automatically based on comment text and the username of the poster (text inputs), but not the number of times they’ve posted before or the number of users that have liked their posts (numeric inputs). We’ve now added support for mixed inputs, so both numeric and text data can be incorporated in your moderation helper, greatly improving accuracy and letting you get back to making content rather than managing it.
Combining Continuous Output with Mixed Inputs: To further enhance your automatic moderator, you can use continuous output to set thresholds for automatic posting, automatic rejection and manual moderation, further reducing your workload.
You can get all the details about these and other new features on the Prediction API website. We are continuing to offer the Prediction API as a preview to a limited number of developers. There is no charge for using the service during the preview. To learn more and sign up for an invitation, please join the waitlist.
By Travis Green, Prediction API TeamTuesday, September 14, 2010
Increase your productivity with the Google Analytics API
(Cross-posted from the Google Analytics Blog)
Back in Episode 10 of Web Analytics TV, (32:00), Lisa C from Melbourne asked how to pull a trending report from Google Analytics for the top organic search landing pages. This was such a great question, that we wrote 2 articles and released sample code describing how you can automate retrieving this data from Google Analytics Data Export API. But first let’s look at the results.
Here is a graph plotting traffic to the top 100 landing pages for organic search for all of June for www.googlestore.com.
Let’s Analyze:
This is the typical trend graph you can find across the Google Analytics web interface. By itself, all you can tell is that something happened during the spike. what you can’t figure out is which page actually increased in traffic; to do so would require lots more digging.
Now let’s try again:
Here is a stacked area graph of each of the top 100 landing pages for organic search.
Let’s Analyze:
Awesome right! So obvious why this is cooler. But let me explain.
Lisa’s graph, above, presents significantly simplified insights. Notice how much more we can get from this graph. We can see the green page is what caused the big spike. Also we see that the blue and orange pages had interesting changes in traffic patterns; changes we couldn’t identify from the graph on the left. Being able to break down the totals graph is indeed a gold mine for analysis.
Typical actions you, or Lisa (!), can take from this data are to get the organic search keyword to send traffic to the blue page. Then to identify the keywords sending traffic to the green and orange page and see if we can increase traffic to other pages.
Exporting the Data from the web interface:
Anybody can pull this data from the Google Analytics web interface. You simply create a custom report with landing pages and entrances. Then drill into each landing page, and export the data to a csv file. Finally you go through all csv files and compile them into a single file for analysis. Let's illustrate:
Going through each report individually is a LOT of manual work, but we can automate all of this using the Data Export API; reducing hours of work into a few minutes!
Using the Data Export API to Automate:
In part one of our series, we demonstrate how to use the Data Export API to automate the exact task above. A user specifies 1 query to determine the top landing pages. The for each landing page, a separate query is used to get the data over time.
This is great and we built it to work with any query with a single dimension. But notice that the number of queries grows with the number dimensions. In fact this program requires n + 1 queries so if you want data for 1,000 dimensions, it will take 1,001 queries.
This is bad because there is a daily quota of 10,000 queries for the Data Export API. So if you ran this program 10 times, with 1,000 dimensions, it would require 10,010 queries completely using your quota. ouch!
Optimizing Data Export API Requests:
To reduce the number of queries requires, the second part of this series describes an alternate approach to retrieving the same data, but minimizes the number of queries required. In the second approach, we use Data Export API filter expressions to return data for multiple dimensions in each request.
This approach dramatically reduces the amount of quota required. In the best case, only 2 queries are required.
Using this second approach, analysts can now run this report to their hearts content. They can do this for different time frames, and different dimensions, comparing organic vs paid traffic, trends of keywords by search engine, even compare traffic by geography.
As we mentioned, we wrote two articles describing both approaches and released the sample code for the application. Let us know the amazing insights you find through using this tool.
Have fun!
By Nick Mihailovski, Analytics API Team
