Hi Rasmus!
So when I load a new level I call:
Fabric.Answers.Answers.LogLevelStart("Level " + buildIndex);
PlayerPreferences.IncrementLevelLoadCount();
So I log the “level start” and I call the following method:
public static void IncrementLevelLoadCount() {
int levelLoadCount = PlayerPrefs.GetInt(LEVEL_LOAD_COUNT);
levelLoadCount++;
if (levelLoadCount >= AdsManager.numberOfLevelLoadsForAd) {
if (AdsManager.Instance != null && AdsManager.Instance.ShowAd()) {
levelLoadCount = 0;
}
}
PlayerPrefs.SetInt(LEVEL_LOAD_COUNT, levelLoadCount);
PlayerPrefs.Save();
}
AdsManager.numberOfLevelLoadsForAd is a const, value is 20.
‘ShowAd’ returns a boolean:
public bool ShowAd() {
if (Advertisement.IsReady("video")) {
var options = new ShowOptions { resultCallback = HandleShowResultAd };
Advertisement.Show("video", options);
return true;
}
return false;
}
In the callback I log if the player viewed or skipped the ad:
private void HandleShowResultAd(ShowResult result) {
switch (result) {
case ShowResult.Finished:
//Debug.Log("The ad was successfully shown.");
Fabric.Answers.Answers.LogCustom("Ad viewed");
break;
case ShowResult.Skipped:
//Debug.Log("The ad was skipped before reaching the end.");
Fabric.Answers.Answers.LogCustom("Ad skipped");
break;
case ShowResult.Failed:
//Debug.LogError("The ad failed to be shown.");
break;
}
}
So as you can see I increment an int ‘levelCount’ from PlayerPrefs everytime I load a level, then if levelCount is above 20 and AdsManager.Instance not null* then I try to show an Ad. If ShowAd successfully showed an Ad then I reset the levelLoadCount.
It’s not as if it doesn’t work. I have tested it and I have impressions, views etc., it really is just than the number of viewed + skipped ads is really low compared to the number of level start events. It should be a factor around 30 on average, but it is always over 150 (I mean that I get at least a 150 times more “level start” than “Ad viewed” + “Ad skipped”)).
As I write this I realize that I should probably start logging when “ShowResult.Failed” happens. But is it possible that it fails that often?
If you have any clue to explain this phenomenon or improve this situation it would be great! 
This is the app in case you want to try: https://play.google.com/store/apps/details?id=com.giyomu.fantasytactics
*I have checked and AdsManager is on each level for sure. I also have a “watch an ad to see the solution” option which I have double checked and works on every level (uses the same AdsManager.Instance).