The Creative Job that Don Draper can’t get

Creative people come in many forms. Writer. Coder. Hacker. Painter. Film-maker. Blogger. Graffiti artist.

Google’s Creative Lab in Sydney is looking for five of Australia’s most creative people to be part of Five, a talent-finding initiative that has been running in NY and London for several years.

You would be playing at the intersection of creativity and technology - so this has to be a driving passion of yours (and we don’t mean just apps). You can see what Five has done elsewhere here, and an example of Creative Lab's local work here.

Even by Google standards, Sydney’s Lab is pretty unconventional, but it is (we hope) an empathetic and collaborative environment - no need for big-guns, rock-stars, or raging-egos. We’re more interested in people with creativity and passion, humility and insight, curiosity and a work ethic. Don Draper, please look elsewhere.

If you are one of those creative geek types and you think this sounds too good to be true then do something about it. It’s an open door. Please push hard.

Posted by Tom Uglow, Creative Lab 


Launching v6.12.0 of the iOS Mobile Ads SDK with iOS 8 Support

Today, we’re happy to announce the launch of Google Mobile Ads SDK v6.12.0 with support for iOS 8. Specifically, it includes the following iOS 8 updates:

  • Less time is spent on the main thread while loading ads
  • Smart Banner ads are displayed correctly in landscape

New Framework Dependencies

Version 6.12.0 also requires that your app link to two additional frameworks:

  • EventKit
  • EventKitUI

If you’re using CocoaPods, simply run pod update to grab the update, and these new frameworks will be automatically linked for you. If you’re not using Cocoapods, the getting started guide has the full list of required frameworks.

See the release notes for a full list of updates. You can grab the latest SDK from the downloads page. If you have any technical questions about the new release, post them on the developer forum. Also follow our Google+ page to keep abreast of the latest developments for the Mobile Ads SDK.

Change to the default conversion optimizer mode for new AdWords Accounts

As announced in February, flexible conversion counting in AdWords now lets you decide how you want to count conversions for each of your accounts. As a follow up to this new feature, when new AdWords accounts are created through the UI or the API after October 1st, 2014, the default conversionOptimizerMode will be MANY_PER_CLICK instead of ONE_PER_CLICK. In addition, we'll change the conversionOptimizerMode to MANY_PER_CLICK on any existing account that is not using bidding strategies impacted by conversions.

Action required
Since the new default of MANY_PER_CLICK lets your conversion-based bidding strategies take full advantage of flexible conversion counting, we recommend keeping the default setting on new accounts. However, if you still want to use ONE_PER_CLICK for new accounts created via ManagedCustomerService, then add a second step in your account creation process that issues a CustomerService.mutate call that sets the conversionOptimizerMode on the Customer.

In addition, if you decide to utilize one of the conversion-based bidding strategies, you'll want to make sure that the conversionOptimizerMode is set to the value you'd prefer. The conversion-based bidding strategies affected by conversionOptimizerMode are: Additional information
If you'd like to learn more about conversion tracking in AdWords, check out the Help Center article on counting conversions. In addition, the remarketing examples folder in each client library contains an AddConversionTracker example that shows how to create an AdWordsConversionTracker via the API.

Still have questions? Feel free to visit us on the AdWords API Forum or our Google+ page.

Support for third-party internationalized email addresses in Google Calendar

As announced recently for Gmail, we are launching support for internationalized email addresses in Google Calendar. This will allow people to use email addresses that contain accented or non-Latin characters to invite guests and share calendars, and perform any other action where email addresses are used by Calendar.

This includes both the domain name (to the right of the @ symbol) and/or the local-part (to the left of the @ symbol), as in 武@メール.グーグル.

Release track:
Rapid release and Scheduled release

For more information:

Note: all launches are applicable to all Google Apps editions unless otherwise noted

whatsnew.googleapps.com
Get these product update alerts by email
Subscribe to the RSS feed of these updates

