Android Question Ad msgs

Spright

Active Member
I'm happy with this code that took a few weeks to write with this class. I've seen a few other similiar Ad classes on the forum.

There seem to be somthing wrong with my code as it says "full screen dismissed" after each reward is earned. This is supposed to only appear if you cancel the ad, right? I also get running "wating messages() that I'm not sure what it is.

I trigger the queue every x:th second to test but it's not supposed to be a problem. Its not queueing up? I'm totally lost in how to get the correct bevhaiour out of rewared fullscreen. Any kind soul that can guide me here?


B4X:
#MultiDex: True

#Region Project Attributes
    #FullScreen: True
    #IncludeTitle: False
    #ApplicationLabel: Demo
    #VersionCode: 1
    #VersionName:
    #SupportedOrientations: sensorLandscape
    #CanInstallToExternalStorage: False
#End Region

#Region Activity Attributes
#End Region

Sub Process_Globals
End Sub

Sub Globals
    Type AdSize (Native As Object, Width As Int, Height As Int)
    Dim GL As lgGL
    Dim lGdx As LibGDX
    Dim IP As lgInputProcessor
    Dim Batch As lgSpriteBatch
    Dim texsheet As lgTexture
    Dim adwanted As Boolean = True
    Dim Surface As View
    Dim AdView1 As AdView
    Dim tm As Timer
    Dim Camera As lgOrthographicCamera
 End Sub

Sub Activity_Create(FirstTime As Boolean)
    If FirstTime = True Then
        Dim Config As lgConfiguration
        Config.useAccelerometer = False
        Config.useCompass = False
        Config.useWakelock = True
        Config.hideStatusBar = True
        Config.useImmersiveMode = True
        Config.r = 8
        Config.g = 8
        Config.b = 8
        Config.a = 8
        Config.numSamples = 0
        Config.maxSimultaneousSounds = 8
        Surface = lGdx.InitializeView2(Config, "LG")
        Activity.AddView(Surface, 0, 0, 100%x, 100%y)
        tm.Initialize("timer",4000*4)
        tm.Enabled = True
    End If
    
    ' Create the panel view and add it to the activity
    Dim panel As Panel
    panel.Initialize("")
    panel.Color = Colors.White
    panel.SetLayout(0, 0, 100%x, 90dip)
    Activity.AddView(panel, 0, 0, 100%x, 90dip)
    
    ' Initialize and load the adaptive ad inside the panel
    Dim size As AdSize = GetAdaptiveAdSize
    Dim adHeight As Int = size.Height
    Dim adView As AdView
    adView.Initialize2("ad", "ca-app-pub-3940256099942544/6300978111", size.Native)
    panel.Color = Colors.Transparent
    panel.AddView(adView, 0, 0, size.Width, adHeight)
    adView.LoadAd
End Sub

Sub GetAdaptiveAdSize As AdSize
    Dim ctxt As JavaObject
    ctxt.InitializeContext
    Dim AdSize As JavaObject
    Dim width As Int = 100%x / GetDeviceLayoutValues.Scale
    ' width = Min(width,2560) ' Ad should be in panel
    Dim res As AdSize
    res.Native = AdSize.InitializeStatic("com.google.android.gms.ads.AdSize").RunMethod("getCurrentOrientationAnchoredAdaptiveBannerAdSize", Array(ctxt, width))
    Dim jo As JavaObject = res.Native
    res.Width = jo.RunMethod("getWidthInPixels", Array(ctxt))
    res.Height = jo.RunMethod("getHeightInPixels", Array(ctxt))
    Return res
End Sub
 
Sub Activity_Resume
    Starter.RewardAd.Callback = Me
    If AdView1.IsInitialized Then AdView1.resume
    If lGdx.IsInitialized Then lGdx.Resume
End Sub

Sub Activity_Pause (UserClosed As Boolean)
    If AdView1.IsInitialized Then AdView1.pause
    If lGdx.IsInitialized Then lGdx.Pause
End Sub

Sub Activity_Destroy
End Sub
 
Sub LG_Create   
    Batch.Initialize
    IP.Initialize("IP")
    texsheet.Initialize("sprite.png")
    Camera.Initialize   
    Camera.SetToOrtho(False)
End Sub

Sub LG_Render   
    GL.glClearColor(0, 0, 1, 1)
    GL.glClear(GL.GL10_COLOR_BUFFER_BIT)
    Camera.Update
    Batch.ProjectionMatrix = Camera.Combined
    Batch.Begin
    Dim X, Y As Int
    For i = 1 To 99
        X = Rnd(0,999)
        Y = Rnd(0,499)
        Batch.DrawTex2(texsheet, X, Y, 100dip, 100dip)
    Next
    Batch.End
End Sub
 
Sub LG_Resume
End Sub

Sub LG_Pause
End Sub

Sub LG_Dispose
    If texsheet.IsInitialized Then texsheet.dispose
    If Batch.IsInitialized Then Batch.dispose
End Sub

Sub IP_TouchDown(ScreenX As Int, ScreenY As Int, Pointer As Int) As Boolean
    Return True
End Sub

Sub ToastMsg_Show(Text As Object)
    ToastMessageShow(Text, True)
End Sub

Sub RewardAd_Rewarded (Item As Object)
    Log("GOT REWARD! NOW YOU HAVE COLLECTED THIS MANY COINS:")
End Sub

Sub RewardAd_AdClosed
    Log("ad closed")
End Sub

Sub timer_Tick
    If adwanted = True Then
        If Starter.RewardAd.Ready Then
            Starter.RewardAd.Show
            adwanted = False
            adwanted = True
        Else
            ' No ad is available, handle the error
            HandleAdLoadError
        End If
    End If
    Log("TIMER!")
End Sub

Sub HandleAdLoadError
    ToastMessageShow("Failed to load rewarded ad. Please check your internet connection.", True)
    ' Additional actions here e.g. disabling ad-related functionality or providing alternative content
End Sub
 

Attachments

  • newdemo.zip
    22.7 KB · Views: 51

Spright

Active Member
Okay I am using B4XPages already, and of course in the porejct itself i use libGDX so I dont' have much actual activity in it.
If I'm wrong, I would need some guidance to get a template to mix the two. I think I made it correctly? The zip in this thread is my template of B4Xpages and i included it as much as I could.
 
Upvote 0

Spright

Active Member
Thanks, ya I know , i don't use the debugger these ar ejust logs in the Admob class i use from the forum.

I might have solved partially,ithe msg dismissed seems to be stadard with Google admob. It means that the ad was close in anyway, not just cancelled. I get the reward before os i should intepret the dismiss like a normal close. It took time to reliase this. I also had the issue that I had my own log msg in the calllback which said "closed" so i got double msgs and that's also why I was so certain that the dismiss was not merly a "close".

It's not easy to come into this admob system as a beginner. I had to go through quiet a few steps and i Might still have to deal with the new laws that comes to EU/UK, or if they are handles autoamtically in B4X.
 
Upvote 0
Top