PubCenter Refresh Time?

Aug 24, 2013 at 10:38 PM
Is the PubCenter refresh time set to the 30 seconds minimum by default? I couldn't find the answer in the documentation.
Coordinator
Aug 25, 2013 at 12:23 AM
The defaults for all providers is set by the provider, so if you don't set a value then neither does AdRotator.
PubCenter I believe is 60 seconds by default to rotate to a new ad.

P.S. setting the refresh lower does't guarantee a new ad as the provider will likely do some trickery on their end (to stop abuse) but AdRotator will still make the request.
In V2, we support multiple ad units per provider so it would be possible to have a much shorter refresh time and flip between them.
Aug 25, 2013 at 3:28 PM
Thanks for the info. I can't seem to find the property on the control to set the PubCenter refresh time, but I did find one for Inneractive. Is there another method to change the value for PubCenter?
Coordinator
Aug 25, 2013 at 4:46 PM
Cannot remember off the top of my head but if you cannot see it on the native control then there probably isn't one, we also do refreshes by killing the provider control and creating a new one :D
Sep 3, 2013 at 9:33 AM
I don't see it on the native control. I would rather not kill the control and create a new one. Is it possible you could add in the property?
Coordinator
Sep 3, 2013 at 3:54 PM
PubCenter (and most providers) do not allow you to change the refresh rate that ads are delivered. Internally we can call the Display/Refresh function of a provider as many times as we like but generally this is the same as letting the control run as they safeguard the backend to only deliver ads to a schedule.

We can possibly look to ad a feature to V2 to allow the refresh to be called instead of destroying / recreating the control but we have found negligible difference in doing so and in most cases helps to get a fresh ad.

Do you have any stats or figures to suggest it's better to refresh than recreate or a problem that this is creating?
Sep 3, 2013 at 4:05 PM
Is AdRotator using auto refresh for PubCenter? I am doing it manually every 30 seconds, which is the minimum PubCenter allows. Since PubCenter provides revenue based on impression count, it makes quite a bit of difference when you refresh it at the minimum rate. In fact we saw around 60% increase in revenue when PubCenter is refreshed at the minimum.

The reason I don't want to destroy / recreate the control every 30 seconds is that other ad providers will get no benefit by doing this since their revenue isn't impression based and it is probably better to keep those on the 60 seconds refresh rate.
Sep 17, 2013 at 4:23 PM
we also do refreshes by killing the provider control and creating a new one :D
Looking at the code (V1 Xna,) this appears to be true for PubCenter. It will get Invalidate called (and the AdUnit recreated along with the GeoCoordinateWatcher) whenever the SlidingAdDisplaySeconds times out, which defaults to 10 seconds. I think a lot of the garbage generated by this is unnecessary: it should be able to restart the location watcher and request a new ad instead.
Do you have any stats or figures to suggest it's better to refresh than recreate or a problem that this is creating?
Nothing concrete, but when I integrated the control it seemed to cause a garbage collection stutter every time a PubCenter refresh happenned. I previously had my own combination of PubCenter (older API) and AdDuplex and it didn't have this problem.

Also, poking around the code gave me the distinct impression that the other paid providers do not get refreshed at all (again, I've only looked at V1 Xna). They seem to request a single ad in LoadContent which is only called once. Then, when Invalidate comes around again they're just displaying the same ad as last time.
Coordinator
Sep 18, 2013 at 11:59 AM
I take your point about the GeoCoordinateWatcher, you are right that it is bad practice, will see what we can do to patch that in the final V1 as we move to V2

All providers are destroyed/recreated in the same way as the direct implementations using the WebAPI method, so the only reason you see the same ad is if the provider delivers the same ad, we don't cache the ads from external providers only the house ads.

If you feel like really digging in, then why not get involved with the V2 project, as it's backend is Git it is a lot easier to contribute to.
Sep 18, 2013 at 3:39 PM
All providers are destroyed/recreated in the same way as the direct implementations using the WebAPI method, so the only reason you see the same ad is if the provider delivers the same ad, we don't cache the ads from external providers only the house ads.
Are you sure? Looking at Inneractive and Mobfox, the DrawableGameComponent is never destroyed as it's stored in the static "Current" property. The CreateXXXXControl() method just returns the initially created instance, and inside the component, LoadContent is the only place that calls GetAdWebResponse().
If you feel like really digging in, then why not get involved with the V2 project, as it's backend is Git it is a lot easier to contribute to.
I am interested in getting involved, but when I started integrating it some time ago, the V2 project didn't seem to be ready for Xna use. I've now fairly heavily modded the V1 version, but some of the changes are specific to my needs. I'm happy to contribute what I have in case some of it is useful though.

Anyway, sorry to derail the thread. I just thought I should chime in as in it's current state, the V1 Xna PubCenter implementation is problematic unless your game does not care about garbage collection.