Tuesday, July 3, 2012

Another great year for App Engine at Google I/O




App Engine engineers talk to developers in the cloud platform sandbox at Google I/O

The dust has settled on another fantastic Google I/O. The skydiving demos and delicious jelly beans were great, but we had the most fun talking to developers and hearing about their experiences using Google’s technology. Here are the highlights of the App Engine talks from this year.




We’ll be taking a short break from our regularly scheduled release cycle in July, but we’ll get back on our usual drumbeat of monthly releases in August.


- Posted by the Google App Engine Team

Friday, June 29, 2012

Fab Friday went to I/O

Author Photo Wow, what an amazing week at Google I/O. First and foremost, I really enjoyed meeting many of you, the developers who continue to build great maps, who push the boundaries of what is possible, and who push us to grow and improve our mapping APIs. I am always pleased and amazed at the work you do.



We’re all heading home, tired from the week. We’ll do a more complete wrap-up next week, but I wanted to give you a brief taste before then.



We had a LOT of Google Maps going on this year, with ten sessions on the Google Maps track, the Maps for Good session on the Tech Talk track, and two codelabs. Too many to name them all here, but I wanted to highlight a few that you might have missed. I want to thank all the speakers, the organizers, and the TAs in our codelabs as well.



We also had a bunch of new features launch, including Symbols and Heatmaps for data visualization, a number of enhancements to Styled Maps, and the heavily requested addition of public transit to the Maps API.



The video for every session is being posted to the Google Developer Channel on YouTube, and embedded in the session page on the Google I/O site. All sessions for day one are now available, with the remainder to be added over the next few days.



Since it’s my post, I’ll end with Enterprise Geospatial in the Cloud with myself and Sean Maday. We published our slides this morning.







On a personal note, I’ll be taking the month of July off. I’ll miss you all while I’m enjoying sunny Italy. Have a great summer!




AdWords Location Targets will start PHASING_OUT


Location criteria, first introduced in v201109, are undergoing some changes for the v201206 release. This blog post explains these changes and what they mean for your software.






PHASING_OUT obsolete Location criteria




The Location criteria object has a new field, targetingStatus, which can be one of ACTIVE, OBSOLETE and PHASING_OUT.




  • ACTIVE Locations can be targeted as normal.

  • OBSOLETE Location targets have been retired and cannot be targeted.

  • PHASING_OUT Locations will shortly become obsolete and should not be targeted.


Locations can be phased out for a number of reasons: the location may be re-structured into smaller (or larger areas), geo-political changes, etc. The AdWords UI reflects these changes and now the AdWords API will make these changes visible to developers. We will publish a blog post 4 weeks in advance of a location moving to PHASING_OUT.





What this means for your software




As of the launch of v201206, Location criteria that are PHASING_OUT will still be accepted. Starting 4 weeks later (week of 7/23), adding these targets will cause a CriterionError.Reason.CANNOT_TARGET_CRITERION error message. Please make sure before adding a Location target that it is ACTIVE. Choose a different target if it is labeled OBSOLETE or PHASING_OUT.





Soon to PHASE_OUT




Check out this help center article to learn which specific locations will be removed after July 23rd. The article also provides more detail about the phasing-out process in general.



In addition, we will introduce two new separate targets, one for Serbia and one for Montenegro in the coming weeks. These new targets will replace the current single Serbia Montenegro target, and the targeting status of Serbia Montenegro will change to PHASING_OUT sometime after July 27th.



We have documented this new status field in our downloadable documentation. The LocationCriterionService and CampaignCriterionService will also populate this field. Please update your code to check this field or your application may break.



If you have any questions, please post on the forum or attend one of the AdWords API Office Hours Hangouts.




Data At Your Fingertips: Announcing The Google Analytics App For Android

We are pleased to announce the launch of Google Analytics App for Android phones!





With the Google Analytics App, you can access the same accounts and profiles you see when you open Analytics from a desktop browser, but you’ll see reports that are optimized for your phone. 





