Issue with Appodeal (reward) video listener + Android home button

Now I am moving to Vungle ad network.

So disappointed with Appodeal and InMobi.

:frowning:

Hello everybody,
 
There is still no fix for this issue so I thought I will share the workaround I implemented with you.
Please be advised this is no real fix but merely a safeguard to help prevent cheaters from bypassing your reward video from Appodeal.

For details and explanation, please see information below code snippet…

[lua]

local hadOpenEvt = false

local rVideoDone  = false

local rVideoTS      = 0

local minVideoT    = 8 – min time outside app to NOT be detected as bypass (in seconds)

local function onSystemEvent( event )
    if (event.type == “applicationOpen”) then
        hadOpenEvt = true
    end
end

local function appodealListener( event )

    – Appodeal listener

    if (phase == “playbackBegan” and event.type == “rewardedVideo”) then

        rVideoTS = os.time() – app suspended while ad playing so system.getTimer won’t work

    elseif (phase == “playbackEnded” and event.type == “rewardedVideo”) then

        local difTime = os.difftime( os.time(), rVideoTS )

        if (not hadOpenEvt or difTime > minVideoT) then

            – No bypass detected, we’re cool

            rVideoDone = true

        else

            print(“Cheater detected !!”)

        end

    elseif (phase == “closed”) then

        – R.video

        if (event.type == “rewardedVideo”) then

            if (rVideoDone) then

                – Reward genuinely earned by player, reset state

                rVideoDone    = false

                hadOpenEvt   = false

            else

                print(“Nice try, cheater !!”)

            end

        end

    end

end

local function showRewardVideo()

    if ( appodeal.isLoaded(“rewardedVideo”) ) then

        hadOpenEvt = false

        appodeal.show( “rewardedVideo” )

    end

end

Runtime:addEventListener( “system”, onSystemEvent)

[/lua]

Ok, so few specifics here:

  • For bypassing ads, user will press home button on Android then re-open app clicking its icon

  • When app is put in background and re-opened this way, the system event ‘applicationOpen’ will fire on Android

  • If this happen while playing reward video, the flag ‘hadOpenEvt’ will be set to true

  • On ‘playback end’ event, we check its value and the time the user spent in suspended state.

  If the time is long enough (see ‘minVideoT’), we consider it is not an effective bypass.

  This will help prevent false positive as user might suspend app for genuine reasons.

  Note: this can be removed for a stricter detection

That’s it, hope this will help some fellow game developers improving their game experience.

I still hope that Corona/Appodeal teams will put some time to resolve this very unfortunate bug.

In the meantime, this might do it for you guys !

Unfortunately I can’t reproduce the behavior.

For me, after pressing the ‘home’ button while a rewarded ad is playing I get the following behavior:

  • Pressing the ‘overview’ button and selecting the game in the list: works fine, ad resumes playing.
     
  • Pressing the game icon to re-open it: The ad disappears, however no ‘playbackEnded’ or ‘closed’ events are sent. 

 

Corona build 2017.3117

Galaxy S3, Android 4.4.4

Nexus 9, Android 7

Appodeal plugin version 1.3

Hello Ingemar,

Thank you for your quick answer.

I’m glad to hear that’s not standard behavior for Appodeal plugin.

I just tested it again with my secondary device:

  • Nexus 7

  • Android 4.4.4

  • Corona 2017.3068

  • Appodeal 1.3

Unfortunately, I got the same result, the listener receiving;

 Provider: appodeal

 Phase: init

 ----------------------------

 Provider: appodeal

 Phase: loaded

 Type: interstitial

 ----------------------------

 Provider: appodeal

 Phase: loaded

 Type: rewardedVideo

 ----------------------------

 Provider: appodeal

 Phase: playbackBegan

 Type: rewardedVideo

 ----------------------------

 Provider: appodeal

 Phase: loaded

 Type: rewardedVideo

 ----------------------------

***** Pressing home button then app icon


 Provider: appodeal

 Phase: playbackEnded

 Type: rewardedVideo

 Data:

 table: 0x6f5967f8 {

   [name] => “reward”

   [amount] => 0

 }

 ----------------------------

 Provider: appodeal

 Phase: closed

 Type: rewardedVideo

 ----------------------------

The only difference seems to be our Corona version (I’m using latest release version).

I will test with your version and let you know if anything different.

If possible, could you also test with 2017.3068 version on your side to be sure ?

Thanks again !

@GoG

I was able to reproduce the behavior. I was using testMode=true before, however when using live ads I can see the behavior you have reported. I’m not sure what can be done about it though as the Appodeal SDK controls the events given.

I’ll have a look to see if there’s anything that can be done about it.

I’m having the same problems

@ingemar,

Thanks for your support.

Good to know you were able to reproduce the issue on your side.

Looks like on bug on the Appodeal SDK side indeed (I doubt the server would validate a half-viewed ad).

Do you need me to fill a bug report as well ?

Let’s keep in touch on this forum thread so others can check updates as well.

@maximo97,

Thanks for your reporting.

Hope the team from Corona/Appodeal will find the issue and fix it soon.

Hello @ingemar,

Any news from engineering about the bypass issue ?

Did the team managed to track down the bug root cause ?

I was planning to release my app next month but don’t feel comfortable

shipping a game with this kind of loophole, hurting revenues from Appodeal.

Hope to hear from you guys soon

It’s still being investigated.

I’ve involved a few more people from the Appodeal team to see if anything can be done.

Thanks for the update.

Good to know people from Appodeal are investigating this too.

Please let us know when you’ll have a release date for the bug fix.

Hello @ingemar,

Still no news nor release date for this bug fix ?

It’s been one month since the Corona/Appodeal teams acknowledged it’s existence and were able to reproduce it.

I thought such issue would have been labelled as critical and fixed asap

as it hurts revenue for both sides, developers and ad providers alike.

Beside this loophole not being addressed yet, and other problems with memory allocation on Android

(see: https://forums.coronalabs.com/topic/69894-appodeal-and-memory/ )

I’m starting to reconsider using Appodeal as my primary ad provider for my apps.

I understand that finding and fixing a bug can sometimes be tricky.

Still, as product owner of the Appodeal plugin, I was hoping for at least some kind of timetable

from you guys so developers like me could plan our apps releases accordingly.

Hope to hear good news from you soon

I find myself in the same situation as @GoG

As I mentioned in the other post if it does not resolve within a short time i will have to abandon appodeal.

These two issues are too important…

I’ve bumped this with the Corona engineering team.

I am experiencing the same problems and if there is not a solution in the short term, I change plung.

The problem with the home key could go away.

But that with the memory is very serious would cause many deletion apps and negative comments.

That’s no good :frowning:

@jake1987.jj and @Sig.g1,

Thanks for your feedback guys.

I agree, theses issues are quite critical indeed.

@ingemar_cl,

Thanks for the bump with the team.

Hope we will hear good news soon.

I am hoping the Appodeal SDK announcement (2.1) today will fix these - how long until this can be confirmed and the plugin ready for a re-build of an app? 

@sonyayllc

It’s live on the build servers. You should be able to try now.

@sonyayllc,

Thanks for the follow up.

@ingemar_cl,

Thanks for the plugin update.

Unfortunately, even after rebuild, the bug is still here.

I just tested and I am still able to bypass video and reward video ads by pressing home button then re-open the app.

Did you had time to re-test it yourself ?

Do you have any news regarding a release date for the fix ?

Even for me the problem persists …

Hello guys please help me out, I am also facing the same problem.

:frowning: :frowning: :frowning: