Ad Placements and Debugging Tools
This section covers other features that are available with placements. While not a requirement for the AdInMo SDK, we highly recommend you make use of these features.
Impression Validity
To maximize your monetization it’s essential to understand what makes an impression valid. Here is a summary of what makes an impression valid:
Time on screen:
Angle must be less than or equal to 55 degrees, the image must also be facing the camera.
Placement size must be at least 1.5% (coverage).
Occlusion - this relates to blocking the placement e.g. putting a game object in front of placement blocking it from the camera.
NOTES:
We recommend using the debugging tool to help optimise your placements to ensure they are generating valid impressions. For more information on the debugging tool see below.
We recommend always setting your ad placements in places players are most likely to spend time. The SDK now tracks Dwell Time as an attention metric: the time a player spends looking at a valid placement. Optimizing for Dwell Time will drive higher CPMs.
Fill rate
Fill Rate measures the percentage of paid ad impressions from AdInMo’s demand partners. Your game’s fill rate is calculated by dividing the total number of ad requests your game sends by the number of paid ads delivered on behalf of our advertisers. Fill rate, along with CPMs and ad viewability determines your monetization.
Debugging Tools
AdInMo’s debugging tools will help you optimise your placements.
Within Unity Editor go to the top menu, Adinmo > Manager. A new window will open with the debugging tools. Here you can also view your game key, placements and more.
Select ‘Debug Valid Impressions’ and ‘Debug Faults’ either from the popup window or from Adinmo Manager prefab inspector. If you would debug on your device, make sure to select ‘Debug on device’ as well.
This will allow the debug to show you detailed information on the size and angle of the placement relative to the camera, as well as the name of the placement, the aspect ratio and the camera ‘looking’ at it.
Validity will be determined by the green strip on top of the placement. When it turns from green to white will mean the placement has met all criteria and has been on screen for one second - a valid impression has been registered.
Occlusion Test Ignores Layers
Note this feature is only available in Unity SDK 2.0.3 and above. This feature allows you to set specific layers to be ignored by the occlusion test. An example of where this might be used is when a placement has a collision box that may result in impressions being lost. The option can be found on the AdInMo texture component of a placement. This option can be found on the adinmo texture component.
Fail Reason
Placeholder Image
On the AdinmoTexture component there is an option to disable the default placeholder. By default there is an AdInMo placeholder, this will display when no ads are being displayed. You can have your own placeholder image here by checking the disable placeholder option and adding your own to the texture.
Update Adinmo Placements to work with URP
When using a placement prefab in a URP scene, you will notice that the texture doesn’t render properly, and it will appear magenta, this is because the default shader isn’t URP compatible.
To solve this problem, you will need to replace the Default-Material with a URP compatible material:
Right click in your project window and select create/material
Rename it to something appropriate
Select the material, click on the shader box and select Universal Render Pipeline, then an appropriate shader, usually lit or unlit
Then select your prefab, expand the material list on the renderer
Find your material in the popup and select it
The placement should change to non magenta, indicating that it is working
Placement Fit
Through the portal, you can choose from different options how ads will fit on to your placements to maintain creative control. Loose fit will provide the most monetization options and exact fit limited to serving ads that meet the exact size of your ad placement only.
Background Setting
You can set the space around your placement through the portal to better control how it looks in-game. You can choose to do this by colour-matching or shrink the placement to fit the ad.
Android Player Settings
In Unity 2019 and above, you may find that Vulkan is selected by default. The SDK will support Vulkan as of version 2.1.1 and above with recommended Android version 9.0 and above.
Dynamic Ads
AdInMo supports the concept of dynamic ads, these are ad placements that are created programmatically rather than through the Unity editor. This allows AdInMo to support situations where a game developer programmatically creates objects in the game, our SDK supports the concept of then creating the ad unit programmatically once the object has been created. Here’s a simple example of how this works using the AdInMo Unity SDK.
1using UnityEngine;
2public class InstantiationExample : MonoBehaviour
3{
4 // Reference to the Prefab. Drag a Prefab with an AdInMo Texture component attached to it into this field in the Inspector.
5
6 public GameObject myAdinmoPrefab;
7 // This script will simply instantiate the Prefab when the game starts.
8
9 void Start()
10 {
11 // Instantiate at position (0, 0, 0) and zero rotation.
12 Instantiate(myPrefab, new Vector3(0, 0, 0), Quaternion.identity);
13 }
14}
Audio Ads
Add the AdInMo manager prefab to your hierarchy
Add a canvas (you can use any existing canvas) and set a reference resolution. Preferably 1920x1080
Drag and drop the Audio prefab from the Adinmo>prefabs folder
From within the prefab itself you can move the icon around your scene to better fit your game
1static public void SetAudioAdStartedCallback(AudioPlaybackCallback callback)
2
3static public void SetAudioAdFinishedCallback(AudioPlaybackCallback callback)
4
5public delegate void AudioPlaybackCallback()
1AdinmoManager.SetAudioAdStartedCallback(AudioAdStartedPlaying);
2
3 AdinmoManager.SetAudioAdFinishedCallback(AudioAdFinishedPlaying);
4 public void AudioAdStartedPlaying()
5 {
6 Debug.Log("Audio Ad started playing");
7 }
8 public void AudioAdFinishedPlaying()
9 {
10 Debug.Log("Audio Ad finished playing");
11 }