[GMA Unity 10.1 and 10.2] The 3 button navigation panel is showing up during the game.
[REQUIRED] Step 1: Describe your environment
- Unity version: 6.1.1
- Google Mobile Ads Unity plugin version: 10.1.0
- Plugin installation method: package import
- Platform: Android
- Platform OS version: Android 16
- Any specific devices issue occurs on: _____
- Mediation ad networks used, and their versions: AppLovin, Pangle, Liftoff
[REQUIRED] Step 2: Describe the problem
The 3 button navigation panel is showing up UMP consent request (it's okay) and when showing AppOpenAd (this is a mistake). The 3 button navigation panel is showing up during the game. It does not disappear after consent is requested and after AppOpenAd. The 3 button navigation panel only disappears during the full screen ad, but its place (black box) remains there.
AppOpenAd:
Menu:
Game:
Thanks for bringing to our attention. We have added a fix for this and will include this in the next release. It will likely be out in another 2 weeks.
Thanks for bringing to our attention. We have added a fix for this and will include this in the next release. It will likely be out in another 2 weeks.
THX. OK.
Unity version: 6.1.2 Google Mobile Ads Unity plugin version: 10.1.0 The end result is the same.
Thanks for bringing to our attention. We have added a fix for this and will include this in the next release. It will likely be out in another 2 weeks.
Is this issue going to be fixed as well? https://github.com/googleads/googleads-mobile-unity/issues/3765 # Thanks!
Unity version: 6.1.3 Google Mobile Ads Unity plugin version: 10.1.0 Same result.
Hey @xGeorgeV, The fix will be part of the GMA Unity plugin. I will update this thread when its out.
Hey @xGeorgeV, The fix will be part of the GMA Unity plugin. I will update this thread when its out.
THX. OK.
Same problem with Unity version: 6.1.5 Google Mobile Ads Unity plugin version: 10.2.0
Consent Page:
Loading:
AppOpenAd Stage 1:
AppOpenAd Stage 2:
Game Menu:
Game:
Game Start with AppOpenAd but without Consent Page:
Game Start with AppOpenAd but without Consent Page then Interstitial Ad:
After Interstitial Ad the Game Menu:
Please allow to turn the "3 Button Navigation Panel" ON and OFF using C# code. Example: GoogleConsent.Hide3ButtonNavigationPanel() or GoogleMobileAds.Hide3ButtonNavigationPanel()
Using of the "3 Button Navigation Panel" is unnecessary. Only a [Back] button or [Exit] button is needed on the Consent Screen. Or a small (x) button should be placed in the top corner of the consent screen to exit.
During the advertisements the "3 Button Navigation Panel" should not appear.
In my opinion, this is Unity's fault and not GMA's fauIt.
I tried the Unity 6.1 with just my game. No Firebase, no GMA, no UMP, no Mediation. Just the game. First, the game works as expected. But while playing, a floating notification came, then the 3 button navigation panel is showing up during the game and it didn't disappear until the end of the game.
"The game's ANR rate (User Perceived ANR Rate) with GMA is 10%. Installations affected 41.67%." The game's ANR rate without GMA is 0.2%. "Error: Native method - com.unity3d.player.ReflectionHelper.nativeProxyInvoke - Input dispatching timed out - Could be SDK related."
User Perceived ANR Rate dramatically decreased without GMA:
Same problem with Unity version: 6.1.6 Unity Ads version: 4.12.0 NO GMA! The 3 button navigation panel is appears after the Unity interstitial advertisement. (This is the case for GMA interstitial advertisement as well.)
In my opinion, this is Unity's fault and not GMA's fauIt.
Hey @xGeorgeV , Thanks for running the various tests to get more details. Testing with the sample HelloWorld app, i do see the 3 button navigation get dismissed after the consent screen is showed. In case of full screen ads we make sure not to show the 3 button navigation bar however we can only guarantee this when Admob is rendering the ad. In case of ads via mediation, its not possible for us to set the flags to show it in "Immersive Mode" as rendering is handled by those networks.
From what I understand with respect to how it is commonly implemented, Unity/Networks use a bunch of flags to indicate to Android that the navigation be hidden. However system notifications can cause the UnityPlayer window to lose focus and Android might wipe out all the set flags. Perhaps it is possible to listen to when the UnityPlayerActivity window regains focus and set all those flags. In that case, we might be able to add an API or do it automatically. Is it possible for you to test it out using our sample app and see if you reproduce a similar experience? I will check with the mediation teams to see if we can find a way to do it on the adapters.
"Is it possible for you to test it out using our sample app and see if you reproduce a similar experience?"
Yes. Just give me a link to download the sample program.
Thanks @xGeorgeV . Here is the link to the Admob sample https://github.com/googleads/googleads-mobile-unity/tree/main/samples/HelloWorld
Thanks for the link. I'm testing!
Unity version: 6.1.6 Google Mobile Ads Unity plugin version: 10.2.0 HelloWorld Sample App. The 3 button navigation panel is showing up. I will send the HelloWorld project link with the executable HelloWorld.apk application soon. The modified HelloWorld test works with interstitial advertising.
Download the HelloWorld Unity project: https://1drv.ms/u/c/847fb9bee8c1cf57/Ef2B7GQQop1Op5mnkZmt6NUBflP011hbygOb__ZKPIPGJg If the download button does not appear in the middle of the screen, it can be found in the upper left part of the screen.
HelloWorld.apk instructions for use.
First start. Start the app. Wait for the Consent Page. Set consent. The 3 button navigation panel is showing up. The panel is always visible while using the app. Except for interstitial test advertisements.
Second and further starts. Start the app. Tap the "Load Ad" button. Wait for "Ad Loaded" caption. Tap "Show Ad" button. The test interstitial ad appears. Double-tap the (i) button in the bottom left corner. the "adssettings.google.com" web page opens. Tap Back button on the 3 button navigation panel. Close the test interstitial ad with (x) button. The 3 button navigation panel is showing up. The panel is always visible while using the app. Except for interstitial test advertisements.
The 3 button navigation panel also appears if a floating message arrives while using the app.
Unity version: 6.1.7 Google Mobile Ads Unity plugin version: 10.2.0 HelloWorld Sample project with HelloWorld.apk. New. Now includes all ad types menu items. The 3-button navigation panel is showing up after Consent Page or a floating message arrives or we tap on the advertisement or information (i) icon.
Download the new HelloWorld Unity project: https://1drv.ms/u/c/847fb9bee8c1cf57/EbxD1JwAWGtEsH3vOfEr2t8BUmRR9SOi0nvKNy8HtY5nng If the download button does not appear in the middle of the screen, it can be found in the upper left part of the screen.
HelloWorld.apk instructions for use see previous post.
In the HelloWorld Sample after exiting the GoogleMobileAds.Api.MobileAds.OpenAdInspector() method always hides the 3-button navigation panel when it is visible.
I tried to reduce the ANR value.
The game with GMA 10.2 (Google Mobile Ads). App Open Ad, Banner Ad, Interstitial Ad and Rewarded Ad:
The game with GMA 10.2 (Google Mobile Ads). ONLY Interstitial Ad:
Hey George,
Apologies I havent looked at the 3 button issue for a bit but will look into it soon and get back to you.
With respect to the ANR's, that is a very interesting pattern. Some of our publishers have mentioned that turning on the ability to get the callbacks on main thread have seen an overall reduction in ANRs. Is your app already leveraging this setting? https://developers.google.com/admob/unity/global-settings#raise_ad_events_on_the_unity_main_thread
Note: One side effect of this is that the callbacks are not triggered immediately and GMA will wait to get hold of the Unity Main thread before dispatching the event. Since when showing full screen ads, the Unity app is paused, the main thread will only be captured when the ad is dismissed. This will cause all fullscreen events such as OnAdFullScreenContentOpened, OnAdClicked, OnAdFullScreenContentClosed, On etc to be fired after the user closes the ad. Please also ensure that the MobileAds APIs/properties are called from the Unity main thread such as from a mononehavior lifecycle callback like a Start()/Awake(), etc.
Let me know if this helps.
I don't use "MobileAds.RaiseAdEventsOnUnityMainThread = true;" setting. But I got some error messages like this: "[libgame.so] Unity::SetThisThreadAsMainThread() SIGTRAP" in the Google Play Console. I think something is triggering this. In my opinion (as you mentioned), it is allowed to call the advertising methods (like Load(), Show(), etc.) in the Awake(),Start() and Update() methods. I have used both method FixedUpdate() and method OnAdFullScreenContentClosed() before.
I tried a new version with a larger number of players (~18,000 / day). This is the result:
Nice ANR value: The code only calls the advertising methods (like Load(), Show(), etc.) from the Awake(),Start() and Update() methods.
Same problem with Unity version: 6.2.0f1 Google Mobile Ads Unity plugin version: 10.4.1 HelloWorld sample project. The 3-button navigation panel is showing up after Consent Page ...