Swipe through these reports to see the essential data about your websites and apps anywhere, anytime:


  • Real-Time: See the number of visitors you currently have and a list of the pages (for websites) or screens (for apps) that are currently popular.

  • Dashboard: Monitor the KPIs and user metrics you care about the most. By default, you’ll see your Daily Unique Visitors and your Goal Conversion Rate, but you can customize the dashboard to change which reports, metrics, or segments you see.  

  • Automatic and Customized Alerts: Google Analytics detects statistical anomalies in your data and can send you an alert when something unusual happens. See either automatic alerts, or customize your settings to send alerts based on your own benchmarks. 











Screenshot: The Realtime Report













Screenshot: The Dashboard





Visit Google Play to download and install the app to keep up with your data anytime, anywhere.





Peng Li, on behalf of the GA Mobile App team





AdWords API v201206 launch - including new Flexible reach targeting settings on the Google Display Network


We’re pleased to announce the launch of AdWords API v201206, which includes new ad group level Flexible reach targeting settings on the Google Display Network, a new query language to retrieve items more flexibly, new report types, and changes to ad scheduling and other services. Below we’ve highlighted some of the new features available to all users. A complete list of changes is available in the release notes.




v201206 highlights:




  • CampaignService and AdGroupService changes for the adgroup override/restrict targeting setting migration - The new Flexible reach setting in AdWords enables advertisers to fine-tune where ads show by choosing settings at the ad group level instead of the campaign level. Once you choose Flexible reach for the campaign, you cannot revert back to your previous setting, and will manage targets and bids at the individual ad group level. 

  • New services for obtaining customer information - we’re introducing the new ManagedCustomerService and CustomerService in v201206, v201109_1 and v201109. These services will be replacing ServicedAccountService and CreateAccountService, starting with v201206. 

  • New reports - We’re introducing a new CLICK_PERFORMANCE_REPORT which provides information on each click, as well as REACH_FREQUENCY reports at the Account, AdGroup and Campaign levels. 

  • AWQL - The AdWords Query Language providing SQL-like syntax queries is now available on some services including Ad Hoc Reporting. 

  • Other changes - AdSchedule targeting has been moved to CampaignCriterionService. The CampaignTargetService is now sunset. 




With the release of v201206, the following versions and services will be deprecated:




  • v13 AccountService - We will sunset this version and service on August 20, 2012 

  • v201109 and v201109_1 - We will sunset these versions on October 26, 2012 




As with every new version of the AdWords API, we encourage you to review the resources in the release notes. If you have any questions please post on the forum or attend one of the AdWords API Office Hours Hangouts.



- The AdWords API Team

Measuring a Mobile World: Introducing Mobile App Analytics

Mobile is changing the way that people communicate, work and play, and much of the growing adoption and innovation we're seeing in the industry is driven by mobile apps. There are already more than 600,000 mobile apps on Google Play alone, and we expect to see continued momentum throughout the industry. Mobile is also becoming front and center for marketers and businesses. As more of them understand the value of mobile apps, sophisticated measurement tools are becoming core to how marketers and app developers invest, analyze and market their apps. 





That’s why today we’re announcing a new set of reports in beta called Mobile App Analytics that help marketers and developers better measure their mobile apps. The reports are tailored for mobile app developers and marketers, speaking the language that matters to them. They are designed to measure the entire mobile customer journey - from discovery to download to engagement. This enables the creation of app experiences that are more useful and engaging through data-driven decisions at each stage of the app lifecycle:


  1. Acquisition and user metrics such as downloads and new users

  2. Engagement metrics such as retention, crashes and conversions

  3. Outcome metrics such as app sales and in-app purchases












Layout of new Mobile App Analytics reports





Here’s an outline of the new Mobile App Analytics along with screen grabs of selected reports:










Acquisition and User Analysis Reports - discover your best sources of new users




New and active users - measure the number of new and active users who launch your app everyday and analyze your most valuable segments. 










Google Play traffic sources - understand which traffic sources are driving new users and in-app conversions through Google Play to fine-tune your marketing initiatives. 





App versions - keep track of the distribution of active users over the older and newer versions of your app so you know what to support.





Device overview - check out the top mobile devices and OS versions that your app runs on, and optimize the experience for each device.













Engagement Reports - see how users interact with your app




User behavior - assess how loyal your users are, how frequently they use the app, and the engagement level of each loyalty group.




Engagement flow - visually see the screens, actions and paths users take to move throughout your application in order to optimize usage.





