03 February 2016
We’re AppLovin your Corona apps
Corona Labs is pleased to announce the immediate availability of a new plugin that lets you implement ads from AppLovin. Their platform uses real-time data to understand your users and target them with relevant brands, ensuring that you are reaching users who are likely to interact with your marketing. AppLovin delivers content to over a billion mobile users every month.
Signing up
To use AppLovin, you will need to sign up and get an AppLovin SDK key. Regardless of iOS or Android, you will get just one SDK key which should be used throughout your projects. Once you gain access to the AppLovin developer portal, navigate to the Account section, expand the Account menu on the left side, select Keys, and your SDK key should be revealed.
Including the plugin
As with all plugins, you must include AppLovin in your build.settings
file. For iOS, you just need the AppLovin plugin itself. For Android, you must also include the Google Play Services plugin since AppLovin needs to access library code within that plugin.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
settings = { plugins = { ["plugin.applovin"] = { publisherId = "com.coronalabs", supportedPlatforms = { iphone=true, android=true, appletvos=true } }, -- Include this for Android only ["plugin.google.play.services"] = { publisherId = "com.coronalabs", supportedPlatforms = { android=true } }, }, } |
Setup and initialization
Similar to other plugins, you must require()
the plugin in any Lua file where you plan to call AppLovin’s APIs.
1 2 3 |
-- Require the AppLovin plugin local applovin = require( "plugin.applovin" ) |
Next, add a basic AppLovin event listener (it can be completed later) and initialize the AppLovin plugin:
1 2 3 4 5 6 7 8 |
-- AppLovin listener local function adListener( event ) end -- Initialize the AppLovin plugin applovin.init( adListener, { sdkKey="YOUR_SDK_KEY", verboseLogging=false } ) |
Note that the applovin.init() call takes two parameters: the event listener function name and a table of parameters. Inside the table of parameters, your unique SDK key is required. In addition, you can include the verboseLogging
key with a value of true
to output AppLovin logs to the console.
Loading and showing ads
AppLovin offers graphical interstitial ads, video interstitial ads, and rewarded/incentivized video ads (no banners). The types displayed are controlled solely within the AppLovin developer portal, so the only valid parameter for the load or show APIs is the optional isIncentivized
boolean which tells the plugin to load or show a rewarded/incentivized ad (see documentation for details). There is also no “hide” API since interstitial ads need to be closed by the user or played to completion before the app continues.
To load an ad, simply call the applovin.load() API:
1 2 |
applovin.load() |
Then, to show it, simply call applovin.show():
1 2 |
applovin.show() |
Similar to other ad providers, you can also call applovin.isLoaded() to check if an ad is loaded before showing it. Like the APIs above, this accepts the boolean isIncentivized
parameter, allowing you to check which type of ad is loaded.
1 2 3 4 |
if applovin.isLoaded() then applovin.show() end |
Event listener callbacks
All of the APIs mentioned above, with the exception of applovin.isLoaded(), will call the event listener function. The event table which is dispatched will contain various properties, including the following phases (event.phase
):
"init"
— Indicates that the AppLovin plugin was initialized successfully."failed"
— Indicates that an ad failed to load."loaded"
— Indicates that an ad loaded successfully."displayed"
— Indicates that a graphical interstitial ad (non-video) was displayed."hidden"
— Indicates that a graphical interstitial ad (non-video) was closed/hidden."playbackBegan"
— Indicates that a video interstitial ad was displayed."playbackEnded"
— Indicates that a video interstitial ad was closed/hidden."clicked"
— Indicates that an ad was clicked/tapped.
In addition, a series of event properties help you work with rewarded/incentivized video ads. Please see this announcement for details.
For more information, please read the documentation or download the basic sample app from GitHub at https://github.com/coronalabs/plugins-sample-applovin.
Important notes
- The AppLovin app configuration screen has many options for configuring and controlling the types of ads you get. For instance, you can restrict the ads to “child safe” if the app is targeting children. You can change these settings as often as needed, but for an app released to market, you must also email [email protected] with a summary of your changes. This ensures that your ads and associated preferences will be delivered consistently.
- For monetization through the AppLovin plugin, Corona Labs takes a revenue share in the form of a fixed 5% flat rate.
In summary
With the addition of AppLovin, Corona Labs is committed to bringing you more and more monetization options for your apps. If you have any questions about this plugin, please discuss in the Corona forums.
jch_APPLE
Posted at 10:30h, 03 FebruaryNice plug-in and reasonnable revenue share, congrats !
Nicolas
Posted at 11:21h, 03 FebruaryIt’s really good to see improvements so quick. I think the idea of %revenue might not be good for some people, 5% seems pretty decent, considering Corona right now is free and needs some sustain. To get to $600 one should get 12k per month only from ads. But I can see some kind of concern about using many plugins and adding those %’s (which are still % but still). You can pay for Enterprise anyway so I don’t see this a big problem. My only question right now: If i set up my bank account and AppLovin or w/e pays me directly there, I dont understand how the 5% tax goes to Corona.
Ruben
Posted at 16:52h, 03 FebruaryI think the plugin count the impressions and every 20 imp, it switches your AppLovin Key with one attributed to Perk for 1 impression.
Nicolas
Posted at 18:18h, 03 FebruaryCan we get an official voice confirming (or not) this? I’m ok with the 5% but since the SDK key is private and the payment is done from AppLovin to developers, how Corona gets the 5%?
Thanks
David Grant
Posted at 11:44h, 03 February“fixed 5% flat rate”
Now that’s something I can get behind. Thanks for this plugin and thanks for listening to the devs about the rates.
nori
Posted at 11:51h, 03 Februarydefinitely approve of a flat rate vs what what the fb model is.
thanks for that perk/corona team.
Jbean
Posted at 11:55h, 03 FebruaryHow does Corona get paid the 5% Flat Rate?
Danny Glover
Posted at 04:53h, 04 FebruaryHi JBean.
In the 5% revenue share model, once it’s time to show one of our Ads instead of yours, we switch to using our SDK key for that Ad only. After that Ad is shown, we use your SDK key again.
So we get paid from Applovin, not from Corona developers.
Steven Warren
Posted at 12:10h, 03 FebruaryAs someone who complained about the FB Ads monetization model, I must say I do feel that this is a much better model. I have been waiting a while for some AppLovin support in Corona SDK. Nice to see the swift action on the Ad Provider front from the Corona/Perk team. Keep it up guys!!
clem
Posted at 12:11h, 03 FebruaryI’ve been waiting for applovin to come to corona for a while now and happy its finally happened. Much thanks to new leadership for bringing it as well as the awesome rate. Will implement this in my games asap
Daniel
Posted at 12:58h, 03 FebruaryHow will these ad networks compete with the Corona Ads plugin? Is this more of a ‘choose the best network for you’ approach?
Rob Miracle
Posted at 16:09h, 03 FebruaryWe want you to have options that work best for you.
Damir Kranjcec
Posted at 14:57h, 03 FebruaryQuestion 1)
AppLovin has banner ads.
Does that mean you have not implemented them in the plugin?
Question 2)
Unfortunately, AppLovin can’t be selected in AdMob dashboard for mediation directly, instead “custom events” have to be used.
I guess that is not possible with the plugin? (so no way for AdMob mediation)
David Grant
Posted at 15:51h, 03 FebruaryActually applovin just discontinued their banner ads as of like last week I think it was. I’ve talked to their CEO a few times and he pretty much said no one uses banner ads anyone and the ecpm isn’t worth it.
Danny Glover
Posted at 04:55h, 04 FebruaryDavid Grant’s reply is correct. Banner Ads have been deprecated in Applovin for a while now, and they tell you not to use them.
Regarding your second comment, we don’t support mediation with this plugin at the present time.
Thank you
Rob Culley
Posted at 19:11h, 03 FebruaryThis is great guys…. However it does not seem to work?
All i get is “module ‘plugin_applovin’ not found:…..” when I include this in my project. Any ideas.
Thanks
Rob Miracle
Posted at 19:13h, 03 FebruaryCan I get you to ask this in the forums. I’d like to see your build.settings file and code doesn’t format well here in the comments.
Rob Culley
Posted at 04:28h, 04 FebruaryThanks Rob, will do.
David Grant
Posted at 21:03h, 03 FebruaryI have the ads setup on my app but I have yet to see an ad. I have applovin set to demo mode and I’m still not seeing anything, The applovin.isLoaded() always seems to return false.
Danny Glover
Posted at 04:56h, 04 FebruaryHey Dave.
Mind posting in the forums? These comments can get a bit unwieldy for 1:1 conversations.
Thanks
Anthony
Posted at 02:08h, 04 FebruaryHere’s a question I am surprised that has not been asked.
When does Perk show an ad attached to their ID? 1st ad? 20th ad?
If 1st ad, will this be the case for all future revenue share ad plugins?
Danny Glover
Posted at 05:49h, 04 FebruaryHey Anthony.
It varies. We don’t have a specific point in when we use our id vs yours. It’s just 5% of the time.
Anthony
Posted at 06:32h, 04 FebruaryThanks for the reply Danny – much appreciated.
Anthony
Posted at 02:11h, 04 February… I ask because a lot of apps out there last for a few fleeting moments before being deleted.
I remember AdBuddiz contacting me some months ago trying to get me to show their interstitial before AdMob in all my apps. I refused due to their appalling eCPMs.
Anthony
Posted at 06:32h, 04 FebruaryHaving integrated AppLovin here are my initial thoughts:
Pros:
* Integration super easy and quick. As is common to most ad SDKs.
* 5% flat rate.
Cons:
* Video ad is not HD. Poor visuals in comparison to Vungle.
* Cannot mix static interstitial with video in the same app. It’s one or the other and that’s a big drawback.
Danny Glover
Posted at 08:01h, 04 FebruaryHey Anthony, mind elaborating on not being able to mix static interstitials and videos?
If you turn both options on in the Applovin portal you’ll get either a video or static interstitial. They also provide options in their portal to frequency cap the amount of interstitials or videos displayed per user, per day. So you can prefer one against the other to give you finer grained control over the Ads.
Danny Glover
Posted at 08:21h, 04 FebruaryRegarding the Ads not being HD, you may have variance here. These are Ads that publishers deliver to Applovin, so they don’t really have any control over what is pushed to their inventory (iirc).
This is what I believe to be correct based on what I have read on their site.
Anthony
Posted at 00:53h, 05 FebruaryMakes sense. The same thing happens with variable video quality with AdMob videos. Thanks again Danny.
Anthony
Posted at 08:17h, 04 FebruaryDanny – you’re absolutely right!
The video/static options are not mutually exclusive. My bad.
Keep up the excellent work!
Anthony.
Danny Glover
Posted at 08:18h, 04 FebruaryGlad to help 🙂
Jbean
Posted at 08:55h, 04 FebruaryI think Corona SDK should consider allowing professional developers and business owners the option to pay a flat-rate per year to use the plug-in as opposed to this 5% model.
I have clients that want the applovin plug-in but will not pay 5% when they can have Unity SDK for much less, especially since their applovin revenue is in the thousands.
Any way Corona will consider alternatives for professionals?
5% is not a lot for a hobbyist, but 5% for businesses that make a ton on ads is more expensive than Unity SDK.
Something Corona should really consider so they don’t abandon professionals for the 5%.
Perhaps give an alternative where we can pay an annual fee for access to this plug-in, and keep 100% royalties?
Nicolas
Posted at 09:05h, 04 FebruaryI think in that case, paying for Enterprise is your best solution.
What I don’t see a real solution is when someone is selling apps and not making enough money to afford Enterprise, yet the client wants Ad integration. In that case we can use other Ad platforms anyway, like Admob.
But in the case a professional developer/company needs Apploving integration, I think the Enterprise solution is the best idea. I don’t know if it’s better than Unity in that case, at least for bussiness apps it is, even when Corona isn’t the best solution for those.
JBean
Posted at 10:37h, 04 FebruaryThe issue is, our clients don’t want to use Enterprise because it’s too cumbersome – Pro is much easier and more efficient for publishing purposes and easy for non-programmers to use and publish apps.
My clients are willing to pay more than what Enterprise costs just for one little ad plug-in, don’t see why this shouldn’t be offered as an alternative, they aren’t asking for it for free.
Otherwise, if they are forced to use Enterprise for an applovin plugin and 100% royalties, it would make sense at that point to switch to Unity SDK, which is much easier than hassling with Enterprise IMO.
Alberto
Posted at 10:03h, 04 FebruaryWell done!
Corona team is great.
JBean
Posted at 10:40h, 04 FebruaryCorona SDK should offer a 3rd tier called “Pro Plus” for developers who wish to avoid Enterprise, and for ease of use in publishing and testing apps, especially for their clients who they develop apps for, while being able to keep 100% royalties from ad networks.
Is this something Corona would consider offering?
There are many app developers and business owners who are not proficient in code, and want the easiest solution in publishing apps without hassling with native code, this option seems like a very fair solution for issues like this.
Rob
Posted at 10:46h, 04 FebruaryHi a question about the 5% of time. Do you mean every 20th show per app?
For instance I have one app, 20 people download the app, I have an ad on boot only so you will show your ad on the 20th download.
Or I had ad on boot and another ad that’s shown later. So by the time 10 users have downloaded and got to the second ad show the 10th user will see your ad on the second show?
Danny Glover
Posted at 10:51h, 04 FebruaryHey Rob.
It’s per app. So we’ll use our SDK key 5% of the time when ads are delivered.
Rob
Posted at 11:40h, 04 FebruaryHi . That still doesn’t explain how you work the 5 % out. You can only know that when time is over for good , how much that 5% is. So do you wait for 100 ad shows then show 5 or every 20 shows. Or will you do random number 1 out of 20 every time an ad is shown.
Rob
Posted at 10:50h, 04 FebruaryAlso what are your ads? “This game was made with corona..get it now” or another game -made by who – anyone? A game made by unity? Lol
Danny Glover
Posted at 10:51h, 04 FebruaryOur ads are the same as your ads. They are just standard Applovin ads.
JBean
Posted at 11:47h, 04 FebruaryHow do we know that only 5% of the time, your ads are showing?
This is honestly a deal breaker for big companies, and those who have clients.
For hobbyists or part-time app developers, this is the perfect model since they don’t have to pay for Pro, but for serious app developers, shelling out 5% of their ad revenue is a total deal breaker for any serious app dev. Plus, we have no way of knowing for sure if the 5% is 5% or it could be less, or more.
Rob
Posted at 13:21h, 04 FebruaryThey would need a separate plugin dashboard where can can see ad requests and amount diverted to Corona.
I guess they will have this or we will all be assuming it’s all working and just have faith!
Ruben
Posted at 15:41h, 04 FebruarySome questions that I really would like to see answered:
1. How do you control the specific 5% share? I know you’re switching to your AppLovin key every 20 impressions, but where is specified this 1/20 ratio?
Is it hardcoded in the app?
Or the Applovin plugin you created is also calling a Corona server in background, from time to time to get the share value?
2. In case the value is NOT hardcoded but retrieved by one of your server. How can we be sure that one day you’ll not change the ratio, let’s say from 1/20 to 1/5 and so on?
Can you categorically declare you’re NOT going to adjust the ratio in the future?
This could be a HUGE deal breaker for me and my clients.
3. The 5% share is much better than the confusing FAN scheme (that I decided to not implement for exactly that reason), however I think a solution for Pro developers that:
A) generate enough income from Ads that, with even a 5% share will end up paying more than several Enterprise licenses every year (and even if they stop using Corona… as long as the app is available and used by users Corona will get the share).
B) don’t really need the complexity of Enterprise.
…a Corona Pro basically.
Right now the only solution is getting Enterprise or Card. From the recent signs you’ve sent to the Corona community it looks like Perk is betting all on Corona SDK Free and the revenue share/Freemium plugins monetizations (now the revenue share on external ad network, then probably Corona Ads and maybe some similar scheme on Corona Clouds). Great to get new users, but not so great for mid developers.
My 4th question is:
Since you’re not planning to release a Corona Pro, at least what are your future plans for the current Pro products (Enterprise AND Card)?
I’m thinking my current best option would be to switch to Card, but I’m worried about its future.
Thanks
JBean
Posted at 16:28h, 04 FebruaryCouldn’t have said it better.
5% share is a good solution for hobbyists, but not for serious developers, and so it ends up being cheaper in the long-run using another SDK like Unity vs a 5% revenue share across Applovin’ and who knows what other plug-ins when you’re looking at serious app devs with clients.
Why doesn’t Corona come up with a Pro-Plus plan where people who want to pay a flat rate for Pro can purchase a plan where they don’t have to share 5% royalties? Seems so simple and easy to include this so you’re not shutting out Small Business owners who wish to avoid Enterprise.
At that point, we may as well be coding our apps natively, or switching to Unity since both options are way cheaper.
Sorry, but I think this is a big mistake on Corona’s part, and will become a platform for hobbyists unless another tier is included where Pro users can pay a flat fee per year to negate the 5% royalties. I guarantee you – NO serious business owner who is making a substantial amount of $ in ads, which are some of our clients will ever go for this 5% model.
Ruben
Posted at 17:38h, 04 FebruaryYeah… the freemium pricing strategy is probably good for bringing new people on the platform, but the lack of Pro solutions is going to push more serious developer away from it.
I’m not against Corona Free with revenue share on ads, I think it could be a good strategy (if there’s also a Pro product line), but IMO right now it’s applied wrong.
If I may suggest: what Corona is lacking is an ad mediation platform; something devs can set up easily and that automatically switch to the best provider.
That’s an awesome opportunity for Perk. Especially since their core strength is ads, they could offer a killer added-value product for Corona and at the same time monetise. Corona Ads, a simple and easy to use ad mediation platform.
Nobody is going to have a problem with Perk taking a revenue share on their own ad-platform, since it creates an added-value for the dev (compared to only being a tax on other ad platforms).
But anyway, can anyone from Corona respond to my questions above? Thanks
Tony
Posted at 15:41h, 05 FebruaryAdding my voice.
We hate taxes! we should pay for the service and work you do, not for the work that we do!!
I would like to see option to buy plugin… otherwise, i will spend that day and will implement the plugin myself (until I move to another platform)
but Corona please don’t push us to that corner, and let us do great Apps instead.
please decouple the business of Corona SDK and monetizing world (as unity does). otherwise it’s just not healthy & unwise.
Corona team please listen to the voice of the community.
Thank you
Danny Glover
Posted at 02:34h, 05 FebruaryHello there.
I can only answer the first two questions, as the other two are not my department.
For both #1 and #2, the value is hardcoded into the plugin, not retrieved from our server.
For the second part of question 2, we have no plans to change the revenue share value. If this situation changes (no plans to do so), we would of course notify you via a blog post with a blog post ahead of time.
Dan Ivanov
Posted at 08:11h, 10 FebruaryI am really happy that you have added Applovin. I have been using them for other games and I definitely think their earnings are better than other ad networks.
I have tried already to include the applovin plugin but unfortunately the Corona simulator throws an error that the plugin.applovin module cannot be found. ( I have followed all steps in including the plugin in build.settings ).
Is there anything else I have to do in order to build the plugin?
Thanks
Rob Miracle
Posted at 18:36h, 10 FebruaryCan you take this to the Forums? We are going to want you to post your build.settings and show where you’re requiring the plugin and initializing the plugin. We will also want to see the full error from the console.log.
Thanks
Rob
Gili
Posted at 09:17h, 04 AprilIs there a way to set the user id, so that server callbacks can recognize which user watch the video?
Guy Kastoriano
Posted at 01:41h, 07 AprilHi,
I’m currently integrating the APPLOVIN plugin in to my game code.
During the process I want to test the results on my device.
Is it a problem that I see the impression on my APPLOVIN account?
I did enable the test mode of the Ad in my portal.
Is there a way to add a flag like ‘testmode = true’ as in AdMob?
Regards,
Guy