Change in Apps Script’s DocsListDialog

DocsListDialog is a widget used by only a small fraction of Apps Script projects to provide a Google Drive "file open" dialog in a UI service user interface. In almost all cases, using Google Picker in HTML service is preferable and more secure.

Before September 30, 2014, we require scripts using DocsListDialog to make a small update to improve security.

Specifically, if you use DocsListDialog, you'll need to start calling a new method, setOAuthToken(oAuthToken) before you call showDocsPicker(). The new method sets an OAuth 2.0 token to use when fetching data for the dialog, on behalf of the user whose content should be shown.

So long as the app isn't a web app set to execute as "me" (the developer), you can get the necessary OAuth 2.0 token by calling ScriptApp.getOAuthToken(). The example below shows how to convert an old DocsListDialog implementation to the new model.


Old example

function showDialog() {
var app = UiApp.createApplication();

app.createDocsListDialog()
.addCloseHandler(serverHandler)
.addSelectionHandler(serverHandler)
.showDocsPicker();

SpreadsheetApp.getUi()
.showModalDialog(app,' ');
}

New example

function showDialog() {
var app = UiApp.createApplication();

app.createDocsListDialog()
.addCloseHandler(serverHandler)
.addSelectionHandler(serverHandler)
.setOAuthToken(ScriptApp.getOAuthToken())
.showDocsPicker();

SpreadsheetApp.getUi()
.showModalDialog(app,' ');
}

To ensure your script continues to work properly, be sure to make this change before September 30.

Posted by Dan Lazin, Googler

‘Decorating’ your Python DFP API applications

Python has tons of cool idioms and features that are often overlooked or underutilized. List comprehensions to cut back on the use of unnecessary loops, decorators to wrap functions with annotations, and generator functions are just some that can be applied to working with the DFP API.

In this post, we'll tackle one of our most asked questions using decorators: "Why am I running into CONCURRENT_MODIFICATION or QUOTA_EXCEEDED errors, and how do I avoid this?".

Addressing these errors using decorators

CONCURRENT_MODIFICATION and QUOTA_EXCEEDED errors are similar in nature - the requests you’re making are failing, but not necessarily because the data you’re sending over is bad. In the first case, one of the objects you’re trying to modify is being updated elsewhere, but you likely want to try again after pulling down the same set of objects. You could certainly write code that retries your operations in all of your services for each object, but it may get a bit hard to maintain (especially with duplicated code). A much cleaner implementation would be to use a decorator!

The Python wiki has an entry under the decorators section that shows how a generic decorator might work for retrying a call. With a few modifications, we can tailor this to capture the two types of errors that might arise:

  import time
from functools import wraps

RESPONSES_TO_RETRY = ['CONCURRENT_MODIFICATION', 'QUOTA_EXCEEDED']

def retry(tries=4, delay=3, backoff=2):
''' Decorator that implements an exponential backoff for retrying on errors.

Args:
tries: int number of times to execute the wrapped function before failing
delay: int time to delay in seconds before the FIRST retry
backoff: int multiplier to extend the initial delay by for each retry
'''
def decorated_function_with_retry(func):
@wraps(func)
def function_to_retry(*args, **kwargs):
local_tries, local_delay = tries, delay
while local_tries > 1:
try:
return func(*args, **kwargs)
except Exception, e:
if [response for response in RESPONSES_TO_RETRY
if response in e.fault['faultstring']]:
print '%s, Retrying in %d seconds...' % (str(e),
local_delay)
time.sleep(local_delay)
local_tries -= 1
local_delay *= backoff
return func(*args, **kwargs)
return function_to_retry
return decorated_function_with_retry

Say you were making a call to update line items - with large networks, it’s not unlikely that someone might be editing the line item at the same time. Since you’d want to pull down the most recent copy of the line item any time the update fails, you would want to abstract out the update method to include the getLineItemsByStatement call, e.g.,

  @retry()
