fuse.checkLoaded always returns false

Hi,

I have integrated fuse powered into my game, overall experience was really smooth and i was able to integrate it real fast, but im having only one problem.

The fuse.checkLoaded always returns false.

im calling checkLoaded in my game as show below:

local isLoaded = fuse.checkLoaded( { zone=adZone } )

in the above call im passing the zone id in the place of adZone.

i also tried sending zone name as checkLoaded parameter, in both the cases the checkLoaded is always returning false.

i removed the checkloaded call and tried calling show directly and the ad showed fine.

Can someone tell me where am i going wrong.

Thanks,

Nischal Y

I tested this on android platform, it seems to work fine, “checkLoaded” is working as expected.

Im having this problem only on IOS, im not sure what am i doing wrong.

Has anyone else encountered similar issue?

That one also started happening to me. I haven’t tried it out on Android but checkLoaded is returning false every time, even there is a video and it can show by calling fuse.show.

Anyone else who have faced it or someone who can offer a solution?

Thank you

So I found out how to load the rewarded zone but the default zone is still a mystery, it always returns checkLoaded false.

I don’t know why but the developer of the plugin made a change so that the fuse.load() in init.phase is neglected. You have to call it again, right after you called fuse.init(). In that way, you can load rewarded ads and get the correct checkLoaded result.

I was just about to drop an engineer an email on this, but honestly, he’s going to want a bug report, so lets go ahead and create a bug report to get this moving.

Your bug report needs a project that demonstrates the bug. It should be as simple of an app as possible that demo’s the issue. Next package that up in a .zip file with a config.lua, build.settings and any other files/assets needed to build the app and run it on a device. Once you have the .zip file (please no other format), use the “Report a bug” link at the top of the page, fill out the form, upload the project and submit it. You will receive an email with a Case ID #. Please post that back here and I’ll ping the engineer so they can have something to look at.

Rob

I have just submitted the sample project. The case number is 44154 - Fuse plugin checkLoaded method always returns false

Thank you for looking into that Rob. I really appreciate it.

It seems like a simple problem with flags. I hope it gets fixed soon so we can move on with our projects.

Hello!

I reached out to Fuse engineers. Here is their answer:

There may be a misunderstanding in the way fuse works.

I see in the example they get the init call from fuse, then try to load the rewarded zone.

 

            fuse.load( { zone = composer.getVariable(“rewardedAdZone”) } )

Currently in iOS once a sesssion is started, the system tried to load the default zone automatically. Also, only 1 zone at a time can attempt to load, so this load call immediately on start session may not have any effect.(especially if the default zone is not empty).

In this case zoneIsLoaded can not become true, since no load attempt is ever performed again(based on the example) on the rewarded zone.

I don’t know the specifics for This game, but in general the application should only load ads when they are expected. Otherwise you could just be wasting user’s Data if they are on cellular. 

Hopefully this explanation helps.

Hello vlads,

Thank you for looking into this. I really appreciate it. I hope you forward my reply to them or better, Fuse engineer in charge follows this forum.

Sadly, that explanation didn’t help at all. I think they just reviewed the code but didn’t try out the example because the answer doesn’t explain the fact that checkLoaded flag returns _ false _ while an ad is already loaded and can be played directly by calling fuse.show().

With all the wrong usage aside considering cellular data, even if any of the zones got loaded, checkLoaded returns false for both zones (rewarded and default). If any ads from any of those zones get loaded, shouldn’t it return _ true _ for at least one of them?

Also, there is an important detail that the ads are _ definitely loaded _ but the flags returned are wrong. They would have seen it if they tried out the example. I have set up two different button sets to point out that issue. You can wait for minutes and still get the checkLoaded flag returned false while the video is already loaded and waiting for the fuse.show() to be called.

By the way, it used to work fine like this in our November 30th build. I was getting both the rewarded and the interstitial video ads from Fuse using the extracted code example. I can easily adapt to this change but it doesn’t change the fact that checkLoaded call is useless until you call fuse.show() for the first time.

I second bgmadclown,

Ad is definitely loaded, i have a game which i have tested in both android and ios, which has exact same code base.

