Friday, October 1, 2010

[Gd] Python Library for Google Analytics Management API

| More

Google Code Blog: Python Library for Google Analytics Management API

It’s been only 7 weeks since we’ve launched the Google Analytics Management API and we’ve heard a lot of great feedback. Thanks!

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
URL: http://googlecode.blogspot.com/2010/10/python-library-for-google-analytics.html

[Gd] An Ingredients List for Testing - Part Five

| More

Google Testing Blog: An Ingredients List for Testing - Part Five

By James Whittaker

One of the problems with testing is that testers don’t possess a common vocabulary for the techniques they apply to actually perform testing. Some testers talk about partitioning the input domain and others gravitate toward boundary values but in general there are no catalogues of testing techniques that would allow a conversation such as: run the Landmark Tour on the bookmark sync feature of Chrome. Everyone understands that Chrome is a web browser and that it allows users to sync bookmarks, but how does one test it with a Landmark Tour?

“Tours” are the metaphor we use at Google to name and describe testing techniques. Every tour encapsulates past testing knowledge, i.e., stuff that worked for other testers on other projects, and can be reused and improved upon. Over time testers get a feel for which tours apply to what type of functionality. It’s a way to identify and store tribal knowledge of the overall team. That's the fifth ingredient: test guidance.
URL: http://googletesting.blogspot.com/2010/10/ingredients-list-for-testing-part-five.html

[Gd] App Engine conference appearances this Fall

| More

Google App Engine Blog: App Engine conference appearances this Fall


It's conference season, and we're going around the world again! This fall, Google team members will be speaking about App Engine at events in more than 10 countries! In addition to the regular conference circuit, Google is also hosting Developer Days and DevFests in a variety of locations to bring not only App Engine but a bunch of Google technologies directly to you!




Fall 2010:




We look forward to meeting you at (at least) one of these events!


Posted by Wesley Chun, Google App Engine team

URL: http://googleappengine.blogspot.com/2010/09/app-engine-conference-appearances-this_1041.html

[Gd] [Libraries][Update] WebFont updated to 1.0.12

| More

Google AJAX API Alerts: [Libraries][Update] WebFont updated to 1.0.12

WebFont has been updated to 1.0.12
URL: http://ajax-api-alerts.blogspot.com/2010/10/librariesupdate-webfont-updated-to-1012.html

[Gd] Dev Channel Update

| More

Google Chrome Releases: Dev Channel Update

The Dev channel has been updated to 7.0.536.2 for Windows, Mac, Linux and Chrome Frame

All
  • Fixed saving passwords containing non-ASCII characters (Issue 54065).
  • Accelerated compositing and support for 3D CSS transforms enabled by default (Issue 54469)
  • WebGL support enabled by default (Issue 54469)
  • Regression fix: keep the download shelf visible when multiple sites are saved. (Issue 54149)
  • Add a lab for the Page Info Bubble for Windows and Linux; Mac coming shortly.
Windows
  • Fixed a problem with context menus where the presence of extension-added items prevented keyboard accelerators from working. (Issue: 54497)
Mac
  • More keyboard shortcuts for Tab Overview.(Issue 52834)
  • Add sqlite and javascript memory columns to task manager
Linux
  • Add javascript memory column to task manager
  • Make compile-time dependency on gnome-keyring optional
  • Resolved problems accessing FTP sites (Issue 54395)
Known Issues
  • Problems downloading some attachments in hotmail: Issue 57334
More details about additional changes are available in the log of all revisions.

You can find out about getting on the Dev channel here: http://dev.chromium.org/getting-involved/dev-channel.



If you find new issues, please let us know by filing a bug at http://code.google.com/p/chromium/issues/entry

Karen Grunberg
Google Chrome
URL: http://googlechromereleases.blogspot.com/2010/09/dev-channel-update_30.html

[Gd] WebP, a new image format for the Web

| More

Chromium Blog: WebP, a new image format for the Web

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.

Posted by Richard Rabbat, Product Manager
URL: http://blog.chromium.org/2010/09/webp-new-image-format-for-web.html

Thursday, September 30, 2010

[Gd] New JSON format for the Google Calendar API

| More

Google Apps Developer Blog: New JSON format for the Google Calendar API

It’s been almost four years since the Calendar API has supported the JSON format. However, our existing JSON format isn’t perfect. It is very much an automatic translation from our Atom format and as a result it is very wordy and lacks the elegance that a native JSON dialect would offer. It also supports only read operations.

