Difference between revisions of "Ads"

From GiderosMobile
 
(26 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
'''Supported platforms:''' <br/>
+
<!-- GIDEROSOBJ:Ads -->
 +
'''Supported platforms:''' [[File:Platform android.png]][[File:Platform ios.png]][[File:Platform html5.png]][[File:Platform winrt.png]]<br/>
 
'''Available since:''' Gideros 2011.6<br/>
 
'''Available since:''' Gideros 2011.6<br/>
 +
'''Inherits from:''' [[EventDispatcher]]<br/>
 +
 
=== Description ===
 
=== Description ===
<translate>The idea is to provide common Ads interface for most of available ad frameworks, so that user's would not have to create a plugin for each of them separately, but rather it would be possible to wrap ad framework in single Java or Objective-C class (depending on the platform) and add it to the project, without even recompiling existing Ads Interface plugin.
+
The idea is to provide a common Ads Interface for most ad frameworks, allowing switching and fall back between ad frameworks at runtime.
 +
 
 +
Gideros Common Ads Interface provides:
 +
* using the same interface not only across platforms, but also across ad frameworks
 +
* ability to use multiple ad frameworks simultaneously
 +
* easily create fall backs to other frameworks if one framework failed
 +
* displaying and hiding banners
 +
* preloading ads without showing them
 +
* banners dimensions and position as any other Gideros element
 +
* tween banners using GTween
 +
* place personalized ads (Bitmap objects) under banners if there is no ad or Internet connection
 +
* test ads with one simple call (depends on ad framework)
 +
 
 +
To add the '''Ads plugin''' to your project:
 +
<syntaxhighlight lang="lua">
 +
require "ads"
 +
</syntaxhighlight>
  
Additionally it would be able to support multiple ad frameworks simultaneously so users could switch and fall back between ad frameworks on runtime.
+
Then in the '''Plugins Folder''' you can right click the '''Ads plugin''' -> ''Properties'' and configure it as desired.
 +
 
 +
You can also add the '''Require plugin''' to further configure your app (right click -> ''Properties'').
  
More information available in [http://docs.giderosmobile.com/interface/ads](Ads interface guide).</translate>
 
 
=== Examples ===
 
=== Examples ===
'''Creating fallbacks with Ads frameworks'''<br/>
+
'''Admob'''
<source lang="lua">--require plugin
+
<syntaxhighlight lang="lua">
 +
Ads = Core.class(Sprite) -- you need to add "Ads" and "Gaming" to your project Plugins
 +
 
 +
function Ads:init()
 +
-- ads
 +
self.ADMOB_APP_ID = "ca-app-pub-3940256099942544~3347511713" -- google test id
 +
self.ADMOB_UNIT_ID = "ca-app-pub-3940256099942544/6300978111" -- google test id
 +
 
 +
-- admob (setup for simple banner adverts), note: only visible on phone/tablet
 +
if application:getDeviceInfo() == "Android" then
 +
require 'ads' --create real object for on device
 +
self.ADMOB = Ads.new('admob')
 +
self.ADMOB:setKey(self.ADMOB_APP_ID)
 +
self.ADMOB:addEventListener(Event.AD_RECEIVED, function() -- show ad
 +
self.ADMOB:showAd('banner')
 +
self.ADMOB:setAlignment('center', 'bottom')
 +
end)
 +
self.ADMOB:addEventListener(Event.AD_FAILED, function(e) end)
 +
self.ADMOB:addEventListener(Event.AD_ACTION_BEGIN, function() end)
 +
self.ADMOB:addEventListener(Event.AD_ACTION_END, function() end)
 +
self.ADMOB:addEventListener(Event.AD_DISMISSED, function() end)
 +
 
 +
self.ADMOB:loadAd("banner", self.ADMOB_UNIT_ID) -- load ad
 +
else
 +
self.ADMOB = {} -- create fake object for testing in windows player
 +
self.ADMOB.loadAd = function() end
 +
self.ADMOB.showAd = function() end
 +
end
 +
end
 +
</syntaxhighlight>
 +
 
 +
'''Creating fallbacks with Ads frameworks'''
 +
<syntaxhighlight lang="lua">
 +
--require plugin
 
require "ads"
 
require "ads"
  
Line 36: Line 89:
  
 
--start displaying amazon ads
 
--start displaying amazon ads
amazon:showAd("auto");</source>
+
amazon:showAd("auto")
 +
</syntaxhighlight>
 +
 
 
{|-
 
{|-
| style="width: 50%;"|
+
| style="width: 50%; vertical-align:top;"|
 
=== Methods ===
 
=== Methods ===
[[Ads.new]] {{<translate>initializes new ad framework</translate>}}<br/>
+
[[Ads.new]] ''initializes new ad framework''<br/><!--GIDEROSMTD:Ads.new(adframework) initializes a new ad framework-->
[[Ads:enableTesting]] {{<translate>enable testing ads</translate>}}<br/>
+
[[Ads:checkConsent]] ''triggers consent flow if needed''<br/><!--GIDEROSMTD:Ads:checkConsent(parameters) triggers consent flow if needed-->
[[Ads:get]] {{<translate>gets property value of the ad</translate>}}<br/>
+
[[Ads:enableTesting]] ''enables ads testing''<br/><!--GIDEROSMTD:Ads:enableTesting() enables ads testing-->
[[Ads:getHeight]] {{<translate>gets the height of the ad</translate>}}<br/>
+
[[Ads:get]] ''gets ad property value''<br/><!--GIDEROSMTD:Ads:get(property) gets ad property value-->
[[Ads:getPosition]] {{<translate>gets x and y position of the ad</translate>}}<br/>
+
[[Ads:getHeight]] ''gets ad height''<br/><!--GIDEROSMTD:Ads:getHeight() gets ad height-->
[[Ads:getWidth]] {{<translate>gets width of the ad</translate>}}<br/>
+
[[Ads:getPosition]] ''gets ad x and y position''<br/><!--GIDEROSMTD:Ads:getPosition() gets ad x and y position-->
[[Ads:getX]] {{<translate>gets x position of the ad</translate>}}<br/>
+
[[Ads:getWidth]] ''gets ad width''<br/><!--GIDEROSMTD:Ads:getWidth() gets ad width-->
[[Ads:getY]] {{<translate>gets y position of the ad</translate>}}<br/>
+
[[Ads:getX]] ''gets ad x position''<br/><!--GIDEROSMTD:Ads:getX() gets ad x position-->
[[Ads:hideAd]] {{<translate>hides ads</translate>}}<br/>
+
[[Ads:getY]] ''gets ad y position''<br/><!--GIDEROSMTD:Ads:getY() gets ad y position-->
[[Ads:set]] {{<translate>sets property value of the ad</translate>}}<br/>
+
[[Ads:hideAd]] ''hides ad''<br/><!-- GIDEROSMTD:Ads:hideAd() hides ad-->
[[Ads:setAlignment]] {{<translate>sets alignment of the ad</translate>}}<br/>
+
[[Ads:loadAd]] ''loads ad''<br/><!-- GIDEROSMTD:Ads:loadAd() loads ad-->
[[Ads:setKey]] {{<translate>set keys for the framework</translate>}}<br/>
+
[[Ads:set]] ''sets ad property value''<br/><!--GIDEROSMTD:Ads:set(property,value) sets ad property value-->
[[Ads:setPosition]] {{<translate>sets position of the ad</translate>}}<br/>
+
[[Ads:setAlignment]] ''sets ad alignment''<br/><!--GIDEROSMTD:Ads:setAlignment(horizontal,vertical) sets ad alignment-->
[[Ads:setX]] {{<translate>Sets x position of the ad</translate>}}<br/>
+
[[Ads:setKey]] ''sets framework key''<br/><!--GIDEROSMTD:Ads:setKey(...) sets framework key-->
[[Ads:setY]] {{<translate>sets y position of the ad</translate>}}<br/>
+
[[Ads:setPosition]] ''sets ad position''<br/><!--GIDEROSMTD:Ads:setPosition(x,y) sets ad position-->
[[Ads:showAd]] {{<translate>display ad</translate>}}<br/>
+
[[Ads:setX]] ''sets ad x position''<br/><!--GIDEROSMTD:Ads:setX(x) sets ad x position-->
| style="width: 50%;"|
+
[[Ads:setY]] ''sets ad y position''<br/><!--GIDEROSMTD:Ads:setY(y) sets ad y position-->
 +
[[Ads:showAd]] ''displays ad''<br/><!--GIDEROSMTD:Ads:showAd(...) displays ad-->
 +
 
 +
| style="width: 50%; vertical-align:top;"|
 
=== Events ===
 
=== Events ===
[[Event.AD_ACTION_BEGIN]]<br/>
+
[[Event.AD_ACTION_BEGIN]]<br/><!--GIDEROSEVT:Event.AD_ACTION_BEGIN adActionBegin-->
[[Event.AD_ACTION_END]]<br/>
+
[[Event.AD_ACTION_END]]<br/><!--GIDEROSEVT:Event.AD_ACTION_END adActionEnd-->
[[Event.AD_DISMISSED]]<br/>
+
[[Event.AD_CONSENT]]<br/><!--GIDEROSEVT:Event.AD_CONSENT adConsent-->
[[Event.AD_ERROR]]<br/>
+
[[Event.AD_DISMISSED]]<br/><!--GIDEROSEVT:Event.AD_DISMISSED adDismissed-->
[[Event.AD_FAILED]]<br/>
+
[[Event.AD_DISPLAYED]]<br/><!--GIDEROSEVT:Event.AD_DISPLAYED adDisplayed-->
[[Event.AD_RECEIVED]]<br/>
+
[[Event.AD_ERROR]]<br/><!--GIDEROSEVT:Event.AD_ERROR adError-->
 +
[[Event.AD_FAILED]]<br/><!--GIDEROSEVT:Event.AD_FAILED adFailed-->
 +
[[Event.ADS_READY]]<br/><!--GIDEROSEVT:Event.ADS_READY adsReady-->
 +
[[Event.AD_RECEIVED]]<br/><!--GIDEROSEVT:Event.AD_RECEIVED adReceived-->
 +
[[Event.AD_REWARDED]]<br/><!--GIDEROSEVT:Event.AD_REWARDED adRewarded-->
 +
 
 
=== Constants ===
 
=== Constants ===
 
|}
 
|}
 +
 +
{{GIDEROS IMPORTANT LINKS}}

Latest revision as of 04:30, 16 February 2025

Supported platforms: Platform android.pngPlatform ios.pngPlatform html5.pngPlatform winrt.png
Available since: Gideros 2011.6
Inherits from: EventDispatcher

Description

The idea is to provide a common Ads Interface for most ad frameworks, allowing switching and fall back between ad frameworks at runtime.

Gideros Common Ads Interface provides:

  • using the same interface not only across platforms, but also across ad frameworks
  • ability to use multiple ad frameworks simultaneously
  • easily create fall backs to other frameworks if one framework failed
  • displaying and hiding banners
  • preloading ads without showing them
  • banners dimensions and position as any other Gideros element
  • tween banners using GTween
  • place personalized ads (Bitmap objects) under banners if there is no ad or Internet connection
  • test ads with one simple call (depends on ad framework)

To add the Ads plugin to your project:

require "ads"

Then in the Plugins Folder you can right click the Ads plugin -> Properties and configure it as desired.

You can also add the Require plugin to further configure your app (right click -> Properties).

Examples

Admob

Ads = Core.class(Sprite) -- you need to add "Ads" and "Gaming" to your project Plugins

function Ads:init()
	-- ads
	self.ADMOB_APP_ID = "ca-app-pub-3940256099942544~3347511713" -- google test id
	self.ADMOB_UNIT_ID = "ca-app-pub-3940256099942544/6300978111" -- google test id

	-- admob (setup for simple banner adverts), note: only visible on phone/tablet
	if application:getDeviceInfo() == "Android" then
		require 'ads' --create real object for on device
		self.ADMOB = Ads.new('admob')
		self.ADMOB:setKey(self.ADMOB_APP_ID)
		self.ADMOB:addEventListener(Event.AD_RECEIVED, function() -- show ad
			self.ADMOB:showAd('banner')
			self.ADMOB:setAlignment('center', 'bottom')
		end)
		self.ADMOB:addEventListener(Event.AD_FAILED, function(e) end)
		self.ADMOB:addEventListener(Event.AD_ACTION_BEGIN, function() end)
		self.ADMOB:addEventListener(Event.AD_ACTION_END, function() end)
		self.ADMOB:addEventListener(Event.AD_DISMISSED, function() end)

		self.ADMOB:loadAd("banner", self.ADMOB_UNIT_ID) -- load ad
	else
		self.ADMOB = {} -- create fake object for testing in windows player
		self.ADMOB.loadAd = function() end
		self.ADMOB.showAd = function() end
	end
end

Creating fallbacks with Ads frameworks

--require plugin
require "ads"

--initialize amazon
amazon = Ads.new("amazon")
amazon:setKey("amazon-key")

--initialize admob
admob = Ads.new("admob")
admob:setKey("admob-key")

--if amazon fails
--show admob
amazon:addEventListener(Event.AD_FAILED, function(e)
	print("amazon AD_FAILED", e.error)
	admob:showAd("auto")
end)

--if admob fails
--show amazon
admob:addEventListener(Event.AD_FAILED, function(e)
	print("admob AD_FAILED", e.error)
	amazon:showAd("auto")
end)

--start displaying amazon ads
amazon:showAd("auto")

Methods

Ads.new initializes new ad framework
Ads:checkConsent triggers consent flow if needed
Ads:enableTesting enables ads testing
Ads:get gets ad property value
Ads:getHeight gets ad height
Ads:getPosition gets ad x and y position
Ads:getWidth gets ad width
Ads:getX gets ad x position
Ads:getY gets ad y position
Ads:hideAd hides ad
Ads:loadAd loads ad
Ads:set sets ad property value
Ads:setAlignment sets ad alignment
Ads:setKey sets framework key
Ads:setPosition sets ad position
Ads:setX sets ad x position
Ads:setY sets ad y position
Ads:showAd displays ad

Events

Event.AD_ACTION_BEGIN
Event.AD_ACTION_END
Event.AD_CONSENT
Event.AD_DISMISSED
Event.AD_DISPLAYED
Event.AD_ERROR
Event.AD_FAILED
Event.ADS_READY
Event.AD_RECEIVED
Event.AD_REWARDED

Constants