Canvas GameObject SetActive Runs Late Or I Am Missing Something Here?

Hi,
i have met a weird problem about the script that i coded here,

public IEnumerator IRequest_RewardedAd_Async()
{
    //1. This part sometimes works sometimes doesnt if i dont add the 2 enumerated code
    ActivateLoadingCanvas();
    yield return googleMobileAdManager.AShowRewardedAd_NoParameter();

    //2. If i don not add this line below then  ActivateLoadingCanvas() works strange and turn off itself.
    yield return new WaitForSeconds(0.1f);
    DeactivateLoadingCanvas();
    RefreshAdRequirements();
    yield return null;
}

the thing that i want to do is set a loading screen till google mobile ad service loads and shows a rewarded ad. And the user turn the ad off, i want that loading screen to turn off itself. When i call this method in another script’s update method, it behaves incorrectly.

Anyone have any suggestions on this topic? Thanks in Advance ^^