Just to update, this works flawlessly. For anyone else that wants to do it the screwy way, here is how:
In my char BP-
The two events on begin play outlined below:
In my char BP-
The above puts an ad in the chamber so it can be called whenever.
In my char BP-
This is the timer. Essentially when the Var trips over to true (the moment an ad can play and reward is requested by the user), this fires once and then sets the var back to false. The ad plays and the game auto-pauses. After the ad, this logic fires off. I show a reward widget that lasts a few seconds and then it gives a diamond reward (yours can be whatever). I have tested closing the game during the ad and the reward is not received, so that’s a plus.
The second branch at the bottom will be a different reward, so yes, I would need to duplicate all this logic and have a different var for each. I will accept criticism on that method. maybe I could do it with a struct? Another experiment for another time…
This is what is in my UI -
That fires off this event:
In my char BP-
Here is where the var trips to true. I throw up a widget that is just black background because ads don’t take up the notch area and I don’t want part of the game showing on phone notch areas. If there is a better way, I’m all ears. You can see I’m doing the “load advert” event everywhere and all the time. I don’t know why, but if I don’t, I’m not always guaranteed an ad.
So, I would need to duplicate the ShowAdvertUI event and put a new bool var in there for the second reward. Then, as I said already above, add to the second branch on the rewards event/timer whatever widget and reward, then set the second var back to false.
Note that all of the rewards I’m working with here are consumable. My cloud game saves restore whatever progress they have made from Google. My only non-consumable is a “remove ads” purchase, so That’s the only thing I have to worry about in terms of restoring purchases.
I don’t know if any of that make sense, but it works for me, and hopefully it helps someone else do it the crazy way.