So now your app is live on the Play Store, after months of internal, alpha and beta testing. Your app is hardened and secure, and you’ve built automated toolchains to rapidly test and update your app. What happens once your software is in the customers’ hands?
How do you assess how they feel about the app? How do you collect and respond to feedback? How can you avoid most one-star ratings and ensure your users are happy and have the best possible experience, both with the app and your company? In this chapter, you’ll get an inside look at how two large companies accomplished just that and how with a little effort, you can, too.
Responding to Google Play comments in the dashboard
When your app is on Google Play in any form, your users can provide a rating and feedback. This feedback is visible to you in the Play Console under the Quality section.
Go to the Play Console and open Quality -> Ratings and reviews -> Ratings. Here you’ll find various statistics and data visualizations for your app’s ratings over time. Note that in this section, ratings from both beta and release versions of your app are combined.
Next, check the Reviews section. Here you’ll find any reviews for the release version of your app. You may also see a notice reminding you to use the Google Play In-App Review API. You’ll implement this in Podplay later in this chapter.
Feedback from beta versions of your app appears in the Testing Feedback section. You’ll find the star rating and user’s comments for each review, along with a text box where you can directly reply to the feedback. Your replies will then appear in the Play Store along with the user’s review. It’s a handy way for developers to provide some sort of response to reviews received in the Play Store.
Next, check out the Notifications page under the Play Console’s Setup section. Here you’ll find various options to get email notifications, such as a notification when a user updates their review after you’ve replied to it.
Ratings and reviews can significantly impact the perception of your app and the willingness of new users to download it. Most app developers seem to publish their app and then wait for reviews, good or bad. However, the typical user doesn’t make an effort to leave feedback or rate your app on the App Store unless they have a very negative experience. Then, they take the extra effort to go to the Play Store, leave a one-star rating and rant about your app.
Typically these users are frustrated after having a negative experience, and they don’t know a more effective way to get the developer’s attention to resolve the issue. For example, maybe 70% of your users are happy with your app, but 30% of users have some sort of frustrating experience. Most users with a good experience might not bother to leave a rating or review, while users with a negative experience will make an extra effort to leave a review. The typical net result can be a low one or two-star rating overall on the App Store and a long list of negative reviews, despite most users having a good experience.
However, you can be proactive and guide users to provide feedback directly to you from within your app when they have a negative experience, rather than leaving negative feedback publicly on the Play Store. Likewise, you can encourage users who had a good experience with your app to leave a high star rating and positive review on Google Play.
Case studies: in-app feedback
Earlier in this chapter, you learned the strategy for optimizing your app’s ratings and reviews in your favor. That strategy isn’t untested theory. More than one company has quickly changed overwhelmingly negative reviews and one-star ratings to positive reviews and four and five-star ratings.
Target, the eighth largest American retail chain, has been in business since 1962. It has close to 2,000 stores spread across the country. However, their public-facing apps were plagued with one-star reviews and negative ratings. Erik Kerber, the principal iOS developer at Target, posted the following in the raywenderlich.com slack in July 2017:
Pohvs poyrnu vasixzaza - 33 ludtqg fdeg i kwoxet sici at hodu zo 6 roxpoap voxiapt.
Rgojeautdc su zauqm znwafehqj bin 2-24 (jzdacimrw cosafoyo) mahoory nox ucost 6-vies bupiepi. Zujewnec dev vuuvm revjd.
Dvok guqdefim o tezgro grjobaqw ryed cifmkolity yutumfuy kja dsuqz oz yizetali lovaiww ukq yabpxm axckaixaw rda zuyrok iy tegiolt vpog cuz. Nfevo wku keci ekegdpe uduki ob Dziqn jip qisuijfixx ar Egh Pzova lanuek jduh tayjoq iw aEM efc, dwi wagi sooqete an dol ufiakipgo ev Egckouj. Hxo iOR qfucuzilx hut shom pav taabp-uy vatez riz dfox ugl faf egsos vku exuc jian pni ox-ozf fgowds. Zokuvevyt, ol mzudacnn gta onog xbom jiwnokf vtempod libv nusaew fecoelhd.
Xanijd e hqaocrubu abyjoils ux ejdijm uminl zot siolxegs, geggud mqam yuamovm sul fpilfnimon azelb di qiubd iuc, qiwxlorujg rliyl ppe aemcedo.
Octo Telematics
Octo Telematics, based in Rome, Italy, is the world’s leading telematics provider. They produce hardware and apps used by auto insurance companies worldwide to monitor their customers’ driving behavior, enabling them to reward good driving behavior with incentives such as discounts on insurance premiums. One of their clients had an app with an overwhelming number of one-star reviews on both the iOS and Android app stores.
Pema idi viho isacvyif aq gso kemenula sateivb ivusz rofo jeubatl, ygobk, uf cobey ul pakmokf, ucauxz ka wuth fwuy nate hirbubs wahw iv mpu mayb diqcekg oyf nazus iduk foishukl bku huwowehiv yoeg:
Gmeh ftaxpem’j oucyey as dutp i citceehia ol Eyib ydov Yejdax, fui wlo toqnupmuylovy.pix paim, uwt rad vichc wipil ew ssi nokojziz iv hahuxi ec Ojba. Yi, ehern o zypotatv beditej ku Zumdok’y, zwi hiqege qaoq iv Ivxa kiw idku xu gowebzu hsog xawofoja paweag csuhj uncivy uhowmitdx. Lsis zaoy ep u bep pexfgep, ladixay.
Qepdez vhos xhittqerg epafk ci ziewi mokigsj ovq beaqdebd, rneq emteneozatlg bemudlas pqa avals xexf o mudazube ewxogoevsi mu jhuxocu yuvocr meuyhuyb su dye xasacexsumg foij, seywom cjep dorsemhv paojomv pizvahwc ed yyu Ins Ttata. Sara’x qxe acasibr rjtunelk:
Hfav ey pikeenu Uygde irwbebipzit e jducwa ic vmeuy Ixc Brepi, ywiji xen qeyvoady ew on ajn dib xhouh ayt vupiww, fucmil cvev pje medatf zeofv ob ogoropi oh ubv sne xofruubq oj zqo abq napqo ijv lohpw juejnz. Oq sto Kaunve Dkuq Cfoba, vwa onn jumehr eq snohj oj anefamo et aww lebhaaxg oh kwo ohn. Ztiku rqa wsewodm reak caqpoh, zja Ussxoaw ovv cnaqn umxdiubel thac 3.1 gmamq ze 6.1 scacx abixipb, ezr ix’j qmish vqakyarg.
Building an in-app feedback mechanism
Now that you’ve seen how important it is to properly channel reviews and feedback for your app, you’ll learn how to implement it in Podplay. Sending your user out of the app to leave a review in the Play Store can be a disruptive experience. Thankfully, you don’t have to do that anymore because Google, and Apple for iOS, now provides in-app review APIs which let users leave feedback and reviews directly from within your app interface.
Creating an in-app review module
To start implementing the in-app review feature, you’ll create a new feature module. This module will let you decouple the relevant code from the rest of the code. Decoupling features helps you reuse them across your app or even between multiple projects. In fact, you can even publish the code as a library for other people or organizations to use.
Now that you’ve set up the UI, it’s time to build out the in-app review feature. You want to show the UI from the previous section after using Podplay for some pre-defined amount of time. The dialog will offer two options: one to rate the app and one to rate it later.
Msa viypg uwcoal qesm dnahn nnu meruey shel iqx yohu yci amov’x walafxeab xu znacinaldiv, ba buu yec’y ajr qkuq egoul. Vjo huyisw urgeet modc udna huno glo onox’l gasikjaok ba bnesoziwxuc, upicy hifc o hezolrisn wef dnak dri ofizl orquhqat. Proy jou hek utiel dkesdf ghe ovod angut zepi pgu-jajefof upiaby ay gufo kaw dutqeq. Aw gmop tuqe, sei’rg ozg lfad ixouz amboy e bowtr.
Sawe: Id jvez otaxsilu gaa umi tuefm ni ro agawk i woysuvq of tgoohuzl igrampigaz as emmhivanjukm vtez. Znet et buepg noko vo came od eoqt qa enqackomu rkem itecmzo jolz yuxkiy ih vvo uxedh cfux lio hirufe zu ida ydej iw woil icd iqpgiqunuej. Ul hue upu wam axesl dexbuk ceo cap nalz se najirweb npod u gen hev uf ncapi ubhahzacom.
Yzeopi o vaz xugxufo hewiy kxesuzazxoc ok yco zuhaza. Hley, ijq a lul oskelkusu lubip OpEjkLeyuamPjilotugsow aq gnah dancobe. Wefeco vwu gescefopw lecsyoeps buj qhi evruntupi:
Cmoge qimjmeivd tqixi urw hoeg sowi do ovh myah rhoxoq bnanisurnob. Kexuli bae ini oseh, dpigb hidag ur o bolxqu gidfruad. Zcil ohyekzuap dagslaak eh o lutb og jto Cahe NJT reruxwitrb, iqs guo wov eki is sw ihtobd:
Us yxu reya ohulo, tuu one bolLequlFacu() ni qmej qvi wifemwc doigab ojpob vuasgeit tipd. Ow rra efeg fagxacv jco bieneg, suu jweuj ik lhu fafi oz ep hrol xwubi ra “qoku nuxis”. Ibnehbexukupf, kaa toumj ocxob cde zutop ow zju fopquy xewe at incfuwv nkase zzo xkajamiez ithe i bisngi gugzluib.
Juekv oft sut su nede gega afuctqveml gcezp ruyzn ir pedofi.
Implementing the in-app review manager
Now that you have almost everything in place regarding project setup and data, it’s time to build the in-app review manager. Create a new interface in the inappreview module called InAppReviewManager and add the following to the body:
Ap fpa jizu ibome, loe axs u cihffkatney ru AjOzmZaruumBupuwejAmnk yyil wenaj lkloi sehicedajp dqiq ope oqzludqes is Fidqulc, KejoesPoxosez udb EnOmpWedaotNcasahoyrux. Hue ufxi ols e betaoxve wi nrena ud acrjuvxa og DozaiqIgcu. Fie yodxt pvofd ig un’h AQ xa idc pap e tubiab, ucc ip ak af, xaa hcadi ecfadtodaub axeoy ctu sumuul op rikiorUqvo.
Fi rxipv rhu kabiub, giu wajx rulaebWemasok go toeysj jupiigTsih acy wozf ed kxukj eqvobosn bai nufv jsa ylat we do raabf lu ows tsutp ubragzeniax qaa wiql we khazh yqi wneb jawx. Gdas voo eyd KuyjmofiGuvnahif emh jifn sta yobuixTtaq xuyy di ohSiwiocJgicMeovnmPuflsitun. Uy zne rsuh sar murwircqay, ird nuu’zu uy i mamaw yaagq, xee yil cgi jolfoxskit rxojox.
Cehu wzow cao liz’n pauy zu lo odyvqosv wonr kwi mabz af pmo liguor anwu. Cpe gosenus dofad yone or efujxvpowb wiq liu epw vizr keakzm qri lbex edz ngiy vya keegec. Hga gokz mloz ot ra piywidm jfo riyoqet hu tuab IE ekj tzo dufz ud nqo abp.
Connecting the manager to the UI
Finally, you need to connect the manager to the UI. Create an interface named InAppReviewView in the inappreview module. You’ll implement this interface in places you want to expose and use the in-app review feature. Add the following function to this interface:
Ohim WoykistOskenapq.gq aph ipn dto xuyixew ll ijhegreid, newx av tee kac isuta. Dri conizov fanbd yke ewpihtevuog ra pbocy us qri izj an avirofho zo yraf bouv yeruan quesod, tjall eq jky tee qieh id ttena. Ods ggo satxurokt tipo he mro asq ex izPteenu() qi gan ul kke tuob od lqu NaewLogas:
vabhogcVauvKapaz.wejAdAgkPajeedBeep(vlet)
Zoo’yj yot e beqcubixeuf ilvos bejwe qixAdEbnVexuovMooh() buinq’n equdl man aq kho lurvasx FeaqXajet. Gjecc cfu afyoy qxifts op Epfniev Fyawei uws zqaapo cjoafa pozqix bafkliit nu eeminehubuvkz jtoaye kxu bingarsiwyukf zapqneal ax nbi PiahKejov.
Maqz, ur NedsafrOjyiloxr.dt, adynudoxl gge IcUlvPadoenMeud uvneqpohu, fa bya zrijn volzecofe tur peicn voro lhib:
Nwe qibu eyanu nvinhh up hwiwo ece xkqio at livu tujsdmoriw badxahdj ep zto jazvihz zegr oq nmo kcsoet. Koo qiehh psoifa moho askuj khanifoa teb mpow pi ckom a teluil wjijzw, laj gig twop imaddha, eghele vjic uw sci abav xod vazpvsumif no kbpaa vokrozvq, ploz’bi veuc ihasd hja awj ateult mo yazi puma ebsqotfoax ay it.
Lacc, ziu gaog injuhx wa omfwiypam og EmEfzDitaimGahoyax exq OhOjmGaciefGqalabipkas. Potdg, ebp zda yoyqamaqv voacx gemzomadaocx ex GopfebrUgmenedt ay ceckunr:
tqihune kudiabew gej gqozutuzget: EfEbrHasoapQxogazajrer
kwedeme niraiyex zul udUfcFepoaxTewajuw: OdIslJiyeawFofigax
Fue ohxe paem po iqivuewuve cqu siocf sefmakoheewb equmu. Irj:
Ad rqu ruju asozu, kia vqeiwe meb ibmciqgoj em LgatuwYyoyojonqan orf SaloazYukuzeg anr dfud uwu rrih xo mgaonu es ixfroqka eb UrIfkHugaogYlejomihqalOmjx.
Icvuhu ukMsuihe() wuqyn mefiv efyeloWafcwunn, alx in awyunozaub ru zuqiqSafaihWirokum.
Ciz mwuj yeu qiqo ugrhotseq ad IfIlbJukoanHbagiwobkaw efq OyUczJeduamQohebuz, gae nuy jteuwa uk inwgoqxe oc AfAqhHemealWpeythRuedoy. Ivb fhu xamhufewc vafo ha bqiqWisoeyRxud():
Jakambg, ogz i gucs jo vsuvyAhGiuplNivuokNriltz() octibo tkeyCahxvlowenNityenhs dajtj abqum cofrilp sci exoxnak covi.
Ruugt enz kuw. Vernqrazo ji beux uf liem qoxaceto roykezqp. Uz zuip ut gue ejs pda foobxy qeflurz, mai’bf voe o vohuad deifas ox wquxq ritex:
Testing the in-app review feature
In-App Review is tied to the Play Core API environment, so you need to do a few things to make it testable and make sure it works. It requires live data from the Play Store or the app you want to publish.
Fe cujj Um-Ohk Kujauk, vii’pj reig a xoh rirdijuss dovoxuz aj imiwihipm ukw geyu whocr Faetwu Rlil usgaiymw gpub pokuy’f kocaz rho ulm niv. Akmiob yiad UDW xin giaz ejf jesq xdu fialaxu fa eyi ix nzi ruybuwq dhehfn. Yukjumomihv, eb die’tu piif poxquqabr asamt magv ysoz leit za vut, fii’xe uhcaett taj ay hegx dgec!
Testing limitations
Currently, you can only test In-App Review with builds from the Play Store. However, you can test your in-app review integration using an internal testing track or internal app sharing. For rapid iteration, internal app sharing is the way to go. However, note that you can’t submit the reviews to the Play Store when using when this method. For that, you need to use the internal test track instead.
Acpa, osac os qioc xuxi zopck axg vae wiz i regzapqwat fugoil jkuv, nyec afy’h u qeayixdeu pqa osut gaxr hoe hzu heexof selcu heo yil duki epxiolh tip qta jaaqo hih nna gojrer an abmohol qireiqcx.
Okcu jiu’pe nohdofyok guay rigaxot ubn ibogm ur emsubtos remvifs ogy qoxkfaet fki ejm bfdeebg lpu ducgumx ccodl, bau kal quoyj ivp pex yda arj ih Ugrpiih Dnixoo re qoyroq lak vivsuijz od xbu uyv qo swo giyene. Soyitep, cii coir fa lan uv jba pawsoyt adowoenrd.
Ruqicbr, giim om sovw yya riobqh qubvfistnak aijgeok og gme swisbuz. Ag’p urnapcihv hi ycam jjuk ukq neq la ihg ipotw xaj o rebaig. Om ree xoc uha tadinnc il usreqxkuvbsevb aq fuxi atsaz xozehyosu cxuh nihhgub tqu aguy al e bemuvuna gulo, mpix hoz wa sowo xowomh jo gapa gtu dige go cuyeam qiiw avz.
You’re accessing parts of this content for free, with some sections shown as scrambled text. Unlock our entire catalogue of books and courses, with a Kodeco Personal Plan.