Skip to main content

installing Android applications

We live in a mobile-oriented world so it’s crucial to provide the best usability experience possible. In this post we show how you can preserve user’s context when installing a mobile application from a website.


Problem


Have you ever seen this comic?



Even though web developers did their homework, it is still a common scenario to install an application and just lose context of where you were just before.


Let’s say a user is browsing through offers on a real estate page. She notices a banner at the top which advertises her to install a mobile application.




She clicks it, opens Google Play Store, installs an application and totally loses content she saw at the beginning of the whole process.


Solution


Fortunately, there is a solution for maintaining context. To do so, we would use Campaign Parameters passed to Google Play Link.


In this example we would use utm_term for passing the id of the offer we want to be shown.


On every page with application advertisement we add this parameter with the corresponding id of the real estate property.


So our link for id 12345 looks like this:


https://play.google.com/store/apps/details?id=pl.otodom&referrer=utm_source%3Dmobile_site%26utm_term%3D12345


When application is installed from Google Play, broadcast is emitted with data from the referrer. We implement and register a custom broadcast receiver, capture utm_term and display the offer within our application.


Our broadcast receiver:


import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import com.google.common.base.Splitter; import com.google.common.primitives.Ints; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; [...] public class PlayServicesUtmReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent){ if (intent.hasExtra("referrer")) { String utmTerm = getUtmTerm(intent); if (utmTerm != null && Ints.tryParse(utmTerm) != null) { // Start detail Activity here with id from utmTerm } } } private String getUtmTerm(Intent intent) { try { return Splitter.on("&").withKeyValueSeparator("=") .split(URLDecoder.decode(intent.getStringExtra("referrer"), "UTF-8")).get("utm_term"); } catch (UnsupportedEncodingException e) { // TODO handle unsupported exception here } return null; } }


Summary


Using this trick you will be able to maintain context between application and mobile website. It will provide better experience to your users. We hope that you find it useful.


Comments

Popular posts from this blog

JavaScript Array Methods

JavaScript Arrays JavaScript arrays are used to store multiple values in a single variable. Displaying Arrays In this tutorial we will use a script to display arrays inside a <p> element with id="demo": Example < p  id= "demo" > < /p > < script > var cars = ["Saab", "Volvo", "BMW"]; document.getElementById("demo").innerHTML = cars; < /script > The first line (in the script) creates an array named cars. The second line "finds" the element with id="demo", and "displays" the array in the "innerHTML" of it. Example var cars = ["Saab", "Volvo", "BMW"]; Spaces and line breaks are not important. A declaration can span multiple lines: Example var cars = [     "Saab",     "Volvo",     "BMW" ]; Never put a comma after the last element (like &