We have made our new JSON implementation cleaner, simpler and closer to what you would expect from JSON. For example, the long XML namespace prefixes are no more, and we've removed many pieces of metadata specific to Atom documents that come across as noise in JSON, making it easier to parse.

We’re calling this new format JSON-C. One of the major advantages of the JSON-C format, besides being read-write and more readable than the former JSON implementation, is that it is more compact than the Atom based format. Below is an example:

Creating an event using JSON-C

POST /calendar/feeds/default/private/full HTTP/1.1
Host: www.google.com
Authorization: ...
Content-Type: application/json
GData-Version: 2.0
Content-Length: 233

{
"data": {
"title": "Tennis with Beth",
"details": "Meet for a quick lesson.",
"transparency": "opaque",
"status": "confirmed",
"location": "Rolling Lawn Courts",
"when": [
{
"start": "2010-04-17T15:00:00.000Z",
"end": "2010-04-17T17:00:00.000Z"
}
]
}
}

Creating an event using Atom

POST /calendar/feeds/default/private/full HTTP/1.1
Host: www.google.com
Authorization: ...
Content-Type: application/atom+xml
GData-Version: 2.0
Content-Length: 571

<entry xmlns='http://www.w3.org/2005/Atom' xmlns:gd='http://schemas.google.com/g/2005'>
<category scheme='http://schemas.google.com/g/2005#kind'
term='http://schemas.google.com/g/2005#event'/>
<title type='text'>Tennis with Beth</title>
<content type='text'>Meet for a quick lesson.</content>
<gd:transparency value='http://schemas.google.com/g/2005#event.opaque'/>
<gd:eventStatus value='http://schemas.google.com/g/2005#event.confirmed'/>
<gd:where valueString='Rolling Lawn Courts'/>
<gd:when startTime='2006-04-17T15:00:00.000Z' endTime='2006-04-17T17:00:00.000Z'/>
</entry>
In the example above the body of the request is 59% smaller in JSON-C than in Atom. If you use gzip compression, the saving is still 37% of the size of the Atom body. This could make a big difference in mobile or other bandwidth-constrained environments.

To retrieve events or other data in the JSON-C format, you have to specify the ‘alt’ URL parameter with the value ‘jsonc’ as shown below:

Requesting an event in JSON-C

GET /calendar/feeds/default/private/full/1234567890?alt=jsonc HTTP/1.1
Host: www.google.com
Authorization: ...
GData-Version: 2.0

Response

HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
...
{
"apiVersion": "2.3",
"data": {
"title": "Tennis with Beth",
"details": "Meet for a quick lesson.",
"location": "Rolling Lawn Courts",
...
}
}
For the request above, the body of the response is 53% smaller in JSON-C than in Atom - 30% smaller when using gzip compression.

To learn more about our new JSON-C format please read our updated Developer’s Guide. Have fun!

Posted by Nicolas Garnier, Google Calendar API Team

Want to weigh in on this topic? Discuss on Buzz

URL: http://googleappsdeveloper.blogspot.com/2010/09/new-json-format-for-google-calendar-api.html

[Gd] WebP, a new image format for the Web

| More

Google Code Blog: 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 Team
URL: http://googlecode.blogspot.com/2010/09/webp-new-image-format-for-web.html

[Gd] More Countries, More sellers, More buyers

| More

Android Developers Blog: More Countries, More sellers, More buyers

[This post is by Eric Chu, Android Developer Ecosystem. — Tim Bray]

Since we launched Android and Android Market, we have seen the population of Android users and devices expand into many countries. This widespread adoption has brought with it growing interest in Android Market’s support for the buying and selling of paid applications in these additional countries.

We have been hard at work on this and it is my pleasure to announce that effective today, developers from 20 more countries can now sell paid apps on Android Market. Additionally, over the next 2 weeks, users in 18 additional countries will be able to purchase paid apps from Android Market.

Support for paid application sales is now expanded to developers in 29 countries, with today’s additions of Argentina, Australia, Belgium, Brazil, Canada, Denmark, Finland, Hong Kong, Ireland, Israel, Mexico, New Zealand, Norway, Portugal, Russia, Singapore, South Korea, Sweden, Switzerland and Taiwan.

