Any reason why players don't see Ads?

Hello there,

My question is a bit difficult to answer I guess, but I’m a bit curious about my situation:
I have a game for Android using Unity Ads. It works fine as far as I can tell, however there is a huge gap between the number of players that I see in my analytics tool and the number of players seeing (/skipping ads). Specifically, I know I have coded to show a skippable ad every 20 “level start” events. However for example today there has been more than 2000 “level starts” spread amongst 68 users, but only 15 ads viewed/skipped, spread amongst 6 players. Sometimes the difference is even more questioning.

Does anyone has any idea why so few people end up seeing ads? and is there anything I can do to improve my situation?

How do you control when to show ad, just randomly? Can you share any code?

/Rasmus

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! :slight_smile:
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).

I have included the “Ad failed” event in my most recent build but have not picked it once (the recent build is being used by 30%+ of the players). So far today I still get this kind of results:

  • Level start: 1900+ events, 69 users
  • Ad skipped: 5 events, 3 users
  • Ad viewed: 1 event, 1 user

Any clue as to what may be happening? :frowning:

Did you ever find a solution to this?

I believe I’m seeing this exact same issue in my game “Just Ski”. (Unity Ads Statistics. No impressions but I KNOW there are impressions. - Unity Services - Unity Discussions)

What I know so far is I get ads on some devices, but not others. Not sure if this is an Android version issue or something else.

When I tested on a Galaxy Tab running Android 6.1, ads work. When I tested on a Pixel XL running latest Android they did NOT work. Also did not work on a Galaxy phone running Android 7.x.

I don’t have a lot of test devices, but possibly newer devices/android versions have issues??

Hello there!

No I’m still wondering what is happening. The players do on average 30 “level starts” per day, and because of my “1 ad / 20 levels started” rule I should get pretty much as many “ad viewed + ad skipped” events as I have users but the results are totally different. Today is weirdly a bit better actually, I’ll monitor and see if maybe it got improved suddenly.