App crashes - see trends in crashes and exceptions that will help you troubleshoot problems on certain devices and operating systems.













Outcome / Business Impact Reports - identify whether users are accomplishing your goals




Goal conversions - set up conversion events in your app, like spending 10 minutes in the app, or clicking on ads to gauge success.









In-App purchases - if you sell virtual or tangible goods in your app, you can measure the number of purchases and the revenue generated.





The new reports are part of a holistic experience tailored for mobile app measurement, including a new and lightweight SDK v2.0 that’s easier to implement and is opt-out ready, with a streamlined back-end infrastructure.





We’ve also revamped our sign-up process, so new users can choose whether they want to start measuring their website or their mobile app. This means you’ll be just 3 clicks away from setting up your app analytics account and downloading the SDK.





We will be opening the beta up to whitelisted users in waves, so if you’re interested in using Mobile App Analytics for your app, please complete this beta signup form and we’ll get you started soon. We anticipate the reports will be available to all Google Analytics users by the end of the summer.






Also, if you are at Google I/O be sure to attend the Google Analytics session “Measuring the End-to-End Value of Your App” (from 11:30AM - 12:30PM today, June 29) where our lead engineers will tell you more about Mobile App Analytics and some other exciting things we’re working on.






Posted By JiaJing Wang, Product Manager, Google Analytics Team


Thursday, June 28, 2012

Keeping A Smart Banner Docked To The Bottom Of The Screen on iOS


Smart Banner advertisements, introduced in AdMob SDK v6.0, help developers utilize the full width of the iPhone and iPad screen for displaying ads. You still have to be smart about using Smart Banners! We are noticing that some of you are having a hard time resetting your ad’s origin when a re-orientation of the device occurs. More specifically, not resetting the ad’s origin correctly causes ads to disappear offscreen after orientation changes. In this blog post, we’ll show you how to keep a Smart Banner docked to the bottom of the screen on iOS.




The first thing to do is to initialize a Smart Banner at the bottom of the device’s screen. You can do this by giving the ad an origin corresponding to the screen bottom.




// Initialize the banner docked to the bottom of the screen.
// We start in a portrait orientation so use kGADAdSizeSmartBannerPortrait.
CGPoint origin = CGPointMake(0.0,
self.view.frame.size.height -
CGSizeFromGADAdSize(
kGADAdSizeSmartBannerPortrait).height);

self.adBanner = [[[GADBannerView alloc]
initWithAdSize:kGADAdSizeSmartBannerPortrait
origin:origin] autorelease];

//Continue rest of initialization here



Every time an orientation change occurs, you have to reset the ad’s orientation so it continues to stay docked to the bottom. The best place to implement the above logic is in the willAnimateRotationToInterfaceOrientation:duration: method since the view’s frame has been updated to the new orientation




Update the origin by utilizing the Smart Banner constant that is applicable to your current orientation. The only value that should change is your y-origin, since your x-origin should remain at 0.




-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInt
duration:(NSTimeInterval)duration {
// The updated y value for the origin.
CGFloat yLocation;

// Set a new frame to update the origin on orientation change. Remember to set
// adSize first before you update the frame.
if (UIInterfaceOrientationIsLandscape(toInt)) {
self.adBanner.adSize = kGADAdSizeSmartBannerLandscape;
yLocation = self.view.frame.size.width -
CGSizeFromGADAdSize(kGADAdSizeSmartBannerLandscape).height
} else {
self.adBanner.adSize = kGADAdSizeSmartBannerPortrait;
yLocation = self.view.frame.size.height -
CGSizeFromGADAdSize(kGADAdSizeSmartBannerPortrait).height);
}

CGRect frame = self.adBanner.frame;
frame.origin = CGPointMake(0.0, yLocation);
self.adBanner.frame = frame;
}



If you’re not using mediation, changing the adSize after your first request will cause another request to be made. Make sure that you set the frame after you modify the adSize. This ensures that the ad transition looks smooth across orientation changes.




Your Smart Banner ads are now even smarter. As the orientation of the device changes, your ads should stay docked to the bottom of the screen. If you have any questions about Smart Banners or about the AdMob SDK, feel free to post them in our forum or keep on the lookout for upcoming Hangout office hours.