Google in-app review API in solar2d

@Scott_Harrison just tried the reviewPopup and it does nothing on Android 10… app suspends/resumes but no overlay is displayed. This is what is in the log

10-22 01:42:23.153 26790 27567 I Corona  : table: 0x7034d0c280 {
10-22 01:42:23.153 26790 27567 I Corona  :   [name] => "reviewPopUp"
10-22 01:42:23.153 26790 27567 I Corona  :   [status] => "ready"
10-22 01:42:23.153 26790 27567 I Corona  : }
10-22 01:42:23.153 26790 27567 I Corona  : applicationSuspend
10-22 01:42:23.430 26790 27567 I Corona  : table: 0x7022fb9640 {
10-22 01:42:23.430 26790 27567 I Corona  :   [name] => "reviewPopUp"
10-22 01:42:23.430 26790 27567 I Corona  :   [status] => "close"
10-22 01:42:23.430 26790 27567 I Corona  : }
10-22 01:42:23.432 26790 27567 I Corona  : applicationResume

UPDATE: Tried with a new gmail account and the behaviour is the same. Ideas?

I respond in discord but will post this here to help others
You want to disable testMode if you want the overlay to display
“FakeReviewManager(testMode) does not simulate the UI. It only fakes the API method result by always providing a fake ReviewInfo”(Google)

It makes no difference if testMode is true, false or nil. If doesn’t show. I am using the code as is

local reviewPopUp = require "plugin.reviewPopUp"
reviewPopUp.init(function (e)
  print_r(e)
  if e.status == "ready" then
    reviewPopUp.show()
  end
end)        

I’ve tried on 2 different devices using 2 different accounts (one is a brand new gmail account) on Android 9 and 10.

No errors, just a silent fail?

@anon63346430 It doesn’t work for me either and I am using very similar code. I tried 2 different phones and 2 different accounts with no luck. I also deployed it just in case it had something to do with my account and tried it on a few people I know that have android phones. Nothing.

Now I was going to post here about the issue but then I downloaded @joelutting game Monkey Diver. Just testing out his game it popped up and worked perfectly. I was not looking for it. It just happened.

@agramonte I just tried and yes it popped up. I ignored it and no matter how many times you press the button (in the game settings) it refused to pop again even though I hadn’t rated it.

Now, either we are doing something wrong in code, there is an incompatibility with some other plugin we are using or it doesn’t work in landscape?

Perhaps if @joelutting reads this he can share his code?

@anon63346430 well that is a problem with @joelutting coding. You can never put a button for it because like the Apple implementation, Google doesn’t guarantee they will show it every time you call it.

1 Like

@agramonte is right. Google like Apple does not promise a review pop up will show if you call show. There is no way to detect it either
“The API does not indicate whether the user reviewed or not, or even whether the review dialog was shown. Thus, no matter the result, we continue our app flow.”

https://developer.android.com/guide/playcore/in-app-review/kotlin-java#launch-review-flow

Well thats annoying - I tested it popped up - not that it keeps popping up every time you call it. Hmmm…I guess I will have to look at that…maybe I will use the review popup first time and the old method after that.
my code (now I’m looking at it I’m not even sure it is correct!);

	t.reviewPopUp = require "plugin.reviewPopUp" 

	local shown = false
	if(t.reviewPopUp~=nil) then
		if(t.reviewPopUp.init~=nil) then
		
		shown = true
	
			t.reviewPopUp.init(function (e)
				print(e.status)
				if e.status == "ready" then
					t.reviewPopUp.show()
				end
			end)
		end
	end

Just testing it now, after uninstall and re-install from google play - doesn’t seem to appear at all anymore :frowning: does it not allow you to re-review? Did some bug slip in at the last minute?

argh…was wondering why I got so few reviews…

This is a terrible API - surprising from Google!

  • No flag to indicate success/failure, nor any form of error state.

  • No way to check if you should be able to call it canShow() for example.

  • If user has rated over quota it just won’t work.

  • Can’t amend a review.

  • Doesn’t seem to do anything on multiple test devices/accounts.

I will stick with the standard implementation and not risk bad reviews for a buggy UX. At least I know it will always work (until we are forced this crappy API in the future).

2 Likes

Nope, you can’t launch it. When you call the API it is just a suggestion to show the review dialog box. You have no control if it shows or doesn’t show and no way of knowing if it did. I think I am going to the old method also.

Maybe google will fix this in the future but this is similar again to Apple choosing consumer over developer. They should have copied Apples approach in terms of at least showing a fake pop up with debug. I implemented in my plugin the way google guide developers to do. I will see about adding a event to .show for android to a least tell you when “finished”

I’ve just tested it, with other people phones, and nothing shows up :confused:

I just released an update to make sure all libs are included

I understand that on Android, you can call .show() f.e. on every launch and Google decides whether to show PopUp or not.

Is it the same on ios thought? Do I call it on every launch and pray or do I control when to show PopUp (it actually shows on .show() function call)?

Thank you for clarifying this.
Jiri

Same on iOS. But in iOS testing you should see it every time.

1 Like

Hope this helps:

I always bring up a question to the player, “Does this game deserve a 5-star rating/?” In this way, if they click NO, I don’t bring up the review. In this way, I can re-ask them again if they are still playing many levels later, meaning, they must be having fun. And in this way, it should lead to the most positive ratings/reviews. My best game is rated 4.9 after 1000+ reviews.

1 Like