Remote config XML is not used

Jul 22, 2013 at 2:50 PM
Hello,

I downloaded and integrated the latest stable version for XNA (0.4.0).
Default XML contains all AD providers with same probability.

I put on the remote server config XML file (available via http). Is is available in the browser (as well in the browser of the smartphone).
Remote config file contains only entry for "AdDuplex", but my app still shows different AD (e.g from PubCenter).
Log event shows that local default XML is loaded at the first step, then remote file is downloaded. But in fact delivered AD correspond to the local default XML (not to the remote one).
Remote XML is very simple:
<AdSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<CultureDescriptors>
<AdCultureDescriptor CultureName="default">
<Probabilities Probability="100" AdType="AdDuplex" AppID="#####"/>
</AdCultureDescriptor>
</CultureDescriptors>
</AdSettings>

Any ides how to fix it?

best regards,
Radik
Coordinator
Jul 22, 2013 at 3:39 PM
One issue that another user found was that if your remote xml and your local xml had the same filename it caused a similar issue to the one you mention above.

try renaming your remote file if it is the same.

Hope this helps
Jul 22, 2013 at 3:50 PM
Thanks for your answer.

I read about this possible issue and use different file names.

I also find a little bit weird messages which component provide via "Log" event.
According to these messages the component tries always to read "default" XML file and find appropriate AD. I even receive messages that AD is ready to be displayed. But after that I get immediately a message, that remote file is downloaded and the AD selection process is repeated. But as I mentioned above, the local default XML is used instead (I get messages, that PubCenter, MobFox are ready to be delivered, bu there is only "AdDuplex" in the remote config file).

Is this behavior expected? I just wonder why it doesn't work in the simplest way: check whether remote file is accessible. If yes, use it, if not, load default XML.

I tried to solve the issue, just not providing default XML, but the component gives me message that default XML is not found and that the component is disabled. Is it logical if there is remote XML file available?

best regards,
Radik
Coordinator
Jul 22, 2013 at 4:13 PM
Interesting.

Yes the note about all ad providers being tested is normal as it is just checking things in the backend, though not if you haven't configured them so it's a bit odd.

If you put your config in the sample solutions do you get the same behaviour?

The app should run fine without a local default config, it might indicate that there has been an issue with the client downloading the remote xml. Do you have another place to test hosting the config? Just to rule out the site where it's stored.

Do you also get the same result (without the local config file) in the emulator on a device?
*Note, when using the emulator it's a good idea to test it can browse to the internet first using the in built browser.
Jul 22, 2013 at 7:55 PM
If I put file in the same solution, it works good.

I don't use emulator at all. I do everything using a phone: HTC HD 7.

I reproduce this issue using the test project "BlankXNAProject-LocationAware".

My first test is simple: I adjust default config file: set probability for "AdDuplex" to 100, all other AD providers are set to 0.
There is German location on my phone.
Remote File "http://adrotator.apphb.com/defaultAdSettingsXNALoc.xml" contains only probability 5% for provider "AdDuplex".

When I run the test I see in the logs:
  1. AD is prepared from local default XML. "AdDuplex" is selected. Not surprising, because for local it is set to 100 %.
  2. Remote config file is loaded.
  3. "AdDuplex" is selected.
I repeated it 20 times and always "AdDuplex" was selected. But remote files has only probability 5% for "AdDuplex".
It is at least not expected. I would expect, that if remote file is loaded and is used correctly then another AD provider will be selected as it has more probability.

My second test.
I used my own remote file. This remote file allows only provider "PubCenter".
Local default allows as before only "AdDuplex".

When I run the test I see in the logs:
  1. AD is prepared from local default XML. "AdDuplex" is selected. Not surprising, because for local it is set to 100 %.
  2. Remote config file is loaded.
  3. "AdDuplex" is selected.
Something is wrong.

I find a little bit confusing this xml config-files workflow.
I would prefer to load XML file manually from my server and pass it to the AdRotator component to be sure that it will use only one this XML file.

is there a way to do it?

Thanks.

best regards,
Radik
Coordinator
Jul 23, 2013 at 2:16 PM
Having 5% for just AdDuplex in the remote config file will still mean you will get AdDuplex ads if all the other providers fail to deliver an ad.

The second test is a bit more interesting if you are saying that the local file has only adduplex and the remote has only pubcenter and is showing adduplex.

Might see if I can add some additional logging in the 0.5 release around configuration file use / downloading to see what is going on
Jul 23, 2013 at 2:27 PM
thanks. It would be nice.