HMS Ads Kit Integration into Solar2D (Corona) Project

Kayahan Başkeser
Huawei Developers
Published in
4 min readSep 16, 2020

In this article, I will mention about HMS Ads Kit Integration into Solar2D (Corona) project.

Corona provides a handy template to start. Copy \Native\Project Template\App from your Corona install directory and paste it somewhere writable. On Windows, Corona would usually be installed to \Program Files (x86)\Corona Labs\Corona.

And rename App to your project name.

The contents of App folder are as follows. In App folder, we need only Android and Corona folders.

In Corona folder, there is a sample project. When you open main.lua file, you can see how to call methods from android side. For example : library.init()

You can delete all of files in Corona folder and you can put our own codes. But you need to import our android library into our own main.lua folder to call method from android.

Open android folder with Android studio.

Let’s make the configuration settings;

1- Add maven repository into build.gradle.

2- Change coronaMinSdkVersion to 19.

3- Add HMS Ads Kit SDK and change minSdkVersion to 19.

implementation ‘com.huawei.hms:ads-lite:13.4.32.300’

And we will use LuaLoader class and write code into LuaLoader class in plugin.

Now plugin side is ready to use HMS Ads Kit. In android project, we need to create wrapper for Ads Kit methods.

If you don`t have enough information about HMS Ads kit, i recommend to read this documentation.

In this article i will show banner ad integration. So let’s start.

Before we begin, let’s define these variables in LuaLoader.class.

For banner ad, we need to create a wrapper. (e.g BannerWrapper). And we need to add into invoke method.

And then let`s create BannerWrapper class.

Invoke method which in BannerWrapper class, returns a method (e.g showBanner()).

Let`s create showBanner() method.

In this method firstly, we create an activity with using CoronaEnvironemnt.getCoronaAcitivty() method.

We call HyAds.init(context) method to initialize the HUAWEI Ads SDK and we initialize Param.Builder() to construct an ad request builder.

And then if layout is null, we initialize layout.

Lastly, If bannerView is null, we should initialize it. And we load this ads with loadAd() method, add this bannerView into layout.

That’s all.

When you call the showBanner() method on main.lua file, you see the banner ad.

When we run the android project, you should see the banner ads.

Let`s define AdListener to monitor the status of the ad.

We use the dispatchEvent() method to send an information to the lua side. And the dispatchEvent() method takes only 1 parameter by default. I changed it to send more detailed information. I added some more parameters as follow.

And then we need to set listener into bannerView in showBanner method.

Now, on android side everything is ready. We need to update lua part. We should import json lib because we send more than one value via dispatchEvent(). And in listener method, we use json.prettify(event) method.

Let’s run it and see the logs.

As you can see, we integrated the HMS Ads Kit into the corona project and we can see the status of the advertisement.

You can add all the features of the HMS ads kit to your project in this way.

You can find the sample project from github. And Interstitial ad has been added in this sample project.

I hope this article was useful.

--

--