Difference between revisions of "Ads"

From GiderosMobile
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
 
<languages />
 
 
 
<!-- GIDEROSOBJ:Ads -->
 
<!-- 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/>
 +
'''Inherits from:''' [[EventDispatcher]]<br/>
  
'''<translate>Supported platforms</translate>:'''<br/>
+
=== Description ===
'''<translate>Available since</translate>:''' Gideros 2011.6<br/>
+
The idea is to provide a common Ads interface for most of available ad frameworks. A common ads interface allows users to switch and fall back between ad frameworks at runtime.
'''<translate>Inherits from</translate>:''' [[Special:MyLanguage/EventDispatcher|EventDispatcher]]<br/>
 
 
 
=== <translate>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.
 
<br/>
 
 
 
Additionally it would be able to support multiple ad frameworks simultaneously so users could switch and fall back between ad frameworks on runtime.
 
<br/>
 
  
 
More information available in [http://docs.giderosmobile.com/interface/ads](Ads interface guide).
 
More information available in [http://docs.giderosmobile.com/interface/ads](Ads interface guide).
  
=== <translate>Examples</translate> ===
+
=== Examples ===
'''Example 1: Admob'''
+
'''Admob'''
<source lang="lua">
+
<syntaxhighlight lang="lua">
 
Ads = Core.class(Sprite) -- you need to add "Ads" and "Gaming" to your project Plugins
 
Ads = Core.class(Sprite) -- you need to add "Ads" and "Gaming" to your project Plugins
  
 
function Ads:init()
 
function Ads:init()
  -- ads
+
-- ads
  self.ADMOB_APP_ID = "ca-app-pub-3940256099942544~3347511713" -- google test id
+
self.ADMOB_APP_ID = "ca-app-pub-3940256099942544~3347511713" -- google test id
  self.ADMOB_UNIT_ID = "ca-app-pub-3940256099942544/6300978111" -- 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
+
-- admob (setup for simple banner adverts), note: only visible on phone/tablet
  if application:getDeviceInfo() == "Android" then
+
if application:getDeviceInfo() == "Android" then
      require 'ads' --create real object for on device
+
require 'ads' --create real object for on device
      self.ADMOB = Ads.new('admob')
+
self.ADMOB = Ads.new('admob')
      self.ADMOB:setKey(self.ADMOB_APP_ID)
+
self.ADMOB:setKey(self.ADMOB_APP_ID)
      self.ADMOB:addEventListener(Event.AD_RECEIVED, function() -- show ad
+
self.ADMOB:addEventListener(Event.AD_RECEIVED, function() -- show ad
        self.ADMOB:showAd('banner')
+
self.ADMOB:showAd('banner')
        self.ADMOB:setAlignment('center', 'bottom')
+
self.ADMOB:setAlignment('center', 'bottom')
      end)
+
end)
      self.ADMOB:addEventListener(Event.AD_FAILED, function(e) 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_BEGIN, function() end)
      self.ADMOB:addEventListener(Event.AD_ACTION_END, function() end)
+
self.ADMOB:addEventListener(Event.AD_ACTION_END, function() end)
      self.ADMOB:addEventListener(Event.AD_DISMISSED, function() end)
+
self.ADMOB:addEventListener(Event.AD_DISMISSED, function() end)
  else
 
      self.ADMOB = {} -- create fake object for testing in windows player
 
      self.ADMOB.loadAd = function() end
 
      self.ADMOB.showAd = function() end
 
  end
 
  
  -- LISTENERS
+
self.ADMOB:loadAd("banner", self.ADMOB_UNIT_ID) -- load ad
  self:addEventListener("enterBegin", self.onTransitionInBegin, self)
+
else
  self:addEventListener("enterEnd", self.onTransitionInEnd, self)
+
self.ADMOB = {} -- create fake object for testing in windows player
  self:addEventListener("exitBegin", self.onTransitionOutBegin, self)
+
self.ADMOB.loadAd = function() end
  self:addEventListener("exitEnd", self.onTransitionOutEnd, self)
+
self.ADMOB.showAd = function() end
 +
end
 +
 
 +
-- LISTENERS
 +
self:addEventListener("enterBegin", self.onTransitionInBegin, self)
 +
self:addEventListener("enterEnd", self.onTransitionInEnd, self)
 +
self:addEventListener("exitBegin", self.onTransitionOutBegin, self)
 +
self:addEventListener("exitEnd", self.onTransitionOutEnd, self)
 
end
 
end
  
Line 57: Line 51:
 
function Ads:onTransitionInBegin()
 
function Ads:onTransitionInBegin()
 
end
 
end
 
 
function Ads:onTransitionInEnd()
 
function Ads:onTransitionInEnd()
  self.ADMOB:loadAd("banner", self.ADMOB_UNIT_ID)
 
 
end
 
end
 
 
function Ads:onTransitionOutBegin()
 
function Ads:onTransitionOutBegin()
 
end
 
end
 
 
function Ads:onTransitionOutEnd()
 
function Ads:onTransitionOutEnd()
 
end
 
end
</source>
+
</syntaxhighlight>
  
  
'''Example 2: creating fallbacks with Ads frameworks'''
+
'''Creating fallbacks with Ads frameworks'''
<source lang="lua">
+
<syntaxhighlight lang="lua">
 
--require plugin
 
--require plugin
 
require "ads"
 
require "ads"
Line 99: Line 89:
 
--start displaying amazon ads
 
--start displaying amazon ads
 
amazon:showAd("auto")
 
amazon:showAd("auto")
</source>
+
</syntaxhighlight>
  
 
{|-
 
{|-
 
| style="width: 50%; vertical-align:top;"|
 
| style="width: 50%; vertical-align:top;"|
=== <translate>Methods</translate> ===
+
=== Methods ===
[[Special:MyLanguage/Ads.new|Ads.new]] ''<translate>initializes new ad framework</translate>''<br/><!-- GIDEROSMTD:Ads.new(adframework) initializes new ad framework -->
+
[[Ads.new]] ''initializes new ad framework''<br/><!--GIDEROSMTD:Ads.new(adframework) initializes a new ad framework-->
[[Special:MyLanguage/Ads:enableTesting|Ads:enableTesting]] ''<translate>enable testing ads</translate>''<br/><!-- GIDEROSMTD:Ads:enableTesting() enable testing ads -->
+
[[Ads:checkConsent]] ''triggers consent flow if needed''<br/><!-- GIDEROSMTD:Ads:checkConsent(parameters) triggers consent flow if need -->
[[Special:MyLanguage/Ads:get|Ads:get]] ''<translate>gets property value of the ad</translate>''<br/><!-- GIDEROSMTD:Ads:get(property) gets property value of the ad -->
+
[[Ads:enableTesting]] ''enables testing ads''<br/><!--GIDEROSMTD:Ads:enableTesting() enables testing ads-->
[[Special:MyLanguage/Ads:getHeight|Ads:getHeight]] ''<translate>gets the height of the ad</translate>''<br/><!-- GIDEROSMTD:Ads:getHeight() gets the height of the ad -->
+
[[Ads:get]] ''gets property value of the ad''<br/><!--GIDEROSMTD:Ads:get(property) gets the property value of the ad-->
[[Special:MyLanguage/Ads:getPosition|Ads:getPosition]] ''<translate>gets x and y position of the ad</translate>''<br/><!-- GIDEROSMTD:Ads:getPosition() gets x and y position of the ad -->
+
[[Ads:getHeight]] ''gets height of the ad''<br/><!--GIDEROSMTD:Ads:getHeight() gets the height of the ad-->
[[Special:MyLanguage/Ads:getWidth|Ads:getWidth]] ''<translate>gets width of the ad</translate>''<br/><!-- GIDEROSMTD:Ads:getWidth() gets width of the ad -->
+
[[Ads:getPosition]] ''gets x and y position of the ad''<br/><!--GIDEROSMTD:Ads:getPosition() gets the x and y position of the ad-->
[[Special:MyLanguage/Ads:getX|Ads:getX]] ''<translate>gets x position of the ad</translate>''<br/><!-- GIDEROSMTD:Ads:getX() gets x position of the ad -->
+
[[Ads:getWidth]] ''gets width of the ad''<br/><!--GIDEROSMTD:Ads:getWidth() gets the width of the ad-->
[[Special:MyLanguage/Ads:getY|Ads:getY]] ''<translate>gets y position of the ad</translate>''<br/><!-- GIDEROSMTD:Ads:getY() gets y position of the ad -->
+
[[Ads:getX]] ''gets x position of the ad''<br/><!--GIDEROSMTD:Ads:getX() gets the x position of the ad-->
[[Special:MyLanguage/Ads:hideAd|Ads:hideAd]] ''<translate>hides ads</translate>''<br/><!-- GIDEROSMTD:Ads:hideAd() hides ads -->
+
[[Ads:getY]] ''gets y position of the ad''<br/><!--GIDEROSMTD:Ads:getY() gets the y position of the ad-->
[[Special:MyLanguage/Ads:set|Ads:set]] ''<translate>sets property value of the ad</translate>''<br/><!-- GIDEROSMTD:Ads:set(property,value) sets property value of the ad -->
+
[[Ads:hideAd]] ''hides the ad''<br/><!-- GIDEROSMTD:Ads:hideAd() hides the ad-->
[[Special:MyLanguage/Ads:setAlignment|Ads:setAlignment]] ''<translate>sets alignment of the ad</translate>''<br/><!-- GIDEROSMTD:Ads:setAlignment(horizontal,vertical) sets alignment of the ad -->
+
[[Ads:loadAd]] ''loads the ad''<br/><!-- GIDEROSMTD:Ads:loadAd() loads an ad-->
[[Special:MyLanguage/Ads:setKey|Ads:setKey]] ''<translate>set keys for the framework</translate>''<br/><!-- GIDEROSMTD:Ads:setKey(...) set keys for the framework -->
+
[[Ads:set]] ''sets property value of the ad''<br/><!--GIDEROSMTD:Ads:set(property,value) sets the property value of the ad-->
[[Special:MyLanguage/Ads:setPosition|Ads:setPosition]] ''<translate>sets position of the ad</translate>''<br/><!-- GIDEROSMTD:Ads:setPosition(x,y) sets position of the ad -->
+
[[Ads:setAlignment]] ''sets alignment of the ad''<br/><!--GIDEROSMTD:Ads:setAlignment(horizontal,vertical) sets the alignment of the ad-->
[[Special:MyLanguage/Ads:setX|Ads:setX]] ''<translate>Sets x position of the ad</translate>''<br/><!-- GIDEROSMTD:Ads:setX(x) Sets x position of the ad -->
+
[[Ads:setKey]] ''sets keys for the framework''<br/><!--GIDEROSMTD:Ads:setKey(...) sets the keys for the framework-->
[[Special:MyLanguage/Ads:setY|Ads:setY]] ''<translate>sets y position of the ad</translate>''<br/><!-- GIDEROSMTD:Ads:setY(y) sets y position of the ad -->
+
[[Ads:setPosition]] ''sets position of the ad''<br/><!--GIDEROSMTD:Ads:setPosition(x,y) sets the position of the ad-->
[[Special:MyLanguage/Ads:showAd|Ads:showAd]] ''<translate>display ad</translate>''<br/><!-- GIDEROSMTD:Ads:showAd(...) display ad -->
+
[[Ads:setX]] ''sets x position of the ad''<br/><!--GIDEROSMTD:Ads:setX(x) sets the x position of the ad-->
 +
[[Ads:setY]] ''sets y position of the ad''<br/><!--GIDEROSMTD:Ads:setY(y) sets the y position of the ad-->
 +
[[Ads:showAd]] ''displays the ad''<br/><!--GIDEROSMTD:Ads:showAd(...) displays the ad-->
  
 
| style="width: 50%; vertical-align:top;"|
 
| style="width: 50%; vertical-align:top;"|
=== <translate>Events</translate> ===
 
[[Special:MyLanguage/Event.AD_ACTION_BEGIN|Event.AD_ACTION_BEGIN]]<br/><!-- GIDEROSEVT:Event.AD_ACTION_BEGIN adActionBegin-->
 
[[Special:MyLanguage/Event.AD_ACTION_END|Event.AD_ACTION_END]]<br/><!-- GIDEROSEVT:Event.AD_ACTION_END adActionEnd-->
 
[[Special:MyLanguage/Event.AD_DISMISSED|Event.AD_DISMISSED]]<br/><!-- GIDEROSEVT:Event.AD_DISMISSED adDismissed-->
 
[[Special:MyLanguage/Event.AD_ERROR|Event.AD_ERROR]]<br/><!-- GIDEROSEVT:Event.AD_ERROR adError-->
 
[[Special:MyLanguage/Event.AD_FAILED|Event.AD_FAILED]]<br/><!-- GIDEROSEVT:Event.AD_FAILED adFailed-->
 
[[Special:MyLanguage/Event.AD_RECEIVED|Event.AD_RECEIVED]]<br/><!-- GIDEROSEVT:Event.AD_RECEIVED adReceived-->
 
[[Special:MyLanguage/Event.AD_REWARDED|Event.AD_REWARDED]]<br/><!-- GIDEROSEVT:Event.AD_RECEIVED adReceived-->
 
  
=== <translate>Constants</translate> ===
+
=== Events ===
 +
[[Event.AD_ACTION_BEGIN]]<br/><!--GIDEROSEVT:Event.AD_ACTION_BEGIN adActionBegin-->
 +
[[Event.AD_ACTION_END]]<br/><!--GIDEROSEVT:Event.AD_ACTION_END adActionEnd-->
 +
[[Event.AD_CONSENT]]<br/><!--GIDEROSEVT:Event.AD_CONSENTD adConsent-->
 +
[[Event.AD_DISMISSED]]<br/><!--GIDEROSEVT:Event.AD_DISMISSED adDismissed-->
 +
[[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 ===
 
|}
 
|}
  
 
{{GIDEROS IMPORTANT LINKS}}
 
{{GIDEROS IMPORTANT LINKS}}

Latest revision as of 23:26, 28 August 2023

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 of available ad frameworks. A common ads interface allows users to switch and fall back between ad frameworks at runtime.

More information available in [1](Ads interface guide).

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

	-- LISTENERS
	self:addEventListener("enterBegin", self.onTransitionInBegin, self)
	self:addEventListener("enterEnd", self.onTransitionInEnd, self)
	self:addEventListener("exitBegin", self.onTransitionOutBegin, self)
	self:addEventListener("exitEnd", self.onTransitionOutEnd, self)
end

-- EVENT LISTENERS
function Ads:onTransitionInBegin()
end
function Ads:onTransitionInEnd()
end
function Ads:onTransitionOutBegin()
end
function Ads:onTransitionOutEnd()
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 testing ads
Ads:get gets property value of the ad
Ads:getHeight gets height of the ad
Ads:getPosition gets x and y position of the ad
Ads:getWidth gets width of the ad
Ads:getX gets x position of the ad
Ads:getY gets y position of the ad
Ads:hideAd hides the ad
Ads:loadAd loads the ad
Ads:set sets property value of the ad
Ads:setAlignment sets alignment of the ad
Ads:setKey sets keys for the framework
Ads:setPosition sets position of the ad
Ads:setX sets x position of the ad
Ads:setY sets y position of the ad
Ads:showAd displays the ad

Events

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

Constants