tag:blogger.com,1999:blog-1707106228755307372023-11-15T23:53:00.268-08:00bellastory99Dindahttp://www.blogger.com/profile/00796869350788211838noreply@blogger.comBlogger20125tag:blogger.com,1999:blog-170710622875530737.post-43401088803323045382016-12-21T14:30:00.000-08:002019-01-03T19:32:59.678-08:00Introducing the ExifInterface Support Library<p>With the release of the <a<br />href="https://developer.android.com/topic/libraries/support-library/revisions.html?utm_campaign=android_launch_exifsupportlibrary_122116&utm_source=anddev&utm_medium=blog#rev25-1-0">25.1.0</a> Support Library, there's a new entry in the family: the ExifInterface Support Library. With significant improvements introduced in Android 7.1 to the framework's <code><a<br />href="https://developer.android.com/reference/android/media/ExifInterface.html?utm_campaign=android_launch_exifsupportlibrary_122116&utm_source=anddev&utm_medium=blog">ExifInterface</a></code>, it only made sense to make those available to all API 9+ devices via the Support Library's <code><a href="https://developer.android.com/reference/android/support/media/ExifInterface.html?utm_campaign=android_launch_exifsupportlibrary_122116&utm_source=anddev&utm_medium=blog">ExifInterface</a></code>. <p>The basics are still the same: the ability to read and write <a<br />href="https://en.wikipedia.org/wiki/Exif?utm_campaign=android_launch_exifsupportlibrary_122116&utm_source=anddev&utm_medium=blog">Exif</a> tags embedded within image files: now with 140 different attributes (almost 100 of them new to Android 7.1/this Support Library!) including information about the camera itself, the camera settings, orientation, and GPS coordinates. </p><h4>Camera Apps: Writing Exif Attributes</h4><p>For Camera apps, the writing is probably the most important - writing attributes is still limited to JPEG image files. Now, normally you wouldn't need to use this during the actual camera capturing itself - you'd instead be calling the Camera2 API <code><a<br />href="https://developer.android.com/reference/android/hardware/camera2/CaptureRequest.Builder.html?utm_campaign=android_launch_exifsupportlibrary_122116&utm_source=anddev&utm_medium=blog#set(android.hardware.camera2.CaptureRequest.Key%3CT%3D,%20T)">CaptureRequest.Builder.set()</a></code> with <code><a<br />href="https://developer.android.com/reference/android/hardware/camera2/CaptureRequest.html?utm_campaign=android_launch_exifsupportlibrary_122116&utm_source=anddev&utm_medium=blog#JPEG_ORIENTATION">JPEG_ORIENTATION</a></code>, <code><a<br />href="https://developer.android.com/reference/android/hardware/camera2/CaptureRequest.html?utm_campaign=android_launch_exifsupportlibrary_122116&utm_source=anddev&utm_medium=blog#JPEG_GPS_LOCATION">JPEG_GPS_LOCATION</a></code> or the equivalents in the Camera1 <code><a<br />href="https://developer.android.com/reference/android/hardware/Camera.Parameters.html?utm_campaign=android_launch_exifsupportlibrary_122116&utm_source=anddev&utm_medium=blog">Camera.Parameters</a></code>. However, using <code>ExifInterface</code> allows you to make changes to the file after the fact (say, removing the location information on the user's request). <h4>Reading Exif Attributes</h4><p>For the rest of us though, reading those attributes is going to be our bread-and-butter; this is where we see the biggest improvements. </p><p>Firstly, you can read Exif data from JPEG and raw images (specifically, DNG, CR2, NEF, NRW, ARW, RW2, ORF, PEF, SRW and RAF files). Under the hood, this was a major restructuring, removing all native dependencies and building an extensive test suite to ensure that everything actually works. </p><p>For apps that receive images from other apps with a <code>content://</code> URI (such as those sent by apps that <a<br />href="https://developer.android.com/about/versions/nougat/android-7.0-changes.html?utm_campaign=android_launch_exifsupportlibrary_122116&utm_source=anddev&utm_medium=blog#sharing-files">target API 24 or higher</a>), <strong><code>ExifInterface</code> now works directly off of an <code>InputStream</code></strong>; this allows you to easily extract Exif information directly out of <code>content://</code> URIs you receive without having to create a temporary file. <pre<br />class="prettyprint">Uri uri; // the URI you've received from the other app<br />InputStream in;<br />try {<br /> in = getContentResolver().openInputStream(uri);<br /> ExifInterface exifInterface = new ExifInterface(in);<br /> // Now you can extract any Exif tag you want<br /> // Assuming the image is a JPEG or supported raw format<br />} catch (IOException e) {<br /> // Handle any errors<br />} finally {<br /> if (in != null) {<br /> try {<br /> in.close();<br /> } catch (IOException ignored) {}<br /> }<br />}<br /></pre><p><strong>Note</strong>: <code>ExifInterface</code> will not work with remote <code>InputStream</code>s, such as those returned from a <code><a<br />href="https://developer.android.com/reference/java/net/HttpURLConnection.html?utm_campaign=android_launch_exifsupportlibrary_122116&utm_source=anddev&utm_medium=blog">HttpURLConnection</a></code>. It is strongly recommended to only use them with <code>content://</code> or <code>file://</code> URIs. <p>For most attributes, you'd simply use the <code><a<br />href="https://developer.android.com/reference/android/support/media/ExifInterface.html?utm_campaign=android_launch_exifsupportlibrary_122116&utm_source=anddev&utm_medium=blog#getAttributeInt(java.lang.String,%20int)">getAttributeInt()</a></code>, <code><a<br />href="https://developer.android.com/reference/android/support/media/ExifInterface.html?utm_campaign=android_launch_exifsupportlibrary_122116&utm_source=anddev&utm_medium=blog#getAttributeDouble(java.lang.String,%20double)">getAttributeDouble()</a></code>, or <code><a<br />href="https://developer.android.com/reference/android/support/media/ExifInterface.html?utm_campaign=android_launch_exifsupportlibrary_122116&utm_source=anddev&utm_medium=blog#getAttribute(java.lang.String)">getAttribute()</a></code> (for Strings) methods as appropriate. <p>One of the most important attributes when it comes to displaying images is the image orientation, stored in the aptly-named <code><a<br />href="https://developer.android.com/reference/android/support/media/ExifInterface.html?utm_campaign=android_launch_exifsupportlibrary_122116&utm_source=anddev&utm_medium=blog#TAG_ORIENTATION">TAG_ORIENTATION</a></code>, which returns one of the <code>ORIENTATION_</code> constants. To convert this to a rotation angle, you can post-process the value. <pre<br />class="prettyprint">int rotation = 0;<br />int orientation = exifInterface.getAttributeInt(<br /> ExifInterface.TAG_ORIENTATION,<br /> ExifInterface.ORIENTATION_NORMAL);<br />switch (orientation) {<br /> case ExifInterface.ORIENTATION_ROTATE_90:<br /> rotation = 90;<br /> break;<br /> case ExifInterface.ORIENTATION_ROTATE_180:<br /> rotation = 180;<br /> break;<br /> case ExifInterface.ORIENTATION_ROTATE_270:<br /> rotation = 270;<br /> break;<br />}<br /></pre><p>There are some helper methods to extract values from specific Exif tags. For location data, the <code><a<br />href="https://developer.android.com/reference/android/support/media/ExifInterface.html?utm_campaign=android_launch_exifsupportlibrary_122116&utm_source=anddev&utm_medium=blog#getLatLong(float[])">getLatLong()</a></code> method gives you the latitude and longitude as floats and <code><a<br />href="https://developer.android.com/reference/android/support/media/ExifInterface.html?utm_campaign=android_launch_exifsupportlibrary_122116&utm_source=anddev&utm_medium=blog#getAltitude(double)">getAltitude()</a></code> will give you the altitude in meters. Some images also embed a small thumbnail. You can check for its existence with <code><a<br />href="https://developer.android.com/reference/android/support/media/ExifInterface.html?utm_campaign=android_launch_exifsupportlibrary_122116&utm_source=anddev&utm_medium=blog#hasThumbnail()">hasThumbnail()</a></code> and then extract the <code>byte[]</code> representation of the thumbnail with <code><a<br />href="https://developer.android.com/reference/android/support/media/ExifInterface.html?utm_campaign=android_launch_exifsupportlibrary_122116&utm_source=anddev&utm_medium=blog#getThumbnail()">getThumbnail()</a></code> - perfect to pass to <code><a<br />href="https://developer.android.com/reference/android/graphics/BitmapFactory.html?utm_campaign=android_launch_exifsupportlibrary_122116&utm_source=anddev&utm_medium=blog#decodeByteArray(byte[],%20int,%20int)">BitmapFactory.decodeByteArray()</a></code>. <h4>Working with Exif: Everything is optional</h4><p>One thing that is important to understand with Exif data is that there are no required tags: each and every tag is optional - some services even specifically strip Exif data. Therefore throughout your code, you should always handle cases where there is no Exif data, either due to no data for a specific attribute or an image format that doesn't support Exif data at all (say, the ubiquitous PNGs or WebP images). </p><p>Add the ExifInterface Support Library to your project with the following dependency: </p><pre<br />class="prettyprint">compile "com.android.support:exifinterface:25.1.0"</pre><p>But when an Exif attribute is exactly what you need to prevent a mis-rotated image in your app, the ExifInterface Support Library is just what you need to #BuildBetterApps </p>Dindahttp://www.blogger.com/profile/00796869350788211838noreply@blogger.com0tag:blogger.com,1999:blog-170710622875530737.post-88290291153343875632016-12-20T14:14:00.000-08:002019-01-03T19:32:59.936-08:00Get the guide to finding success in new markets on Google Play<i>Posted by Lily Sheringham, Developer Marketing at Google Play</i><br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://play.google.com/store/books/details?id=RHqKDQAAQBAJ" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3s9iY0dnx9dqYu5WbOVm0fljDeuuq6VPPmdvQfVu5PEWPfxEGdf7RsrWXc3mhPpuZdCyfPyy49OQ5-8JKHVAa0Lw7NMX2RDs_acBt2_SBKrERn2r94ZDQCOXDsKkjc2m0JVaff1EN21dn/s320/image00.png" width="213" height="320" /></a></div><p><br />With just a few clicks, you can publish an app to Google Play and access a<br />global audience of more than 1 billion 30 days active users. Finding success in<br />global markets means considering how each market differs, planning for high<br />quality localization, and tailoring your activity to the local audience. The new<br /><a href="https://play.google.com/store/books/details?id=RHqKDQAAQBAJ">Going<br />Global Playbook</a> provides best practices and tips, with advice from<br />developers who've successfully gone global.<br /></p><br /><p><br />This guide includes advice to help you plan your approach to going global,<br />prepare your app for new markets, take your app to market, and also include data<br />and insights for key countries and other useful resources.<br /></p><br /><p><br />This ebook joins others that we've recently published including <a<br />href="https://play.google.com/store/books/details/Google_Inc_The_Building_for_Billions_Playbook_for?id=cJEjDAAAQBAJ">The<br />Building for Billions Playbook</a> and <a<br />href="https://play.google.com/store/books/details/Google_Inc_The_News_Publisher_Playbook_for_Android?id=O7T3CwAAQBAJ">The<br />News Publisher Playbook</a>. All of our ebooks are promoted in the <a<br />href="http://g.co/play/playbookapp">Playbook for Developers app</a>, which is<br />where you can stay up to date with all the news and best practices you need to<br />find success on Google Play.<br /></p><br /><BR><br /><div dir="ltr" style="text-align: left;" trbidi="on"><br /><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">How useful did you find this blogpost?</span></div><br /><b id="docs-internal-guid-9d2c3b6b-1db8-963f-b974-82ee87873abe" style="font-weight: normal;"><br /></b><br /><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=1%E2%98%85+%E2%80%93+Not+at+all&entry.656324858&entry.1348260426=goglobalplaybook-12/16&entry.1170596605&entry.646747778=goglobalplaybook-12/16" style="text-decoration: none;"><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">★</span></a><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=2%E2%98%85+%E2%80%93+Not+very&entry.656324858&entry.1348260426=goglobalplaybook-12/16&entry.1170596605&entry.646747778=goglobalplaybook-12/16" style="text-decoration: none;"><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">★</span></a><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=3%E2%98%85+%E2%80%93+Somewhat&entry.656324858&entry.1348260426=goglobalplaybook-12/16&entry.1170596605&entry.646747778=goglobalplaybook-12/16" style="text-decoration: none;"><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">★</span></a><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=4%E2%98%85+%E2%80%93+Very&entry.656324858&entry.1348260426=goglobalplaybook-12/16&entry.1170596605&entry.646747778=goglobalplaybook-12/16" style="text-decoration: none;"><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">★</span></a><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=5%E2%98%85+%E2%80%93+Extremely&entry.656324858&entry.1348260426=goglobalplaybook-12/16&entry.1170596605&entry.646747778=goglobalplaybook-12/16" style="text-decoration: none;"><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">★</span></a></div><br /><div dir="ltr" style="line-height: 1.68; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: #333333; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img height="148" src="https://lh3.googleusercontent.com/PFmtW_BWC2w4O0z-XLP10SGYfDThcdiUIPA9vjRidm9soP3y6937CY_kH67qHSniQZY1X1cvaK5W4JlG1vMzvo1qmwWCpp5Cd33jCzjWWQl6rrMboOXHxkwWB0lt565xLkfy7FR7" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="141" /></span></div><br /></div><br />Dindahttp://www.blogger.com/profile/00796869350788211838noreply@blogger.com0tag:blogger.com,1999:blog-170710622875530737.post-65886159346301889242016-12-20T09:17:00.000-08:002019-01-03T19:33:00.155-08:00Start building Actions on Google<p><br /><em>Posted by Jason Douglas, PM Director for Actions on Google</em><br /></p><br /><p><br />The Google Assistant <a<br />href="https://blog.google/products/assistant/personal-google-just-you/">brings<br />together</a> all of the technology and smarts we've been building for years,<br />from the Knowledge Graph to Natural Language Processing. To be a truly<br />successful Assistant, it should be able to connect users across the apps and<br />services in their lives. This makes enabling an ecosystem where developers can<br />bring diverse and unique services to users through the Google Assistant really<br />important.<br /></p><br /><p><br />In October, we <a<br />href="https://www.youtube.com/watch?v=q4y0KOeXViI&feature=youtu.be&t=1h16m8s">previewed</a><br />Actions on Google, the developer platform for the Google Assistant. <a<br />href="https://developers.google.com/actions/?utm_campaign=product area_launch_actionsgoogle_120816&utm_source=gdev&utm_medium=blog">Actions on Google</a> further<br />enhances the Assistant user experience by enabling you to bring your services to<br />the Assistant. Starting today, you can build Conversation Actions for Google<br />Home and <a href="https://assistant.google.com/developer/eap/">request</a> to<br />become an early access partner for upcoming platform features.<br /></p><br /><p><br /><strong>Conversation Actions for Google Home</strong><br /></p><br /><p><br />Conversation Actions let you engage your users to deliver information, services,<br />and assistance. And the best part? It really is a conversation -- users won't<br />need to enable a skill or install an app, they can just ask to talk to your<br />action. For now, we've provided two developer samples of what's possible, just<br />say "Ok Google, talk to Number Genie " or try "Ok Google, talk to Eliza' for the<br />classic 1960s AI exercise.<br /></p><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZbHJsUVTJspOYz-NjHit6rL_dfkRBgpOaE84vlwV_gZ5oE-04HeRamVh1q6v387twasJfTnoWRH_P31ZD6NrMjP8hu6bkvxwFjI5KxErRAIroKFsRyUY9oM_Z-m8QUtJpmCBG2qyKKls/s1600/numberg_b3_6-05.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZbHJsUVTJspOYz-NjHit6rL_dfkRBgpOaE84vlwV_gZ5oE-04HeRamVh1q6v387twasJfTnoWRH_P31ZD6NrMjP8hu6bkvxwFjI5KxErRAIroKFsRyUY9oM_Z-m8QUtJpmCBG2qyKKls/s640/numberg_b3_6-05.png" width="640" height="360" /></a></div><br /><p><br />You can get started today by visiting the <a<br />href="https://developers.google.com/actions?utm_campaign=product area_launch_actionsgoogle_120816&utm_source=gdev&utm_medium=blog">Actions on Google </a>website for<br />developers. To help create a smooth, straightforward development experience, we<br />worked with a <a href="https://developers.google.com/actions/tools/?utm_campaign=product area_launch_actionsgoogle_120816&utm_source=gdev&utm_medium=blog">number of<br />development partners</a>, including conversational interaction development tools<br />API.AI and Gupshup, analytics tools DashBot and VoiceLabs and consulting<br />companies such as Assist, Notify.IO, Witlingo and Spoken Layer. We also created<br />a collection of <a<br />href="https://developers.google.com/actions/samples/?utm_campaign=product area_launch_actionsgoogle_120816&utm_source=gdev&utm_medium=blog">samples</a> and voice user<br />interface (VUI) <a<br />href="https://developers.google.com/actions/design/">resources</a> or you can<br />check out the integrations from our <a<br />href="http://support.google.com/assistant/?p=3p_developers">early access<br />partners</a> as they roll out over the coming weeks.<br /></p><br /><center><iframe width="560" height="315" src="https://www.youtube.com/embed/HNfE0uaKcfY" frameborder="0" allowfullscreen></iframe></center><br /><center><em>Introduction to Conversation Actions by <a<br />href="https://google.com/+WaynePiekarski">Wayne Piekarski</a></em></center><br /><p><br /><strong>Coming soon: Actions for Pixel and Allo + Support for Purchases and<br />Bookings </strong><br /></p><br /><p><br />Today is just the start, and we're excited to see what you build for the Google<br />Assistant. We'll continue to add more platform capabilities over time, including<br />the ability to make your integrations available across the various Assistant<br />surfaces like Pixel phones and Google Allo. We'll also enable support for<br />purchases and bookings as well as deeper Assistant integrations across<br />verticals. Developers who are interested in creating actions using these<br />upcoming features should <a<br />href="https://assistant.google.com/developer/eap/">register for our early access<br />partner program</a> and help shape the future of the platform.<br /></p><br />Build, explore and let us know what you think about Actions on Google! And to say in the loop, be sure to sign up for our <a href="https://assistant.google.com/developer/">newsletter</a>, join our <a href="https://g.co/actionsdev">Google+ community</a>, and use the “actions-on-google” tag on <a href="https://stackoverflow.com/questions/tagged/actions-on-google">StackOverflow</a>.<br />Dindahttp://www.blogger.com/profile/00796869350788211838noreply@blogger.com0tag:blogger.com,1999:blog-170710622875530737.post-49018846523694426252016-12-19T13:57:00.000-08:002019-01-03T19:33:00.339-08:00Best practices to improve app engagement<p><br /><em>Posted by Niko Schröer, Business Development, Google Play</em><br /></p><br /><p><br />Driving installs is important to growing a user base, but it's not much use if<br />your app sits on users' devices and is rarely opened. In a competitive app<br />landscape, it's increasingly important to engage and retain users over the long<br />term to build a successful business. Users who are using your app more will have<br />a higher lifetime value and be more likely to share your app. Watch my Playtime<br />session below to hear about the tools and features other developers are using to<br />increase app engagement. You can also read the summary of my main tips below.<br /></p><br /><center><iframe width="560" height="315" src="https://www.youtube.com/embed/OsBwnmGe1xI?list=PLWz5rJ2EKKc_amR5JL4lSH4PHSWNUTV85" frameborder="0" allowfullscreen></iframe></center><br /><p><br /><strong>1. Build a high quality app to engage Android users</strong><br /></p><br /><p><br />Building a high quality app is the foundation of a great user experience on<br />Android. The better your app's user experience is, the more engaged your users<br />will be. Optimizing for <a<br />href="https://developer.android.com/design/material/index.html?utm_campaign=android_discussion_bestpractices_121916&utm_source=anddev&utm_medium=blog">material<br />design</a>, for example, can significantly improve user engagement as well as<br />building for <a href="https://developer.android.com/wear/index.html?utm_campaign=android_discussion_bestpractices_121916&utm_source=anddev&utm_medium=blog">Android<br />Wear</a>, <a href="https://developer.android.com/auto/index.html?utm_campaign=android_discussion_bestpractices_121916&utm_source=anddev&utm_medium=blog">Auto</a> or <a<br />href="https://developer.android.com/training/tv/index.html?utm_campaign=android_discussion_bestpractices_121916&utm_source=anddev&utm_medium=blog">TV</a> where it<br />makes sense based on your value proposition.<br /></p><br /><p><br />To achieve high quality, we recommend you to check out the latest Android<br />features, tips, and best practices in our <a<br />href="https://play.google.com/store/apps/details?id=com.google.android.apps.secrets&utm_source=dac&utm_medium=page&utm_campaign=evergreen&utm_source=global_co&utm_medium=prtnr&utm_content=Mar2515&utm_campaign=PartBadge&pcampaignid=MKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1&e=-EnableAppDetailsPageRedesign">Playbook<br />for Developers</a>.<br /></p><br /><p><br /><em>The developer of the golf app, <a<br />href="https://play.google.com/store/apps/details?id=com.hole19golf.hole19.beta">Hole19</a>,<br />tailored their app's user experience thoughtfully for Android Wear and, as a<br />result, saw a 40% increase in user engagement compared to non-Wear users. <a<br />href="https://www.youtube.com/watch?v=6yBQjkrhACc">Watch a video about Hole19's<br />success</a>.</em><br /></p><br /><p><br /><strong>2. Make your users feel at home</strong><br /></p><br /><p><br />Personalising your app experience to make users feel at home is a good way to<br />start a long lasting relationship. Onboarding new users is a crucial step in<br />this process. Onboarding should be fast and seamless and ask for minimal user<br />input - after all users want to start using your app as quickly as possible.<br />Furthermore, the onboarding should be a core part of the overall product<br />experience. Use images and wording that's true to your brand and only ask for<br />user input when it's actually needed, to reduce friction and avoid losing users.<br /></p><br /><p><br /><em><a<br />href="https://play.google.com/store/apps/details?id=com.freeletics.gym">Freeletics</a>,<br />a fitness app, created an engaging user onboarding flow in which they tailored<br />imagery and text to male and female users respectively. They also moved the<br />registration process to a later stage in the funnel to reduce friction. The<br />improved onboarding flow increased user activity by 58% within the first 7 days.<br />They also implemented <a href="https://get.google.com/smartlock/">Google Smart<br />Lock</a> to seamlessly sign-in returning users.</em><br /></p><br /><p><br /><strong>3. Optimize feature releases as a way to increase user<br />engagement</strong><br /></p><br /><p><br />Introducing new features is essential to staying ahead of competition and<br />relevant to your users to ensure they keep coming back to your app. To make new<br />feature launches successful drivers for user engagement, follow these simple<br />steps:<br /></p><ul><br /><li>Define a clear objective for each release to measure your impact, e.g.<br />increase number of users who edit a photo by at least 10%.<br /><li><a<br />href="https://support.google.com/googleplay/android-developer/answer/3131213">Use<br />beta testing</a> to gather user feedback and iterate a feature before it's<br />rolled out to all of your users.<br /><li><a<br />href="https://support.google.com/googleplay/android-developer/answer/7002270">Enable<br />the pre-launch report</a> in the Play developer console to spot potential flaws<br />and ensure technical stability in your alpha and beta apps.<br /><li>Guide users to each new feature as if it is a light onboarding experience.<br />Visually highlight what's new and provide a short explanation why users should<br />care.<br /><li>Measure performance with <a<br />href="https://firebase.google.com/docs/analytics/?utm_campaign=culture_education_general_en_12-19-16&utm_source=anddev&utm_medium=blog">analytics</a> to see if the<br />new feature drives engagement (that you've defined as your objective).</li></ul><br /><p><br /><strong>4. Use notifications wisely </strong><br /></p><br /><p><br />Push notifications are a popular engagement tool and rightfully so. However,<br />there is a fine line between driving engagement and annoying users (who might<br />then uninstall your app). Follow these guidelines to ensure your notifications<br />are on the right side of the line:<br /></p><ul><br /><li>Be relevant and only send messages that matter to the user in context. Be<br />creative and true to your brand, speak your users language and use an authentic<br />tone.<br /><li>Make notifications actionable for your users and don't forget to deep link<br />to content where applicable to save your users time.<br /><li>Remember that not all your users are equal so personalize your message to<br />different user cohorts with <a<br />href="https://firebase.google.com/docs/notifications/?utm_campaign=culture_education_general_en_12-19-16&utm_source=anddev&utm_medium=blog">Firebase<br />Notifications</a>.<br /><li>Consider timeliness of your messages to get users the right notification at<br />the right time and with the right frequency. For example, it might be better to<br />send a notification about something interesting to read at a time when the user<br />normally gets out their phone – like during their commute – instead of the<br />middle of the day, when they might be busy and dismiss a new notification.<br /><li>Finally, give users control over what notifications they receive so that<br />they can opt-in and opt-out of the notifications they like and don't like<br />respectively. If users get annoyed about certain types of notifications and<br />don't have a way to disable them, they might uninstall your app.</li></ul><br /><p><br /><em>The Norwegian news app <a<br />href="https://play.google.com/store/apps/details?id=no.cita&e=-EnableAppDetailsPageRedesign">Aftenposten</a><br />implemented a new onboarding flow that clarified which notifications were<br />available, allowing readers to manage their preferences. This reduced uninstalls<br />by 9.2.% over 60 days and led to a 28% decrease in the number of users muting<br />notifications completely. <a<br />href="https://developer.android.com/distribute/stories/apps/aftenposten.html?utm_campaign=android_discussion_bestpractices_121916&utm_source=anddev&utm_medium=blog">Read<br />more about Aftenposten's success</a>.</em><br /></p><br /><p><br /><strong>5. Reward your most engaged users</strong><br /></p><br /><p><br />Last but not least, you should find ways to reward your most loyal users to<br />retain them over time and to make it desirable to less engaged users to engage<br />more. These rewards can come in many shapes and forms. Start by keeping it<br />simple and make sure the reward adds real value to the user and fits in your<br />app's ecosystem. You can do this by:<br /></p><ul><br /><li>Giving sneak peeks of new features by inviting them to a <a<br />href="https://support.google.com/googleplay/android-developer/answer/3131213?hl=en">beta<br />group</a>.<br /><li>Decorating user accounts with badges based on their behaviour.<br /><li>Offer app exclusive discounts or <a<br />href="https://support.google.com/googleplay/android-developer/answer/6321495">promo<br />codes</a> that can only be redeemed in your app. </li></ul><br /><p><br />Generally, the more you can personalize the reward the better it will work.<br /></p><br /><p><br /><strong>Find success with ongoing experimentation</strong><br /></p><br /><p><br />A great Android app gives developers a unique opportunity to create a lasting<br />relationship with users and build a sustainable business with happy customers.<br />Therefore optimising apps to engage and retain your users by following these 5<br />tips should be front and centre of your development goals and company strategy.<br />Find more tips and best practices by watching the sessions at <a<br />href="http://android-developers.blogspot.co.uk/2016/12/watch-sessions-from-the-playtime-2016-events-to-learn-how-to-succeed-on-android-and-google-play.html">this<br />year's Playtime events</a>.<br /></p><br /><div dir="ltr" style="text-align: left;" trbidi="on"><br /><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: black; font-family: 'Open Sans'; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> How useful did you find this blogpost?</span></div><br /><b id="docs-internal-guid-1b6fa748-18db-7f9d-eea5-4962daa7c423" style="font-weight: normal;"><br /></b><br /><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=1%E2%98%85+%E2%80%93+Not+at+all&entry.656324858&entry.1348260426=playtimeappengagement-12/16&entry.1170596605&entry.646747778=playtimeappengagement-12/16" style="text-decoration: none;"><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">★</span></a><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=2%E2%98%85+%E2%80%93+Not+very&entry.656324858&entry.1348260426=playtimeappengagement-12/16&entry.1170596605&entry.646747778=playtimeappengagement-12/16" style="text-decoration: none;"><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">★</span></a><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=3%E2%98%85+%E2%80%93+Somewhat&entry.656324858&entry.1348260426=playtimeappengagement-12/16&entry.1170596605&entry.646747778=playtimeappengagement-12/16" style="text-decoration: none;"><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">★</span></a><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=4%E2%98%85+%E2%80%93+Very&entry.656324858&entry.1348260426=playtimeappengagement-12/16&entry.1170596605&entry.646747778=playtimeappengagement-12/16" style="text-decoration: none;"><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">★</span></a><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=5%E2%98%85+%E2%80%93+Extremely&entry.656324858&entry.1348260426=playtimeappengagement-12/16&entry.1170596605&entry.646747778=playtimeappengagement-12/16" style="text-decoration: none;"><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">★</span></a></div><br /><br /><br /><div dir="ltr" style="line-height: 1.68; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: #333333; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img height="148" src="https://lh5.googleusercontent.com/7KQEMeekcM3X_OoKs0eBH4cyxRwhXGiXP2GjJCpsJcYb1WerT7r97dhQM1r-DgtHldEwCM0rThYSE_H6JnOCLXmGwnYLp7du_oJimJNLzlwTzGsx9n49fpcv-D25fgyF0AXtxkgz" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="141" /></span></div><br /><div><br /><span style="background-color: transparent; color: #333333; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div><br /></div><br />Dindahttp://www.blogger.com/profile/00796869350788211838noreply@blogger.com0tag:blogger.com,1999:blog-170710622875530737.post-25792079863190422712016-12-16T13:45:00.000-08:002019-01-03T19:33:00.531-08:00Games authentication adopting Google Sign-In API<p><br /><em>Posted by <a href="https://plus.google.com/u/0/114782450811093862905">Clayton Wilkinson</a>, Developer Platform Engineer</em><br /></p><br /><p><br />Some changes are coming to Play Game Services in early 2017:<br /></p><br /><h3>Changes to Google API Client building</h3><br /><p><br />In November, we announced an <a<br />href="https://developers.googleblog.com/2016/11/moving-to-google-sign-in-for-a-better-user-experience-and-higher-conversion-rates.html">update<br />to Google Sign-In API</a>. Play Game Services is being updated to use Google<br />Sign-In API for authentication. The advantages are:<br /></p><ul><br /><li>Games and Sign-In in same client connection.<br /><li>Single API for getting Auth code to send to backend servers.</li></ul><br /><p><br />This change unifies the Google Sign-in and the Games API Sign-in, so there are<br />updates to how to build the Google API Client:<br /></p><br /><br /><pre<br />class="prettyprint">// Defaults to Games Lite scope, no server component<br /> GoogleSignInOptions gso = new<br /> GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN).build();<br /><br />// OR for apps with a server component<br /> GoogleSignInOptions gso = new<br /> GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN)<br /> .requestServerAuthCode(SERVER_CLIENT_ID)<br /> .build();<br /><br />// OR for developers who need real user Identity<br /> GoogleSignInOptions gso = new<br /> GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN)<br /> .requestEmail()<br /> .build();<br /><br />// Build the api client.<br /> mApiClient = new GoogleApiClient.Builder(this)<br /> .addApi(Games.API)<br /> .addApi(Auth.GOOGLE_SIGN_IN_API, gso)<br /> .addConnectionCallbacks(this)<br /> .build();<br /> }<br /><br /> @Override<br /> public void onConnected(Bundle connectionHint) {<br /> if (mApiClient.hasConnectedApi(Games.API)) {<br /> Auth.GoogleSignInApi.silentSignIn(mApiClient).setResultCallback(<br /> new ResultCallback<GoogleSignInResult>() {<br /> @Override<br /> public void onResult(GoogleSignInResult googleSignInResult) {<br /> // In this case, we are sure the result is a success.<br /> GoogleSignInAccount acct = <br /> googleSignInResult.getGoogleSignInAccount());<br /> <br /> // For Games with a server, send the auth code to your server.<br /> String serverAuthCode = signInAccount.getServerAuthCode();<br /> <br /> // Use the API client as normal.<br /> Player player = Games.API.getCurrentPlayer(mApiClient);<br /> }<br /> }<br /> );<br /> } else {<br /> onSignedOut();<br /> }<br /> }</pre><br /><h3>Account creation within iOS is no longer supported </h3><br /><ul><br /><li>Currently, there is no support for new players to create a Play Games<br />account on iOS. Additionally, the Google+ integration has been removed from<br />iOS. As a result "social" APIs will return result codes indicating success, but<br />return empty lists. This includes the "standard" UIs for leaderboards and<br />multiplayer invitations.</li></ul><br /><h3>Google+ is no longer integrated</h3><br /><ul><br /><li><a<br />href="http://android-developers.blogspot.com/2016/01/play-games-permissions-are-changing-in.html">Announced<br />last year</a>, Games is decoupled from Google+ during this transition. As a<br />result the public APIs for getting connected players via circles stopped<br />working, but the standard UIs for multiplayer invitations and social<br />leaderboards continued to work. Starting from February 2017, the standard UIs<br />will also not display the Social graph results as Google+ data becomes<br />inaccessible. This will affect multiplayer games, social leaderboards, and<br />gifts API on Android. The effect will be that these APIs will return<br />successfully, but with an empty list of players.</li></ul><br /><p><br />List of APIs that are deprecated by removing Google+ integration (and their C++<br />equivalents):<br /></p><ol><br /><li><a<br />href="https://developers.google.com/android/reference/com/google/android/gms/games/Players.html?utm_campaign=product area_discussion_games_121616&utm_source=anddev&utm_medium=blog#getPlayerSearchIntent(com.google.android.gms.common.api.GoogleApiClient)">Games.Players.getPlayerSearchIntent()</a><br /><li><a<br />href="https://developers.google.com/android/reference/com/google/android/gms/games/Players.html?utm_campaign=product area_discussion_games_121616&utm_source=anddev&utm_medium=blog#loadConnectedPlayers(com.google.android.gms.common.api.GoogleApiClient,%20boolean)">Games.Players.loadConnectedPlayers()</a><br /><li><a<br />href="https://developers.google.com/android/reference/com/google/android/gms/games/Players.html?utm_campaign=product area_discussion_games_121616&utm_source=anddev&utm_medium=blog#loadInvitablePlayers(com.google.android.gms.common.api.GoogleApiClient,%20int,%20boolean)">Games.Players.loadInvitablePlayers()</a><br /><li>The value <a<br />href="https://developers.google.com/android/reference/com/google/android/gms/games/leaderboard/LeaderboardVariant.html?utm_campaign=product area_discussion_games_121616&utm_source=anddev&utm_medium=blog#COLLECTION_SOCIAL">LeaderboardVariant.COLLECTION_SOCIAL</a><br /><li><a<br />href="https://developers.google.com/android/reference/com/google/android/gms/games/multiplayer/Invitations.html?utm_campaign=product area_discussion_games_121616&utm_source=anddev&utm_medium=blog#loadInvitations(com.google.android.gms.common.api.GoogleApiClient,%20int)">Invitations.loadInvitations()</a><br /><li><a<br />href="https://developers.google.com/android/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeMultiplayer.html?utm_campaign=product area_discussion_games_121616&utm_source=anddev&utm_medium=blog#getSelectOpponentsIntent(com.google.android.gms.common.api.GoogleApiClient,%20int,%20int,%20boolean)">RealtimeMultiplayer.getSelectOpponentsIntent()</a><br /><li><a<br />href="https://developers.google.com/android/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMultiplayer.html?utm_campaign=product area_discussion_games_121616&utm_source=anddev&utm_medium=blog#getSelectOpponentsIntent(com.google.android.gms.common.api.GoogleApiClient,%20int,%20int,%20boolean)">TurnBasedMultiplayer.getSelectOpponentsIntent()</a><br /><li>All methods in the <a<br />href="https://developers.google.com/android/reference/com/google/android/gms/games/request/GameRequest?utm_campaign=product area_discussion_games_121616&utm_source=anddev&utm_medium=blog">Requests<br />package</a>. </li></ol><br /><p><br />We realize this is a large change, but moving forward Play Game Services are<br />much better aligned with the rest of the Mobile platform from Google and will<br />lead to better developer experience for Android game developers.<br /></p>Dindahttp://www.blogger.com/profile/00796869350788211838noreply@blogger.com0tag:blogger.com,1999:blog-170710622875530737.post-22449924176096746412016-12-16T12:04:00.000-08:002019-01-03T19:33:00.728-08:00Four tips for startup success from a Silicon Valley VC<i>Posted by Kacey Fahey, Marketing Programs Manager, Google Play</i><br /><BR><br /><BR><br />Working at Google Play, we’re on the front line watching developers build, polish, and launch their dreams for millions of users to experience. While it’s exciting to be a part of so much creativity, we’re often asked how small startups can stand out in such a competitive field. We recently had Josh Elman & Sarah Tavel of Greylock Partners speak at our events, sharing their experiences working in Product Marketing and Engineering at major tech companies including Twitter, Facebook and Pinterest. Below are four tips to hit the ground running and create a business built for success.<br /><BR><br /><br><br /><h3>Set goals, both large and small</h3><br /><BR><br />Every startup has an ultimate goal, but don’t forget to create micro-goals. Breaking your larger goal down into smaller milestones creates checkpoints to review progress and ensure momentum is heading in the right direction. This also allows for flexibility if teams need to course correct along the way, not to mention micro-accomplishments to celebrate!<br /><BR><br /><BR><br /><h3>Create stickiness</h3><br /><BR><br />The first level in Sarah’s <a href="https://news.greylock.com/the-hierarchy-of-engagement-5803bf4e6cfa#.6qcriml7z">Hierarchy of Engagement</a> is to identify the core action for users to perform in your app. Once you have engagement with this core action, level 2 is driving retention, getting users to come back and perform the core action more and more. The ultimate goal is to hook users with your app creating accruing benefits, whereby deeper and more frequent engagement creates habits and product dependencies.<br /><BR><br /><BR><br /><BR><br /><CENTER><iframe width="560" height="315" src="https://www.youtube.com/embed/p40Dl2j7tKU?list=PLWz5rJ2EKKc-XoJTVgYBviYbgxgSJqBws" frameborder="0" allowfullscreen></iframe></CENTER><br /><BR><br /><BR><br /><i>“As companies move up the hierarchy, their products become better, harder to leave, and ultimately create virtuous loops that make the product self-perpetuating,”<br />– Sarah Tavel, Partner at Greylock</i><br /><BR><br /><BR><br /><b>Example:</b> For those looking to improve on organizational skills, Evernote can be a lifesaver. The more lists users create, the more they rely on the product. <a href="https://play.google.com/store/apps/details?id=com.evernote">Evernote</a> becomes such an ingrained habit that it naturally transcends between personal and professional worlds.<br /><h3><br /><br><br />Drive virality</h3><br /><BR><br />When launching a new app, look for ways to achieve virality. Find hooks to make users fall in love with your app and strive to make it part of their regular habits. But watch out, not all types of <a href="https://news.greylock.com/the-five-types-of-virality-8ba42051928d#.ewq5fh650">virality</a> are treated equally.<br /><BR><br /><BR><br /><i>“Whenever you’re thinking about engineering virality, you need to be sure that you’re reaching the right people, getting them interested for reasons that align with the intrinsic value of your product, and leading them to the right actions,” <br />– Josh Elman, Partner at Greylock<br /></i><br /><b>Example:</b> Whether you’re lucky enough to convert happy users into product evangelists or catch fire through social media, outbreak virality has driven tremendous success for apps like <a href="https://play.google.com/store/apps/details?id=com.nianticlabs.pokemongo">Pokémon GO</a> and <a href="https://play.google.com/store/apps/details?id=com.neuralprisma">Prisma</a>. <br /><BR><br /><br><br /><h3>Measure cohorts</h3><br /><BR><br />While monitoring traditional mobile metrics such as installs and DAUs provide a high level overview of app performance, cohort analysis is key to understanding user behavior and optimizing for growth. When rolling out changes in your app, make sure to track cohorts for an extended duration. Initial results may tell one story at D7, but hold tight, as things could turn a corner by D15 or even later. Give users time to adapt and get comfortable with the changes before making any final product decisions.<br /><BR><br /><BR><br />Read more tips on how to find success for your app or game start up in the <a href="http://g.co/play/playbookapp">Playbook for Developers</a> app.<br /><BR><br /><BR><br /><div dir="ltr" style="text-align: left;" trbidi="on"><br /><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="font-family: Arial; font-size: 13.3333px; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: Arial; font-size: 13.3333px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;">How useful did you find this blogpost?</span></div><br /><br /><br /><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><a href="http://aipqlscltlzfd_av-3radbqo1qxwcsuacdcim6fjfxyncyf7zelvxg/viewform?entry.753333049=1%E2%98%85+%E2%80%93+Not+at+all&entry.656324858&entry.1348260426=playtimestartup-12/16&entry.1170596605&entry.646747778=playtimestartup-12/16" style="text-decoration: none;"><span style="color: #f1c232; font-family: Arial; font-size: 18.6667px; vertical-align: baseline; white-space: pre-wrap;">★</span></a><span style="color: #f1c232; font-family: Arial; font-size: 18.6667px; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=2%E2%98%85+%E2%80%93+Not+very&entry.656324858&entry.1348260426=playtimestartup-12/16&entry.1170596605&entry.646747778=playtimestartup-12/16" style="text-decoration: none;"><span style="color: #f1c232; font-family: Arial; font-size: 18.6667px; vertical-align: baseline; white-space: pre-wrap;">★</span></a><span style="color: #f1c232; font-family: Arial; font-size: 18.6667px; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=3%E2%98%85+%E2%80%93+Somewhat&entry.656324858&entry.1348260426=playtimestartup-12/16&entry.1170596605&entry.646747778=playtimestartup-12/16" style="text-decoration: none;"><span style="color: #f1c232; font-family: Arial; font-size: 18.6667px; vertical-align: baseline; white-space: pre-wrap;">★</span></a><span style="color: #f1c232; font-family: Arial; font-size: 18.6667px; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=4%E2%98%85+%E2%80%93+Very&entry.656324858&entry.1348260426=playtimestartup-12/16&entry.1170596605&entry.646747778=playtimestartup-12/16" style="text-decoration: none;"><span style="color: #f1c232; font-family: Arial; font-size: 18.6667px; vertical-align: baseline; white-space: pre-wrap;">★</span></a><span style="color: #f1c232; font-family: Arial; font-size: 18.6667px; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=5%E2%98%85+%E2%80%93+Extremely&entry.656324858&entry.1348260426=playtimestartup-12/16&entry.1170596605&entry.646747778=playtimestartup-12/16" style="text-decoration: none;"><span style="color: #f1c232; font-family: Arial; font-size: 18.6667px; vertical-align: baseline; white-space: pre-wrap;">★</span></a></div><br /><br /><br /><br /><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="color: #333333; font-family: Arial; font-size: 13.3333px; vertical-align: baseline; white-space: pre-wrap;"><img height="148" src="https://lh5.googleusercontent.com/BovKSwu1kcoctnu889f1DZBfJSZ5LKBvTpmbzJwK_TVr8V24A9kt2v12wJWZaHuloV2eHg4bDKM2mZQfjVy7cctPxsAUezaBE7FqiTOhTBKQZQTBtYqlmcT5ef-ICXryayu56tEE" style="border: none; transform: rotate(0rad);" width="141" /></span></div><br /></div><br /><br /><br /><br />Dindahttp://www.blogger.com/profile/00796869350788211838noreply@blogger.com0tag:blogger.com,1999:blog-170710622875530737.post-46119556044643072482016-12-15T13:31:00.000-08:002019-01-03T19:33:00.929-08:00Get a glimpse of Wear 2.0’s upcoming standalone apps<i>Kacey Fahey, Marketing Programs Manager, Google Play</i><br /><br><br /><br><br />The upcoming <a href="https://developer.android.com/wear/preview/index.html">Android Wear 2.0</a> experience will introduce standalone apps, expanding your potential reach to both Android and iOS audiences with Wear devices. Users will be able to search, install, and use apps without ever leaving their device. See how other developers are enhancing their user experience with standalone apps for messaging, travel & local, and health & fitness. <br /><br><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgS-xagJySD2XRq4CKJUFE2wpGJ8whhyXlmOOKzinB2dO1wwB1C9vIKiBaIfs-wTCxKcuUrjc_GlcfNyDRVdTG_WWIzauSupCXwC4p8MoZ9I536SJPZWrFlfB8qLAUxA5ypqMp38SiCIyIZ/s1600/test-image.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgS-xagJySD2XRq4CKJUFE2wpGJ8whhyXlmOOKzinB2dO1wwB1C9vIKiBaIfs-wTCxKcuUrjc_GlcfNyDRVdTG_WWIzauSupCXwC4p8MoZ9I536SJPZWrFlfB8qLAUxA5ypqMp38SiCIyIZ/s400/test-image.png" width="400" height="192" /></a></div><br /><p><br /><strong>Glide</strong><br /></p><br /><p><br />Having a watch app further simplifies video messaging with <a<br />href="https://play.google.com/store/apps/details?id=com.glidetalk.glideapp&hl=en_GB">Glide</a>.<br />Using the Wear <a<br />href="https://developer.android.com/wear/preview/features/complications.html">Complications<br />API</a>, Glide is now able to live broadcast directly from the watch face. By<br />tapping contact shortcuts from the watch face, you can now launch directly into<br />a conversation. This experience brings speed and intimacy to the world of<br />messaging, making wrist-based communication more accessible and effortless.<br /></p><br /><p><br /><strong>Foursquare</strong><br /></p><br /><p><br />Travelers around the world use <a<br />href="https://play.google.com/store/apps/dev?id=7953007503920441591&hl=en_GB">Foursquare's</a><br />Android Wear app to discover hidden gems and be in the know about the best<br />places to eat, drink and explore. With their upcoming 2.0 app, the team has a<br />clean new canvas for rich notifications giving users an immersive experience<br />with Foursquare content.<br /></p><br /><p><br /><em>"The standalone nature of the Android Wear 2.0 app will offer a big boost in<br />search performance and app responsiveness so you spend less time staring at the<br />screen and more time exploring the world around you,"</em> said Kyle Fowler,<br />Software Engineer at Foursquare.<br /></p><br /><p><br /><strong>Lifesum</strong><br /></p><br /><p><br /><strong><br /></strong><a<br />href="https://play.google.com/store/apps/details?id=com.sillens.shapeupclub&hl=en_GB">Lifesum</a><br />helps users make better food choices, improve their exercise, and reach health<br />goals. The upcoming 2.0 experience complements the existing Lifesum mobile app<br />and as a standalone app, it will allow users to more easily track water and<br />meals throughout the day.<br /></p><br /><p><br /><em>"It's all about increasing access and being there for the user in a quick<br />and simple way. We believe a simplified way of tracking meals and water will<br />make it easier for our users on their journey of becoming healthier and<br />happier,"</em> said Joakim Hammer, Android Developer at Lifesum<br /></p><br /><br><br /><br />Check out <a href="http://g.co/wearpreview">g.co/wearpreview</a> for the latest builds and documentation about the recently released Android Wear Developer Preview 4.<br /><br><br /><div dir="ltr" style="text-align: left;" trbidi="on"><br /><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="font-family: "Open Sans"; font-size: 13.3333px; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: "Open Sans"; font-size: 13.3333px; font-style: italic; vertical-align: baseline; white-space: pre-wrap;">How useful did you find this blogpost?</span></div><br /><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><br /><br /></div><br /><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=1%E2%98%85+%E2%80%93+Not+at+all&entry.656324858&entry.1348260426=wearstories-12/16&entry.1170596605&entry.646747778=wearstories-12/16" style="text-decoration: none;"><span style="color: #f1c232; font-family: Arial; font-size: 18.6667px; vertical-align: baseline; white-space: pre-wrap;">★</span></a><span style="color: #f1c232; font-family: Arial; font-size: 18.6667px; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=2%E2%98%85+%E2%80%93+Not+very&entry.656324858&entry.1348260426=wearstories-12/16&entry.1170596605&entry.646747778=wearstories-12/16" style="text-decoration: none;"><span style="color: #f1c232; font-family: Arial; font-size: 18.6667px; vertical-align: baseline; white-space: pre-wrap;">★</span></a><span style="color: #f1c232; font-family: Arial; font-size: 18.6667px; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=3%E2%98%85+%E2%80%93+Somewhat&entry.656324858&entry.1348260426=wearstories-12/16&entry.1170596605&entry.646747778=wearstories-12/16" style="text-decoration: none;"><span style="color: #f1c232; font-family: Arial; font-size: 18.6667px; vertical-align: baseline; white-space: pre-wrap;">★</span></a><span style="color: #f1c232; font-family: Arial; font-size: 18.6667px; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=4%E2%98%85+%E2%80%93+Very&entry.656324858&entry.1348260426=wearstories-12/16&entry.1170596605&entry.646747778=wearstories-12/16" style="text-decoration: none;"><span style="color: #f1c232; font-family: Arial; font-size: 18.6667px; vertical-align: baseline; white-space: pre-wrap;">★</span></a><span style="color: #f1c232; font-family: Arial; font-size: 18.6667px; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=5%E2%98%85+%E2%80%93+Extremely&entry.656324858&entry.1348260426=wearstories-12/16&entry.1170596605&entry.646747778=wearstories-12/16" style="text-decoration: none;"><span style="color: #f1c232; font-family: Arial; font-size: 18.6667px; vertical-align: baseline; white-space: pre-wrap;">★</span></a></div><br /><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><br /><br /></div><br /><div dir="ltr" style="line-height: 1.68; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="color: #333333; font-family: "Open Sans"; font-size: 13.3333px; vertical-align: baseline; white-space: pre-wrap;"><img height="148" src="https://lh3.googleusercontent.com/eOk3DauP7sHTCjBFNLMyq4BY2r6ypF7eJEaydXmZB30sanq8KkdUaGQmtbP3OkXeG5haMnm1rSPkRI1kWLEMmbOGHDa5jB_vL43e710mVcrIkdk829A9CsiUqGKBZ5sU03ROV2Io" style="border: none; transform: rotate(0rad);" width="141" /></span></div><br /></div><br />Dindahttp://www.blogger.com/profile/00796869350788211838noreply@blogger.com0tag:blogger.com,1999:blog-170710622875530737.post-83274503179703347092016-12-15T11:13:00.000-08:002019-01-03T19:33:01.119-08:00Tips to be better found and discovered on Google Play<i>Posted by Andrew Ahn, Product Manager, Google Play</i><br /><br /><p><br />We're constantly working on ways to make Google Play a great place for users to<br />discover apps and games they'll love. We know this is crucial to most developers<br />ongoing success. There are steps you can take to ensure your app is primed for<br />success – that's why we're sharing a reminder of some of our top tips for<br />getting your app discovered on Google Play.<br /></p><br /><p><br /><strong>Build for quality</strong><br /></p><br /><p><br />First, build for quality. Android users expect high-quality apps. App quality<br />directly influences the long-term success of your app - in terms of installs,<br />user rating and reviews, engagement, and user retention. These are some of the<br />factors that go into our search and discovery systems that help discern what<br />apps to recommend and surface across our Google Play experiences. When building<br />your app, check against the <a<br />href="https://developer.android.com/distribute/essentials/quality/core.html">quality<br />criteria</a>, and use what you need from the material design guidelines to make<br />sure you are delivering a highly usable experience. Also, be sure to test your<br />app for functional quality. Opt-in to the <a<br />href="https://support.google.com/googleplay/android-developer/answer/7002270?hl=en">pre-launch<br />report</a> for your alpha and beta apps in the Google Play Developer Console and<br />you'll receive a report for each APK showing how it performs on real devices. This will help you identify crashes and other issues before you release your app.<br /></p><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhp5HaRUdKLBT9PoRa0yxm45a-S5M8vdN1V3qRRXG57sCSzBfa8H3SLSZrYNoCGZeT9_ezfrU6BgjcOvxi_ZqsxCGoVHGBzPNKbya65G5XjQ44KMMQ2SwBgk_hv6RQF9Z3lTM6rdN1XzzTX/s1600/image02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhp5HaRUdKLBT9PoRa0yxm45a-S5M8vdN1V3qRRXG57sCSzBfa8H3SLSZrYNoCGZeT9_ezfrU6BgjcOvxi_ZqsxCGoVHGBzPNKbya65G5XjQ44KMMQ2SwBgk_hv6RQF9Z3lTM6rdN1XzzTX/s640/image02.png" width="607" height="640" /></a></div><br /><center><p><br /><em>Example: Designing for high usability through <a<br />href="https://material.google.com/">Google Material Design</a>.</center></em><br /></p><br /><p><br /><strong>Request only the permissions you need</strong><br /></p><br /><p><br />Second, be considerate on which permission settings to enable for your app. We<br />see that there are some apps that ask for very sensitive permissions, even when<br />the app doesn't use them. (For example, a camera app asking for read and write<br />permissions to call logs.) Excessive app permissions may dissuade users from<br />installing your app. In fact, <a<br />href="http://dl.acm.org/citation.cfm?id=2556978">one study</a>, in which users<br />were shown two unbranded apps with similar ratings that had the same<br />functionality but different sets of permission requests, showed that users were,<br />on average, 3 times more likely to install the app with fewer permissions<br />requests. And a <a<br />href="https://www.usenix.org/system/files/conference/soups2014/soups14-paper-lin.pdf">similar<br />study</a> showed that users are 1.7 times more likely, on average, to select the<br />application with fewer permission requests. The rule of thumb is to enable<br />permissions that are only essential to your app. Read the <a<br />href="https://developer.android.com/training/articles/user-data-permissions.html">best<br />practices for app permissions</a>.<br /></p><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUIerpKC7WEzlqmj9vDGalIGdrGKd96WK1pC3EtkJKmyWDvonpMEky5C3wvUGohcJnViSFj3x__d04O5LSb5l7CzC3y_n4X-9EO_QgJ6utXJhxqGBZYS9adg1fS5t34ubBmrfoIlw3_cPL/s1600/image03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUIerpKC7WEzlqmj9vDGalIGdrGKd96WK1pC3EtkJKmyWDvonpMEky5C3wvUGohcJnViSFj3x__d04O5LSb5l7CzC3y_n4X-9EO_QgJ6utXJhxqGBZYS9adg1fS5t34ubBmrfoIlw3_cPL/s640/image03.png" width="640" height="520" /></a></div><br /><center><p><br /><em><a<br />href="https://developer.android.com/training/articles/user-data-overview.html">Chart</a>:<br />Distribution of permission groups use across Arcade Games category.</em></center><br /></p><br /><center><em>If you're building an arcade game, you many only need a very few permission<br />settings, if any.</em></center><br /><p><br /><strong>Listen and respond to your users</strong><br /></p><br /><p><br />Lastly, be attentive to user feedback. It's ultimately the users who drive our<br />search and discovery systems. When you hear user feedback about bugs or other<br />issues, we recommend engaging with the feedback and, if needed, updating your<br />app in a timely manner. Having an up-to-date app that reflects your user's<br />feedback can help you gain more installs, engagement, and higher ratings. <a<br />href="https://support.google.com/googleplay/android-developer/answer/3131213">Beta<br />testing</a> is a good way to get feedback from real users before launch. You can<br />also check the <a<br />href="https://support.google.com/googleplay/android-developer/answer/138230?hl=en">ratings<br />and reviews</a> section of the Developer Console to see an analysis of what<br />users are saying about your app and how that is affecting your rating compared<br />to similar apps.<br /></p><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9f7xhwFJZe4Szfw_rhvomnLTTfL4_AF55VYOcIEJn8L0-NCeJn9D451ZeJDCMURPv0v9OwHrX5zAigflfnQisfj-C_vgt49uymO4IWGO0D608CIJyo4zTNEOJ0lnkuGYY1pL4wSef-23m/s1600/image01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9f7xhwFJZe4Szfw_rhvomnLTTfL4_AF55VYOcIEJn8L0-NCeJn9D451ZeJDCMURPv0v9OwHrX5zAigflfnQisfj-C_vgt49uymO4IWGO0D608CIJyo4zTNEOJ0lnkuGYY1pL4wSef-23m/s640/image01.png" width="640" height="388" /></a></div><br /><center><p><br /><em>Review benchmarks in the Developer Console uses machine learning to give you<br />insights about what users are saying about your app and how it affects your<br />rating.</em></center><br /></p><br /><p><br />Google Play strives to help users find and discover the most safe, high quality,<br />useful, and relevant apps. Building apps that put user's interest first will<br />help you be successful in Google Play. For more tips and best practices for<br />building a successful app business on Google Play, get the <a<br />href="http://g.co/play/playbook">Playbook for Developers app</a>.<br /></p><br /><br><br /><div dir="ltr" style="text-align: left;" trbidi="on"><br /><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> How useful did you find this blogpost? </span></div><br /><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=1%E2%98%85+%E2%80%93+Not+at+all&entry.656324858&entry.1348260426=discovertips-12/16&entry.1170596605&entry.646747778=discovertips-12/16" style="text-decoration: none;"><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">★</span></a><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=2%E2%98%85+%E2%80%93+Not+very&entry.656324858&entry.1348260426=discovertips-12/16&entry.1170596605&entry.646747778=discovertips-12/16" style="text-decoration: none;"><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">★</span></a><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=3%E2%98%85+%E2%80%93+Somewhat&entry.656324858&entry.1348260426=discovertips-12/16&entry.1170596605&entry.646747778=discovertips-12/16" style="text-decoration: none;"><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">★</span></a><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=4%E2%98%85+%E2%80%93+Very&entry.656324858&entry.1348260426=discovertips-12/16&entry.1170596605&entry.646747778=discovertips-12/16" style="text-decoration: none;"><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">★</span></a><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=5%E2%98%85+%E2%80%93+Extremely&entry.656324858&entry.1348260426=discovertips-12/16&entry.1170596605&entry.646747778=discovertips-12/16" style="text-decoration: none;"><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">★</span></a></div><br /><div dir="ltr" style="line-height: 1.68; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><a href="http://developers.android.com/distribute" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"><img height="148" src="https://lh6.googleusercontent.com/4P3TsoiyWYFl0VZZGyEUidLSWWgeD9kK-fTgne9v9wFRUeo5F0IfcSLuXTht6m4zQ8LT7D7t-Byrt4g8NoRk-PLjoRaFnVddrpKQ-UXJxsCU2v_wvk-dDB5bDVeWWRVay_MIflU6" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="141" /></span></a></div><br /><span id="docs-internal-guid-fbf03a2c-03a4-dfc0-84d7-529d7b1e243d"><br /></span></div><br />Dindahttp://www.blogger.com/profile/00796869350788211838noreply@blogger.com0tag:blogger.com,1999:blog-170710622875530737.post-48217901934461326382016-12-13T18:09:00.000-08:002019-01-03T19:33:01.324-08:00Android Wear 2.0 for China - Developer Preview<i>Posted by <a href="https://twitter.com/hoitab">Hoi Lam</a>, Developer Advocate</i><br /><div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGdgROUR-VL3WfAgGsQq3-jHXrQsXir8Kg-Z-3qni6OuaJMyHCLOt3ywb0oD4OPYh5QEq-SBXvOWsaDyd2dv75G0NAzBXqxbs_T0vgUNxz6gEOdiB7vIVdUDFYkm-CGvT6FJi7sRwc9XH3/s640/mock.png" width="640" height="360" /></div><br /><p><br />Today at <a href="http://www.google.cn/intl/en/events/developerday2016/">Google<br />Developer Day China</a>, we are happy to announce a <a<br />href="https://developer.android.google.cn/wear/preview/?utm_campaign=android wear_launch_chinadeveloperpreview_121316&utm_source=anddev&utm_medium=blog">developer preview</a><br />of Android Wear 2.0 for developers creating apps for China. Android Wear 2.0 is<br />the biggest update since our partners launched their first devices in China last<br />year.<br /></p><br /><p><br />We're making a Developer Preview available today and plan to release additional<br />updates in the coming months. Please send us your feedback by <a<br />href="http://g.co/wearpreviewbug">filing bugs</a> or posting in our <a<br />href="https://plus.google.com/communities/113381227473021565406">Android Wear<br />Developers</a> community.<br /></p><br /><h3>Developing for the Chinese Market</h3><br /><p><br />With Android Wear 2.0, apps can access the internet directly on Android Wear<br />devices. As a result, for the majority of apps, having a companion phone<br />application is no longer necessary. This means that most developers creating<br />apps for Android Wear 2.0 may no longer need to import the Google Play services<br />library.<br /></p><br /><p><br />There are two situations where developers will need to import Google Play<br />services for China:<br /></p><ul><br /><li><strong>Apps that require direct interaction with the paired mobile<br />device</strong> - some experiences require Android Wear to connect directly to a<br />paired phone. In this case, the <a<br />href="https://developer.android.google.cn/training/wearables/data-layer/?utm_campaign=android wear_launch_chinadeveloperpreview_121316&utm_source=anddev&utm_medium=blog">Data<br />Layer API</a> introduced in Android Wear 1.0 will continue to function.<br /><li><strong>New <a<br />href="https://developer.android.google.cn/training/articles/wear-location-detection.html?utm_campaign=building-for-wear-215&utm_source=dac&utm_medium=blog">FusedLocationProvider</a><br />for China</strong> - we have added location detection to the SDK for Chinese<br />developers. With the user's permission, your app can receive location updates<br />via the FusedLocationProvider.</li></ul><br /><p><br />You can find more details about how to import the China compatible version of<br />Google Play services library <a<br />href="https://developer.android.google.cn/training/wearables/apps/creating-app-china.html?utm_campaign=android wear_launch_chinadeveloperpreview_121316&utm_source=anddev&utm_medium=blog">here</a>.<br /></p><br /><h3>Product testing for Android Wear 2.0 for China</h3><br /><p><br />The Android Wear 2.0 Developer Preview includes an updated SDK with tools, and<br />system images for testing using the Huawei Watch.<br /></p><br /><p><br />To get started, follow these steps:<br /></p><ul><br /><li>Update to Android Studio v2.1.1 or later<br /><li>Visit the <a<br />href="https://developer.android.google.cn/wear/preview/?utm_campaign=android wear_launch_chinadeveloperpreview_121316&utm_source=anddev&utm_medium=blog">Android Wear 2.0<br />Developer Preview</a> site for downloads and documentation<br /><li><a<br />href="https://developer.android.google.cn/wear/preview/downloads.html?utm_campaign=android wear_launch_chinadeveloperpreview_121316&utm_source=anddev&utm_medium=blog">Download<br />the device system images</a><br /><li>Test your app with your supported device</li></ul><br /><h3>Give us feedback</h3><br /><p><br />We will update this developer preview over the next few months based on your<br />feedback. The sooner we hear from you, the more we can include in the final<br />release, so don't be shy!<br /></p><br /><br><br /><h1>Android Wear 2.0 中国版 - 开发者预览版</h1><br /><p><br />编辑: <a href="https://twitter.com/hoitab">林海泉</a>, Android Wear 开发平台负责人<br /></p><br /><p><br />今天在上海举办的<a href="http://www.google.cn/intl/en/events/developerday2016/">Google<br />开发者大会</a>上,我们正式宣布了一款专门针对中国市场的Android Wear 2.0 <a<br />href="https://developer.android.google.cn/wear/preview/">开发者预览版</a>。Android Wear<br />2.0系统,将是自我们的合作伙伴首次发布手表产品以来最重大的更新。<br /></p><br /><p><br />开发者预览版已于今日正式上线。与此同时,我们也计划在未来的几个月内持续进行更新。请您将您遇到的问题在此<a<br />href="http://g.co/wearpreviewbug">提交反馈</a>,或者在我们的<a<br />href="https://plus.google.com/communities/113381227473021565406">Android<br />Wear开发者论坛</a>发表意见。<br /></p><br /><h3>为中国市场开发应用</h3><br /><p><br />在Android Wear 2.0系统中,应用可以由Android<br />Wear手表直接连接至互联网。因此,对于大多数应用来说,手机端的伴侣应用也就变得不再必要。这也意味着,多数为Android Wear<br />2.0开发应用的开发者将不再需要引用Google Play services客户端库。<br /></p><br /><p><br />目前,在两个情况下开发者仍然需要引入Google Play Services客户端库来为中国市场开发应用:<br /></p><ul><br /><li><strong>需要与手机直接进行通信的应用</strong> - 有一些用例需要Android<br />Wear手表与已配对手机直接连接。在这种情况下,Android Wear 1.0中引入的<a<br />href="https://developer.android.google.cn/training/wearables/data-layer/">Data<br />Layer API</a>仍然可以继续使用。<br /><li><strong>使用 <a<br />href="https://developer.android.google.cn/training/articles/wear-location-detection.html?utm_campaign=building-for-wear-215&utm_source=dac&utm_medium=blog">FusedLocationProvider</a></strong><br />- 我们在最新的中国版SDK中加入了定位的支持。在用户的许可下,您的应用可以通过FusedLocationProvider来接收定位更新。</li></ul><br /><p><br />您可以在<a<br />href="https://developer.android.google.cn/training/wearables/apps/creating-app-china.html">这里</a>找到关于如何引入与中国版兼容的Google<br />Play service的更多信息。<br /></p><br /><h3>Android Wear 2.0 中国版产品测试</h3><br /><p><br />Android Wear 2.0 开发者预览版包括最新的SDK套件,手表测试系统镜像(基于华为手表)。<br /></p><br /><p><br />情按照以下步骤进行测试:<br /></p><ul><br /><li>更新到Android Studio至v2.1.1以上版本<br /><li>访问 <a href="https://developer.android.google.cn/wear/preview/">Android Wear<br />2.0 开发者预览版</a>,那里的文件下载与文档下载部分<br /><li><a<br />href="https://developer.android.google.cn/wear/preview/downloads.html">下载手表系统镜像</a><br /><li>在手表上测试您的应用</li></ul><br /><h3>开发反馈</h3><br /><p><br />我们会根据您的反馈在未来的几个月中更新开发者预览版。您给我们的反馈越早,我们将会在最终的发布版本中包含更多针对您的反馈的解决方案。敬请期待!<br /></p>Dindahttp://www.blogger.com/profile/00796869350788211838noreply@blogger.com0tag:blogger.com,1999:blog-170710622875530737.post-91774008283454788142016-12-13T09:56:00.000-08:002019-01-03T19:33:01.524-08:00Android Wear 2.0 Developer Preview 4: Authentication, In-App Billing, and more<em>Posted by <a href="https://twitter.com/hoitab">Hoi Lam</a>, Developer<br />Advocate</em><br /></p><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQVEzsU8-0S6dZMXQVcA7hwvMzWEpZxC_SxzoEWEnOKUfpL5qqPm_u1Xl-TxmaxlvRkVcYiiMQtlUKY7tgFpJylCcUaSQuH2DEeu8utwD_HAxV7XEb_NtV8CJt0k1eJScL-wGHUAKcpwvP/s1600/HeroAnimation_World_exChina_v1.5.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQVEzsU8-0S6dZMXQVcA7hwvMzWEpZxC_SxzoEWEnOKUfpL5qqPm_u1Xl-TxmaxlvRkVcYiiMQtlUKY7tgFpJylCcUaSQuH2DEeu8utwD_HAxV7XEb_NtV8CJt0k1eJScL-wGHUAKcpwvP/s640/HeroAnimation_World_exChina_v1.5.gif" width="640" height="361" /></a></div><br /><p><br />A key part of <a href="http://g.co/wearpreview">Android Wear 2.0</a> is letting<br />watch apps work as standalone apps, so users can respond to messages, track<br />their fitness, and use their favorite apps, even when their phone isn't around.<br />Developer Preview 4 includes a number of new APIs that will help you build more<br />powerful standalone apps.<br /></p><br /><h3>Seamless authentication</h3><br /><p><br />To make authentication a seamless experience for both Android phone and iPhone<br />users, we have created new APIs for <a<br />href="https://developer.android.com/wear/preview/features/auth-wear.html?utm_campaign=android wear_launch_developerpreview_121316&utm_source=anddev&utm_medium=blog">OAuth<br />and added support for one-click Google Sign-in</a>. With the OAuth API for<br />Android Wear, users can tap a button on the watch that opens an authentication<br />screen on the phone. Your watch app can then authenticate with your server side<br />APIs directly. With Google Sign-In, it's even easier. All the user needs to do<br />is select which account they want to authenticate with and they are done.<br /></p><br /><h3>In-app billing</h3><br /><p><br />In addition to paid apps, we have added <a<br />href="https://developer.android.com/training/in-app-billing/index.html?utm_campaign=android wear_launch_developerpreview_121316&utm_source=anddev&utm_medium=blog">in-app<br />billing</a> support, to give you another way to monetize your Android Wear app<br />or watch face. Users can authorize purchases quickly and easily on the watch<br />through a 4-digit Google Account PIN. Whether it's new levels in a game or new<br />styles on a watch face, if you can build it, users can buy it.<br /></p><br /><h3>Cross-device promotion</h3><br /><p><br />What if your watch app doesn't work standalone? Or what if it offers a better<br />user experience when both the watch and phone apps are installed? We've been<br />listening carefully to your feedback, and we've added <a<br />href="https://developer.android.com/wear/preview/features/standalone-apps.html?utm_campaign=android wear_launch_developerpreview_121316&utm_source=anddev&utm_medium=blog#detecting-your-app">two<br />new APIs</a> (<code>PlayStoreAvailability</code> and <code>RemoteIntent</code>)<br />to help you navigate users to the Play Store on a paired device so they can<br />more easily install your app. Developers can also open custom URLs on the phone<br />from the watch via the new <code>RemoteIntent</code> API; no phone app or data<br />layer is required.<br /></p><br /><br /><pre<br />class="prettyprint">// Check Play Store is available<br />int playStoreAvailabilityOnPhone =<br /> PlayStoreAvailability.getPlayStoreAvailabilityOnPhone(getApplicationContext());<br /><br />if (playStoreAvailabilityOnPhone == PlayStoreAvailability.PLAY_STORE_ON_PHONE_AVAILABLE) {<br /> // To launch a web URL, setData to Uri.parse("https://g.co/wearpreview")<br /> Intent intent =<br /> new Intent(Intent.ACTION_VIEW)<br /> .addCategory(Intent.CATEGORY_BROWSABLE)<br /> .setData(Uri.parse("market://details?id=com.google.android.wearable.app"));<br /> // mResultReceiver is optional; it can be null.<br /> RemoteIntent.startRemoteActivity(this, intent, mResultReceiver);<br />}</pre><br /><h3>Swipe-to-dismiss is back</h3><br /><p><br />Many of you have given us the feedback that the swipe-to-dismiss gesture from<br />Android Wear 1.0 is an intuitive time-saver. We agree, and have reverted back to<br />the previous behavior with this developer preview release. To support<br />swipe-to-dismiss in this release, we've made the following platform and API<br />changes:<br /></p><ul><br /><li><strong>Activities now automatically support swipe-to-dismiss.</strong><br />Swiping an activity from left to right will result in it being dismissed and the<br />app will navigate down the back stack.<br /><li><strong>New Fragment and View support.</strong> Developers can wrap the<br />containing views of a Fragment or Views in general in the new<br /><code>SwipeDismissFrameLayout</code> to implement custom actions such as going<br />down the back stack when the user swipes rather than exiting the activity.<br /><li><strong>Hardware button now maps to "power"</strong> instead of "back" which<br />means it can no longer be intercepted by apps.</li></ul><br /><p><br />Additional details are available under the <a<br />href="https://developer.android.com/wear/preview/behavior-changes.html?utm_campaign=android wear_launch_developerpreview_121316&utm_source=anddev&utm_medium=blog">behavior<br />changes</a> section of the Android Wear Preview site.<br /></p><br /><h3>Compatibility with Android Wear 1.0 apps</h3><br /><p><br />Android Wear apps packaged using the legacy embedded app mechanism can now be<br />delivered to Android Wear 2.0 watches. When a user installs a phone app that<br />also contains an embedded Android Wear app, the user will be prompted to install<br />the embedded app via a notification. If they choose not to install the embedded<br />app at that moment, they can find it in the Play Store on Android Wear under a<br />special section called "Apps you've used".<br /></p><br /><p><br />Despite support for the existing mechanism, there are significant benefits for<br />apps that transition to the <a<br />href="https://developer.android.com/wear/preview/features/app-distribution.html?utm_campaign=android_discussion_wearpreview_092916&utm_source=anddev&utm_medium=blog#publish">multi-APK<br />delivery mechanism</a>. Multi-APK allows the app to be searchable in the Play<br />Store on Android Wear, to be eligible for merchandising on the homepage, and to<br />be remotely installed from the web to the watch. As a result, we strongly<br />recommend that developers move to multi-APK.<br /></p><br /><h3>More additions in Developer Preview 4</h3><br /><ul><br /><li><a<br />href="https://developer.android.com/wear/preview/features/ui-nav-actions.html?utm_campaign=android wear_launch_developerpreview_121316&utm_source=anddev&utm_medium=blog">Action<br />and Navigation Drawers</a><strong>:</strong> An enhancement to peeking behavior<br />allows the user to take action without scrolling all the way to the top or<br />bottom of a list. Developers can further fine-tune drawer peeking behavior<br />through new APIs, such as <code>setShouldPeekOnScrollDown</code> for the action<br />drawer.<br /><li><a<br />href="https://developer.android.com/wear/preview/features/wearable-recycler-view.html?utm_campaign=android wear_launch_developerpreview_121316&utm_source=anddev&utm_medium=blog">WearableRecyclerView</a><strong>:</strong><br />The curved layout is now opt-in, and with this, the WearableRecyclerView is now<br />a drop-in replacement for RecyclerView.<br /><li><a<br />href="https://developer.android.com/wear/preview/features/complications.html?utm_campaign=android wear_launch_developerpreview_121316&utm_source=anddev&utm_medium=blog#using_fields_for_complication_data">Burn-in<br />protection icon for complications</a>: Complication data providers can now<br />provide icons for use on screens susceptible to burn-in. These burn-in-safe<br />icons are normally the outline of the icon in interactive mode. Previously,<br />watch faces may have chosen not to display the icon at all in ambient mode to<br />prevent screen burn-in.</li></ul><br /><h3>Feedback welcome!</h3><br /><p><br />Thanks for all your terrific feedback on Android Wear 2.0. Check out <a<br />href="http://g.co/wearpreview">g.co/wearpreview</a> for the latest builds and<br />documentation, keep the feedback coming by <a<br />href="http://g.co/wearpreviewbug">filing bugs</a> or posting in our <a<br />href="https://plus.google.com/communities/113381227473021565406">Android Wear<br />Developers</a> community, and stay tuned for Android Wear Developer Preview 5!<br /></p>Dindahttp://www.blogger.com/profile/00796869350788211838noreply@blogger.com0tag:blogger.com,1999:blog-170710622875530737.post-91080213510098086532016-12-13T09:09:00.000-08:002019-01-03T19:33:01.714-08:00Announcing updates to Google’s Internet of Things platform: Android Things and Weave<p><br /><em>Posted by <a href="https://google.com/+WaynePiekarski">Wayne Piekarski</a>,<br />Developer Advocate for IoT</em><br /></p><br /><p><br />The Internet of Things (IoT) will bring computing to a whole new range of<br />devices. Today we're announcing two important updates to our IoT developer<br />platform to make it faster and easier for you to create these smart, connected<br />products.<br /></p><br /><p><br />We're releasing a Developer Preview of Android Things, a comprehensive way to<br />build IoT products with the power of Android, one of the world's most supported<br />operating systems. Now any Android developer can quickly build a smart device<br />using Android APIs and Google services, while staying highly secure with updates<br />direct from Google. We incorporated the feedback from Project Brillo to include<br />familiar tools such as Android Studio, the Android Software Development Kit<br />(SDK), Google Play Services, and Google Cloud Platform. And in the coming<br />months, we will provide Developer Preview updates to bring you the<br />infrastructure for securely pushing regular OS patches, security fixes, and your<br />own updates, as well as built-in Weave connectivity and more.<br /></p><br /><p><br />There are several turnkey hardware solutions available for you to get started<br />building real products with Android Things today, including Intel Edison, NXP<br />Pico, and Raspberry Pi 3. You can easily scale to large production runs with<br />custom designs of these solutions, while continuing to use the same Board<br />Support Package (BSP) from Google.<br /></p><br /><p><br />We are also updating the Weave platform to make it easier for all types of<br />devices to connect to the cloud and interact with services like the Google<br />Assistant. Device makers like Philips Hue and Samsung SmartThings already use<br />Weave, and several others like Belkin WeMo, LiFX, Honeywell, Wink, TP-Link, and<br />First Alert are implementing it. Weave provides all the cloud infrastructure, so<br />that developers can focus on building their products without investing in cloud<br />services. Weave also includes a Device SDK for supported microcontrollers and a<br />management console. The Weave Device SDK currently supports schemas for light<br />bulbs, smart plugs and switches, and thermostats. In the coming months we will<br />be adding support for additional device types, custom schemas/traits, and a<br />mobile application API for Android and iOS. Finally, we're also working towards<br />merging Weave and Nest Weave to enable all classes of devices to connect with<br />each other in a secure and reliable way. So whether you started with Google<br />Weave or Nest Weave, there is a path forward in the ecosystem.<br /><br><br /><br><br />This is just the<br />beginning of the IoT ecosystem we want to build with you. To get started, check<br />out <a href="https://developers.google.com/iot">Google's IoT developer site</a>,<br />or go directly to the <a href="https://developers.android.com/things">Android<br />Things</a>, <a href="https://developers.google.com/weave">Weave</a>,<a<br />href="https://developers.google.com/weave"> </a>and <a<br />href="https://cloud.google.com">Google Cloud Platform</a> sites for<br />documentation and code samples. You can also join <a<br />href="http://g.co/iotdev">Google's IoT Developers Community</a> on Google+ to<br />get the latest updates and share and discuss ideas with other developers.<br /></p><br /><div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9dB0W-ynO0Ump6g1EQovCcOrbtvVQCTrGz9_F21EjwbY2C5FhhpmAxoWgW6oLvRrCL3fGjESojxctX3DEbwL20Z3nkXsqwm61_j7iFkyKsJUMLE4MPhBImud_ccakwAmibwrjeiuo9ZP6/s320/android-things-logo.png" width="320" height="51" /></div><br /><div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyEd6WmvEmEg1tZ9lu-3pJkYSf_ZLJxxpLjj-JvmRdSsyC2k4wqGXdBzx5YvqvQYVgKjNNV3l-5RPF1FU-hrzUP23MJ2lgtA18qBP6NjDK0AOk2Cd3g_rvPEM42l0qtJ2usrdvelrEIjI8/s200/weave_logo.png" width="147" height="200" /></div>Dindahttp://www.blogger.com/profile/00796869350788211838noreply@blogger.com0tag:blogger.com,1999:blog-170710622875530737.post-8785178113946737642016-12-12T13:25:00.000-08:002019-01-03T19:33:01.906-08:00Five steps to achieve sustainable growth and boost your app's long term success<p><br /><em>Maxim Mai, Business Development Manager, Google Play</em><br /></p><br /><br /><p><br />Maintaining sustainable growth is difficult for even the highest quality apps.<br />In this video and through the 5 steps below you can find out how some of our<br />leading Android developers are tackling growth.<br /></p><br /><BR><br /><CENTER><iframe width="560" height="315" src="https://www.youtube.com/embed/Nh2m9365i0I?list=PLWz5rJ2EKKc-XoJTVgYBviYbgxgSJqBws" frameborder="0" allowfullscreen></iframe></CENTER><br /><BR><br /><BR><br /><h3><strong>1) Understand and define your app's objectives</strong></h3><br /><p><br />Depending on your product lifecycle stage you will most likely focus on these 3<br />growth goals with varying intensity:<br /></p><ul><br /><li>Acquire new users<br /><li>Increase engagement and retention<br /><li>Grow revenue</li></ul><br /><h3><strong>2) Track and measure your tactics against each of your<br />objectives</strong></h3><br /><p><br />List out the tactics you're using to achieve each objective and keep track of<br />their performance. You can visualize it using a scorecard like in the example<br />below created by <a href="http://www.mobilegrowthstack.com">Mobile Growth<br />Stack</a>.<br /></p><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCgAIn8ibZIdILBhxyapI_BuZh3fc4EAF9Qc9-7RmpegiWbAbdzut0ZtRt0YAgFWv7PS8zypeUHFKbFGVFbZI-QUD2N2Kshl7jpt1c20sL765fiAY_ho7N_3VdwTmBZVNOkZA35rjYbf5C/s1600/image03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCgAIn8ibZIdILBhxyapI_BuZh3fc4EAF9Qc9-7RmpegiWbAbdzut0ZtRt0YAgFWv7PS8zypeUHFKbFGVFbZI-QUD2N2Kshl7jpt1c20sL765fiAY_ho7N_3VdwTmBZVNOkZA35rjYbf5C/s640/image03.png" width="640" height="256" /></a></div><br /><h3><strong>3) Apply your growth tactics.</strong></h3><br /><p><br />Here are a few examples of specific tactics developers have successfully used to<br />drive sustained growth.<br /></p><br /><p><br /><strong>Tactic</strong>: <a<br />href="https://play.google.com/store/apps/details?id=com.clue.android">Clue,<br /></a>a female health app, invests in the Play store listing to increase<br />conversions.<br /></p><br /><p><br /><strong>Results</strong>: 24% aggregate increase in install conversion rate over<br />a period of 6 months.<br /><br><br /><br><br /><strong>How they did it</strong>:<br /></p><ul><br /><li>Built a continuous flow of global and localised <a<br />href="https://support.google.com/googleplay/android-developer/topic/7046704?hl=en&ref_topic=6299676">store<br />listing experiments</a>.<br /><li>Monitored changes in the <a<br />href="https://support.google.com/googleplay/android-developer/answer/6263332?hl=en">user<br />acquisition performance report</a> for target countries and channels.<br /><li>Gathered insights from what users are saying from the <a<br />href="https://support.google.com/googleplay/android-developer/answer/138230">reviews<br />analysis</a>.</li></ul><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUN5KIosYGV8FlJwET5FFLyOeyXQxxBzVBKHaFQZelgvqKpVbh9HKuo_w9xP9_CM1ZA-ahVnOXFwAxNY_wBOpiMS0CBW7CO1rAhJUfjU1RURqyu6kMQ7u9lASydJgFSY4_Jcjq70FDU0ZK/s1600/image01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUN5KIosYGV8FlJwET5FFLyOeyXQxxBzVBKHaFQZelgvqKpVbh9HKuo_w9xP9_CM1ZA-ahVnOXFwAxNY_wBOpiMS0CBW7CO1rAhJUfjU1RURqyu6kMQ7u9lASydJgFSY4_Jcjq70FDU0ZK/s400/image01.png" width="400" height="329" /></a></div><br /><i><center><p><br />Which phone screenshot do you think drove increase in install conversion for<br />Clue?<br /></p></center></i><br /><br /><strong>Tactic</strong>: <a<br />href="https://play.google.com/store/apps/details?id=org.sharethemeal.app">ShareTheMeal</a>,<br />a non-profit app developed by the World Food Programme, uses public relations as<br />a free sustainable acquisition channel. <br /><br><br /><br><br /><strong>Results</strong>: 50% of their<br />total installs to date were driven by media coverage.<br /><br><br /><br><br /><strong>How they did<br />it</strong>:<br /></p><ul><br /><li>Developed an excellent messaging.<br /><li>Boosted installs impact by combining PR with celebrity outreach and<br />distribution partnership.<br /><li>Learned that TV coverage has the highest impact on installs but print is a<br />useful door opener to amplify TV coverage.</li></ul><br /><p><br /><br /><strong>Tactic</strong>: Viral growth.<br /> Virality is a core<br />growth tool for apps and games that focus on sharing and usually the mechanic is<br />built into the core user experience of the product. However, even if sharing<br />isn't a key component of your app, you can still influence two key variables to<br />create an appropriate environment to encourage virality.<br /></p><br /><p><br /><strong>How to do it</strong>:<br /></p><ul><br /><li>Increase the number of additional users that a single user brings to the<br />app, by boosting the number of invitations sent.<br /><li>Decrease your "cycle time", how long it takes between inviting a user and<br />that user sending out the next round of invitations to their friends.<br /><li>Offer more incentives for users to share the app or its content while<br />they're using it will help shorten the cycle time and kickstart viral growth!<br /></li></ul><br /><br /><p><br /><strong>Tactic</strong>: <a<br />href="https://play.google.com/store/apps/details?id=com.freeletics.nutrition">Freeletics<br />Nutrition</a>, an app to adjust your nutrition to your individual needs and<br />goals, uses cross-promotion to accelerate the launch of a new product.<br /><br><br /><br><br /><strong>Results</strong>: 96% of new Nutrition app sales generated by users who<br />originally registered for the developer's <a<br />href="https://play.google.com/store/apps/details?id=com.freeletics.lite">Bodyweight</a><br />training app.<br /><br><br /><br><br /><strong>How they did it</strong>:<strong><em> </em></strong><br /></p><ul><br /><li>Surface meal advice in the Bodyweight app's activity feed with the goal of<br />raising awareness for the approaching launch of their new Freeletics Nutrition<br />app.</li></ul><br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-9YGiky3sQINvenruiunfCXA_2M3KZJwk4BQB9aImxFED4-5X4odURdq1Cb96PQ2SkLlFO8C-_AccLnV7xgaeE5VT3IPkjDiQdmH0v8-7DmqZgtqy3AOLGcU6OQGLRVREgUoGFJQWZ5JO/s1600/image00.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-9YGiky3sQINvenruiunfCXA_2M3KZJwk4BQB9aImxFED4-5X4odURdq1Cb96PQ2SkLlFO8C-_AccLnV7xgaeE5VT3IPkjDiQdmH0v8-7DmqZgtqy3AOLGcU6OQGLRVREgUoGFJQWZ5JO/s400/image00.png" width="242" height="400" /></a></div><br /><br /><h3><strong>4) Build a strong growth culture</strong></h3><br /><p><br />To make sustainable growth work for your app, it needs to be a part of your<br />culture. <a<br />href="https://play.google.com/store/apps/dev?id=8438666261259599516">Runtastic</a><br />is one of the leading health and fitness app developers in Europe and 95% of<br />their approximately 76M total app installs on Google Play have been generated<br />organically. Mario Aichlseder, VP of Growth, believes this is the result of a<br />strong growth culture and the growth principles according to which all teams<br />operate. For example, product managers, designers and engineers at Runtastic<br />deliberately chose a mixture of qualitative and quantitative feedback loops<br />during the app development process to ensure they stay true to their growth<br />principles.<br /></p><br /><br /><h3><strong>5) Adjust along the way</strong></h3><br /><p><br />It's important to track your tactics against real metrics to measure your<br />impact. That will help you make decisions about where to increase or decrease<br />your efforts. Your priorities will also change based on the evolution of your<br />business and product lifecycle as well as due to external factors such as new<br />techniques becoming available, so be open to regularly adjusting your tactics.<br /></p><br /><p><br />Get more tips and best practices in the sessions from <a<br />href="http://android-developers.blogspot.co.uk/2016/12/watch-sessions-from-the-playtime-2016-events-to-learn-how-to-succeed-on-android-and-google-play.html">this<br />year's Playtime events</a>.<br /></p><br /><br><br /><div dir="ltr" style="text-align: left;" trbidi="on"><br /><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: black; font-family: 'Open Sans'; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="background-color: transparent; color: black; font-family: 'Open Sans'; font-size: 13.333333333333332px; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">How useful did you find this blogpost?</span></div><br /><b style="font-weight: normal;"><br /></b><br /><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=1%E2%98%85+%E2%80%93+Not+at+all&entry.656324858&entry.1348260426=playtimegrowthframework-12/16&entry.1170596605&entry.646747778=playtimegrowthframework-12/16" style="text-decoration: none;"><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">★</span></a><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=2%E2%98%85+%E2%80%93+Not+very&entry.656324858&entry.1348260426=playtimegrowthframework-12/16&entry.1170596605&entry.646747778=playtimegrowthframework-12/16" style="text-decoration: none;"><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">★</span></a><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=3%E2%98%85+%E2%80%93+Somewhat&entry.656324858&entry.1348260426=playtimegrowthframework-12/16&entry.1170596605&entry.646747778=playtimegrowthframework-12/16" style="text-decoration: none;"><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">★</span></a><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=4%E2%98%85+%E2%80%93+Very&entry.656324858&entry.1348260426=playtimegrowthframework-12/16&entry.1170596605&entry.646747778=playtimegrowthframework-12/16" style="text-decoration: none;"><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">★</span></a><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=5%E2%98%85+%E2%80%93+Extremely&entry.656324858&entry.1348260426=playtimegrowthframework-12/16&entry.1170596605&entry.646747778=playtimegrowthframework-12/16" style="text-decoration: none;"><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">★</span></a></div><br /><br /><br /><br /><div dir="ltr" style="line-height: 1.68; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: #333333; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img height="148" src="https://lh6.googleusercontent.com/S-_5dz1JgtePx7IYzrW4YNiZoMRtWlDP62CQmHMiZ1J40H-0DdrFBduvQHnWskWJE-SZX_BhrZK_KzsQjBXipYAa_KKELggKifU6Nj0rm2eWe6cpszaJZBH89TEzGT0ge6ZHYeqa" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="141" /></span></div><br /></div><br /><br /><br /><br /><br /><br /><br /><br />Dindahttp://www.blogger.com/profile/00796869350788211838noreply@blogger.com0tag:blogger.com,1999:blog-170710622875530737.post-14773293092962745112016-12-08T09:20:00.000-08:002019-01-03T19:33:02.098-08:00How augmented reality helps you buy furniture and capture Pokémon<p><br /><em>Posted by Jamil Moledina, Games Strategic Lead, Google Play</em><br /></p><br /><p><br />Online furniture seller Wayfair and Niantic's <a<br />href="https://play.google.com/store/apps/details?id=com.nianticlabs.pokemongo">Pokémon<br />GO</a> have more in common than you might think. Both of these companies<br />use augmented reality to create innovative, immersive experiences for their<br />users. I sat down with Mike Festa, Director of Wayfair Next, and Tatsuo Nomura,<br />Product Manager for Pokémon GO, at our recent Playtime event to discuss how<br />developers can make the most of AR as a platform.<br /></p><br /><p><br />From 3D furniture modelling in <a<br />href="https://play.google.com/store/apps/details?id=com.wayfair.wayfairview">WayfairView</a><br />using <a href="https://developers.google.com/tango/">Tango</a>, to logging<br />countless miles catching Pokémon, hear how these developers are innovating with<br />AR, and get their advice for others looking to use AR in their apps and games.<br /></p><br /><center><iframe width="560" height="315" src="https://www.youtube.com/embed/HY43pdexXT0?list=PLWz5rJ2EKKc-XoJTVgYBviYbgxgSJqBws" frameborder="0" allowfullscreen></iframe></center><br /><p><br /><a<br />href="https://www.youtube.com/playlist?list=PLWz5rJ2EKKc-XoJTVgYBviYbgxgSJqBws">Check<br />out more sessions</a> from our global Playtime events to learn best practices<br />for your app and game businesses. Also, stay up to date with more videos from<br />events, product news, and tips to help grow your business on Google Play with<br />the <a href="http://g.co/play/playbookapp">Playbook for Developers</a> app.<br /></p><br /><div dir="ltr" style="text-align: left;" trbidi="on"><br /><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">How useful did you find this blogpost?</span></div><br /><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><br /></div><br /><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=1%E2%98%85+%E2%80%93+Not+at+all&entry.656324858&entry.1348260426=PlaytimeAR-12/16&entry.1170596605&entry.646747778=PlaytimeAR-12/16" style="text-decoration: none;"><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">★ </span></a><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=2%E2%98%85+%E2%80%93+Not+very&entry.656324858&entry.1348260426=PlaytimeAR-12/16&entry.1170596605&entry.646747778=PlaytimeAR-12/16" style="text-decoration: none;"><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">★</span></a><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=3%E2%98%85+%E2%80%93+Somewhat&entry.656324858&entry.1348260426=PlaytimeAR-12/16&entry.1170596605&entry.646747778=PlaytimeAR-12/16" style="text-decoration: none;"><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">★</span></a><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=4%E2%98%85+%E2%80%93+Very&entry.656324858&entry.1348260426=PlaytimeAR-12/16&entry.1170596605&entry.646747778=PlaytimeAR-12/16" style="text-decoration: none;"><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">★</span></a><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=5%E2%98%85+%E2%80%93+Extremely&entry.656324858&entry.1348260426=PlaytimeAR-12/16&entry.1170596605&entry.646747778=PlaytimeAR-12/16" style="text-decoration: none;"><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">★</span></a></div><br /><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><br /><br /></div><br /><span id="docs-internal-guid-9e76814d-df4d-a020-f9d6-b105f05f0bbc"></span><br /><br /><div dir="ltr" style="line-height: 1.68; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: #333333; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img height="148" src="https://lh6.googleusercontent.com/cKz2cvHQCSFIBja6IQYQps4TgNr-_pGBQLk7qRq_XYQRclaIusyYvD2lNHjgNbXZq3moI8Vjlwk-l7gzQ6UZWz_lddvWPfw2aTkpzJOqyi0BYLejkvGilauoWXpA1jv9mXkBKZNP" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="141" /></span></div><br /></div><br />Dindahttp://www.blogger.com/profile/00796869350788211838noreply@blogger.com0tag:blogger.com,1999:blog-170710622875530737.post-13783327405771177262016-12-07T17:24:00.000-08:002019-01-03T19:33:02.297-08:00Watch sessions from the Playtime 2016 events to learn how to succeed on Android & Google Play<i>Posted by Patricia Correa, Head of Developer Marketing, Google Play</i><br /><br><br /><br><br />We’re wrapping up our annual global Playtime series of events with a last stop in Tokyo, Japan. This year Google Play hosted events in 10 cities: London, Paris, Berlin, Hong Kong, Singapore, Gurgaon, San Francisco, Sao Paulo, Seoul and Tokyo. We met with app and game developers from around the world to discuss how to build successful businesses on Google Play, share experiences, give feedback, collaborate, and get inspired. <br /><br />You can now watch some of the best Playtime sessions on our Android Developers YouTube Channel, as listed below. The <a href="https://www.youtube.com/playlist?list=PLWz5rJ2EKKc-XoJTVgYBviYbgxgSJqBws">playlist</a> opens with a video that celebrates collaboration. <br /><br><br /><br><br /><center><iframe width="560" height="315" src="https://www.youtube.com/embed/19PjDDEtAR0?list=PLWz5rJ2EKKc-XoJTVgYBviYbgxgSJqBws" frameborder="0" allowfullscreen></iframe></center><br /><CENTER><p><br /><strong>Keynote</strong></CENTER><br /></p><br /><p><br /><strong><a<br />href="https://www.youtube.com/watch?v=ShNynvypGwQ&list=PLWz5rJ2EKKc-XoJTVgYBviYbgxgSJqBws&index=1">What’s next for Google Play</a></strong><br /></p><br /><br /><p><br />Learn how we're helping users discover apps in the right context, creating new<br />ways to engage with users beyond the install, and powering innovative<br />experiences on emerging platforms like virtual reality, wearables, and auto.<br /></p><br /><CENTER><p><br /><strong>Develop and launch apps & games</strong></CENTER><br /></p><br /><p><br /><strong><a<br />href="https://www.youtube.com/watch?v=0q3WZQ2qFaw&index=3&list=PLWz5rJ2EKKc-XoJTVgYBviYbgxgSJqBws">Android<br />development in 2016</a></strong><br /></p><br /><p><br />Android development is more powerful and efficient than ever before. Android<br />Studio brings you speed, smarts, and support for Android Nougat. The broad range<br />of cross-platform tools on Firecase can improve your app on Android and beyond.<br />Material Design and Vulkan continue to improve the user experience and increase<br />engagement.<br /></p><br /><p><br /><strong><a<br />href="https://www.youtube.com/watch?v=KVMsh334C0c&index=4&list=PLWz5rJ2EKKc-XoJTVgYBviYbgxgSJqBws">Daydream<br />& Tango</a></strong><br /></p><br /><p><br />Daydream View is a VR headset and controller by Google that lets people explore<br />new worlds, or play games that put them at the center of action. Learn how we're<br />helping users discover apps in the right context and powering new experiences<br />with Daydream and Tango.<br /></p><br /><p><br /><strong><a<br />href="https://www.youtube.com/watch?v=HY43pdexXT0&list=PLWz5rJ2EKKc-XoJTVgYBviYbgxgSJqBws&index=5">Fireside<br />chat - Wayfair & Pokémon GO on augmented reality</a></strong><br /></p><br /><p><br />Augmented reality engages and delights people everywhere. In this fireside chat,<br />online furniture seller Wayfair and Niantic's Pokémon<br />GO share their experiences with AR and discuss how other developers can make<br />the most of the platform.<br /></p><br /><p><br /><strong><a<br />href="https://www.youtube.com/watch?v=w6oiQgVSQGI&list=PLWz5rJ2EKKc-XoJTVgYBviYbgxgSJqBws&index=4">Building<br />for billions, featuring best practices from Maliyo Games</a></strong><br /></p><br /><p><br />Learn how to create apps and games for emerging markets, which are expected to<br />drive 80% of global smartphone growth by 2020, by recognizing the key challenges<br />and designing the right app experiences to overcome them.<br /></p><br /><p><br />At minute 16:41, hear tips from Hugo Obi, co-founder of Nigerian games developer<br />Maliyo.<br /></p><br /><p><br /><strong><a<br />href="https://www.youtube.com/watch?v=FwiFAisv5Q4&list=PLWz5rJ2EKKc-XoJTVgYBviYbgxgSJqBws&index=5">Launch<br />smart on Google Play</a></strong><br /></p><br /><p><br />Set your app up for success using experimentation and iteration. Learn best<br />practices for soft launching and adapting your app for different markets and<br />device types.<br /></p><br /><CENTER><p><br /><strong>Apps</strong></CENTER><br /></p><br /><p><br /><strong><a<br />href="https://www.youtube.com/watch?v=Nh2m9365i0I&list=PLWz5rJ2EKKc-XoJTVgYBviYbgxgSJqBws&index=6">Sustainable<br />growth solves most problems for apps, featuring best practices from<br />SoundCloud</a> <a<br />href="https://www.youtube.com/watch?v=KAFKKlFoJjU&index=7&list=PLWz5rJ2EKKc-XoJTVgYBviYbgxgSJqBws">&<br />Peak</a></strong><br /></p><br /><p><br />Planning and executing a great growth strategy involves a complex set of choices<br />and mastery of many tools. In this session we discuss topics including key<br />business objectives, tools, and techniques to help you solve the growth puzzle<br />with our partner, SoundCloud.<br /></p><br /><p><br />Also, check out some <a<br />href="https://www.youtube.com/watch?v=KAFKKlFoJjU&index=7&list=PLWz5rJ2EKKc-XoJTVgYBviYbgxgSJqBws">growth<br />best practices from Peak</a>.<br /></p><br /><p><br /><strong><a<br />href="https://www.youtube.com/watch?v=p40Dl2j7tKU&index=10&list=PLWz5rJ2EKKc-XoJTVgYBviYbgxgSJqBws">Creating<br />sustainable user growth for startups, by Greylock</a></strong><br /></p><br /><p><br />User growth isn't just about growing the number of users you have. The key to<br />sustainability is creating and delivering core product value. In this session,<br />VC Greylock discusses how to identify your core action to focus on and shows you<br />how to use these insights to optimize your app for long term growth.<br /></p><br /><p><br /><strong><a<br />href="https://www.youtube.com/watch?v=OsBwnmGe1xI&index=8&list=PLWz5rJ2EKKc-XoJTVgYBviYbgxgSJqBws">App<br />engagement is the new black, featuring best practices from Lifesum</a></strong><br /></p><br /><p><br />As the app marketplace becomes more competitive, developer success depends on<br />retaining users in apps they love. Find out which Google tools and features can<br />help you analyze your users' behaviors, improve engagement and retention in your<br />app and hear insights from others developers including Lifesum.<br /></p><br /><p><br /><strong><a<br />href="https://www.youtube.com/watch?v=mmLukrKMSnw&list=PLWz5rJ2EKKc-XoJTVgYBviYbgxgSJqBws&index=9">Predicting<br />lifetime value in the apps world</a></strong><br /></p><br /><p><br />Deepdive into lifetime value models and predictive analytics in the apps ecosystem.<br />Tactics to get the most out of identified segments and how to upgrade their<br />behaviors to minimize churn.<br /></p><br /><p><br /><strong><a<br />href="https://www.youtube.com/watch?v=0-rdSrxfBp8&index=13&list=PLWz5rJ2EKKc-XoJTVgYBviYbgxgSJqBws">Subscriptions<br />update</a></strong><br /></p><br /><p><br />Learn about Google's efforts to enable users, around the world, to seamlessly<br />and safely pay for content. This session provides updates on Google Play billing<br />and recent enhancements to our subscriptions platform.<br /></p><br /><CENTER><p><br /><strong>Games</strong></CENTER><br /></p><br /><p><br /><strong><a<br />href="https://www.youtube.com/watch?v=enSok3Op8So&index=10&list=PLWz5rJ2EKKc-XoJTVgYBviYbgxgSJqBws">One<br />game fits all, featuring best practices from Space Ape Games</a></strong><br /></p><br /><p><br />Customize your game's experience for different users by targeting them with lifetime value<br />models and predictive analytics. Hear how these concepts are applied by<br />Space Ape Games to improve retention and monetization of their titles.<br /></p><br /><p><br /><strong><a<br />href="https://www.youtube.com/watch?v=QXCWEwRijRo&list=PLWz5rJ2EKKc-XoJTVgYBviYbgxgSJqBws&index=11">Promoting<br />your game and growing your user base, featuring best practices from Seriously<br /></a></strong><br /></p><br /><p><br />Learn how to use Google's latest tools, like Firebase, for benchmarking,<br />acquiring users and measuring your activities. Also, hear game<br />developer Seriously share their latest insights and strategies on YouTube<br />influencer campaigns.<br /></p><br /><p><br /><strong><a<br />href="https://www.youtube.com/watch?v=v8XfRlxykmA&index=16&list=PLWz5rJ2EKKc-XoJTVgYBviYbgxgSJqBws">Creating<br />long-term retention, loyalty and value with engaging LiveOps events, featuring<br />best practices from Kabam</a> <a href="https://youtu.be/h6E5VB5wpAQ?t=17m51s">&<br />Creative Mobile</a></strong><br /></p><br /><p><br />Learn how successful developers keep their games fresh and engaging with Live<br />Operations. In this talk, the LiveOps expert on Marvel: Contest of Champions<br />discusses tips about the art and science of running an engaging LiveOps event.<br /></p><br /><p><br />Also check out the tips and <a<br />href="https://www.youtube.com/watch?v=h6E5VB5wpAQ&feature=youtu.be&t=17m51s">best<br />practices to run successful LiveOps from games developer Creative Mobile</a>.<br /></p><br /><p><br /><strong><a<br />href="https://www.youtube.com/watch?v=_ZjnfvoWPmA&list=PLWz5rJ2EKKc-XoJTVgYBviYbgxgSJqBws&index=17">Panel<br />- Play fair: Maintaining a level playing field in your game, featuring Space Ape<br />Games and Kongregate</a></strong><br /></p><br /><p><br />Ensuring that your game is fair is critical to success. Find out how game<br />developers are achieving this and some ways Google Play can help.<br /></p><br /><CENTER><p><br /><strong>Families</strong></CENTER><br /></p><br /><p><br /><strong><a<br />href="https://www.youtube.com/watch?v=ofufSFTVCG0&index=12&list=PLWz5rJ2EKKc-XoJTVgYBviYbgxgSJqBws">Why<br />you need to build for families</a></strong><br /></p><br /><p><br />Family-based households with children have higher tablet and smartphone<br />ownership rates than the general population. These families are more likely to<br />make purchases on their mobile devices and play games. Learn about how parents<br />choose what to download and buy, and how you can prepare for maximum conversion.<br /></p><br /><p><br /><strong><a<br />href="https://www.youtube.com/watch?v=rN-J_R-cSVw&index=19&list=PLWz5rJ2EKKc-XoJTVgYBviYbgxgSJqBws">Two<br />keys to growth: user acquisition & app engagement, by Cartoon Network</a><br /></strong><br /></p><br /><p><br />Hear how Cartoon Network leverages their network to cross-promote new titles,<br />acquire new users and keep them engaged through immersive experiences.<br /></p><br /><p><br /><strong><a<br />href="https://www.youtube.com/watch?v=nbik0ZqspN8&list=PLWz5rJ2EKKc-XoJTVgYBviYbgxgSJqBws&index=20">Go<br />global: Getting ready for the emerging markets revolution, by<br />Papumba</a></strong><br /></p><br /><p><br />Papumba has a clear vision to grow a global business. Hear how they work with<br />experts to adapt their games to local markets and leverage Google Play's<br />developer tools to find success around the world.<br /></p><br /><p><br /><strong><a<br />href="https://www.youtube.com/watch?v=SjUO61Iji24&list=PLWz5rJ2EKKc-XoJTVgYBviYbgxgSJqBws&index=21">Optimizing<br />for a post install world</a></strong><br /></p><br /><p><br />You've spent time and resources getting users to download your apps, but what<br />happens after the install? Learn how to minimize churn and keep families engaged<br />with your content long term.<br /></p><br /><p><br /><strong><a<br />href="https://www.youtube.com/watch?v=1WaujJ1mPMA&index=23&list=PLWz5rJ2EKKc-XoJTVgYBviYbgxgSJqBws">Monetization<br />best practices on freemium, by 01 Digital</a></strong><br /></p><br /><p><br />Learn how 01 Digital uses In-App-Purchases (IAP) to effectively monetize their<br />apps while maintaining a safe environment for families.<br /></p><br /><p><br /><strong><a<br />href="https://www.youtube.com/watch?v=wj_PqUHTRzk&list=PLWz5rJ2EKKc-XoJTVgYBviYbgxgSJqBws&index=22">Building<br />a subscription business that appeals to parents, by PlayKids</a></strong><br /></p><br /><p><br />PlayKids has been at the forefront of the subscription business model since<br />their inception. See how they best serve their subscribers by refreshing their<br />content, expanding their offerings and investing in new verticals.<br /></p><br /><BR><br /><BR><br /><div dir="ltr" style="text-align: left;" trbidi="on"><br /><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: black; font-family: 'Open Sans'; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="background-color: transparent; color: black; font-family: 'Open Sans'; font-size: 13.333333333333332px; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">How useful did you find this blogpost?</span></div><br /><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><br /></div><br /><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=1%E2%98%85+%E2%80%93+Not+at+all&entry.656324858&entry.1348260426=playtimewrapup-12/16&entry.1170596605&entry.646747778=playtimewrapup-12/16" style="text-decoration: none;"><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">★</span></a><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=2%E2%98%85+%E2%80%93+Not+very&entry.656324858&entry.1348260426=playtimewrapup-12/16&entry.1170596605&entry.646747778=playtimewrapup-12/16" style="text-decoration: none;"><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">★</span></a><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=3%E2%98%85+%E2%80%93+Somewhat&entry.656324858&entry.1348260426=playtimewrapup-12/16&entry.1170596605&entry.646747778=playtimewrapup-12/16" style="text-decoration: none;"><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">★</span></a><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=4%E2%98%85+%E2%80%93+Very&entry.656324858&entry.1348260426=playtimewrapup-12/16&entry.1170596605&entry.646747778=playtimewrapup-12/16" style="text-decoration: none;"><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">★</span></a><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=5%E2%98%85+%E2%80%93+Extremely&entry.656324858&entry.1348260426=playtimewrapup-12/16&entry.1170596605&entry.646747778=playtimewrapup-12/16" style="text-decoration: none;"><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">★</span></a></div><br /><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><br /></div><br /><div dir="ltr" style="line-height: 1.68; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: #333333; font-family: 'Open Sans'; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img height="148" src="https://lh3.googleusercontent.com/eQoEdXTLtj2u_HkE4LYPc7X8SgTkUcoorrr8X3R8hWo9Zaj4q-57ZvpJG1cGZ4C1G7RqMgOfyvnFGkdCSHtDf3E39k7OC4z2BZ-aSC2My7PvwG6Cv8nnRyKfBcyLpUVYwrJXMnO4" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="141" /></span></div><br /><span id="docs-internal-guid-b3b2dd20-dbdd-93bc-463e-c9700968896e"></span><br /><br /><div dir="ltr" style="line-height: 1.68; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><br /></div><br /></div><br /><br /><br /><br /><br /><br />Dindahttp://www.blogger.com/profile/00796869350788211838noreply@blogger.com0tag:blogger.com,1999:blog-170710622875530737.post-5537024077551033812016-12-06T12:06:00.000-08:002019-01-03T19:33:02.490-08:00Saving Data: Reducing the size of App Updates by 65%<p><br /><em>Posted by Andrew Hayden, Software Engineer on Google Play</em><br /></p><br /><p><br />Android users are downloading tens of billions of apps and games on Google Play.<br /> We're also seeing developers update their apps frequently in order to provide<br />users with great content, improve security, and enhance the overall user<br />experience. It takes a lot of data to download these updates and we know users<br />care about how much data their devices are using. Earlier this year, we<br />announced that we started using <a<br />href="https://android-developers.blogspot.com/2016/07/improvements-for-smaller-app-downloads.html">the<br />bsdiff algorithm</a> <a<br />href="https://android-developers.blogspot.com/2016/07/improvements-for-smaller-app-downloads.html">(by<br />Colin Percival)</a>. Using bsdiff, we were able to reduce the size of app<br />updates on average by 47% compared to the full APK size.<br /></p><br /><p><br />Today, we're excited to share a new approach that goes further — <strong><a<br />href="https://github.com/andrewhayden/archive-patcher/blob/master/README.md">File-by-File<br />patching</a></strong>.<a<br />href="https://github.com/andrewhayden/archive-patcher/blob/master/README.md"><br /></a>App Updates using File-by-File patching are, <strong>on average,</strong><br /><strong>65% smaller than the full app</strong>, and in some cases more than 90%<br />smaller.<br /></p><br /><p><br />The savings, compared to our previous approach, add up to 6 petabytes of user<br />data saved per day!<br /></p><br /><p><br />In order to get the new version of the app, Google Play sends your device a<br />patch that describes the <em>differences</em> between the old and new versions<br />of the app.<br /></p><br /><p><br />Imagine you are an author of a book about to be published, and wish to change a<br />single sentence - it's much easier to tell the editor which sentence to change<br />and what to change, rather than send an entirely new book. In the same way,<br />patches are much smaller and much faster to download than the entire APK.<br /></p><br /><p><br /><strong><span style="text-decoration:underline;">Techniques used in File-by-File<br />patching </span></strong><br /></p><br /><p><br />Android apps are packaged as APKs, which are ZIP files with special conventions.<br />Most of the content within the ZIP files (and APKs) is compressed using a<br />technology called <a<br />href="https://en.wikipedia.org/w/index.php?title=DEFLATE&oldid=735386036">Deflate</a>.<br />Deflate is really good at compressing data but it has a drawback: it makes<br />identifying changes in the original (uncompressed) content really hard. Even a<br />tiny change to the original content (like changing one word in a book) can make<br />the compressed output of deflate look <em>completely different</em>. Describing<br />the differences between the <em>original</em> content is easy, but describing<br />the differences between the <em>compressed</em> content is so hard that it leads<br />to inefficient patches.<br /></p><br /><p><br />Watch how much the compressed text on the right side changes from a one-letter<br />change in the uncompressed text on the left:<br /></p><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjT2SydTvfry9_37OuXAye1xuxZ8y7vn21M4ZEgeR2ddpeUXPKG-QsISbkxiCR3psYfgtdhYPr__E2EIEh2k-e6wSDiuJ5K5x5ozdpSM7hzo4G7vqIWKc-vGRUnSmexVhU-n9kLal_ZYCH4/s1600/ipsum-opsum.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjT2SydTvfry9_37OuXAye1xuxZ8y7vn21M4ZEgeR2ddpeUXPKG-QsISbkxiCR3psYfgtdhYPr__E2EIEh2k-e6wSDiuJ5K5x5ozdpSM7hzo4G7vqIWKc-vGRUnSmexVhU-n9kLal_ZYCH4/s640/ipsum-opsum.gif" width="640" height="105" /></a></div><br /><p><br />File-by-File therefore is based on detecting changes in the uncompressed data.<br />To generate a patch, we first decompress both old and new files before computing<br />the delta (we still use bsdiff here). Then to apply the patch, we decompress the<br />old file, apply the delta to the uncompressed content and then recompress the<br />new file. In doing so, we need to make sure that the APK on your device is a<br />perfect match, byte for byte, to the one on the Play Store (see <a<br />href="https://source.android.com/security/apksigning/v2.html">APK Signature<br />Schema v2 </a>for why).<br /></p><br /><p><br />When recompressing the new file, we hit two complications. First, Deflate has a<br />number of settings that affect output; and we don't know which settings were<br />used in the first place. Second, many versions of deflate exist and we need to<br />know whether the version on your device is suitable.<br /></p><br /><p><br />Fortunately, after analysis of the apps on the Play Store, we've discovered that<br />recent and compatible versions of deflate based on zlib (the most popular<br />deflate library) account for almost all deflated content in the Play Store. In<br />addition, the default settings (level=6) and maximum compression settings<br />(level=9) are the only settings we encountered in practice.<br /></p><br /><p><br />Knowing this, we can detect and reproduce the original deflate settings. This<br />makes it possible to uncompress the data, apply a patch, and then recompress the<br />data back to <em>exactly the same bytes</em> as originally uploaded.<br /></p><br /><p><br />However, there is one trade off; extra processing power is needed on the device.<br />On modern devices (e.g. from 2015), recompression can take a little over a<br />second per megabyte and on older or less powerful devices it can be longer.<br />Analysis so far shows that, on average, if the patch size is halved then the<br />time spent applying the patch (which for File-by-File includes recompression) is<br />doubled.<br /></p><br /><p><br />For now, we are limiting the use of this new patching technology to auto-updates<br />only, i.e. the updates that take place in the background, usually at night when<br />your phone is plugged into power and you're not likely to be using it. This<br />ensures that users won't have to wait any longer than usual for an update to<br />finish when manually updating an app.<br /></p><br /><p><br /><strong><span style="text-decoration:underline;">How effective is File-by-File<br />Patching?</span></strong><br /></p><br /><p><br />Here are examples of app updates already using File-by-File Patching:<br /></p><br /><div dir="ltr" style="text-align: left;" trbidi="on"><br /><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><br /><br /></div><br /><div dir="ltr" style="margin-left: 0pt;"><br /><table style="border-collapse: collapse; border: none;"><colgroup><col width="142"></col><col width="102"></col><col width="176"></col><col width="176"></col></colgroup><tbody><br /><tr style="height: 0px;"><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><br /><span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Application</span></div><br /></td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Original Size</span></div><br /></td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Previous (BSDiff) Patch Size</span></div><br /><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(% vs original)</span></div><br /></td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">File-by-File Patch Size (% vs original)</span></div><br /></td></tr><br /><tr style="height: 0px;"><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><br /><a href="https://play.google.com/store/apps/details?id=com.king.farmheroessupersaga&hl=en" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Farm Heroes Super Saga</span></a></div><br /></td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 3px 3px 3px 3px; vertical-align: bottom;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">71.1 MB</span></div><br /></td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 3px 3px 3px 3px; vertical-align: bottom;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">13.4 MB (-81%)</span></div><br /></td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 3px 3px 3px 3px; vertical-align: bottom;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">8.0 MB (-89%)</span></div><br /></td></tr><br /><tr style="height: 0px;"><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><br /><a href="https://play.google.com/store/apps/details?id=com.google.android.apps.maps" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Google Maps</span></a></div><br /></td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 3px 3px 3px 3px; vertical-align: bottom;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">32.7 MB</span></div><br /></td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 3px 3px 3px 3px; vertical-align: bottom;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">17.5 MB (-46%)</span></div><br /></td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 3px 3px 3px 3px; vertical-align: bottom;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">9.6 MB (-71%)</span></div><br /></td></tr><br /><tr style="height: 0px;"><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><br /><a href="https://play.google.com/store/apps/details?id=com.google.android.gm" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Gmail</span></a></div><br /></td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 3px 3px 3px 3px; vertical-align: bottom;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">17.8 MB</span></div><br /></td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 3px 3px 3px 3px; vertical-align: bottom;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">7.6 MB (-57%)</span></div><br /></td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 3px 3px 3px 3px; vertical-align: bottom;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">7.3 MB (-59%)</span></div><br /></td></tr><br /><tr style="height: 0px;"><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><br /><a href="https://play.google.com/store/apps/details?id=com.google.android.tts" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Google TTS</span></a></div><br /></td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 3px 3px 3px 3px; vertical-align: bottom;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">18.9 MB</span></div><br /></td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 3px 3px 3px 3px; vertical-align: bottom;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">17.2 MB (-9%)</span></div><br /></td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 3px 3px 3px 3px; vertical-align: bottom;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">13.1 MB (-31%)</span></div><br /></td></tr><br /><tr style="height: 0px;"><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><br /><a href="https://play.google.com/store/apps/details?id=com.amazon.kindle" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Kindle</span></a></div><br /></td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 3px 3px 3px 3px; vertical-align: bottom;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">52.4 MB</span></div><br /></td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 3px 3px 3px 3px; vertical-align: bottom;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">19.1 MB (-64%)</span></div><br /></td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 3px 3px 3px 3px; vertical-align: bottom;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">8.4 MB (-84%)</span></div><br /></td></tr><br /><tr style="height: 0px;"><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt;"><br /><a href="https://play.google.com/store/apps/details?id=com.netflix.mediaclient" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Netflix</span></a></div><br /></td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 3px 3px 3px 3px; vertical-align: bottom;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">16.2 MB</span></div><br /></td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 3px 3px 3px 3px; vertical-align: bottom;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">7.7 MB (-52%)</span></div><br /></td><td style="border-bottom: solid #000000 1px; border-left: solid #000000 1px; border-right: solid #000000 1px; border-top: solid #000000 1px; padding: 3px 3px 3px 3px; vertical-align: bottom;"><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: black; font-family: roboto; font-size: 13px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1.2 MB (-92%)</span></div><br /></td></tr><br /></tbody></table><br /></div><br /><span id="docs-internal-guid-de7f0210-d587-05da-d332-146959aa303f"></span><br /><br /><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><br /><br /></div><br /></div><br /><em>Disclaimer: if you see different patch sizes when you press "update"<br />manually, that is because we are not currently using File-by-file for<br />interactive updates, only those done in the background.</em><br /><p><br /><strong><span style="text-decoration:underline;">Saving data and making our<br />users (& developers!) happy</span></strong><br /></p><br /><p><br />These changes are designed to ensure our community of over a billion Android<br />users use as little data as possible for regular app updates. The best thing is<br />that as a developer you don't need to do anything. You get these reductions to<br />your update size for free!<br /></p><br /><br /><p><br />If you'd like to know more about File-by-File patching, including the technical<br />details, head over to the <a<br />href="https://github.com/andrewhayden/archive-patcher">Archive Patcher GitHub<br />project</a> where you can find information, including the source code. Yes,<br />File-by-File patching is completely open-source!<br /></p><br /><p><br />As a developer if you're interested in reducing your APK size still further,<br />here are some <a<br />href="https://developer.android.com/topic/performance/reduce-apk-size.html?utm_campaign=android_discussion_filebyfile_120616&utm_source=anddev&utm_medium=blog">general<br />tips on reducing APK size</a>.<br /></p><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYbZc4Suv1PUuLdKlYcuzVCpZmwY4cU9Ox8bHwCUVHiQfDTfeepYs71Zjcbd6fC-Y5Bp-094DslquKV7zprZ2Vi2DDNLDI2TgMfmYqhpLc1JabQpGWj-d0_VLJm-mKwvQl9W-fxy-eaOMG/s1600/image01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYbZc4Suv1PUuLdKlYcuzVCpZmwY4cU9Ox8bHwCUVHiQfDTfeepYs71Zjcbd6fC-Y5Bp-094DslquKV7zprZ2Vi2DDNLDI2TgMfmYqhpLc1JabQpGWj-d0_VLJm-mKwvQl9W-fxy-eaOMG/s200/image01.png" width="191" height="200" /></a></div>Dindahttp://www.blogger.com/profile/00796869350788211838noreply@blogger.com0tag:blogger.com,1999:blog-170710622875530737.post-59736976648336535552016-12-05T11:23:00.000-08:002019-01-03T19:33:02.687-08:00Welcoming Android 7.1.1 Nougat<br /><p><br /><em>Posted by Dave Burke, VP of Engineering</em><br /></p><br /><br /><div style="float:right;margin: auto auto 1em 2em;"><br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0Fmzt5K0WsCcwJ6SbqhGPCAkAepqXPWDkLQ7u1O5_KmJsy4nWTXaavcDzaDqC54d7Aaesml491kN0igmSPNNGN9PG7cHBFuGnRQBGaCN07mc6bSNi4bHhRWaLZfCUG_v8BDdme3TgCveA/s1600/android_nougat.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img itemprop="Image" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0Fmzt5K0WsCcwJ6SbqhGPCAkAepqXPWDkLQ7u1O5_KmJsy4nWTXaavcDzaDqC54d7Aaesml491kN0igmSPNNGN9PG7cHBFuGnRQBGaCN07mc6bSNi4bHhRWaLZfCUG_v8BDdme3TgCveA/s800/android_nougat.png" style="width:300px;" alt="Android Nougat"></a><br /><br /><p style="text-align:center;margin: 0 auto auto 1.25em;font-size: 13px;color:#666;width:90%"><em>Android 7.1.1 Nougat!</em></p><br /></div><br /><br /><p><br />Today we're rolling out an update to Nougat -- Android 7.1.1 for Pixel and Pixel<br />XL devices and the full lineup of supported Nexus devices. We're also pushing<br />the Android 7.1.1 source code to the <a<br />href="https://source.android.com/">Android Open Source Project</a> (AOSP) so<br />that device makers can get their hands on the latest version of Android.<br /></p><br /><p><br />With Android 7.1.1 officially on it's way to users, it's a good time to make<br />sure your apps are ready.<br /></p><br /><h3>What's in Android 7.1.1?</h3><br /><p><br />Android 7.1.1 is an incremental release that builds on the features already<br />available on Pixel and Pixel XL devices, adding a <a href="https://blog.google/products/android/sweet-update-nougat-android-711/">handful of new features for<br />consumers</a> as well as optimizations and bug fixes on top of the base Android 7.1<br />platform (API level 25).<br /></p><br /><p><br />If you haven't explored the developer features, you'll want to take a look at <a<br />href="https://developer.android.com/guide/topics/ui/shortcuts.html">app shortcuts</a>,<br /><a<br />href="https://developer.android.com/about/versions/nougat/android-7.1.html?utm_campaign=android_launch_androidnougat_120516&utm_source=anddev&utm_medium=blog#circular-icons">round<br />icon</a> resources, and <a<br />href="https://developer.android.com/preview/image-keyboard.html?utm_campaign=android_launch_androidnougat_120516&utm_source=anddev&utm_medium=blog">image keyboard<br />support</a>, among others -- you can see the <a<br />href="https://developer.android.com/about/versions/nougat/android-7.1.html?utm_campaign=android_launch_androidnougat_120516&utm_source=anddev&utm_medium=blog">full list of<br />developer features here</a>. For details on API Level 25, check out the <a<br />href="https://developer.android.com/sdk/api_diff/25/changes.html?utm_campaign=android_launch_npreview_061516&utm_source=anddev&utm_medium=blog">API<br />diffs</a> and the <a<br />href="https://developer.android.com/reference/packages.html?utm_campaign=android_launch_npreview_061516&utm_source=anddev&utm_medium=blog">API<br />reference</a>.<br /></p><br /><p><br />You can find an overview of all of the <a<br />href="https://developer.android.com/about/versions/nougat/index.html">Android<br />Nougat developer resources here</a>, including details on the core Android 7.0<br />Nougat behavior changes and developer features.c<br /></p><br /><h3>Coming to consumer devices soon</h3><br /><p><br />We're starting the Android 7.1.1 rollout today, and we expect it to reach all<br />eligible devices over the next several weeks. Pixel and Pixel XL devices will<br />get the over-the-air (OTA) update, as will Nexus 5X, Nexus 6P, Nexus 6, Nexus 9,<br />Nexus Player, Pixel C, and General Mobile 4G (Android One) devices. Devices<br />enrolled in the <a href="https://www.google.com/android/beta">Android Beta<br />Program</a> will receive the final version as well. As always, you can also<br />download and <a href="https://developers.google.com/android/images?utm_campaign=android_launch_androidnougat_120516&utm_source=anddev&utm_medium=blog">flash this<br />update manually</a>.<br /></p><br /><p><br />We've also been working with our device manufacturer partners to bring Android 7.1.1<br />to their devices in the months ahead.<br /></p><br /><h3>Make sure your apps are ready</h3><br /><p><br />Take this opportunity to test your apps for compatibility and optimize them to<br />look their best on Android 7.1.1, such as by providing <a<br />href="https://developer.android.com/about/versions/nougat/android-7.1.html?utm_campaign=android_launch_androidnougat_120516&utm_source=anddev&utm_medium=blog#circular-icons">round<br />icons</a> and adding <a<br />href="https://developer.android.com/guide/topics/ui/shortcuts.html?utm_campaign=android_launch_androidnougat_120516&utm_source=anddev&utm_medium=blog">app shortcuts</a>.<br />We recommend compiling your app with, and ideally targeting, API 25. See our <a<br />href="http://android-developers.blogspot.com/2016/11/final-update-to-android-7-1-developer-preview.html">recent<br />post</a> for details.<br /></p><br /><p><br />With the final platform we’re updating the platform and build tools in Android Studio, as well as the<br />API Level 25 emulator system images. The latest<br />version of the support library (<a<br />href="https://developer.android.com/topic/libraries/support-library/revisions.html?utm_campaign=android_launch_androidnougat_120516&utm_source=anddev&utm_medium=blog">25.0.1</a>)<br />is also available for you to <a<br />href="https://developer.android.com/reference/android/support/v13/view/inputmethod/InputConnectionCompat.OnCommitContentListener.html">add<br />image keyboard support</a>, <a<br />href="https://developer.android.com/reference/android/support/design/widget/BottomNavigationView.html?utm_campaign=android_launch_androidnougat_120516&utm_source=anddev&utm_medium=blog">bottom<br />navigation</a>, and other features for devices running API Level 25 or earlier.<br /></p><br /><p><br />We're also providing downloadable factory and OTA images on the <a<br />href="https://developers.google.com/android/images?utm_campaign=android_launch_androidnougat_120516&utm_source=anddev&utm_medium=blog">Nexus Images</a> page to<br />help you do final testing on your Pixel and Nexus devices. To help scale your<br />testing, make sure to take advantage of <a<br />href="http://android-developers.blogspot.com/2016/11/android-dev-preview-in-firebase-test-lab.html">Firebase<br />Test Lab for Android</a> and run your tests in the cloud at no charge through<br />the end of December.<br /></p><br /><p><br />After your final testing, publish your apps to your alpha, <a<br />href="https://developer.android.com/distribute/engage/beta.html?utm_campaign=android_launch_npreview_061516&utm_source=anddev&utm_medium=blog">beta</a>,<br />or production channels in the <a<br />href="https://play.google.com/apps/publish/">Google Play Developer Console</a>.<br /></p><br /><h3>What's next?</h3><br /><p><br />We'll soon be closing open bugs logged against Developer Preview builds, but<br />please keep the feedback coming! If you still see an issue that you filed in the<br />preview tracker, just <a<br />href="https://source.android.com/source/report-bugs.html">file a new issue</a><br />against Android 7.1 in the AOSP issue tracker. You can also continue to give us<br />feedback or ask questions in the <a<br />href="https://plus.google.com/communities/105153134372062985968/stream/755bb91d-c101-4e32-9277-1e560c4e26d2">developer community</a>.<br /></p><br /><p><br />As <a<br />href="http://android-developers.blogspot.com/2016/08/taking-final-wrapper-off-of-nougat.html">mentioned<br />back in August</a>, we've moved Android Nougat into a regular maintenance cycle<br />and we're already started work on refinements and bug fixes for the next<br />incremental update. If you have an eligible device that's currently enrolled in<br />the <a href="https://www.google.com/android/beta">Android Beta Program</a>, your<br />device will automatically receive preview updates of upcoming Android Nougat<br />releases as soon as they are available. If you don't want to receive those<br />updates, just visit the <a href="https://www.google.com/android/beta">Beta<br />site</a> and unenroll the device.<br /></p><br /><p><br />Thanks for being part of the developer preview. Let us know how this year's<br />preview met your needs by <a href="https://goo.gl/4Dm2MF">taking a short<br />survey</a>. Your feedback helps to shape our future releases.<br /></p><br /><img itemprop="image" src="https://1.bp.blogspot.com/-TfaGPilbLMk/V7uJhtQU6PI/AAAAAAAAF3Q/JHlJpO5eyhQeRoIKEaZqnu_26lNzRGJvQCLcB/s1600/nougat_16_9.png" style="display:none">Dindahttp://www.blogger.com/profile/00796869350788211838noreply@blogger.com0tag:blogger.com,1999:blog-170710622875530737.post-32514690948929902432016-12-01T12:24:00.000-08:002019-01-03T19:33:02.881-08:00Indie game developers in Latin America sustain growth after launch on Google Play<p><br /><em>Posted by Kacey Fahey, Marketing Programs Manager, Google Play</em><br /></p><br /><p><br />Indie game developers are some of the most exciting and innovative teams to work<br />with. While developers large and small exist on the same field, gone are the<br />days where you hit publish and turn your back, moving on to the next project. <a<br />href="https://developer.android.com/distribute/stories/games/indie-latam.html">We've<br />gathered a few developer stories coming out of Latin America sharing experiences<br />and advice.</a><br /></p><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLwrW1gZEnd4zu9B-HYeXXZ-Wb9JN2CDYzbyLgixRO5jrgkomMXZTxPLZZah1W4k-Tq7Ca6Dh3ZqKQ0jky627eSxLvjPJt5rbO9GDiu_KVGfrBPSU2tsp5cFfaL15D1N0AIKQl-k6oQEAp/s1600/image01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLwrW1gZEnd4zu9B-HYeXXZ-Wb9JN2CDYzbyLgixRO5jrgkomMXZTxPLZZah1W4k-Tq7Ca6Dh3ZqKQ0jky627eSxLvjPJt5rbO9GDiu_KVGfrBPSU2tsp5cFfaL15D1N0AIKQl-k6oQEAp/s200/image01.png" width="100" height="100" /></a></div><br /><b><center>Oktagon Games</center></b><br /><center><p><br />Ronaldo Cruz, Founder and CEO of <a<br />href="https://play.google.com/store/apps/dev?id=4656963459589533587">Oktagon<br />Games</a> tells us how <em>"reviews provide great qualitative insight on the<br />game helping us identify problems that may not be caught by analytics."</em></center><br /><br><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSBohmYkwOdZ78dYa-NnCnjuPvg3WhmO8L86kzIGt3ZUFWwaY3Z30GwXZu-1lKzutkWsaMdDUTup9eslXAn0R6AebpXl_GEtoZyCyQkaVO1ryGewwn8WX9-Q0i803rnYCAHtw4BMenLzlC/s1600/image02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSBohmYkwOdZ78dYa-NnCnjuPvg3WhmO8L86kzIGt3ZUFWwaY3Z30GwXZu-1lKzutkWsaMdDUTup9eslXAn0R6AebpXl_GEtoZyCyQkaVO1ryGewwn8WX9-Q0i803rnYCAHtw4BMenLzlC/s200/image02.png" width="100" height="100" /></a></div><br /><b><center>Tiny Bytes</center></b><br /><center><p><br /><a href="https://play.google.com/store/apps/developer?id=TinyBytes">Tiny<br />Bytes</a> reduced churn by 5% using an in-game tutorial and analytics.</p></center><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQqir_1wNeh1_rGEjienRYbcoCrDoycUJM1Gx8do3MSyYrUUnoyFOcPJzuFmdCkKHAMSpCZEl9X8Q63KYhriX-L6Vah9pvJXgICokq55pm4be9_V_uJ4s4vnIhSd3zBwBpdwuGqiqGcsFu/s1600/image03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQqir_1wNeh1_rGEjienRYbcoCrDoycUJM1Gx8do3MSyYrUUnoyFOcPJzuFmdCkKHAMSpCZEl9X8Q63KYhriX-L6Vah9pvJXgICokq55pm4be9_V_uJ4s4vnIhSd3zBwBpdwuGqiqGcsFu/s200/image03.png" width="100" height="100" /></a></div><br /><b><center>Impossible Apps</center></b><br /><center><p><br />Cleverson Schmidt of <a<br />href="https://play.google.com/store/apps/developer?id=Impossible+Apps">Impossible<br />Apps</a> shares how introducing in-app purchases helps diversify revenue streams<br />and "<em>can make the game profitable and self sustainable."</em></p></center><br /><br><br /><div dir="ltr" style="text-align: left;" trbidi="on"><br /><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">How useful did you find this blogpost?</span></div><br /><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><br /></div><br /><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=1%E2%98%85+%E2%80%93+Not+at+all&entry.656324858&entry.1348260426=LATAMIndies-12/16&entry.1170596605&entry.646747778=LATAMIndies-12/16" style="text-decoration: none;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">☆</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=2%E2%98%85+%E2%80%93+Not+very&entry.656324858&entry.1348260426=LATAMIndies-12/16&entry.1170596605&entry.646747778=LATAMIndies-12/16" style="text-decoration: none;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">☆</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=3%E2%98%85+%E2%80%93+Somewhat&entry.656324858&entry.1348260426=LATAMIndies-12/16&entry.1170596605&entry.646747778=LATAMIndies-12/16" style="text-decoration: none;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">☆</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=4%E2%98%85+%E2%80%93+Very&entry.656324858&entry.1348260426=LATAMIndies-12/16&entry.1170596605&entry.646747778=LATAMIndies-12/16" style="text-decoration: none;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">☆</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=5%E2%98%85+%E2%80%93+Extremely&entry.656324858&entry.1348260426=LATAMIndies-12/16&entry.1170596605&entry.646747778=LATAMIndies-12/16" style="text-decoration: none;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">☆</span></a></div><br /><span id="docs-internal-guid-c5bc50c7-bc0a-aaeb-738c-69580a324a4b"></span><br /><br /><div dir="ltr" style="line-height: 1.68; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: #333333; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img height="148" src="https://lh4.googleusercontent.com/RZ3l1Mk7ZA0TtsD7-RQ4EMbJzm0BuL9RTlEKO43lDiUkZhNgruD9jC7-tN9W6ua1Fyzc_ZK08ZXUGY-NyCiUS-dYz4ZALUagnlhRXEOtJ04XSGAFnapLKyIDdqW25-YKRPhxTVOC" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="141" /></span></div><br /></div><br /><br /><br /><br /><br /><br />Dindahttp://www.blogger.com/profile/00796869350788211838noreply@blogger.com0tag:blogger.com,1999:blog-170710622875530737.post-83344971418114379372016-11-30T09:45:00.000-08:002019-01-03T19:33:03.079-08:00Updated Udacity Android course prepares students for the Associate Android Developer Certification<p><br /><em>Posted by Jocelyn Becker, Senior Program Manager, Android Training</em><br /></p><br /><p><br />As one of our most popular Udacity courses, the <a<br />href="http://classroom.udacity.com/courses/ud851">Developing Android Apps</a><br />course was recently updated to ensure developers have the resources to build<br />high quality apps. This course, which has already helped more than half a<br />million developers learn to build Android apps, has been through the car wash<br />and come out sparkling clean and updated.<br /></p><br /><p><br />Google and Udacity have worked together to update the course to include the very<br />latest changes in Android and Android Studio, including how to use the new<br />Constraint Layout editor, and how to use Firebase Job Dispatcher. Learn best<br />practices for building Android apps using Android 7.0 (Nougat) while keeping<br />your apps backwards compatible in older versions, learning at your own pace in<br />your own time.<br /></p><br /><p><br />You sent us feedback that some of the lessons were a little difficult to get<br />through, so we've restructured the lessons and added smaller apps for you to<br />build as you progress through the course. So not only will you build the<br />Sunshine weather app as a complete, integrated application that spans the entire<br />course, but you'll also create an app in each lesson to help you learn<br />individual concepts.<br /></p><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjB5zpzBVNwf6myjWw6KE54oRPWJiRtL3Uf8DIovrP6MtZf5G-jDhNHwk51ebK2yTKbv4obvu8OdGHjBYcWuxz6vhul8Ho8HTQN2kOhq85w1KMAJBeatbj70n-AffA4Lcn_6h_lyu9ALYBA/s1600/to+do+list+app.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjB5zpzBVNwf6myjWw6KE54oRPWJiRtL3Uf8DIovrP6MtZf5G-jDhNHwk51ebK2yTKbv4obvu8OdGHjBYcWuxz6vhul8Ho8HTQN2kOhq85w1KMAJBeatbj70n-AffA4Lcn_6h_lyu9ALYBA/s640/to+do+list+app.png" width="640" height="359" /></a></div><br /><center><i>Build a To Do app and add new tasks as you learn how to build a ContentProvider.</i></center><br /><br><br /><p><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxfRS_NGoSuP_kqslWCPd_TkGvDHBWcChcyzBMMcwtEdHFjLiD_V5BGtu6I5cwDC_ROZzB_CeTFlckQtZyzbLN03Z58xHSZ1bocKGFhjrQoZcF1AznGuUCFPWgb6aihP0EKagBGJdK1Ce1/s1600/andfun+instructors+collage.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxfRS_NGoSuP_kqslWCPd_TkGvDHBWcChcyzBMMcwtEdHFjLiD_V5BGtu6I5cwDC_ROZzB_CeTFlckQtZyzbLN03Z58xHSZ1bocKGFhjrQoZcF1AznGuUCFPWgb6aihP0EKagBGJdK1Ce1/s640/andfun+instructors+collage.png" width="640" height="525" /></a></div><br /><CENTER><i>This course brings back Android experts Dan Galpin and Reto Meier from Google, and Lyla Fujiwara from Udacity, and introduces new faces from Google and Udacity.</i></CENTER><br /><br><br />Start learning now at <a<br />href="https://www.udacity.com/course/ud851">https://www.udacity.com/course/ud851</a>.<br /></p><br /><p><br /><strong>Combined package for Developing Android Apps course and Associate<br />Android Developer Certification</strong><br /></p><br /><p><br />This updated course teaches the skills that are tested by the Associate Android<br />Developer certification exam. Udacity is offering a package that combines the<br />updated <a href="https://www.udacity.com/course/ud851">Developing Android Apps</a> course with a voucher for the Associate Android<br />Developer certification exam. If you pass this exam, you will earn the Associate<br />Android Developer Certification and show that you are competent and skilled in<br />tasks that an entry-level Android developer typically performs. Enroll in<br />Udacity's <a<br />href="https://www.udacity.com/course/associate-android-developer-fast-track--nd818">Fast<br />Track</a> to get prepared and take the Associate Android developer exam at: <a<br />href="https://www.udacity.com/course/associate-android-developer-fast-track--nd818">https://www.udacity.com/course/nd818</a>.</p> <br />Dindahttp://www.blogger.com/profile/00796869350788211838noreply@blogger.com0tag:blogger.com,1999:blog-170710622875530737.post-50137591491749778592016-11-30T07:39:00.000-08:002019-01-03T19:33:03.279-08:00Learn tips from Memrise to increase in-app conversions with pricing experiments<p><br /><em>Posted by</em> <em>Tamzin Taylor, Partner Development Manager at Google<br />Play, & Kristina Narusk, Head of Production at Memrise</em><br /></p><br /><p><br />Getting people to install your app is one thing, getting them to sign up to your<br />paid offering is quite another. It's important to understand the complete<br />journey your users take from installing your app to paying for something. Once<br />you do, you can experiment on the flow to try and increase conversions. Memrise<br />has found great success in experimenting on their language learning app to<br />increase the number of paying users.<br /></p><br /><p><br /><strong>Four experiments Memrise use to improve conversions</strong><br /></p><br /><p><br /><a<br />href="https://play.google.com/store/apps/details?id=com.memrise.android.memrisecompanion">Memrise</a><br />makes languages fun with a number of different learning modes you can play to<br />help increase your vocabulary in a chosen language. You can download the app for<br />free and play some of the modes or take advantage of their premium subscription<br />offering called 'Memrise Pro' which offers new game modes and additional<br />features like offline learning. Memrise recently ran a number of conversion<br />experiments with the main objective of increasing the Average Revenue Per Daily<br />Active User (ARPDAU). These experiments tested multiple user experience and<br />pricing experiment scenarios.<br /></p><br /><p><br /><strong>1. A/B test how messaging different user benefits can impact<br />conversion</strong><br /></p><br /><p><br /><strong>What they did</strong>: Memrise wanted to know what motivation and call<br />to action would convert the most users to buy a Pro subscription from a locked<br />game mode in the app. To do this, they ran an A/B test with two similar designs,<br />featuring different reasons for the user to upgrade, and compared the results to<br />their original upgrade messaging.<br /></p><br /><div dir="ltr" style="text-align: left;" trbidi="on"><br /><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><br /><br /></div><br /><span id="docs-internal-guid-9d8bb739-b5b2-fc13-d9bc-7c2fbc10dbd1"></span><br /><br /><div dir="ltr" style="margin-left: 0pt;"><br /><table style="border-collapse: collapse; border: none; width: 624px;"><colgroup><col width="*"></col><col width="*"></col></colgroup><tbody><br /><tr style="height: 0px;"><td style="border-bottom: solid #ffffff 1px; border-left: solid #ffffff 1px; border-right: solid #ffffff 1px; border-top: solid #ffffff 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img alt="Screen Shot 2016-10-11 at 15.26.00.png" height="408" src="https://lh6.googleusercontent.com/jJNrF64ig9wpXsxVom8d3d8FSjYlfZm2SWVbOBLiWV9zxUowlNPn8tr0B0fg4KzSeG_vXJ4UhOxkhde5rJJWiTD92P2MnmPhj-g0yxR3r72g7SJFxVTzCzzjnwlFuzKIiPWBWXN1" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="229" /></span></div><br /></td><td style="border-bottom: solid #ffffff 1px; border-left: solid #ffffff 1px; border-right: solid #ffffff 1px; border-top: solid #ffffff 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img alt="Screen Shot 2016-10-11 at 15.25.34.png" height="408" src="https://lh4.googleusercontent.com/8KfPvUDjj7UYDOPXMGqJlgd8dCkcGcSF_lZUkLW6vrtJckDeEUdAtN7iLmRBHdVjzy3k8zSTKdx54StIm5hIurz-9fgiFqxy8UBMc1E8j86miNg7vIglQwexep8cE0icGz3dSOvu" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="229" /></span></div><br /></td></tr><br /><tr style="height: 0px;"><td style="border-bottom: solid #ffffff 1px; border-left: solid #ffffff 1px; border-right: solid #ffffff 1px; border-top: solid #ffffff 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Test A: Focus on ‘difficult’ words with an orange background.</span></div><br /></td><td style="border-bottom: solid #ffffff 1px; border-left: solid #ffffff 1px; border-right: solid #ffffff 1px; border-top: solid #ffffff 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Test B: Focus on ‘favorite’ words with a pink background. </span></div><br /></td></tr><br /></tbody></table><br /></div><br /></div><br /><br /><p><br /><strong>Results: </strong>Test A performed the best. Conversion to Pro in Test A<br />was 28% higher than in Test B. Pro mode usage was subsequently 9.7% higher in<br />Test A compared to Test B too.<br /></p><br /><p><br /><strong>Next steps</strong>: After seeing how test A won the experiment, Memrise<br />applied this creative across the board. Subscribers driven by that particular<br />mode increased as a percentage of all subscriptions in the app by 16%. Memrise<br />plans to run additional A/B tests at others points of conversion in the app to<br />see if they can increase the results even further. They'll also try different<br />text for the call to actions.<br /></p><br /><p><br /><strong>2. Test whether adapting to local price points results in sustainable<br />uplift</strong><br /></p><br /><p><br />In 2015, Google Play launched new minimum local price levels in countries around<br />the world. To take advantage of the new price points, Memrise tested lowering<br />localised prices in certain markets to better match purchasing power. Prices<br />were an average of 6 times lower during this experiment.<br /></p><br /><p><br /><br /><strong>Results: </strong>After 30 days, Memrise saw the following changes in<br />conversions to paid users:<br /></p><br /><div dir="ltr" style="text-align: left;" trbidi="on"><br /><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><br /><br /></div><br /><span id="docs-internal-guid-9d8bb739-b5b1-476c-dfb5-a985591c82f6"></span><br /><br /><div dir="ltr" style="margin-left: 108pt;"><br /><table style="border-collapse: collapse; border: none;"><colgroup><col width="64"></col><col width="112"></col><col width="87"></col></colgroup><tbody><br /><tr style="height: 0px;"><td style="border-bottom: solid #b7b7b7 1px; border-left: solid #ffffff 1px; border-right: solid #b7b7b7 1px; border-top: solid #ffffff 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: right;"><br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">🇹🇷</span></div><br /></td><td style="border-bottom: solid #b7b7b7 1px; border-left: solid #b7b7b7 1px; border-right: solid #b7b7b7 1px; border-top: solid #ffffff 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Turkey </span></div><br /></td><td style="border-bottom: solid #b7b7b7 1px; border-left: solid #b7b7b7 1px; border-right: solid #ffffff 1px; border-top: solid #ffffff 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><br /><span style="background-color: transparent; color: #6aa84f; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">⇧</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">180%</span></div><br /></td></tr><br /><tr style="height: 0px;"><td style="border-bottom: solid #b7b7b7 1px; border-left: solid #ffffff 1px; border-right: solid #b7b7b7 1px; border-top: solid #b7b7b7 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: right;"><br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">🇧🇷</span></div><br /></td><td style="border-bottom: solid #b7b7b7 1px; border-left: solid #b7b7b7 1px; border-right: solid #b7b7b7 1px; border-top: solid #b7b7b7 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Brazil </span></div><br /></td><td style="border-bottom: solid #b7b7b7 1px; border-left: solid #b7b7b7 1px; border-right: solid #ffffff 1px; border-top: solid #b7b7b7 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><br /><span style="background-color: transparent; color: #6aa84f; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">⇧</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">182%</span></div><br /></td></tr><br /><tr style="height: 0px;"><td style="border-bottom: solid #b7b7b7 1px; border-left: solid #ffffff 1px; border-right: solid #b7b7b7 1px; border-top: solid #b7b7b7 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: right;"><br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">🇷🇺</span></div><br /></td><td style="border-bottom: solid #b7b7b7 1px; border-left: solid #b7b7b7 1px; border-right: solid #b7b7b7 1px; border-top: solid #b7b7b7 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Russia </span></div><br /></td><td style="border-bottom: solid #b7b7b7 1px; border-left: solid #b7b7b7 1px; border-right: solid #ffffff 1px; border-top: solid #b7b7b7 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><br /><span style="background-color: transparent; color: #6aa84f; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">⇧</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">99%</span></div><br /></td></tr><br /><tr style="height: 0px;"><td style="border-bottom: solid #b7b7b7 1px; border-left: solid #ffffff 1px; border-right: solid #b7b7b7 1px; border-top: solid #b7b7b7 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: right;"><br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">🇲🇽</span></div><br /></td><td style="border-bottom: solid #b7b7b7 1px; border-left: solid #b7b7b7 1px; border-right: solid #b7b7b7 1px; border-top: solid #b7b7b7 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Mexico </span></div><br /></td><td style="border-bottom: solid #b7b7b7 1px; border-left: solid #b7b7b7 1px; border-right: solid #ffffff 1px; border-top: solid #b7b7b7 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><br /><span style="background-color: transparent; color: #6aa84f; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">⇧</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">115%</span></div><br /></td></tr><br /><tr style="height: 0px;"><td style="border-bottom: solid #b7b7b7 1px; border-left: solid #ffffff 1px; border-right: solid #b7b7b7 1px; border-top: solid #b7b7b7 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: right;"><br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">🇮🇳</span></div><br /></td><td style="border-bottom: solid #b7b7b7 1px; border-left: solid #b7b7b7 1px; border-right: solid #b7b7b7 1px; border-top: solid #b7b7b7 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">India </span></div><br /></td><td style="border-bottom: solid #b7b7b7 1px; border-left: solid #b7b7b7 1px; border-right: solid #ffffff 1px; border-top: solid #b7b7b7 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><br /><span style="background-color: transparent; color: red; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">⇩</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">5.1%</span></div><br /></td></tr><br /><tr style="height: 0px;"><td style="border-bottom: solid #b7b7b7 1px; border-left: solid #ffffff 1px; border-right: solid #b7b7b7 1px; border-top: solid #b7b7b7 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: right;"><br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">🇮🇩</span></div><br /></td><td style="border-bottom: solid #b7b7b7 1px; border-left: solid #b7b7b7 1px; border-right: solid #b7b7b7 1px; border-top: solid #b7b7b7 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Indonesia </span></div><br /></td><td style="border-bottom: solid #b7b7b7 1px; border-left: solid #b7b7b7 1px; border-right: solid #ffffff 1px; border-top: solid #b7b7b7 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><br /><span style="background-color: transparent; color: #6aa84f; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">⇧</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">152%</span></div><br /></td></tr><br /><tr style="height: 0px;"><td style="border-bottom: solid #b7b7b7 1px; border-left: solid #ffffff 1px; border-right: solid #b7b7b7 1px; border-top: solid #b7b7b7 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: right;"><br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">🇰🇷</span></div><br /></td><td style="border-bottom: solid #b7b7b7 1px; border-left: solid #b7b7b7 1px; border-right: solid #b7b7b7 1px; border-top: solid #b7b7b7 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">South Korea </span></div><br /></td><td style="border-bottom: solid #b7b7b7 1px; border-left: solid #b7b7b7 1px; border-right: solid #ffffff 1px; border-top: solid #b7b7b7 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><br /><span style="background-color: transparent; color: #6aa84f; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">⇧</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">120%</span></div><br /></td></tr><br /><tr style="height: 0px;"><td style="border-bottom: solid #b7b7b7 1px; border-left: solid #ffffff 1px; border-right: solid #b7b7b7 1px; border-top: solid #b7b7b7 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: right;"><br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">🇹🇭</span></div><br /></td><td style="border-bottom: solid #b7b7b7 1px; border-left: solid #b7b7b7 1px; border-right: solid #b7b7b7 1px; border-top: solid #b7b7b7 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Thailand </span></div><br /></td><td style="border-bottom: solid #b7b7b7 1px; border-left: solid #b7b7b7 1px; border-right: solid #ffffff 1px; border-top: solid #b7b7b7 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><br /><span style="background-color: transparent; color: #6aa84f; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">⇧</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">70%</span></div><br /></td></tr><br /><tr style="height: 0px;"><td style="border-bottom: solid #ffffff 1px; border-left: solid #ffffff 1px; border-right: solid #b7b7b7 1px; border-top: solid #b7b7b7 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: right;"><br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">🇲🇾</span></div><br /></td><td style="border-bottom: solid #ffffff 1px; border-left: solid #b7b7b7 1px; border-right: solid #b7b7b7 1px; border-top: solid #b7b7b7 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Malaysia </span></div><br /></td><td style="border-bottom: solid #ffffff 1px; border-left: solid #b7b7b7 1px; border-right: solid #ffffff 1px; border-top: solid #b7b7b7 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><br /><span style="background-color: transparent; color: #6aa84f; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">⇧</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">27%</span></div><br /></td></tr><br /></tbody></table><br /></div><br /></div><br /><br /><p><br /><strong>Next steps</strong>: The change in price affected the subscription<br />dynamics with more users taking advantage of Memrise's in-app discounted offer<br />in most countries. The offer was for annual subscribers only and has led to a<br />positive effect on LTV. One insight from the experiment was that Indian users<br />prefered to have the option to subscribe in weekly or monthly increments and not<br />just annually. Memrise is still tracking carefully to see whether the discounted<br />subscription pricing will lead to an increase in conversions.<br /></p><br /><p><br /><strong>3. Test when and how often you offer free trials to see if that affects<br />conversion rate</strong><br /></p><br /><p><br />Memrise occasionally offers users, who aren't Pro subscribers, a free trial of<br />one of the Pro game modes while cycling through the various free modes. After<br />the free trial session, users are presented with an offer to subscribe. Memrise<br />experimented with the offer's timing making it appear more frequently while<br />users were cycling through normal free sessions Instead of after every 49th<br />session, users saw the unlocked mode after every 21st session.<br /></p><br /><div dir="ltr" style="text-align: left;" trbidi="on"><br /><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;"><br /><br /></div><br /><span id="docs-internal-guid-9d8bb739-b5b5-dc29-0ac6-01e8ecd5abfe"></span><br /><br /><div dir="ltr" style="margin-left: 0pt;"><br /><table style="border-collapse: collapse; border: none; width: 624px;"><colgroup><col width="*"></col><col width="*"></col></colgroup><tbody><br /><tr style="height: 0px;"><td style="border-bottom: solid #ffffff 1px; border-left: solid #ffffff 1px; border-right: solid #ffffff 1px; border-top: solid #ffffff 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img alt="Screenshot_unlocked.png" height="407" src="https://lh3.googleusercontent.com/G1Wd-uJd25PBkNGYdt7G5np7-cA68rK0GYH019o1DUJzOi3l5RYf4kMcX2IrRJEr_VIKnr2WOvpSYDovVyZTroi9QUHTTTkGgwr3yZt1XvoAFFao3M97JDJKGR5iCSLlHyPtdcOI" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="237" /></span></div><br /></td><td style="border-bottom: solid #ffffff 1px; border-left: solid #ffffff 1px; border-right: solid #ffffff 1px; border-top: solid #ffffff 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img alt="Screenshot_unclocked_offer.png" height="408" src="https://lh3.googleusercontent.com/i55l0Y-OtPNIYWIlCyhmuWevC_1VugcM8D57ILrQhal9tjI3jkHVPaIP4c0T4skQdZuBHDOJSYX2FWUdtF6qMmHbQdlogho2CfZ83afRYMg2Hl58JCHFSp--oa-dWCMio4WBYFTN" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="234" /></span></div><br /></td></tr><br /><tr style="height: 0px;"><td style="border-bottom: solid #ffffff 1px; border-left: solid #ffffff 1px; border-right: solid #ffffff 1px; border-top: solid #ffffff 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">An example of a free trial of a Pro mode.</span></div><br /></td><td style="border-bottom: solid #ffffff 1px; border-left: solid #ffffff 1px; border-right: solid #ffffff 1px; border-top: solid #ffffff 1px; padding: 7px 7px 7px 7px; vertical-align: top;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">After completing a free trial, users see a discounted subscription offer.</span></div><br /></td></tr><br /></tbody></table><br /></div><br /></div><br /><br /><p><br /><strong>Results: </strong>Offering a free trial more frequently paid off. The<br />conversion rate increased by 50% while all other conversion rates remained the<br />same.<br /></p><br /><p><br /><strong>Next steps</strong>: Memrise maintained the more frequent offer cadence<br />and has seen revenue growth as a result.<br /></p><br /><p><br /><strong>4. Test whether seasonal discounts result in more conversions<br /></strong><br />Memrise launched a 'Back to School' campaign presenting all users with a<br />discounted annual plan offer for a week in September 2016. The aim was to<br />convert more users and generate higher value users from annual subscription<br />plans.<br /></p><br /><div dir="ltr" style="text-align: left;" trbidi="on"><br /><div style="text-align: center;"><br /><span id="docs-internal-guid-9d8bb739-b5b6-62c1-87d4-31c3fd4d7ef3"><span style="color: #6aa84f; font-family: Arial; font-size: 13.3333px; vertical-align: baseline; white-space: pre-wrap;"><img alt="Screen Shot 2016-10-11 at 16.03.14.png" height="403" src="https://lh3.googleusercontent.com/CgcKw-Hac3vXRH4l7UiRssrbRVSGdivvr50ggXre-muRgEidgFUDpDm3Gmd_s5-CSQKKnnipT857Lr8YZ6iXZZe2lFJscdpPU-PPQAhi8sVuyqcphnqWzn6fDeGDq2qoqh9PfIFT" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="226" /></span></span></div><br /></div><br /><br /><p><br /><strong>Results:</strong> Memrise saw two effects from the seasonal offer. As a<br />result of only presenting an annual period and removing weekly and monthly, 20%<br />fewer users per day converted to Pro. However, because more people were taking<br />an annual subscription than a shorter subscription, the average revenue per day<br />increased by 32% justifying the change.<br /></p><br /><p><br /><strong>Next steps</strong>: Memrise plans to test different offers in the<br />future with a combination of subscription offerings. They'll also focus offers<br />in countries like Turkey and Mexico, where they saw the biggest increase in<br />conversions.<br /></p><br /><p><br /><strong>Keep experimenting and take advantage of new features to improve the<br />user experience and increase conversions</strong><br /></p><br /><p><br />At Playtime San Francisco, <a<br />href="http://android-developers.blogspot.com/2016/11/welcome-to-playtime.html">we<br />announced</a> that introductory pricing for subscriptions would be coming soon<br />and the feature is now live. By continually testing messaging, pricing, offers,<br />and free trials or discounted trials, you could increase the conversions in your<br />app and your ongoing revenue just like Memrise. Learn more about <a<br />href="https://developer.android.com/google/play/billing/billing_subscriptions.html?utm_campaign=android_discussion_pricingexperiments_113016&utm_source=anddev&utm_medium=blog">Google<br />Play in-app billing subscriptions</a> and <a<br />href="https://play.google.com/store/apps/details?id=com.google.android.apps.secrets">get<br />the Playbook for Developers app</a> to stay up-to-date with features and best<br />practices that will help you grow a successful business on Google Play.<br /></p><br /><div dir="ltr" style="text-align: left;" trbidi="on"><br /><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13.333333333333332px; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">How useful did you find this blogpost?</span></div><br /><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><br /></div><br /><div dir="ltr" style="line-height: 1.2; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=1%E2%98%85+%E2%80%93+Not+at+all&entry.656324858&entry.1348260426=Memrise-11/16&entry.1170596605&entry.646747778=Memrise-11/16" style="text-decoration: none;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">☆</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=2%E2%98%85+%E2%80%93+Not+very&entry.656324858&entry.1348260426=Memrise-11/16&entry.1170596605&entry.646747778=Memrise-11/16" style="text-decoration: none;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">☆</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=3%E2%98%85+%E2%80%93+Somewhat&entry.656324858&entry.1348260426=Memrise-11/16&entry.1170596605&entry.646747778=Memrise-11/16" style="text-decoration: none;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">☆</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=4%E2%98%85+%E2%80%93+Very&entry.656324858&entry.1348260426=Memrise-11/16&entry.1170596605&entry.646747778=Memrise-11/16" style="text-decoration: none;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">☆</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><a href="https://docs.google.com/forms/d/e/1FAIpQLScLTlzFd_aV-3rAdBqO1QxwCsuAcDCIM6fJFXyNcyf7zElVXg/viewform?entry.753333049=5%E2%98%85+%E2%80%93+Extremely&entry.656324858&entry.1348260426=Memrise-11/16&entry.1170596605&entry.646747778=Memrise-11/16" style="text-decoration: none;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 18.666666666666664px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">☆</span></a></div><br /><span id="docs-internal-guid-9d8bb739-b5b6-d03b-e160-be41ffd0ef24"></span><br /><br /><div dir="ltr" style="line-height: 1.68; margin-bottom: 0pt; margin-top: 0pt; text-align: center;"><br /><span style="background-color: transparent; color: #333333; font-family: Arial; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img height="148" src="https://lh4.googleusercontent.com/u_u-lcGNq7MYyusm_q0yIEDJR39e2RM4VXQ0-jT5VEGluIigoL1gA3q3T7bb7Ocj0gCFraKBfvCzFK5vfTv-4ef68Gji23ImQH0FKz5OTxLY7mNJlHxQedukblGV8ryDlxp_qM7v" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="141" /></span></div><br /></div><br />Dindahttp://www.blogger.com/profile/00796869350788211838noreply@blogger.com0tag:blogger.com,1999:blog-170710622875530737.post-30194022070399585562016-11-29T09:49:00.000-08:002019-01-03T19:33:03.482-08:00Keeping it real: Improving reviews and ratings in Google Play<p><br /><em>Posted by Andrew Ahn, Product Manager and Buddhika Kottahachchi, Product<br />Manager</em><br /></p><br /><p><br />The Play Store contains the largest catalog of apps in the world. As our users<br />make decisions about the apps they'd like to install, we want to ensure Play<br />provides a trustworthy experience.<br /></p><br /><p><br />Recently, we <a<br />href="http://android-developers.blogspot.com/2016/10/keeping-the-play-store-trusted-fighting-fraud-and-spam-installs.html">announced</a><br />our improvements in fighting fraudulent and spam app installs. In continuing our<br />efforts to combat spammy behavior, we've also improved the ways we identify and<br />remove fake reviews and ratings. With this enhanced capability we are now able<br />to identify and remove more fake reviews and ratings with greater accuracy.<br /></p><br /><p><br />In the vast majority of cases, no action is needed. If you are working with<br />someone else to promote your app (e.g., third-party marketing agencies), we<br />advise you to check-in and ensure that their promotion techniques use legitimate<br />practices, and adhere to the <a<br />href="https://play.google.com/about/storelisting-promotional/ratings-reviews-installs/">Google<br />Play Developer Policy</a>. The basic rule of thumb for reviews and ratings is<br />that they should come from genuine users, and developers should not attempt to<br />manipulate them in any form (e.g., fake, paid, incentivized).<br /></p><br /><p><br />We will continue making such enhancements to our systems that will further help<br />protect the integrity of Google Play, our developer community, and ultimately<br />our end users.<br /></p>Dindahttp://www.blogger.com/profile/00796869350788211838noreply@blogger.com0