Thumbnail
This article will guide you through all the steps necessary to display an Thumbnail ad in your application.
Thumbnail ads are small rectangle ads that are displayed as overlays to your application content. They are closable and draggable by the user, and can be used to (i) monetize your application through new incremental inventories and (ii) push cross-promotion campaigns.
Prerequisites
Ensure you have registered your application on the Ogury Dashboard. If not, please refer to the Getting Started page before proceeding.
Step 1: Create a Thumbnail ad
Create an Thumbnail ad unit on your asset page in the Ogury Dashboard.
Copy the ad unit ID, as you will need it for integration. It is in the form of a UUID, which consists of a 36-character string formatted as follows:
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
, where eachx
represents a hexadecimal digit.
In the following code samples, this ad unit ID will be represented as xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
.
Step 2: Load a Thumbnail ad
To load a Thumbnail ad, instantiate an OguryThumbnailAd
object and call its load()
method.
By default, the ad loads with a maximum size of 180x180 dp. If needed, you can customize the maximum size by following the guidelines provided in Customizing Thumbnail ad size section.
OguryThumbnailAd
requires the following parameters:
context
: a reference to any kind of Context.adUnitID
: the ad unit ID for the Thumbnail ad. If you do not have one, please refer to the first step to create it.
If you are developing a mediation adapter, you must pass an additional parameter, OguryMediation
which should be instantiated with:
name
: the name of the mediation.version
: the version of the mediation SDK.
Step 3: Register for callbacks
You can monitor the lifecycle of your Thumbnail ad by implementing the OguryThumbnailAdListener
interface. This listener provides real-time updates on key events, such as successful ad loading, display, or errors.
To use it, set the listener on the instance of OguryThumbnailAd
by calling the setListener()
method before invoking the load()
method. Implement the necessary methods in your class to ensure timely notifications, allowing you to manage the ad experience effectively.
If the onAdError
callback is triggered, refer to the Error handling section below for detailed information on troubleshooting.
Step 4: Show a Thumbnail ad
To display an loaded Thumbnail ad, invoke the show()
method on the instantiated OguryThumbnailAd
object.
By default, Thumbnail ad is aligned to the bottom-right corner, maintaining a margin of 20 dp from the right edge and 70 dp from the bottom. For more information on configuring the ad's position, please refer to the Customizing Thumbnail ad position section.
Additionally, a Thumbnail ad stays visible while the user navigates between the activities of your application. It is displayed in an activity only if the first two packages of its class name match the first two packages of the class name of the activity specified in the show()
method. For details on how to customize these default settings using whitelists and blacklists, please see the Customizing Thumbnail ad display section.
The show
method takes the following parameter:
activity
: a reference to theActivity
in which you want to display the Thumbnail ad.
Always verify that the ad is loaded before invoking the show()
method, particularly if you are not calling it from the onAdLoaded
callback.
Step 5: Test your integration
After registering your app, it may take up to 15 minutes before ads are available.
Ogury exclusively serves ads to users who have provided their consent. Before conducting any tests, it is essential to ensure that your implementation complies with applicable privacy regulations. For more information on the regulations supported by Ogury, please visit the Privacy compliance page.
Since our algorithm uses personalized targeting, you may not receive ads during testing. To obtain test ads, you can append _test
to your Thumbnail ad unit ID in the code, for example: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_test
.
For further details on test mode and enabling debug logs, please refer to the Test your implementation page.
Advanced Topics
Customizing Thumbnail ad size
To adjust the size of a Thumbnail ad, use the load()
method with maxWidth
and maxHeight
parameters:
The maxWidth
and maxHeight
parameters specify the maximum dimensions, in dp, that the Thumbnail ad will occupy on the screen.
For optimal readability and ad display quality, we recommend setting maxWidth = 180
and maxHeight = 180
. For instance, if you set these values and the Ogury SDK decides to show a 16:9 video ad, the Thumbnail ad will resize to 180x101 dp to maintain the 16:9 ratio.
Constraints:
maxWidth
andmaxHeight
cannot exceed the device’s screen size.Both
maxWidth
andmaxHeight
must be at least 101 dp.The longest side, either
maxWidth
ormaxHeight
, must be at least 180 dp.
Customizing Thumbnail ad position
To specify the position of a Thumbnail ad, invoke the show()
method with additional parameters: OguryThumbnailGravity, xMargin
and yMargin
.
The show()
method takes the following parameters:
activity
: a reference to theActivity
in which you want to display the Thumbnail ad.gravity
: the corner from which the Thumbnail ad will be positioned. TheOguryThumbnailGravity
enum includes the following values:TOP_LEFT
TOP_RIGHT
BOTTOM_LEFT
BOTTOM_RIGHT
xMargin
: the horizontal distance from the x-axis to the Thumbnail ad, expressed in dp.yMargin
: the vertical distance from the y-axis to the Thumbnail ad, expressed in dp.
Customizing Thumbnail ad display
Customizing in which activities Thumbnail ad is displayed
Thumbnail ad remains on screen while the user navigates across the activities of your application.
By default, a Thumbnail ad is displayed in an Activity
only if the two first packages of its classname match the two first packages of the classname of the Activity
passed as parameter to the show
method.
Example: If you pass com.ogury.game.GameActivity
as parameter of the show
method, the Thumbnail ad will stay on screen in all the activities in the com.ogury
package and all packages at any level under it.
You can override these default settings using whitelists and blacklists.
Whitelist packages:
You can increase the number of whitelisted packages where Thumbnail ads are displayed and stay on screen. This can be useful if you have Activity
provided by a library like a game engine, in this case you need to whitelist the package associated to this library.
Call the setWhiteListPackages
method to whitelist packages:
Blacklist activities:
You can prevent Thumbnail ads from being displayed on a given Activity
by using the setBlackListActivities
method:
The method logWhiteListedActivities
can be used to display all whitelisted activities. It should be called only after setting the whitelist and blacklist.
After calling the method logWhitelistedActivities
, connect your device to Android studio and filter the logs by OGURY
tag. You will see logs that start with Whitelisted:
, for example Whitelisted: com.ogury.HomeActivity
Customizing in which fragments Thumbnail ad is displayed
Filtering by fragments is supported for androidx fragments and v4 support fragments, but is not supported for native fragments. Thumbnail ad needs FragmentLifecycleCallbacks to work and the native fragments have lifecycle callbacks only starting with android 8.
In case the application is based mostly on fragments and there are fragments in which the thumbnail ad should not be displayed, a filtering on fragments instead of activities can be done. In order to change the filtering from activities to fragments, setBlackListFragments
or setWhiteListFragmentPackages
must be called.
By default, a Thumbnail ad is displayed in a Fragment
only if the two first packages of its classname matches the two first packages of the classname of the Activity
passed as parameter to the show
method.
Example: If you pass com.ogury.game.GameFragmentActivity
as parameter of the show
method, the Thumbnail ad will stay on screen as long as a fragment is visible to the user and is part ofcom.ogury
package and all packages at any level under it.
You can override these default settings using whitelists and blacklists.
Whitelist packages:
You can increase the number of whitelisted packages where Thumbnail ads are displayed and stay on screen. This can be useful if you have a Fragment
provided by a library like a game engine, in this case you need to whitelist the package associated to this library.
Call the setWhiteListFragmentPackages
method to whitelist packages:
Blacklist fragments:
You can prevent Thumbnail ads from being displayed on a given Fragment
by using the setBlackListFragments
method:
When fragment filters are set, Thumbnail ad is displayed only if the top activity contains no blacklisted visible fragment and it contains at least one whitelisted visible fragment. This condition is checked every time a fragment's onResume
or onPause
is called and if the condition is not true anymore, Thumbnail ad is hidden.
Error handling
If you are unable to load or display any Thumbnail ads, we recommend logging callbacks from the OguryThumbnailAdListener
to monitor the ad's lifecycle, especially the onAdError
callback. This method provides an OguryAdError
instance containing important error details:
type
: indicates the error type through theOguryAdError.Type
enum, which distinguishes between loading errors (Load
) and showing errors (Show
).code
: An integer that identifies the specific error. Errors that can occur during ad loading or displaying are defined in theOguryLoadErrorCode
andOguryShowErrorCode
classes. Detailed explanations of these error codes are provided in the tables below to assist you in troubleshooting effectively.message
: A descriptive message that provides additional context about the error.
You can utilize these details to diagnose the issue and take appropriate action to resolve it.
OguryLoadErrorCode
Enum value | Description |
---|---|
| The load could not proceed because the SDK appears to have not been started. |
| The load could not proceed because the SDK is not properly initialized. |
| The load could not proceed because there is no active Internet connection. |
| The load could not proceed due to an invalid SDK configuration. |
| The load could not proceed because ads are disabled; the user’s country is not yet available for advertising. |
| The load could not proceed because ads are disabled; the user has denied consent for advertising. |
| The load could not proceed because ads are disabled; the user consent is missing or has not been provided. |
| The load could not proceed because ads are disabled for an unspecified reason. |
| The load failed because the ad request encountered an error, and the server returned an unexpected response. |
| No ad is currently available for this placement (no fill). |
| The ad could not be loaded due to a failure in parsing. |
| The ad could not be loaded due to a failure in ad precaching. |
| The ad could not be loaded as precaching exceeded the time limit and timed out. |
OguryShowErrorCode
Enum value | Description |
---|---|
| The ad could not be displayed because the SDK appears to have not been started. |
| The ad could not be displayed because the SDK is not properly initialized. |
| The ad could not be displayed because there is no active Internet connection. |
| The ad could not be displayed due to an invalid SDK configuration. |
| The ad could not be displayed because ads are disabled; the user’s country is not yet available for advertising. |
| The ad could not be displayed because ads are disabled; the user has denied consent for advertising. |
| The ad could not be displayed because ads are disabled; the user consent is missing or has not been provided. |
| The ad could not be displayed because ads are disabled for an unspecified reason. |
| The ad could not be displayed because the retention time of the loaded ad has expired. |
| No ad has been loaded. |
| The ad could not be displayed because the application was running in the background. |
| The ad could not be displayed because another ad is currently being displayed. |
| The ad could not be displayed because the WebView was terminated by the system, resulting in the ad being unloaded due to high resource consumption by the application. |
Some examples
Show an ad to a user entering your application
You may want to show a Thumbnail Ad to a user as soon as they enter your application.
You can achieve this behavior by using the onAdLoaded
callback to display the Thumbnail Ad as soon as it is displayable. In the onCreate
of the first Activity
you can append the following lines:
You can also use this snippet to display the Thumbnail Ad when the user reaches a given Activity
.
Show an ad after the user scrolled
You may want to delay the display of the Thumbnail Ad until the user scrolls in your content (e.g. in a news feed).
You can achieve this behavior by using the OnTouchListener
of your RecyclerView
. In the onCreate
of the first Activity
you can append the following lines:
Show an ad after the user scrolled X items
In addition to the previous example, you may want to delay the display of the Thumbnail Ad until the user reached a given item in the feed.
You can achieve this behavior by using the OnTouchListener
and the layout manager to determine which items are being displayed. In the onCreate
of the first Activity
you can append the following lines:
Last updated