and it works as expected in android, the checkloaded returns true as expected.

Where as in ios though there is an ad loaded but it still returns false.

Please checkout the example posted by bgmadclown.

im really looking forward for the fix.

Infact i was earlier using vungle which was working fine, but moved to fuse since it was more tightly integrated and had lot of features and moreover fuse is parent company of corona (not anymore, i backed the wrong horse). 

I don’t think all ad networks support dowloaded status.

I don’t think that is related to ad networks because as I’ve also tried like Nischal did, Android version works fine. The checkLoaded function works as expected and returns the appropriate value. The problem is probably related to a single line, where the plugin just doesn’t return the appropriate flag but instead, returns a default value of false.

I tested this on android platform, it seems to work fine, “checkLoaded” is working as expected.

Im having this problem only on IOS, im not sure what am i doing wrong.

Has anyone else encountered similar issue?

That one also started happening to me. I haven’t tried it out on Android but checkLoaded is returning false every time, even there is a video and it can show by calling fuse.show.

Anyone else who have faced it or someone who can offer a solution?

Thank you

So I found out how to load the rewarded zone but the default zone is still a mystery, it always returns checkLoaded false.

I don’t know why but the developer of the plugin made a change so that the fuse.load() in init.phase is neglected. You have to call it again, right after you called fuse.init(). In that way, you can load rewarded ads and get the correct checkLoaded result.

I was just about to drop an engineer an email on this, but honestly, he’s going to want a bug report, so lets go ahead and create a bug report to get this moving.

Your bug report needs a project that demonstrates the bug. It should be as simple of an app as possible that demo’s the issue. Next package that up in a .zip file with a config.lua, build.settings and any other files/assets needed to build the app and run it on a device. Once you have the .zip file (please no other format), use the “Report a bug” link at the top of the page, fill out the form, upload the project and submit it. You will receive an email with a Case ID #. Please post that back here and I’ll ping the engineer so they can have something to look at.

Rob

I have just submitted the sample project. The case number is 44154 - Fuse plugin checkLoaded method always returns false

Thank you for looking into that Rob. I really appreciate it.

It seems like a simple problem with flags. I hope it gets fixed soon so we can move on with our projects.

Hello!

I reached out to Fuse engineers. Here is their answer:

There may be a misunderstanding in the way fuse works.

I see in the example they get the init call from fuse, then try to load the rewarded zone.

 

            fuse.load( { zone = composer.getVariable(“rewardedAdZone”) } )

Currently in iOS once a sesssion is started, the system tried to load the default zone automatically. Also, only 1 zone at a time can attempt to load, so this load call immediately on start session may not have any effect.(especially if the default zone is not empty).

In this case zoneIsLoaded can not become true, since no load attempt is ever performed again(based on the example) on the rewarded zone.

I don’t know the specifics for This game, but in general the application should only load ads when they are expected. Otherwise you could just be wasting user’s Data if they are on cellular. 

Hopefully this explanation helps.

Hello vlads,

Thank you for looking into this. I really appreciate it. I hope you forward my reply to them or better, Fuse engineer in charge follows this forum.

Sadly, that explanation didn’t help at all. I think they just reviewed the code but didn’t try out the example because the answer doesn’t explain the fact that checkLoaded flag returns _ false _ while an ad is already loaded and can be played directly by calling fuse.show().

With all the wrong usage aside considering cellular data, even if any of the zones got loaded, checkLoaded returns false for both zones (rewarded and default). If any ads from any of those zones get loaded, shouldn’t it return _ true _ for at least one of them?

Also, there is an important detail that the ads are _ definitely loaded _ but the flags returned are wrong. They would have seen it if they tried out the example. I have set up two different button sets to point out that issue. You can wait for minutes and still get the checkLoaded flag returned false while the video is already loaded and waiting for the fuse.show() to be called.

By the way, it used to work fine like this in our November 30th build. I was getting both the rewarded and the interstitial video ads from Fuse using the extracted code example. I can easily adapt to this change but it doesn’t change the fact that checkLoaded call is useless until you call fuse.show() for the first time.