def fetch_and_update_line_item(statement):
# call to get the line item in question
response = line_item_service.getLineItemsByStatement(
statement.ToStatement())

updated_line_items = []
if 'results' in response:
for line_item in response['results']:
# Do something with your line items here and add them to
# updated_line_items.

line_item_service.updateLineItems(updated_line_items)

This would effectively allow you to, in the event of the update failing due to concurrent modification, pull down and update a new copy of the line item. Using the default constructor will retry 4 times with 3, 6, and 12 second delays in between.

To wrap things up, decorators are incredibly useful constructs in Python and are useful for the DFP API for several reasons:

  • Your application will be less flaky and less affected by intermittent application issues.
  • You’re less likely to run into quota errors.
  • This would prevent overwriting other changes (in the case of retrying failed calls on concurrent modification errors).
  • You could also use something like this to log errors on your end, which could help reveal poor code health or inefficient processes.

Make use of decorators in your code, and you'll soon be sitting pretty.

Creating value from data

At Google, we like to experiment. Today we are experimenting with a guest blogpost from the UK innovation charity Nesta. Although we had no involvement in this study of how companies best can benefit from the information age, we think it offers a valuable contribution on Europe’s skills debate and wanted to share the conclusions.

We are living in the middle of a data explosion – a rich opportunity, but also a much
misunderstood one. In previous research, we showed that businesses which analyse their data intensively become 10% more productive than their average competitor. By contrast, collecting data on its own has little impact on performance.

Our newly published research, ModelWorkers, the first report in a project in collaboration with Creative Skillset and The Royal Statistical Society, looks at the data skills that businesses need to produce these impacts.

Model Workers
Interviews with 45 experts in UK data-driven companies reveal that all types of companies are converging into the ‘big data’ space. from pharmaceutical giants to small retailers and manufacturers. All are all experimenting with bigger, messier and faster data, and catching up with leading players in software, advertising, games and finance.

As a result, everyone is looking for the same ‘perfect data analyst’, or ‘data scientist’: a creative worker with analytical, coding and business skills, team working and charisma. These people are hard to find. Four out of five of the companies we interviewed say they struggle to find data scientists.

In Model Workers we identify interventions to remove these shortages. They include up-skilling established professionals such as statisticians, programmers and social scientists, developing vocational training in universities and encouraging more crossover between computer science, statistics and business disciplines. We also need to build up communities of data practice, and develop training and professional standards. Policymakers should make it easier for foreign students to work in Europe after completing data analysis courses.

In the longer term we need to improve the teaching of maths at schools, and change false perceptions of data work as boring and dull. Some of the most exciting and creative jobs across the economy today – from developing new games to discovering new drugs – are based on data, and we need to make sure everyone is aware of this crucial trend.

New UI for all Google Drive pickers

We have launched a new UI for all Google Drive pickers--the interface that allows people to select and insert content stored in Google Drive (e.g. Insert files from Drive, Insert Images from Drive, etc). The UI will closely align with the new Google Drive UI, and will move all menu options from vertical tabs on the left side of the picker to horizontal tabs running along the top of the picker.

Release track:
Rapid release and Scheduled release (gradual rollout)

Note: all launches are applicable to all Google Apps editions unless otherwise noted

whatsnew.googleapps.com
Get these product update alerts by email
Subscribe to the RSS feed of these updates

Increased productivity and security for iOS devices with iOS Sync for Google Apps

Today we introduced a new iOS Mobile Device Management (MDM) solution known as iOS Sync for Google Apps, which integrates Google mobile apps with native iOS device management. Users of Gmail, Drive, Docs, Sheets, and Slides on their iPhones and iPads receive all the benefits of Google Apps on iOS, and organizations maintain the security they need.

