Chartboost plugin released

@Alan

Thanks

Hi ingemar,

First, many thanks for releasing your own Chartboost plugin for free !

I just wanted to be sure this plugin get rid of the following problem mentionned last summer :

"Chartboost, iOS, and Corona versions 2169+

As of Corona version 2169, the Corona Lua API no longer has access to an iOS device’s IFA. As a result the Chartboost Plugin will not function correctly when built for iOS from these versions, and should therefore be considered incompatible for these cases. Until access to the IFA is restored, iOS developers should only build with versions of Corona prior to 2169.

Android support is unaffected."

Could you please tell me if your plugin is OK for iOS, using Corona SDK builds 2169+ ? :slight_smile:

There is no info about that on the Corona plugin page http://docs.coronalabs.com/plugin/chartboost/index.html :frowning:

Many thanks in advance !

@dgruet1

This plugin automatically links in the AdSupport framework that is necessary to access the iOS IFA, so you can use it with any of the latest daily builds.

That’s a great news, many thanks to you :slight_smile:

@ingemar  

I have a quick enterprise question. The Gremlin Chartboost plugin for ios had the following files:

libChartboost.a

libchartboostLibrary.a

libChartboost-sim.a

libchartboostLibrary-sim.a

The first 2 would only work on devices, and the second 2 would only work in the xcode sim (as far as I could tell). I tried to merge them but there were duplicate symbols etc so that didn’t work.

I’ve just looked at the binaries you have made, and I see these:

libChartboost.a

Chartboost.framework

Do I just require these 2 libs and that’s it? And will it work on both the device and xcode sim?

I would have tested this before asking, but I don’t want to break a project that currently works by moving thing around.

The libChartboost.a you see in my version is the plugin itself. I made it as a “fat binary” including armv7, armv7s and i386 slices which means you can compile your app for device and Xcode simulator using that same lib.

Chartboost have changed their own library from a static library to a framework (Chartboost.framework) which will require you to copy it to your project. The easiest is to just drag the framework into your project and select “Copy items if needed” as well as “Create groups” and “Target membership”.

Delete the other static lib (.a) files from the old Gremlin Chartboost plugin. They will most likely interfere if you don’t.

That should be it :slight_smile:

As usual you’ve been very helpful ingemar  :D 
Thanks

No problem :slight_smile:  

It’s a bit past midnight here now, but I still have some things to take care of so I’ll be available for an hour or so more should you need any more help.

Chartboost plugin version 2.0.4 (SDK 5.0.3) released. (iOS and Android)

I’ve released a new version of my plugin that includes two new functions that exposes internal variables that give you more control over the Chartboost SDK’s internal caching.

 

chartboost.autoCacheAds([true|false]) to enable/disable auto caching. (enabled by default)

chartboost.prefetchVideo([true|false]) to enable/disable video prefetching. (enabled by default)

Enterprise users:

The new version of the plugin and documentation is immediately available on my GitHub Page:

https://github.com/swipeware/CoronaChartboostPlugin

 

Pro users:

I’ve also pushed an update to Corona’s servers which should propagate within a few hours.

 

NOTE:

Turning off Chartboost’s auto-cache may help solve issues related with caching and resume issues on Android when you handle caching yourself.

 

This version of my plugin is still using Chartboost SDK 5.0.3 (Oct 1 2014). Chartboost is planning to update their SDK to version 5.0.4 soon, however no official release date has been announced. When it’s released I will update my plugin to use the latest SDK.

Hey all,

Chartboost has released a new version of their SDK (5.0.4), and I’ve updated my plugin to utilize it. It may take a few hours for it to propagate as I pushed it to Corona’s server recently. The Android plugin version is “2.0.6 (SDK 5.0.4)”.

This is an Android release only. The new iOS SDK has not been released by Chartboost yet, but is planned to be in the near future.

There’s also a new function chartboost.isAnyAdVisible() which returns true/false depending on if an ad is currently being displayed on-screen or not. This may be useful in a suspend/resume event to check if a user has suspended the app while an ad is being displayed.

Hi ingemar, I’ve just downloaded the android plugin today. So far it seems much more stable, I’ll let you know if I run into any more problems.

Thanks :slight_smile:

A few days later and still no errors with interstitials.

However I have noticed that they transition on super fast now, is this part of the changes to the SDK? They used to be nice and smooth, now they almost snap on to the screen. It’s not a big deal though, on the whole the plugin is much better than before.

@Alan

Great!

I’ve seen the same thing. The ads seem to animate on-screen faster now. It wasn’t anything they mentioned to me, but as you said, it doesn’t matter that much since it has become much more stable now. Both videos and static interstitials have been working fine for me now since the update.

Video seem much better too, fill rate isn’t great but that’s not your doing  :slight_smile:

One small thing I’ve come across which you might want to update in the plugin or docs:

This function:

chartboost.hasCachedRewardedVideo()

can also take a string argument. I was caching a video ad using a named location, but then called hasCached with no args, and it said there were no ads. Once I added the string arg, then it told me I had ads.

@Alan

Oops. Thanks for the heads-up. I’ve updated the docs and they’ve been pushed to Corona’s server.

(The named location was also missing from the hasCachedMoreApps() docs)

More errors I’m afraid, not sure if they are plugin or SDK bugs.

If I go into the Chartboost dashboard and turn off the pre-roll and post-roll confirmation, the video ad will fail to load (only tested on Android so far). It will just go to a black screen. My guess is, it’s trying to load the pre-roll message, and won’t play the video until that has had it’s “watch” button clicked. Since that will never happen because it’s been disabled on the dashboard, we get stuck on the black screen. 

That wouldn’t be too big a deal, I could just leave the pre/post roll messages on. However, if instead of clicking “watch” on the pre-roll I click the “x” to close, the next time I try to open an ad my game freezes. In this scenario, I don’t get a black screen, but rather a “frozen” version of my game screen. If I press the back button my game resumes. 

Any ideas ingemar? 

We are shipping today so will now have to leave chartboost video out again, which is a shame.

I’ll have a look and see what I can find out.

I just got my iMac Retina 5K and I’m in the middle of configuring it and transferring all my stuff to it (BTW *stunning* display). My development environment isn’t there yet, but once I get it up and running I’ll check this out.

Just a quick question: Are normal static ads behaving on Android?

@Alan

I can confirm what you’re saying with their own sample app. The “freeze-until-backbutton-pressed” only happens after trying to display Rewarded Videos though. If I only try using static interstitials the device always behaves properly.

It seems a bit intermittent though. Sometimes it happens after the first video. Sometimes after a few more. But I’ve been able to induce this behaviour after every session with their sample app, which seems to suggest something’s afoot with their SDK.

The video ads still seem a bit awry with their Android implementation. I haven’t seen the problem with the iOS version though.

Anyway, I’ll report this to the guys at Chartboost.

Can confirm that static interstitials seem to behave properly.

I’ve reported the problem to Chartboost, and I got an automated reply saying that they are closed Thursday/Friday for Thanksgiving.

So I guess we’ll have to wait until next week before I get a response…