Difference between revisions of "Ads"

From GiderosMobile
 
(10 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
 +
<!-- 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/>
  
<languages />
+
=== 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.
'''<translate>Supported platforms</translate>:'''<br/>
 
'''<translate>Available since</translate>:''' Gideros 2011.6<br/>
 
'''<translate>Inherits from</translate>:''' [[Special:MyLanguage/EventDispatcher|EventDispatcher]]<br/>
 
 
 
=== <translate>Description</translate> ===
 
<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.
 
 
 
Additionally it would be able to support multiple ad frameworks simultaneously so users could switch and fall back between ad frameworks on runtime.
 
  
 
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>
 
 
=== <translate>Examples</translate> ===
 
'''Example 1: Admob'''<br/>
 
  
<source lang="lua">
+
=== Examples ===
 +
'''Admob'''
 +
<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')
        self.ADMOB:setAlignment('center', 'top')
+
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'''
 
  
<source lang="lua">
+
'''Creating fallbacks with Ads frameworks'''
 +
<syntaxhighlight lang="lua">
 
--require plugin
 
--require plugin
 
require "ads"
 
require "ads"
Line 100: Line 89:
 
--start displaying amazon ads
 
--start displaying amazon ads
 
amazon:showAd("auto")
 
amazon:showAd("auto")
</source>
+
</syntaxhighlight>
<br/>
 
  
 
{|-
 
{|-
 
 
| style="width: 50%; vertical-align:top;"|
 
| style="width: 50%; vertical-align:top;"|
 
+
=== Methods ===
=== <translate>Methods</translate> ===
+
[[Ads.new]] ''initializes new ad framework''<br/><!--GIDEROSMTD:Ads.new(adframework) initializes a new ad framework-->
[[Special:MyLanguage/Ads.new|Ads.new]] ''<translate>initializes new ad framework</translate>''<br/><!-- GIDEROSMTD:Ads.new(adframework) initializes new ad framework -->
+
[[Ads:checkConsent]] ''triggers consent flow if needed''<br/><!-- GIDEROSMTD:Ads:checkConsent(parameters) triggers consent flow if need -->
[[Special:MyLanguage/Ads:enableTesting|Ads:enableTesting]] ''<translate>enable testing ads</translate>''<br/><!-- GIDEROSMTD:Ads:enableTesting() enable testing ads -->
+
[[Ads:enableTesting]] ''enables testing ads''<br/><!--GIDEROSMTD:Ads:enableTesting() enables testing ads-->
[[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:get]] ''gets property value of the ad''<br/><!--GIDEROSMTD:Ads:get(property) gets the property value of the ad-->
[[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:getHeight]] ''gets height of the ad''<br/><!--GIDEROSMTD:Ads:getHeight() gets the height 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: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:getWidth|Ads:getWidth]] ''<translate>gets width of the ad</translate>''<br/><!-- GIDEROSMTD:Ads:getWidth() gets width of the ad -->
+
[[Ads:getWidth]] ''gets width of the ad''<br/><!--GIDEROSMTD:Ads:getWidth() gets the width 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:getX]] ''gets x position of the ad''<br/><!--GIDEROSMTD:Ads:getX() gets the x position 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:getY]] ''gets y position of the ad''<br/><!--GIDEROSMTD:Ads:getY() gets the y position of the ad-->
[[Special:MyLanguage/Ads:hideAd|Ads:hideAd]] ''<translate>hides ads</translate>''<br/><!-- GIDEROSMTD:Ads:hideAd() hides ads -->
+
[[Ads:hideAd]] ''hides the ad''<br/><!-- GIDEROSMTD:Ads:hideAd() hides 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:loadAd]] ''loads the ad''<br/><!-- GIDEROSMTD:Ads:loadAd() loads an 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:set]] ''sets property value of the ad''<br/><!--GIDEROSMTD:Ads:set(property,value) sets the property value of the ad-->
[[Special:MyLanguage/Ads:setKey|Ads:setKey]] ''<translate>set keys for the framework</translate>''<br/><!-- GIDEROSMTD:Ads:setKey(...) set keys for the framework -->
+
[[Ads:setAlignment]] ''sets alignment of the ad''<br/><!--GIDEROSMTD:Ads:setAlignment(horizontal,vertical) sets the alignment 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:setKey]] ''sets keys for the framework''<br/><!--GIDEROSMTD:Ads:setKey(...) sets the keys for the framework-->
[[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:setPosition]] ''sets position of the ad''<br/><!--GIDEROSMTD:Ads:setPosition(x,y) sets the position of the ad-->
[[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:setX]] ''sets x position of the ad''<br/><!--GIDEROSMTD:Ads:setX(x) sets the x position of the ad-->
[[Special:MyLanguage/Ads:showAd|Ads:showAd]] ''<translate>display ad</translate>''<br/><!-- GIDEROSMTD:Ads:showAd(...) display 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> ===
+
=== Events ===
[[Special:MyLanguage/Event.AD_ACTION_BEGIN|Event.AD_ACTION_BEGIN]]<br/><!-- GIDEROSEVT:Event.AD_ACTION_BEGIN adActionBegin-->
+
[[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-->
+
[[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-->
+
[[Event.AD_CONSENT]]<br/><!--GIDEROSEVT:Event.AD_CONSENTD adConsent-->
[[Special:MyLanguage/Event.AD_ERROR|Event.AD_ERROR]]<br/><!-- GIDEROSEVT:Event.AD_ERROR adError-->
+
[[Event.AD_DISMISSED]]<br/><!--GIDEROSEVT:Event.AD_DISMISSED adDismissed-->
[[Special:MyLanguage/Event.AD_FAILED|Event.AD_FAILED]]<br/><!-- GIDEROSEVT:Event.AD_FAILED adFailed-->
+
[[Event.AD_ERROR]]<br/><!--GIDEROSEVT:Event.AD_ERROR adError-->
[[Special:MyLanguage/Event.AD_RECEIVED|Event.AD_RECEIVED]]<br/><!-- GIDEROSEVT:Event.AD_RECEIVED adReceived-->
+
[[Event.AD_FAILED]]<br/><!--GIDEROSEVT:Event.AD_FAILED adFailed-->
[[Special:MyLanguage/Event.AD_REWARDED|Event.AD_REWARDED]]<br/><!-- GIDEROSEVT:Event.AD_RECEIVED adReceived-->
+
[[Event.ADS_READY]]<br/><!--GIDEROSEVT:Event.ADS_READY adsReady-->
 
+
[[Event.AD_RECEIVED]]<br/><!--GIDEROSEVT:Event.AD_RECEIVED adReceived-->
=== <translate>Constants</translate> ===
+
[[Event.AD_REWARDED]]<br/><!--GIDEROSEVT:Event.AD_REWARDED adRewarded-->
  
 +
=== Constants ===
 
|}
 
|}
  
{{Ads}}
+
{{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