The advantages of iOS Sync for users and administrators include:

  • Manage Google Apps: Set a policy that prompts employees to enroll their device when they log into Google Apps such as Google Drive and Gmail.
  • Configure WiFi networks: Distribute WiFi passwords and certificates to employees so they can easily connect to trusted networks.
  • Support for existing policies: Manage password requirements, data encryption and camera policies, as well as actions like remotely wiping a device, activation approvals and blocking devices.

In addition, customers who are using our existing Google Sync MDM solution now have the option to disable ActiveSync while continuing to manage iOS devices in their organization.

iOS Sync (which works with iOS 7 and iOS 8, and the upcoming iPhone 6 and 6+) is now available for Google Apps for Work, Google Apps for Education and Google Apps for Government. Admins should access the Device management function in the Admin console to establish an Apple push notification certificate and begin enabling these new functions.

Release track:
Rapid release and Scheduled release

For more information:
Help Center


Note: all launches are applicable to all Google Apps editions unless otherwise noted

whatsnew.googleapps.com
Get these product update alerts by email
Subscribe to the RSS feed of these updates

Enhanced Google Analytics Audience Capabilities Come to Apps

Good news for mobile app developers: Audience Demographics and Interests Reporting and Remarketing are now available for apps in Google Analytics.  Just one of the improvements for audience segmentation and remarketing we're announcing today, these changes should make it even easier for all our advertisers to reach their high-value customer segments. 

In-App Audience Demographics Reporting and Remarketing

Good analytics are especially important to app developers. At Google I/O, Hovhannes Avoyan, the CEO and Founder of PicsArt , had this to say: 

“We need analytics to help us understand who our users are, how they interact with our application, how our application performs. With all that knowledge, we want to apply different monetization strategies to different kinds of users.” 

Now developers can see just how different user segments engage and monetize with In-App Audience Demographics Reporting

And it's more than just data. Analysts and developers can blend audience demographic and behavior data into detailed audience lists to be targeted with in app remarketing campaigns. In short, all the great remarketing capabilities for Google Analytics users on the web are now available for apps as well.

New In-App Audience Demographics Reporting

Segmentation and remarketing lists get an upgrade
Creating remarketing lists for apps and web is now even easier with recent upgrades to both segmentation and audience building. A streamlined creation flow for creating audiences allows users to go from segment to audience within clicks (plus a few bonus admin features like list renaming and automatic list sizing).

New Audience Builder Experience, now supporting App lists
If you prefer to stand on the shoulders of remarketing giants, Analytics power users have developed and shared audience definitions that import via template links or from the solutions gallery. This simplifies things dramatically for new users. A process that could be complicated and time-consuming can now be done with 6 clicks in under 1 minute. Give it a try: import our Engagement Pack of Core Remarketing Lists.

On the segmentation side, users have told us they wanted segments to be more discoverable, easier to manage, and more intuitive to build. We've been listening, and have made interface improvements, adding a simple “Add Segment” button within reports, a new segment-selection interface, hover-over segment definitions, and a 1-click action dialogue to Share, Edit, Copy, Remove, or Remarket to a segment. 

New Segmentation Experience: fewer errors for better analysis

Measure remarketing performance with the new Display Targeting report
Once you’ve found a segment, created an audience, and activated your remarketing campaign, close the loop by measuring the performance of those audiences across all remarketing campaigns . Enter the new Adwords Display Targeting report in the Acquisition section to see all your active remarketing lists, along with impressions, spend, behavior, and conversion rates under the “Interests and Remarketing” tab.

New Remarketing List Performance in Display Targeting Report
You can learn how to update your SDK to enable these features in our Help Center or get started now by creating some remarketing lists. We hope that these improvements make your audience segmentation and remarketing-- in apps and on the web-- more intuitive and more effective. We’d love to hear from you! Please leave questions or feedback in the comments, and stay tuned for more audience-related improvements. 


Posted by Dan Stone, Product Manager, and Kanu Singhal, Technical Lead from the Google Analytics Audience Team