In addition, Android Market users from 32 countries will be able to buy apps, with the addition of Argentina, Belgium, Brazil, Czech Republic, Denmark, Finland, Hong Kong, India, Ireland, Israel, Mexico, Norway, Poland, Portugal, Russia, Singapore, Sweden, and Taiwan. No action is necessary if you have targeted your paid apps to be available to “All Locations” and would like to launch in these additional countries. If you have not selected “All Locations” and would like to target these additional countries, or if you have selected “All Locations” and do not want to launch your apps in these additional buyer countries, please visit the Android Market publisher site to make the necessary adjustments.

We remain committed to continuing to improve the buyer and seller experiences on Android Market. Among other initiatives, we look forward to bringing the Android Market paid apps ecosystem to even more countries in the coming months. Please stay tuned.

URL: http://android-developers.blogspot.com/2010/09/more-countries-more-sellers-more-buyers.html

[Gd] Beta Channel Update

| More

Google Chrome Releases: Beta Channel Update

The Beta channel has been updated to 7.0.517.24 for Windows, Mac, Linux and Chrome Frame.

If you find new issues, please let us know by filing a bug at http://code.google.com/p/chromium/issues/entry

Anthony Laforge
Google Chrome
URL: http://googlechromereleases.blogspot.com/2010/09/beta-channel-update.html

[Gd] More features added to version v201008

| More

AdWords API Blog: More features added to version v201008

Last week, we announced version v201008 of the AdWords API. Today, we’re releasing more new features as part of this version that we think you’ll be excited to start using.

Here’s what we’ve added:
  • Remarketing: Reach customers who have shown an interest in your product or service by visiting your site, and show them relevant ads across the Google Display Network.  Note that with this release, you can create new remarketing lists only by generating new remarketing tags.  We’ll add support for creating lists with existing remarketing and conversion tags in the next version of the API. Learn more about remarketing
  • My Client Center (MCC) features: Retrieve your MCC account hierarchy with the new ServicedAccountService
  • AlertService: Retrieve alerts for the AdWords accounts under your MCC account
  • Change History (beta): Use the new CustomerSyncService beta to get a list of entities that have changed over a specific period of time
You might have noticed that we’re adding support for new features faster than in the past. The new AdWords API architecture -- starting with version v200909 -- enables us to add features much more quickly. As we transition the remaining functionality of the old architecture (v13) to the new architecture, you can expect to see more frequent releases, and features available in the AdWords interface will be available in the API much sooner.

Please check out these new features and as always, share your feedback on the developer forum.

Posted by Jason Shafton, Product Marketing Manager
URL: http://adwordsapi.blogspot.com/2010/09/more-features-added-to-version-v201008.html

Wednesday, September 29, 2010

[Gd] Reflections on G-Kenya

| More

Android Developers Blog: Reflections on G-Kenya

[This post is by Reto Meier AKA @retomeier, who wrote the book on Android App development. — Tim Bray]

Recently I visited Kenya for the three-day G-Kenya event. I was there for two reasons:

  • To talk about Android and the emerging mobile opportunities for African developers.

  • To ask questions and find out more about the reality of mobiles and writing code from the people there.

Of the countries I’ve visited to talk about Android, nowhere have people had such a close connection to their mobile phones as in Africa. While most Kenyans own feature phones, those mobiles are already used as much more than simple phones. Mobile payments are already common, and cheap data plans mean that many people access the Internet exclusively through mobile handsets.

There were two Android announcements while I was in town: a new low-cost Android handset (the Huawei U8220), and Android Market access for Kenyans. I can’t wait to see the kind of apps that come from developers who live in an environment where mobile is so pervasive.

Day 1: Students

G-Kenya was set within the beautiful campus of the Strathmore Business School, so it was fitting that day one was addressed to students.

Of the three groups, the students where the most enthusiastic about Android. This was likely influenced by their confidence that by the time they graduate, modern smartphones in Africa will have become the norm.

I love talking to student developers — without the commercial pressures of finding customers or a monetization model — they're free to innovate on whatever technology platforms they think are interesting.

Day 2: Developers

Modern smartphones are not yet prevalent in Africa, so it wasn’t surprising that many of the developers are currently focusing on feature phones. That said, it was generally acknowledged that it was a question of when rather than if smartphones would come to dominate. The trick will be picking the right time to invest in Android so that they're ready to take advantage.

