Gley MobileAds Documentation

Download as pdf or txt
Download as pdf or txt
You are on page 1of 39

MOBILE ADS

WHY DO YOU NEED TO USE THIS PLUGIN ?

● Integrate easily all supported advertisers simply by importing their SDK, no other settings are
required. It is not mandatory to integrate all/any of the supported advertisers to work.

● Load ad from any ad platform using the same line of code.

● Customizable mediation policy by using either order mediation or percent based mediation. You
can select independent type of mediation for each type of ad (banner, interstitial, rewarded
video).

● Read mediation config file from an external server of choice to allow the ad display order to be
changed without uploading a new build to the store.

● Works for Android/iOS/Windows Store without any additional Unity setup.

● Built in Remove Ads functionality.

● GDPR, ATT, COPPA, CCPA Compliant.

● Compatible with Playmaker, Bolt and Game Flow

2
CURRENTLY SUPPORTED ADVERTISERS

3
GDPR COMPLIANCE

Our plugin does not collect any personal information only selected advertisers collect personal
information about users. Here is a list of how any advertiser deals with personal user data and what you
have to do to be compliant with GDPR:

Unity Ads
Versions 2.0 and above will automatically present users with an opportunity to opt-out of
targeted advertising, with no implementation needed from the publisher. On a per-app
basis, the first time a Unity ad appears, the user will see a banner with the option to
opt-out of behaviorally targeted advertising. Thereafter, the user can click an informa-
tion button to receive the opt-out again.
No specific action needed.

Vungle
Vungle will display a consent dialog before playing an ad for a European user, and will
remember the user’s consent or rejection for subsequent ads.
No specific action needed.

4
Admob, AdColony, AppLovin, Heyzap, MoPub, IronSource
All require that implementation of getting user consent for receiving targeted ads to be
made by publisher in his application and then to be sent to their SDK(Admob, AdColony, AppLovin
Heyzap, MoPub, IronSource).

If the application user does not accept the compliance they will keep serving ads but it
will not be targeted anymore.
Getting consent from the user is needed to display ads in order to be compliant with GDPR.

Chartboost
Chartboost requires that implementation of getting user consent for receiving targeted ads
to be made by publisher in his application and then sent to Chartboost SDK.

If the application user does not accept the compliance Chartboost SDK will not provide any
Ads.
Getting consent from the user is needed to display ads in order to be compliant with GDPR.

Facebook Audience Network


For Facebook no action is required, they deal with GDPR from Facebook app.
But keep in mind this:
● The user has to have logged into Facebook within the last 30 days on that particular
device to be able to see live ads.
● The user has to have consented to targeted ads from within the Facebook apps in order to see live ads.

For detailed implementation see section Usage Guide.

5
APP TRACKING TRANSPARENCY (ATT) iOS 14.5

iOS 14.5 and above requires publishers to obtain permission to track


the user's device across applications. This device setting is called App
Tracking Transparency, or ATT.

All the setup required is done inside the Settings Window as follows:

● Check Enable iOS Tracking.


● Hit Import Required iOS Packages or manually install the
iOS 14 Advertising Support package from Package Manager.
● Insert your display text in the box provided. This text will be
displayed on the device.
● Hit Save

More information can be found on Unity website:


https://unityads.unity3d.com/help/monetization/ios14

6
COPPA COMPLIANCE

