Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

UniRate - A better drop-in solution for mobile rating prompt

Discussion in 'Assets and Asset Store' started by onevcat, Jul 26, 2013.

  1. onevcat

    onevcat

    Joined:
    Jan 4, 2013
    Posts:
    105
    $unirate0.png

    What is UniRate

    Making amazing games for mobiles? It's great except for your potential users may not notice your game. 5 stars rating and positive review from customers in the AppStroe or Google Play Market is as important as your game quality. But unfortunately, the users are not likely to write a review for your game until they are prompted to do so. That's the reason we need UniRate.

    UniRate is a package to help you promote your mobile games by prompting users to rate the app after using it for a few days or times. Integrating UniRate to your project is deadly simple as a drag drop, but it is powerful and configurable for some advanced usage. It will count the using of the times and days automatically and if the conditions you set are met, a native prompt will pop up and user can decide whether rate it or not.

    This approach is proven one of the best ways to get positive app reviews by targeting only regular users (who presumably like the game or they wouldn't keep playing it). It is not doubt that you will get more benefit with these great reviews brought you by UniRate.

    $unirate1.png


    In Detail

    • A preset strategy to prompt user for rating your iOS, Android and WP8 mobile game. You can implement it with a simple drag and drop.
    • You can set the conditions for prompt easily in Unity Editor. The setings includes 'days from installed', 'use count', 'event trigged times' and many other more. Use these conditions to control the prompt without writing any code. In fact, all settings in the editor is optional, our goal is making things easier :)
    • There is a lot of delegates and events you can listen to, so you can control the prompt flow in every step by writing some simple code.
    • We prepared a native pop up for the prompt window. If you want to use your own UI to fit your game style, just set a boolean to false and show your customise the pop up as you want.
    • Working with iOS and Android. WP support is in development.

    $a4b7993b-717e-492b-905a-dfb30b01c67b_scaled.jpg


    Supporting

    The code itself is well documented. There is also online user manual, script reference and supporting forum for you. Use the link below and feel free to visit them and ask if you have any question.


    Get it from unity asset store and make mobile prompt easy today!

    Asset Store Link - https://www.assetstore.unity3d.com/#/content/10116

    $assetStore.jpg
     
    Last edited: Nov 19, 2013
    MrEsquire likes this.
  2. imtrobin

    imtrobin

    Joined:
    Nov 30, 2009
    Posts:
    1,548
    Is this native dialog pop up? Full source included?
     
  3. onevcat

    onevcat

    Joined:
    Jan 4, 2013
    Posts:
    105
    Yes, there is a native dialog pop up in both iOS and Android (and for WP8 from version 1.1.0), as shown in the title image. You just drag the prefab to your scene and everything can work automatically if you set your player setting correctly (The plugin will find app info by using the bundle Id or package name). You can also choose a non-native pop up way, and implement your own pop up to fit your game style.

    All the C# source code for Unity and iOS is included, you can modify them as your need. Android code is supplied in a .jar package.
     
    Last edited: Nov 19, 2013
  4. imtrobin

    imtrobin

    Joined:
    Nov 30, 2009
    Posts:
    1,548
    Can I ask you rename PowerfulPlayerPref as UniRatePlayer Pref.

    Also, it would be good if you can make ways for us to extend other app stores easily,
     
  5. onevcat

    onevcat

    Joined:
    Jan 4, 2013
    Posts:
    105
    Hi, @imtrobin . Thanks for your suggestion. I will change the name of it to an unique one.

    I think all iOS games should be downloaded in AppStore, so you mentioned "other app stores", do you mean other android markets besides the Google Play?
     
  6. imtrobin

    imtrobin

    Joined:
    Nov 30, 2009
    Posts:
    1,548
    Yes.. check pm too.
     
  7. onevcat

    onevcat

    Joined:
    Jan 4, 2013
    Posts:
    105
    Right now you can set the "Rating Android URL" to specify your own rating URL instead of the automatically Google Play's URL. I will try to implement the multiple market urls support later.
     
  8. onevcat

    onevcat

    Joined:
    Jan 4, 2013
    Posts:
    105
    Version 1.0.4 updated.

    - Add support for iOS 7. (Changed the default rating url to a valid one when running on iOS7. The old scheme won't work properly on iOS 7, so please update to this new version)
    - Make the log cleaner in debug mode.
     
  9. Dgizusse

    Dgizusse

    Joined:
    Feb 1, 2012
    Posts:
    30
    Just bought this, got it working right away! Awesome job.
    I have one request: On Reset, could you call Init again just so firstUsed and other variables are properly set without an application restart?

    Thanks a lot!
     
  10. onevcat

    onevcat

    Joined:
    Jan 4, 2013
    Posts:
    105
    Hi, thank you. I think it is a good idea. Update it later :)
     
  11. kdimas

    kdimas

    Joined:
    Sep 13, 2013
    Posts:
    10
    Hi @onevcat, do you plan to support Windows Phone 8 rating in UniRate? I'm interested buying this asset, but my first focus is deploying to Windows Phone 8.

    Thanks.
     
  12. onevcat

    onevcat

    Joined:
    Jan 4, 2013
    Posts:
    105
    Hi, @kdimas thanks. Right now I am not owning a device running Windows Phone 8, and know little about development for Windows Phone 8. I will dig into it to see if I can implement the support for Windows Phone 8 and do some experiment on it. If it is possible to do it, I will add it to UniRate and let you know first.

    Thank you and good luck :)
     
  13. onevcat

    onevcat

    Joined:
    Jan 4, 2013
    Posts:
    105
    Hi, all. Version 1.0.6 is just released. It is a small bug-fix update and with one new feature: supporting for Amazon AppStore.

    - Add a pop up list for auto configure to support Amazon Appstore.
    - Init the plugin state immediately after it get reset.
    - Update GUI for debug. Fix the buttons not show in some device.

    You can find the update in the asset store link here:https://www.assetstore.unity3d.com/#/content/10116

    I got my own WP8 device recently and I am working on adding the support for WP8 now. It will be added in the next update: 1.1.0, which will shipped with some other new features too. Keep an eye on it :) !
     
  14. kdimas

    kdimas

    Joined:
    Sep 13, 2013
    Posts:
    10
    Nice! :) So I can expect windows phone 8 support soon.
     
  15. onevcat

    onevcat

    Joined:
    Jan 4, 2013
    Posts:
    105
    Hi, glad to say Version 1.1.0 is released, which contains the support for Windows Phone 8.

    Check more in the asset store page (https://www.assetstore.unity3d.com/#/content/10116) and here is a screen shot shows how it will looks like by default.

    $8N1ZU[T4R[HIN9XVMF$WA0Y.png

    If this pop up is not fit your game style, you can follow the online manual here (http://unirate.onevcat.com) to implement your own prompt pop up.
     
  16. onevcat

    onevcat

    Joined:
    Jan 4, 2013
    Posts:
    105
    Now you can enjoy it on WP8. Hope everything works well for you :)

    If you have any other questions for suggestions, please feel free to let me know.
     
  17. brianTapblaze

    brianTapblaze

    Joined:
    Oct 23, 2013
    Posts:
    9
    Hello onevcat,

    Your support for native rating popups in Android, iOS and even Windows 8 led to my purchase of your app :) so thank you!

    I would also like to manually launch the rating popup at certain times, just through something like a Unirate.Alert() command. Any chance of seeing that in the next update?

    Thanks!
     
  18. onevcat

    onevcat

    Joined:
    Jan 4, 2013
    Posts:
    105
    Hi, you can do it just right now. There is a method called PromptIfNetworkAvailable for you. Just call this method on UniRate instance and everything should be done for you. Or if you specified an URL for the rating page, you can just call ShowPrompt without internet check.

    Please refer to the "Implement a manually review button" section of online manual http://unirate.onevcat.com/manual.html for more info.
     
  19. brianTapblaze

    brianTapblaze

    Joined:
    Oct 23, 2013
    Posts:
    9
    Wonderful, thank you!
     
  20. LukasO

    LukasO

    Joined:
    May 23, 2013
    Posts:
    115
    Hi,

    I've noticed a bit of a bug when using your plugin. If the user has the pop up on screen and locks and unlocks the screen, another pop up seems to be created which is subsequently shown when the player taps "no thanks" on the preexisting pop up. Is there a way around this. I've set my parameters too:

    Uses Until Prompt: 5, Events Until Prompt: 0, Days: 0, Uses Per Week: 0, Remind Period: 1

    I can imagine users getting annoyed at this so if you can let me know a way around this that would be great. I've only noticed this on iOS 6 (haven't tested iOS 7).

    Thanks
     
  21. onevcat

    onevcat

    Joined:
    Jan 4, 2013
    Posts:
    105
    Hi, it should be a bug in current version. Because there is full source code included, so you can definitely get a workaround. In fact I have fixed it within 2 minutes. I will update it soon. And could you please send me your invoice number and I can send the new version to you now. (You can find my mail address on the package description page in Asset Store)
     
  22. brianTapblaze

    brianTapblaze

    Joined:
    Oct 23, 2013
    Posts:
    9
    Quick update here as well: there's a bug with only using use count (at least for me in 4.2 with any Android devices I test). Even if UniRateManager is set to 2 Uses Until Prompt, it prompts on the first use if all other Prompt settings are zero. This is due to the device checking PlayerPrefs for a setting that is not yet created, and something going wrong there. The solution was easy: use HasKey to check if that setting is stored yet, and create a zero value version if it does not yet exist. The updated code is below: (where usually your usesCount method has no HasKey condition block)

    Code (csharp):
    1. public int usesCount {
    2.         get {
    3.             if (!PlayerPrefs.HasKey(kUniRateUseCountKey)) {
    4.                 PlayerPrefs.SetInt(kUniRateUseCountKey, 0);
    5.                 PlayerPrefs.Save();
    6.             }
    7.             return PlayerPrefs.GetInt(kUniRateUseCountKey);
    8.         }
    9.         set {
    10.             PlayerPrefs.SetInt(kUniRateUseCountKey, value);
    11.             PlayerPrefs.Save();
    12.         }
    13.     }
    Hope this helps!
     
  23. onevcat

    onevcat

    Joined:
    Jan 4, 2013
    Posts:
    105

    Hi, brianTapblaze. Thanks for pointing it out.

    Are you doing that with the "Reset" button of the demo scene? Or a fresh install?

    Because the reset feature will call init of UniRate, so when you click reset button to test it, the use count will be 1 right after you clicked the reset. Then when you quit and restart the app, use count becomes to 2 and the prompt shows up.

    Could you try to uninstall the demo app from your device and do a fresh install with Uses Until Prompt setting to 2? It should be popup when you open the app in the second time.
     
  24. KevinCodes4Food

    KevinCodes4Food

    Joined:
    Dec 6, 2013
    Posts:
    61
    I have been using UniRate on Android and iOS. It has been a great help, and definitely worth the price. THANK YOU!

    I noticed that if I leave the plugin in the project and build for Windows Store, applications fail certification due to the presence of a debug version of the UniRate Windows Phone DLL:

    I can remove the asset package from the project. But I was wondering if there is a workaround for this that would allow me to leave the UniRate package in place, or if a non-debug DLL is available.

    Or if perhaps if Windows Store support is available, even in Beta form!
     
  25. onevcat

    onevcat

    Joined:
    Jan 4, 2013
    Posts:
    105
    @KevinCodes4Food Oops, sorry for that! I will update it to a release build later. Right now, you can just delete and ignore it.

    In fact, the support for more platform (Mac and Windows Store) is in plan, I will add them in near future. But that dll in /Plugins folder is just for debug purpose. Sorry for that!
     
  26. mog-mog-mog

    mog-mog-mog

    Joined:
    Feb 12, 2014
    Posts:
    266
    Hello,

    I have my own rate us GUI in my application. I want to use this asset for two APIs
    1) Get - Figure out whether I need to show my own rate us button or not
    2) Post - tell this plugin to take user to rate us page.

    I do not want to display extra modal dialog. I really like that this plugin will figure out Url for each platform. Please let me know if that is possible. Any help will be appreciated.

    Thanks
     
  27. onevcat

    onevcat

    Joined:
    Jan 4, 2013
    Posts:
    105
    Hi, lilboylost. Thanks for your reply.

    You said you have an own rate GUI, and you do not want to display a modal dialog to prompt users. So I guess you just want to use UniRate to navigate to your rate address and keep track of user's selection and usage? If so, you can refer to the "Implement a manually review button" in our online manual here (http://unirate.onevcat.com/manual.html). Generally speaking, you need to switch the "Prompt At Launch" toggle off in the Inspector, to prevent auto prompt when app started or switched to foreground. Then you can just call UniRate.Instance.RateIfNetworkAvailable() to get everything work well.

    For the need of show/hide the rating GUI, you can try to use ShouldPromptForRating() method to check. And when the user clicks the rate button, use UniRate.Instance.SendMessage("UniRateUserWantToRate") to inform UniRate to update the rating condition.

    You can find the full doc here: http://unirate.onevcat.com/reference/class_uni_rate.html And if you encountered any problems, please feel free to contact me again.

    Have a nice day.
     
  28. ManAmazin

    ManAmazin

    Joined:
    Aug 7, 2013
    Posts:
    246
  29. onevcat

    onevcat

    Joined:
    Jan 4, 2013
    Posts:
    105
    Hi, there should be no relation between the Google play service and UniRate. UniRate is totally self contains and should not break anything in your project.
     
  30. ManAmazin

    ManAmazin

    Joined:
    Aug 7, 2013
    Posts:
    246
    Thanks for fast response thats all i needed to hear lol i will be buying this thanks alot!
     
  31. PixelEnvision

    PixelEnvision

    Joined:
    Feb 7, 2012
    Posts:
    513
    I've purchased this while a go and I'm planning to replace our own linking codes (kinda mess due to cross platform hacks) with unirate.

    I just wanted to make a feature suggestion. When linking I'm using two buttons, one to the app rating page and another one to show our other apps, our developer page of the linked store.

    Usually the app rating link and the developer page link is very similar. Can you add a such feature so I can take care of both using unirate?

    For example I'm using the following links for Amazon...

    App page: amzn://apps/android?p=com.bundle.name
    Dev page: amzn://apps/android?s=developername

    and for Apple:

    App page: itms-apps://itunes.apple.com/app/id
    Dev page: itms-apps://itunes.com/apps/developername
     
    Last edited: Apr 4, 2014
  32. TheOz

    TheOz

    Joined:
    May 21, 2011
    Posts:
    34
    Question. I am looking at Unirate to ask users to rate my IOS build. I do not want to prompt a player to rate the app if they have already rated it. If they have rated the app I wish to provide an in game item. So the check for already rated is important for me at the start up of the game. After reading the documentation I can not tell how to detect if the player has already rated the app so I can avoid prompting a user to rate the app.

    How do I go about checking if the game has been already rated?

    Thanks

    Garry.
     
  33. onevcat

    onevcat

    Joined:
    Jan 4, 2013
    Posts:
    105
    Hi, there are ratedThisVersion or ratedAnyVersion property in UniRate. If you are using UniRate's prompt, you can just use it and except the correct result. If you used your own prompt or without prompt, you have to call "UniRate.Instance.SendMessage("UniRateUserWantToRate")" to inform UniRate to record the rating event when user tapped rate button.
     
  34. onevcat

    onevcat

    Joined:
    Jan 4, 2013
    Posts:
    105
    Wow, it is a totally different feature and it is not a common request for an app rating library. I will consider how can I add it.
     
  35. luniac

    luniac

    Joined:
    Jan 12, 2011
    Posts:
    614
    Quick Question.

    Instead of having a popup, all i want is a "rate" button that when pressed does the rating procedure at the correct URL based on whether its android or iphone.

    The button I can make easily. Is there some simple line of code related to your plugin that i can run when the button is pressed to start the rating process?


    NEVER MIND!
     
    Last edited: Apr 29, 2014
  36. coeing

    coeing

    Joined:
    Mar 17, 2011
    Posts:
    271
    Hi onevcat,

    First of all: Nice, polished plugin! I had no problems integrating it in our current project FreudBot :)

    I have one suggestion to improve your plugin though: When testing in the editor it would be great if a dummy dialog would popup when the rating prompt would be shown. This way one could easily test all the program flow in the editor without deploying to the target platform.

    Cheers
    Christian
     
  37. onevcat

    onevcat

    Joined:
    Jan 4, 2013
    Posts:
    105
    Hi, Christian

    Your game looks so great!

    Yes, you are correct. I will add it soon~~
     
  38. coeing

    coeing

    Joined:
    Mar 17, 2011
    Posts:
    271
    Hi onevcat,

    Today I was stumbling over some lines of code which look strange to me:

    Code (CSharp):
    1.    
    2.     public bool ratedThisVersion {
    3.         get {
    4.             return (PlayerPrefs.GetInt(kUniRateRatedVersionKey) == 1);
    5.         }
    6.         set {
    7.             PlayerPrefs.SetInt(kUniRateRatedVersionKey, value ? 1 : 0);
    8.             PlayerPrefs.Save();
    9.         }
    10.     }
    11.  
    12.     public bool ratedAnyVersion {
    13.         get {
    14.             return (string.IsNullOrEmpty(PlayerPrefs.GetString(kUniRateRatedVersionKey)) == false);
    15.         }
    16.     }
    17.  
    In both properties the key kUniRateRatedVersionKey is used which is as intended, I guess. But in ratedAnyVersion you access it as a string while you only set it as an integer in ratedThisVersion. This causes the ratedAnyVersion to always return false, even if the current version was rated.

    Beside: How do you separate if a user rated this version or any version? Looks like you have no information which version was rated last as you only store 0 or 1? Maybe the mechanism should be the same as with declinedThisVersion/declinedAnyVersion where the applicationVersion is used.

    Cheers
    Christian
     
  39. Yodzilla

    Yodzilla

    Joined:
    Mar 21, 2013
    Posts:
    48
    Just wanted to first say thanks for the this great plugin, it's worked great for us!

    But we're now launching an Amazon version to go alongside the Android and iOS release of Bungle! Do I need to do anything to Unirate to tell it it's the Amazon version as opposed to native Android from the Google Play store? I saw you mentioned previously that Unirate supports Amazon but I didn't see any options anywhere nor is it mentioned in the documentation or in the asset store itself.
     
  40. Meceka

    Meceka

    Joined:
    Dec 23, 2013
    Posts:
    423
    Hello,

    I am building for windows phone, It doesn't work when I build from unity or visual studio. When I click rate, it opens windows phone store and gives error (805a0194).

    Also, is there a landscape mode for rating? My game works in landscape mode but rating is in portrait.

    Thanks.
     
    Last edited: Jul 18, 2014
  41. KevinCodes4Food

    KevinCodes4Food

    Joined:
    Dec 6, 2013
    Posts:
    61
    Hello onevcat,

    Thank you for the great plug-in! It has been a great help to a number of our projects.

    Would it be possible to make a release build version of the unirateWP.dll available in the asset pack?

    I notice that when building a Windows Universal solution from Unity (Windows Store + Windows Phone combined) the UnirateWP.dll makes the Windows Store binary fail the test certification. Unity has details on universal builds here http://blogs.unity3d.com/2014/08/07/introducing-universal-windows-applications-in-unity/

    This is because the UnirateWP.dll is built as debug, which is not allowed in Windows Store apps. And I suspect will eventually be disallowed from Wondows Phone as well.

    There is a work around - remove UnirateWP.dll from the Windows Store project references, the managedAssemblies.txt, and the project properties Build Events. But this has to be done each time a solution is generated. And, in general, only release build binaries should go out to production apps.

    So it would be great if a Uniratewp.dll release binary could be made available.
     
  42. onevcat

    onevcat

    Joined:
    Jan 4, 2013
    Posts:
    105
    Hi, Kevin

    Sorry for the late reply. I was quite busy with a new project recently and didn't see the post until now. I have submitted an update in which using Release build instead of Debug one. It may take some time to get approved by Unity. If you wish to get it before released on the Unity Asset Store, would you like to send me a private message and tell me your mail address? I can send the new package to you right now.
     
  43. PixelEnvision

    PixelEnvision

    Joined:
    Feb 7, 2012
    Posts:
    513
    onevcat,

    Are there any other changes/fixes or just that?
     
  44. onevcat

    onevcat

    Joined:
    Jan 4, 2013
    Posts:
    105
    Hi, this is a minor patch and the only fix is for WP 8.1.

    So if you are not compiling your final project in VS 2013 or for WP 8.1, you can just ignore this update.
     
  45. PixelEnvision

    PixelEnvision

    Joined:
    Feb 7, 2012
    Posts:
    513
    Great, thanks...
     
  46. Wonderwood-Games

    Wonderwood-Games

    Joined:
    Jan 21, 2013
    Posts:
    14
    Is it possible to make a custom Rate This App dialog with implemented stars in it? Not every user would like to switch to app store to rate the app, but if you give them a chance to just tap on star and push button, then you will get much more effective response.

    Here is an example:




    Looking forward to hear from you soon!
     
    Last edited: Sep 3, 2014
  47. onevcat

    onevcat

    Joined:
    Jan 4, 2013
    Posts:
    105
    Hi,

    I think there is no way to rate just in game now.Before iOS 7, there is a method to pop up a AppStore view just in the game by using a method in StoreKit. But Apple forbad it from iOS 7. No app can rate and give a review without leaving the app now. So I guess your screenshot is just a prompt leading users to store page, if it is not, I am interesting how it can bypass going to store and gives a review.

    If it is just a customized prompt view without the real review. Right now, you can implement your own prompt with UniRate as well. Please refer to and follow the Customize Prompt section in the manual page (http://unirate.onevcat.com/manual.html). Generally speaking, you need to mark Use Customized Prompt View on, then listen to the OnPromptedForRating event, where you may want to show up your own UI. At last, when your users taps buttons, call responding SendMessage method to let UniRate handle all other things.

    Best regards.
     
  48. Wonderwood-Games

    Wonderwood-Games

    Joined:
    Jan 21, 2013
    Posts:
    14
    Thank you for your response!

    We will dig a bit further in this AppStore avoiding... It would be great feature!
     
  49. MrEsquire

    MrEsquire

    Joined:
    Nov 5, 2013
    Posts:
    2,712
    Thank you for a wonderful asset and much needed, you found a gap in the asset store :)

    My questions;

    1. Any chance of that update any time soon for Win8 phones as described in your support forums?

    2. Will there be support for Mac OSX, I have not tested yet but I assume it will not work?

    3. Any chance of Blackberry support? You said you do not have a Blackberry to test on, I think the coding will be similar to Android as Blackberry 10 is almost same as Android core, I have a Blackberry Z10, if you wish I can test some alpha code for yourself.

    4. Will there be a style update to include iOS8 visual changes, also core stability for the new firmware throughout all supported platforms?

    Keep up the good work, please share your thoughts with us
     
    Last edited: Oct 11, 2014
  50. onevcat

    onevcat

    Joined:
    Jan 4, 2013
    Posts:
    105
    Hi, thanks for the post.

    1. It should already supported for Windows Phone 8. Earlier there is an issue when using in WP 8.1 SDK due to the Debug build. But the latest update already fixed that issue.
    2. It will not work for OS X yet.
    3. I will try to implement a Blackberry version. But first I should have a look at its API and how to implement a BB plugin. I think it is the time to find a BB device...
    4. All alert is using the system UI, so there is no need to update for iOS 8. It should be stable for any new version as well.