Plenty of developers believe that time is right now. It was a pleasure to meet the guys behind Ushahidi, creators of an Android app created to report and record incidents during the 2008 election violence. Since their launch they’ve expanded to offer a global platform for crowd-sourced news where timeliness is critical.

I love opportunity the Android Market delivers to developers like the idea of developers like Ushahidi and Little Fluffy Toys (of London Cycle Hire fame). An app the solves a problem for your local community can easily be expanded to offer solutions to similar problems across the world.

Developer focus in Kenya seemed to follow similar lines:

  • Create products and services targeted at local communities (such as the developers creating a distributed system to help health-care workers record medical information in the field.)

  • Build robust cloud-based services that provide access to users from any mobile platform.

  • Expand from feature phones to Android to incorporate features like GPS positioning, maps, and recording video and audio.

Day 3: Entrepreneurs and Marketers

No one was surprised to see a lot of the developers from the previous day return for entrepreneur day, and the apparent lack of Android questions from Day 2 was more than made up for on day 3; the “AppEngine Challenge” on Day 2 fielded a record 30 entries, so it seems everyone was working on their entries rather than asking questions!

I didn’t speak on Day 3, but spent all day fielding questions from eager mobile developers hoping to catch the Android wave as early innovators and first movers. That included a team who were working to provide real-time public transit tracking of Matatu via GPS and Android devices.

Reflections

It’s an exciting time to be a developer in Kenya. I regularly asked developers how long they thought it would take for Android devices to become common place. Many suggested if I came back this time next year I'd see a flood of Android devices. Even the more pessimistic predicted no more than 3 years.

As I traveled back towards Jomo Kenyatta International, listening to the radio offering a free Sony Ericsson X10 Mini to one lucky caller, the future didn’t seem very far away.

URL: http://android-developers.blogspot.com/2010/09/reflections-on-g-kenya_28.html

[Gd] Dev Channel Update

| More

Google Chrome Releases: Dev Channel Update

The Dev channel has been updated to 7.0.517.24 for Windows, Mac, Linux and Chrome Frame.

This release focused on resolving minor bug fixes or crashes. More details about additional changes are available in the svn log of all revisions.

You can find out about getting on the Dev channel here: http://dev.chromium.org/getting-involved/dev-channel.

If you find new issues, please let us know by filing a bug at http://code.google.com/p/chromium/issues/entry

Anthony Laforge
Google Chrome
URL: http://googlechromereleases.blogspot.com/2010/09/dev-channel-update_28.html

[Gd] New 3-Legged OAuth support for Google Apps Administrative APIs

| More

Google Apps Developer Blog: New 3-Legged OAuth support for Google Apps Administrative APIs

Editor's Note: This post was originally published on the Google Enterprise Blog. We decided to re-post it here as we think it'll be interesting to readers of the Google Apps Developer 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:

1. Provisioning API
2. Email Migration API
3. Admin Settings API
4. Calendar Resource API
5. Email Settings API
6. 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.

Posted by Ankur Jain, Software Engineer

Want to weigh in on this topic? Discuss on Buzz

URL: http://googleappsdeveloper.blogspot.com/2010/09/new-3-legged-oauth-support-for-google.html

Tuesday, September 28, 2010

[Gd] Discover v201008: ExperimentService

| More

AdWords API Blog: Discover v201008: ExperimentService

Access to manage AdWords Campaign Experiments (ACE) has been introduced through the ExperimentService as part of the v201008 version of the AdWords API. Now you are able to configure split test experiments for a campaign through the API. A split test experiment lets you more precisely measure the impact of changes to keywords, bids, ad groups, and placements before you apply them to all auctions. This reduces guesswork and lowers the potential risk. For common usage scenarios and more details, check out this blog post and the AdWords Help Center.

Lets get hands on with the code and see how to use ACE via the AdWords API. The following code snippets are available as part of the Perl client library.

Creating your experiment

You start by defining your experiment, which includes creating the experiment, attaching it to a campaign, setting its start time, end time, and percentage split. You then send an add operation through a service mutate call.

# Create experiment.
my $experiment = Google::Ads::AdWords::v201008::Experiment->new({
campaignId => $campaign_id,
name => "Interplanetary Experiment #" . POSIX::strftime("%s", localtime),
queryPercentage => 10,
startDateTime => POSIX::strftime("%Y%m%d %H%M%S", localtime)
});