COPPA (Children's Online Privacy Protection Act) is required if your app is directed to children under the
age of 13. To be compliant with COPPA your app does not have to collect any user data.

Each ad publisher we support has his own way to deal with COPPA. some of them within dashboard and
some of them required some in app setup. Here is a detailed description of what you should do to be
compliant:

Admob

Official documentation can be found here:


https://support.google.com/admob/answer/6223431?hl=en
We do all that for you, just have to check the box in our Settings Window:

7
AdColony
Official documentation can be found here:
http://support.adcolony.com/customer/en/portal/articles/1211853-coppa-f-a-q-
All is done from dashboard, no action required from SDK.

AppLovin
Official documentation can be found here:
https://dash.applovin.com/docs/integration#androidUnityPrivacySettings
We do all that for you, just have to check the box in our Settings Window.

Chartboost
Official documentation can be found here:
https://answers.chartboost.com/en-us/zingtree in section: Data, Privacy & GDPR -> Behavioral
Targeting.
All is done from dashboard, no action required from SDK.

Facebook Audience Network


Official documentation can be found here:
https://developers.facebook.com/docs/audience-network/coppa/
Additionally you have to check the directed for children check-box in our Settings Window.

Heyzap
Official documentation can be found here:
https://developers.heyzap.com/docs/faq
Additionally you have to check the directed for children check-box in our Settings Window.

IronSource
Official documentation can be found here:
https://developers.ironsrc.com/ironsource-mobile/air/ironsource-mobile-privacy-policy/
All is done from dashboard, no action required from SDK.

8
Unity Ads
Official documentation can be found here:
https://docs.unity3d.com/Manual/UnityAnalyticsCOPPA.html
All is done from dashboard, no action required from SDK.

MoPub
Official documentation can be found here:
https://developers.mopub.com/publishers/ui/apps/
All is done from dashboard, no action required from SDK.

Vungle
You have to send an e-mail to Vungle team to enable COPPA for your app. It cannot be enabled
from your dashboard.

9
SETUP GUIDE

Step by step video tutorials available on our Youtube Channel:


https://www.youtube.com/channel/UCAhG0ta4P75E_24LR_qQ5hg

Import GleyMobileAdsPlugin into Unity.

Go to Window->Gley->Mobile Ads to open the plugin settings window.

10
Select the desired advertisers from the settings window using the checkbox.

11
Select the desired platforms to build for(Android/iOS/Windows Store).

Add sdk keys for all your platforms of choice (Read the SDK provider documentation on how to obtain
these keys).

12
Download and import the selected advertiser SDK. No additional Unity setup is required.

Press the Save button for saving settings made in previous steps and all is done.

13
ADVANCED SETUP

If more than one advertiser is selected the mediation section will be displayed.

14
THERE ARE 2 OPTIONS:

Order Mediation Percent Mediation

15
ORDER MEDIATION

● Select Order Mediation from the drop down list.


● Order SDKs by dragging them in the list on the desired position.
● The SDK on the top of the list is shown first.
● If no ad is available for the first SDK the an ad from the next SDK will be shown.
● And so on.

● To remove ads completely from an advertiser just uncheck the box.

16
PERCENT MEDIATION

● Select Percent Mediation from the drop down list


● An add will be shown based on the percentages indicated next to the advertisers.
● A higher percentage means that a higher number of ads will be shown from that advertiser.
● Adjust the sliders until you reach the percentage that you think is best for your app.
● Prees the Order List button to order the list based on slider settings.

● To remove ads completely from an advertiser just uncheck the box.

17
Independent mediation policy can be set for each ad type (banner, interstitial, rewarded video)

18
EXTERNAL FILE SETTINGS

To be able to change the above settings outside the build (after the build was published to store) an
external config file can be used.

Press the Generate Settings File button and all your settings will be saved in a .txt file that can be
uploaded to any server and the URL of the file must be pasted in the text box above the button.

19
The .txt file is located in Assets/GleyPlugins/Ads/AdOrderFile/AdOrder.txt

20
USAGE GUIDE

Debug Mode
If the debug mode is checked in the settings window, debug messages will be displayed
on the screen.

GDPR Compliance
(it is not required if just Unity and/or Vungle sdk`s are used, otherwise is mandatory for GDPR).

Call this before calling initialize the SDK


//check if the user was not already asked
if(Advertisements.Instance.UserConsentWasSet()==false)
{
//display your custom popup to notify the user about targeted
//advertisements with YES and NO options
if(YES)
{
//means that user agrees with data processing
Advertisements.Instance.SetUserConsent(true);
}
else
{
//user doesn't want to share his data
Advertisements.Instance.SetUserConsent(false);
}
}

21
Advertisements.Instance.SetUserConsent(bool consent);
Sets and also stores(saves on device) the user answer so all ads from now on will be displayed
Based on this settings.
The default setting (if is not set by the user) is true - will display targeted ads.

bool Advertisements.Instance.UserConsentWasSet();
If true, user already gave his consent, do not bother him anymore.

GetUserConsent();
Returns an enum(UserConsent) with 3 options: Unset, Accept, Deny representing the current
consent state used by the SDK.

A detailed implementation can be found in TestAds.cs

Remove Ads

Advertisements.Instance.RemoveAds(true);
If parameter is true, no banner and interstitial ads will be shown, rewarded videos will work.
You have to call this just once, then it will be saved and used accordingly.
You only need this method if you have an in app product that has remove ads functionality or
other methods that permit to remove all ads from the game.

CCPA Consent

Advertisements.Instance.SetCCPAConsent(bool consent);
Sets and also stores(saves on device) the user answer so all ads from now on will be displayed
Based on this settings.
The default setting (if is not set by the user) is true.

GetCCPAConsent();
Returns an enum(UserConsent) with 3 options: Unset, Accept, Deny representing the current 22
CCPA consent state used by the SDK.
Initializing the SDK:

Advertisements.Instance.Initialize();
This method must be called once at the launch of your project.
No prefabs need to be dragged into stage and no scripts needs to be attached to GameObjects.

Display Banner ad:

Advertisements.Instance.ShowBanner(BannerPosition.BOTTOM);
Supported banner positions are TOP and BOTTOM.
Advertisements.Instance.ShowBanner(BannerPosition.BOTTOM, BannerType.SmartBanner);
Supported banner types are Banner, SmartBanner and Adaptive.

Hide Banner ad:

Advertisements.Instance.HideBanner();

Show Interstitial ad:

//show interstitial based on your mediation settings


Advertisements.Instance.ShowInterstitial(InterstitialClosed);
OR:
//show an interstitial from a specific advertiser
Advertisements.Instance.ShowInterstitial(
GleyMobileAds.SupportedAdvertisers.AdvertiserName, InterstitialClosed);

private void InterstitialClosed(string advertiser)


{
Debug.Log("Interstitial closed from: "+ advertiser+" -> Resume Game ");
}

The InterstitialClosed callback method is called after an interstitial ad is closed.


This callback is optional. 23
Show Rewarded Video ad:

//show rewarded video based on your mediation settings


Advertisements.Instance.ShowRewardedVideo(CompleteMethod);
OR:
//show an rewarded video from a specific advertiser
Advertisements.Instance.ShowRewardedVideo(
GleyMobileAds.SupportedAdvertisers.AdvertiserName, CompleteMethod);

private void CompleteMethod(bool completed, string advertiser)


{
Debug.Log("Closed rewarded from: "+advertiser+" -> Completed " + completed);
if(completed == true)
{
//give the reward
}
else
{
//no reward
}
}

The complete callback method is called after the rewarded video ad is closed.

Check if ads are ready to be displayed:

bool Advertisements.Instance.IsInterstitialAvailable();

bool Advertisements.Instance.IsRewardVideoAvailable();

Check if a banner is on screen:

bool Advertisements.Instance.IsBannerOnScreen(); 24
Playmaker Support

● To be able to use Playmaker actions, Playmaker Support must be enabled from Settings Window:

● To initialize the SDK you have to drag and drop the InitializeGleyAds on your first scene of the
project
● The prefab is located in: GleyPlugins/Ads/PlayMakerSupport/Prefabs/InitializeGleyAds

● Playmaker supports the following actions:


○ SetConsentToYes
○ SetConsentToNo
○ UserConsentWasSet
○ ShowBanner
○ HideBanner
○ IsInterstitialAvailable
○ ShowInterstitial
○ IsRewardedVideoAvailable
○ ShowRewardedVideo
○ RemoveAds

● A step by step integration tutorial is available on our Youtube channel:


https://youtu.be/wBZ0njSWQKE 25
Bolt Support

● To be able to use Bolt actions, Bolt Support must be enabled from Settings Window:

● All supported bolt actions are located inside MobileAdsBoltSupport:


● The following actions are supported:
○ SetConsentToYes
○ SetConsentToNo
○ UserConsentWasSet
○ ShowBanner
○ HideBanner
○ ShowInterstitial
○ ShowRewardedVideo
○ RemoveAds

● A step by step integration tutorial is available on our Youtube channel:


https://youtu.be/Qupbc1UzK-Q

26
Game Flow Support

● To be able to use Game Flow actions, Game Flow Support must be enabled from Settings Window:

● The following actions are supported:


○ InitializeGleyAds
○ SetConsentToYes
○ SetConsentToNo
○ UserConsentWasSet
○ ShowBanner
○ HideBanner
○ IsInterstitialAvailable
○ ShowInterstitial
○ IsRewardedVideoAvailable
○ ShowRewardedVideo
○ RemoveAds

● A step by step integration tutorial is available on our Youtube channel:


https://youtu.be/3oNI1X725s8
27
EXAMPLES

The test scene can be opened by pressing the “Open Test Scene”
button or by going to:
Assets/GleyPlugins/Example/TestAdsScene.unity

Check the TestAds.cs for a complete implementation of the plugin.

How the test scene works:


If an ad is available a button corresponding to that type of ad will be
shown, if you press it, the corresponding ad will be displayed.

28
ADVERTISER SDK SPECIFIC SETTINGS/ERRORS

AdColony (tested with Version: 4.7.0)

Go to menu bar: Assets->External Dependency Manager->Android Resolver -> Force Resolve

29
Admob (tested with version 6.1.2)
To receive live ads make sure your payment details are filled in your Admob account and
your app is signed with your release key. Publish your app on Google Play on a test track to
receive live Admob ads.

Go to menu bar: Assets->External Dependency Manager->Android Resolver -> Force Resolve

30
Admob
If your app crashes at right after start:

Go to menu bar: Assets->Google Mobile Ads ->Settings

If your app id is empty:


● Go to Window -> Gley -> Mobile Ads
● Make sure your app id is set in there.
● Hit save and close the window.
● Now you should see your app ID in Assets->Google Mobile Ads ->Settings

31
Admob
If you get this error or another error that contains Admob Patch:

Install the Admob Patch located here:

32
Admob iOS (tested with version 6.1.2)

If this error occurs when building xCode project:

You probably you don`t have cocoapods installed.


To install it you need to follow this instructions:

● open Terminal on your mac


● run the following command:
● sudo gem install -n /usr/local/bin cocoapods
● enter your password when required
● wait for the installation to finish
● run the following command:
● pod install
● after installation is complete build again your project with Unity
● open xcode project but from the .xcworkspace file
● run on your device and it should display Admob Ads.

33
AppLovin MAX (tested with version 4.3.12)

For iOS in xCode you have to add you SDK key to your info.plist:
● Create a string property named AppLovinSdkKey and add your SDK key as a value like in the
screenshot below:

Add -ObjC flag to Other Linker Flags in xCode Build Settings:

34
MoPub (tested with version 5.17.0)

Go to menu bar: Assets->Play Service Resolver->Android Resolver ->Force Resolve

IronSource (tested with version 7.1.12)

ironSource SDK requires the following libraries:


● google play services Basement
● google play services Identifier

If they are not in your project you can download them from here:
https://drive.google.com/open?id=1LF7gKNA1udpxMRibJrTAU9qt08j7Vmew

35
Unity (tested with version 3.7.5)

If your app crashes when showing an ad make sure Unity Ads are enabled from Services
Window.

36
Vungle (tested with version 6.10.3.0)

Requires minSdkVersion 27 for build -> Update your Android SDK

If your app does not build:


Delete Assets/Plugins/Android/androidx.core.core-1.0.0

If this error occurs:


Trying to merge incompatible
/manifest/uses-permission[@name=android.permission.WRITE_EXTERNAL_STORAGE] element:
Go to Assets/Pugins/Android/Vungle_lib/AndroidManifest and delete this form manifest:
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"android:maxSdkVersion
="18"/>

Vungle Windows (tested with version 6.7.1)

Requires some additional setup. See official Vungle documentation

https://support.vungle.com/hc/en-us/articles/115000820512

37
Facebook Audience Network (tested with version 6.4.0)

If you want to use Facebook bidding it does not work only if you using it with a mediation
partner from the supported list.

Please read the Audience Network documentation for more informations:

https://developers.facebook.com/docs/audience-network/bidding/partner-mediation

38
The ads are only showing in build not in Unity editor.

Make sure that internet connection is available.

Make sure that the device date is correct.

Make sure your app is signed with your release key and published on the store in a test track.

Version 1.10.4 / 2021 39

You might also like