# Create operation.
my $experiment_operation =
Google::Ads::AdWords::v201008::ExperimentOperation->new({
operator => "ADD",
operand => $experiment
});

# Add experiment.
my $result = $client->ExperimentService()->mutate({
operations => [$experiment_operation]
});

# Valuable for ValueTrack usage
my $experiment_id = $experiments->get_entries()->[0]->get_id();
my $control_id = $experiments->get_entries()->[0]->get_controlId();

In the last few lines of code, experiment id and control id are extracted from the just-created experiment. These values are important for use with the ValueTrack tag used for campaign tracking and analytics since they uniquely identify which split each click is coming from. For details on using the ValueTrack tag with ACE please consult the AdWords Help Center.

Defining your experimental changes

Now lets apply some bid changes to an existing ad group and assign it to both the experimental and the control splits by using the flag named experimentDeltaStatus. Applying changes to other parts of your campaign are very similar to the following example, refer to the AdGroupExperimentData and the BiddableAdGroupCriterionExperimentData objects in documentation for more information about the experimental changes that can be applied to ad groups and criteria respectively. It is also worth to mention that new ad groups and new criteria can be added to your campaign experiment executing add operations and setting the experimentData to your new objects. You can also check a variety of experiment examples which we included in client libraries.

# Set ad group for the experiment.
my $ad_group = Google::Ads::AdWords::v201008::AdGroup->new({
id => $ad_group_id
});

# Create experiment bid multiplier rule that will modify ad group bid for the
# experiment.
my $bid_multiplier =
Google::Ads::AdWords::v201008::ManualCPCAdGroupExperimentBidMultipliers->
new({
maxCpcMultiplier => Google::Ads::AdWords::v201008::BidMultiplier->
new({
multiplier => 1.5
})
});

# Set experiment data to the ad group.
my $experiment_data =
Google::Ads::AdWords::v201008::AdGroupExperimentData->new({
experimentId => $experiment_id,
experimentDeltaStatus => "MODIFIED",
experimentBidMultipliers => $bid_multiplier
});
$ad_group->set_experimentData($experiment_data);

# Create operation.
my $operation = Google::Ads::AdWords::v201008::AdGroupOperation->new({
operand => $ad_group,
operator => "SET"
});

# Update ad group.
$experiments = $client->AdGroupService()->mutate({
operations => [$operation]
});

Deciding to promote or discard your experiment

After you’ve assessed the performance impact of the experimental changes, you can promote or delete the experiment. The following example shows you how to promote your experiment, effectively applying all experimental changes to 100% of your campaign traffic.

# Set experiment's status to PROMOTED.
my $experiment = Google::Ads::AdWords::v201008::Experiment->new({
id => $experiment_id,
status => "PROMOTED"
});

# Create operation.
my $experiment_operation =
Google::Ads::AdWords::v201008::ExperimentOperation->new({
operator => "SET",
operand => $experiment
});

# Update experiment.
my $result = $client->ExperimentService()->mutate({
operations => [$experiment_operation]
});

Promoting an experiment applies all changes in the experimental split to your campaign. All control only elements become paused. Everything else running in both control and experiment splits continues running as normal.

If you don’t like the performance impact you see with the experiment, you can delete it by sending a mutate operation with the experiment status set as DELETED. Deleting an experiment will effectively discard any changes and additions assigned to the experimental split.

Like other products in beta, ACE has some core features still undergoing active development. Reporting is one area that’s getting special attention. Currently, getting performance data segmented by experiment and control splits is not supported through the AdWords API. Until it’s available, you can pull click and conversion data for each split from a tracking system using ValueTrack tags, as described above. Alternatively, experiments can be implemented so that every ad group is either control only or experiment only. You can then aggregate results for each campaign split using each ad group’s experimentDeltaStatus and check for statistically significant differences. A final interim solution is for users to log into the AdWords UI to check segmented performance stats.

If you have any questions about how to use this service we’ll be happy to address them on the forum. Have fun experimenting.

Best,
- David Torres, AdWords API Team
URL: http://adwordsapi.blogspot.com/2010/09/discover-v201008-experimentservice.html

[Gd] SEO Starter Guide updated

| More

Official Google Webmaster Central Blog: SEO Starter Guide updated

Webmaster Level: Beginner

About two years ago we published our first SEO Starter Guide, which we have since translated into 40 languages. Today, we’re very happy to share with you the new version of the guide with more content and examples.

Here’s what’s new:
  • Glossary to define terms throughout the guide
  • More example images to help you understand the content
  • Ways to optimize your site for mobile devices
  • Clearer wording for better readability
You may remember getting to see what Googlebot looks like in our “First date with Googlebot” post. In this version of the SEO Starter Guide, Googlebot is back to provide you with some more SEO tips.

You can download the new version here [PDF]. Entertain and impress your friends by leaving a printed copy on your coffee table.

Googlebot

Posted by Brandon Falls and Michael Wyszomierski, Search Quality Team
URL: http://googlewebmastercentral.blogspot.com/2010/09/seo-starter-guide-updated.html

Monday, September 27, 2010

[Gd] Update! Speakers & Talks for GTAC 2010We are thrilled to

| More

Google Testing Blog: Update! Speakers & Talks for GTAC 2010We are thrilled to

Update! Speakers & Talks for GTAC 2010

We are thrilled to announce the speakers and talks for the 5th Google Test Automation Conference (GTAC). This year’s event will have a total of 11 talks. This includes the three keynotes that we announces earlier and eight other talks. These talks span the three sub-categories of Testing, Testability and Test Automation which are an integral part of this year’s theme “Test to Testability”.

As we had shared earlier, for this year’s GTAC we used a new process of letting the selected attendees vote on the talks they wanted be a part of GTAC. The committee tallied the votes and ensures a healthy distribution between topics and participants from across the globe and relevance to our theme. We received over 80 submissions and have an acceptance rate of about 10%. Our thanks to everyone who submitted a proposal and all the attendees who voted to make this a successful process.

Here is the list of talks. More details can be found at the select talks page on the GTAC site.

Category: Testing
  • Early Test Feedback by Test Prioritisation (Shin Yoo, University College London & Robert Nilsson, Google Inc.)
  • Crowd-source testing, Mozilla community style (Matt Evans, Mozilla)
  • Measuring and Monitoring Experience in Interactive Streaming Multimedia Web Applications (Shreeshankar Chatterjee, Adobe Systems India)
Category: Testability
  • Flexible Design? Testable Design? You Don’t Have To Choose! (Russ Rufer and Tracy Bialik, Google Inc.)
  • Git Bisect and Testing (Christian Couder)
  • Lessons Learned from Testability Failures (Esteban Manchado Velazquez, Opera Software ASA)
Category: Test Automation
  • The Future of Front-End Testing (Greg Dennis and Simon Stewart, Google Inc.)
  • Twist, a next generation functional testing tool for building and evolving test suites (Vivek Prahlad, ThoughtWorks)
For further information on the conference please visit its webpage at http://www.gtac.biz.

Sujay Sahni for the GTAC 2010 Committee
URL: http://googletesting.blogspot.com/2010/09/update-speakers-talks-for-gtac-2010-we.html

[Gd] New OAuth support for Google Apps APIs

| More

Google Code Blog: 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:

  1. Provisioning API
  2. Email Migration API
  3. Admin Settings API
  4. Calendar Resource API
  5. Email Settings API
  6. 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 Team
URL: http://googlecode.blogspot.com/2010/09/new-oauth-support-for-google-apps-apis.html

[Gd] Extensions, Packaged Apps, and Hosted Apps in the Chrome Web Store

| More

Chromium Blog: Extensions, Packaged Apps, and Hosted Apps in the Chrome Web Store

We’re excited to see developer interest in the upcoming Chrome Web Store, particularly around installable web apps. Many of you have also asked about how extensions and apps differ, and how apps can leverage extension behavior.

To answer these questions and more, we’ve published a new article to help you decide between building extensions and building apps. In the article, you’ll read about how apps and extensions vary from the user’s perspective and how they compare in their internal architecture and capabilities. We’ve also included a deep dive on the concept of packaged apps as a blend of app and extension behaviour.

We hope this article helps clarify the distinction between pure extensions, packaged apps, and hosted apps so that you can choose the approach that makes the most sense for your work and your users. To learn more about installable webs apps and ask questions to our team, check out our discussion group. We look forward to getting your feedback!

Posted by Michael Mahemoff, Developer Advocate
URL: http://blog.chromium.org/2010/09/extensions-packaged-apps-and-hosted.html