Posts by: GetAdRotator
The ultimate AdRotating solution for your Apps and Games, with an entire powerhouse of new features coming in V2
The ultimate AdRotating solution for your Apps and Games, with an entire powerhouse of new features coming in V2
A couple of days ago we pushed up a new version of AdRotator to Nuget, this new 2.1 release (thanks to our awesome new team member Rob Irving) adds the much anticipated Universal app support, this now means that AdRotator supports:
Windows Phone 7
Windows Phone 8
Windows Phone 8.1
Windows Universal apps
So yet again we support the full range of Microsoft’s offerings (not including the XBOX again yet sadly)
Granted this is still using only the native controls provided from each of the Ad Networks we support, but we are working diligently on migrating the WepAPI from V1 but bigger, brighter and better!
Also now that Rob has Joined us, he’s also looking in to full Xamarin / Xamarin forms support.
No timeline as yet for these new features as we all only do this in our spare time but we’ll keep you notified.
There were a few other bugfixes included as well to keep things moving along but no other big features, check the release notes for more info.
We have also just updated our Unity plugin to support the new 2.1 release and add 8.1/Universal support to your Unity games.
Note, we were recently told of a limitation in the Unity plugin that means the control HAS to be on your 1st scene, this is so it can register properly with the native platform. We are now looking in to ways to remove this dependency as we understand this isn’t favourable for some projects. For now, if you don’t want to display ads in your first scene, just disable the control at start-up and enable it later.
We will continue to support and grow out Unity support and if you have any suggestions or things you want to work differently, then either log an issue on our GitHub page or on the VoteIt backlog page 😀
The updated Unity asset can be found here on our GitHub releases page
The only thing of note with Unity’s Universal app support is that it puts BOTH the App.XAML and MainPage.XAML in the shared project, however for Ads to work you do need project specific configuration, so just copy these to each of the universal projects and remove them from the shared project before implementing the control and providers.
(Rob’ll probably kill me for this)
I’d like to introduce Rob Irving our new full fledge member of the AdRotator team, If you want to know more details about him, check out his site here:
We’d like to say a big thank you for the addition of the Universal support, allowing us to support it a lot sooner than we would have.
Thanks Rob! And welcome aboard.
It’s been a while since we were able to dedicate any serious time to the project, we can only apologise for that but both Gergely’s and my time is short these days, still we do what we can. Issues are always answered, comments and feedback are always responded to and if you pester us on twitter we usually retort with some witty comment (well mostly me since I’m British)
But anyway, here we are today and finally some action.
It’s all Unity’s fault but it did give me a kick to update AdRotator with a few things. The major stuff was to resolve some issues that arose with our old Unity plugin and what Unity changed that stopped it working, however we didn’t stop there.
Here’s a summary of what has been updated:
Due to popular demand we have now given you even greater control over how your ads are served in your app or game, there are three modes:
To use this new mode, simply decorate your Ad Providers with the new AdOrder property (as shown below) from 1 onwards (AdOrder of 0 means do not include, same as not setting AdOrder)
<AdDuplex AppId="xxxx" Probability="10" AdOrder="1"/>
With your config XML updated you simple need to set the AdRetrievalMode property of the AdRotator control, either in XAML or in code. (also settable in Unity)
A minor tweak that was requested on the Vote it forums. Now when your app / game starts using the Sliding Ad option, the Ad will both start and refresh off screen. Ads will then start sliding in and our based on your timing settings.
Nothing of too much note, just some performance tweaks and simple bug fixes.
The root cause for the 2.0.1 update was Unity. In testing we found that our plugin we developed had stopped working. This didn’t stop you using AdRotator in your Unity projects for Windows Phone and Windows 8, but it did mean you lost some control in Unity to access / deploy it.
Now it’s back and working and can be found here: http://bit.ly/UnityAdRotator
Using the plugin is very simple:
It may sound like a lot but it only takes a few mins.
Note: if you are installing on Windows 8, there is an extra step to reference certain providers in your App.XAML.cs, check the read-me that opens when you install NuGet for more details
Now AdRotator will run and be controlled from Unity. If you prefer you can always do it manually (everyone has a preference)
That’s all for now, any comments / questions or queries, just post them on the GitHub site as per normal https://github.com/Adrotator/AdrotatorV2 (Feel free to contribute too)
If you have any comments, suggestions then drop them in to the VoteIt page http://www.voteit.com/v/HiHC8jq1MV8wxEW
And as a last call, if you like, use and make money using AdRotator, please think of us and if you can donate to the project. Completely optional of course.
Bye Bye and back to work.
AdRotator is a premium advertising solution that is able to integrate with several Ad Providers for windows platforms, take the Ads for those providers and then rotate or flip through them in a controlled and configured way. It also provides a fall back capability where if any Ad Provider fails to deliver an ad, it will intelligently move on to the next, ensuring that the app or game is always displaying ads.
What really makes AdRotator stand out is that it’s configuration can also be hosted externally to the app on a website or hosting area so that it can be updated without rebuilding or redistributing your application, you can change the ad configuration to match the best paying advertisers at any time and all apps will then be updated to use the new configuration on next use. (A by-product of this, is that you can also use this facility to deliver messages / notices to your apps and keep users informed)
AdRotator primarily targets the major Windows platforms including Windows Phone (7 & 8) and Windows 8, however there are plans to incorporate web based solutions through WinJS and Mono support.
With the release of the V2 solution for AdRotator we have now achieved parity with the aging V1 solution. This also brings several key improvements over V1 including:
[Ad Units are individual ad configurations for Ad Providers which usually target ages, cultures, market segments, etc. These need to be monitored as different Ad Units have different payouts]
There are many more features which can be discovered on the AdRotator site (http://getadrotator.com) or the GitHub Site (https://github.com/Adrotator/AdrotatorV2)
Additionally, if you want to see the roadmap or request future features, then check out the VoteIt page for AdRotator – http://www.voteit.com/v/HiHC8jq1MV8wxEW
Find the example app for this article here on Dropbox: https://db.tt/2FCgAjCh
AdRotator has always supported a core set of Ad Providers but we are always willing to increase and add more providers with sufficient interest. We do our best to include as many as possible on all platforms (provided the Ad Providers support those platforms)
Currently, AdRotator supports the following AdProviders:
(Platform support is only limited by Ad Provider SDK’s and their supported platforms)
Have a provider you would like to see supported, then check the VoteIt page (http://www.voteit.com/v/HiHC8jq1MV8wxEW) and submit it as a suggestion.
Part of the power of AdRotator is the configuration file that controls its operation and what ads to display and when, this configuration gives you several levels of configuration:
For example here’s a basic multi-cultural configuration file for AdRotator:
<?xml version="1.0" encoding="utf-8"?> <AdSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <CultureDescriptors CultureName="en-us"> <AdDuplex AppId="<ID>" Probability="10"/> <PubCenter AppId="<publisherID>" SecondaryId="<AdUnitID>" Probability="80"/> <Inmobi AppId="<ID>" Probability="10"/> </CultureDescriptors> <CultureDescriptors CultureName="fr-fr"> <AdDuplex AppId="<ID>" Probability="10"/> <PubCenter AppId="<publisherID>" SecondaryId="<AdUnitID>" Probability="30"/> <Inmobi AppId="<ID>" Probability="60"/> </CultureDescriptors> <CultureDescriptors CultureName=""> <AdDuplex AppId="<ID>" Probability="33"/> <PubCenter AppId="<publisherID>" SecondaryId="<AdUnitID>" Probability="33"/> <Inmobi AppId="<ID>" Probability="33"/> </CultureDescriptors> </AdSettings>
Breaking down this configuration we can see:
<AdDuplex AppId="" Probability="10"/>
Each provider has its own configuration block which you can have within a culture block as many times as you wish. In here you configure the ID’s required for that provider to deliver ads (most have only one ID, some have multiple, like PubCentre). You can also then set a probability that AdRotator will pick that provider to display its ads, the higher the probability, the more likely it will try and display an ad from that provider. (setting a probability of 0 or no probability means that ad won’t be displayed)
These blocks allow you to target several cultures / regions within a single configuration file. This uses the devices native culture to determine which configuration to use for that region.
AdProviders all have their own home regions (PubCentre – US, Smaato – central Europe) where they have a higher likelihood of delivering ads to your customers
[Note, AdProviders won’t deliver ads if they do not have any suitable ads for your demographic, region or culture. Ad delivery is never guaranteed]
By providing different sections you can selectively configure each provider differently, using either different priorities (probabilities) or even if you use that provider in that region. (Providers are optional, you don’t have to use all of your available providers for all cultures, only those that are likely to give you the most impressions and deliver the best pay-out rates
[Ad Providers pay different rates by market or type of Ad. Impressions are when an ad is delivered by the provider and displayed in your app, which gives a minimal pay-out. Clicks are also monitored by providers which offer higher pay-out rates for user clicks]
Additionally to specifying cultures, there is the default culture (as highlighted above) where no culture is provided. This is the fall back position if the region the users device is set to is not available in your configuration. However it is also just as valid to ship a configuration file with only the default culture. This simplifies your configuration but obviously won’t pay as well as customising it per culture.
Once you’ve configured your file you need to host it in your solution or make it available to AdRotator
One of the biggest features of AdRotator is that you can put your configuration file on an external site (even use the same config for all your apps) and AdRotator will attempt to load it on each launch. If for some reason it can’t it will used a cached version of your configuration until it can update it again.
[Even with hosted configuration, we also recommend deploying a default configuration file with your app, this ensures ads will start from day one even if it cannot contact your external web host for some reason]
Nothing special is required for the file hosting, so long as it is available from the internet and isn’t blocked by firewalls and such.
Several free solutions exist for hosting your file if you don’t have your own web server.
We’ve worked hard over the years to improve the installation of AdRotator and these day’s it’s easier than ever thanks to NuGet.
[If you are not aware of NuGet (where have you been?), then NuGet is a dependency manager able to install and manage external references and dll’s for your solution. It has a vast library of opensource libraries you can access, just check out http://NuGet.Org for more details. Also install the NuGet extension in to Visual Studio or MonoDevelop]
If you open your solution and then Right-Click on References in the Solution Explorer you should see the following dialog:
Clicking on the Manage NuGet Packages option will open the following NuGet package manager (I’ve highlighted some important bits):
Feel free to have a browse through the packages available if you wish. When you’re ready, enter AdRotator in to the search window in the top-right hand corner of the window, ensuring that Stable Only packages are selected in the drop down (NuGet also includes the ability to host dev / alpha / beta backages, to get in progress versions of dependencies). Once you search you should see AdRotator listed in the results. Looking on the right hand side you can see this is the Stable V2 release.
[AdRotator also uses some other dependencies from NuGet itself (Microsoft.bcl references which are portable extensions for .NET), when you see a license prompt appear, simply accept it to continue the installation. The Microsoft.BCL libs use a standard OpenSource license that is free to use.]
On clicking Install, NuGet will download the package and install it directly into your project, adding references and copying important files, including a sample “defaultAdSettings.xml” configuration file for you to modify or replace. Close the NuGet window and when you return to Visual Studio you will also see the implementation instructions for the AdRotator control, these instructions walk you through the rest of the journey to get up and running, here they are in short.
<adrotator:AdRotatorControl x:Name="MyAdRotator" AdHeight="90" AdWidth="728" LocalSettingsLocation="defaultAdSettings.xml" RemoteSettingsLocation="http://<Your Web Site>/defaultAdSettings.xml" AutoStartAds="True" />
[If you wish you can also add the AdRotator control through the designer, we support whichever way you want to do it]
[If an Ad Provider does not exist or is not referenced in your solution, then AdRotator will handle it by ignoring that Ad Providers configuration. Can’t use it if it doesn’t exist!]
And you are done. Just run the project and provided the Ad Dll’s are in place and the configuration in your config XML is correct, you should start seeing Ads in your page.
Now life would be simple if all providers were just DLL’s like they used to be, however that is not the world of today, now we also have WinRT components.
Because we cannot use standard techniques to discover WinRT components (COM is alive and breathing) we need to do a bit extra for AdRotator to be able to use them, just one line mind.
At present two providers we support have upgraded to use WinRT components, these are:
When you use these providers, we need to pass the references for these WinRT components to AdRotator on startup, to do this we simple add an extra line to the Code behind (the .cs files) for the Pages you implement Adrotator on which looks like this:
The readme that comes with AdRotator gives you all the details and code for each provider that does this.
[Just check the namespace for the AdControl itself as some providers use different namespaces for different platforms]
A lot of people ask us questions about using AdRotator on multiple pages in their app or in several locations on a page. Now it’s fine to use several controls throughout your app but unless you are using different configurations then it is better to build a user control and then re-use that throughout your app. It is simply more efficient.
To set up AdRotator in a user control, simply:
Using: Consolas; color: red;">xmlns<span style="font-family: Consolas; color: blue;">:</span><span style="font-family: Consolas; color: red;">local</span><span style="font-family: Consolas; color: blue;">="clr-namespace:PhoneApp3"</span>
Control: &lt;span style="font-family: Consolas; color: blue;"&gt;&lt;Consolas; color: #a31515;"&gt;local<span style="font-family: Consolas; color: blue;">:</span><span style="font-family: Consolas; color: #a31515;">AdRotatorUserControl</span><span style="font-family: Consolas; color: blue;"> /&gt;</span>
This way is more efficient and also means you only need to update the User Control if you wish to change any of the AdRotator properties.
Another very useful feature of AdRotator is that you can setup your very own Ads, in fact we’ve talked to some implementation that only do their own ads.
[In fact we know if at least one implementation where the developer uses AdRotator to sell ad space in their app, they just host the Ad remotely and rotate each ad in]
Implementing a House ad is very easy, in effect it is just another User control in your project.
<DefaultHouseAd SecondaryId="PhoneApp3.MyHouseAd.MyHouseAd1" Probability="90"/>
[The probability setting is completely optional, if you set a probability it will be included in the ad rotation, if you do not set a probability, then it will only be shown if no other ads could be fetched (fallback)]
If you wish to also then place the HouseAd online, they you just need to host it online and then add the Url to the AppID property for the DefaultHouseAd, for example:
<DefaultHouseAd AppId="http://adrotator.apphb.com/SampleRemoteHouseAd.xaml" SecondaryId=" PhoneApp3.MyHouseAd.MyHouseAd1"/>
For an example online House Ad, check the one we include with our example projects here: <a title="AdRotator Sample remote house ad" href="http://adrotator.apphb.com/SampleRemoteHouseAd.xaml" target="_blank">http://adrotator.apphb.com/SampleRemoteHouseAd.xaml</a>
At the time this blog was posted, our Unity editor integration is currently broken, something changed in Unity of late and it no longer works. We are working on it with some help from our community and as soon as it’s working again we’ll update the main site.
So AdRotator still works, it is just our editor integration and build process that isn’t working, meaning you cannot just configure it from Unity itself.
We are working hard to remedy this with the time we have, so keep checking.
This article has been a brief run through the setup of AdRotator. Ignoring the time it takes you to register on all the ad providers and work out the Ad configuration that works for you, you should be up and running in 5 mins.
There are more features currently in the framework and many more planned for the more advanced edge cases for Ad Configuration and rotation, so feel free to check out the voting page for what people are asking for.
If you have any suggestions / improvements or other AdProviders you want us to support, then add it to our Voting page for AdRotator users here: http://www.voteit.com/v/HiHC8jq1MV8wxEW
If you have any issues or want to get in touch, then log an issue on the GitHub site and either we or one of our growing community will be there to help you: https://github.com/Adrotator/AdrotatorV2/issues
Finally, if you are so inclined and want to get involved with this amazing project, then put your hand up, race out and let us know. Were always willing to encourage developers to join in, fork our repo and send us some interesting code!
Here’s hoping you found this little write up useful and happy implementing.
Find the example app for this article here on Dropbox: https://db.tt/2FCgAjCh
With much trepidation, we are pleased to announce that The V2 branch of AdRotator with all it’s under the hood improvements has now been fully released.
This release brings a host of improvements developed in the beta and we have now reached feature parity with the original V1 XAML release.
We have achieved a lot in the V2 timeline, breaking a lot of the shackles from the V1 branch, including:
As ever we strive to improve the framework as much as possible, so we welcome you to add your say in the Feature request page and cast your votes on existing suggestions to help us focus our efforts.
Now this latest release is not without some sorrow, it seems that Unity have changed a few things in their latest releases which has broken our Unity plug-in. AdRotator will still work with XAML projects as you can implement it natively on the platform but it’s not ideal. So we will be working hard to restore this functionality next.
One of the biggest comments (issue maybe) has been our implementation documentations, currently it’s all stacked up on ne or two pages which seems to cause confusion. SO we are also planning on a series of posts to address this documentation gap to cover some of the basic and more sophisticated implementation opions. have an idea for a post? then put it on our feature request page and well answer you. (http://www.voteit.com/v/HiHC8jq1MV8wxEW)
SO on with the show.
One last thing, more of a nice kickback or something to think about. We are working hard on AdRotator and constantly hear great feedback of the many implementations out there.
All we ask is that you help support us by spreading the word and if you are making good on your ads through the use of our framework, then maybe shoot us a bit of kickback though our Donate option on the homepage.
This is NOT mandatory, all we ask is that you think of use while you are kicking back on your yacht while your ad revenue streams in. It all goes to help fund further improvements in the framework. Some very generous teams already have and we are always very appreciative of the additional support!
*Note, with the release of AdRotator V2.0.1, we have updated the Unity install instructions!! – See here for more info
With a great fanfare and loud Harrumph, we are pleased to announce the first Beta of our new V2 AdRotating solution.
Lots of testing and fixes have gone into the beta and we have also now brought forward the sliding ad solution from V1 which works in exactly the same way it did before.
There are still a few outstanding things we are working that we will include in upcoming releases, such as Local house ad support.
In other news Gergely has started work on the WinJS version of AdRotator (now that a certain launch event has passed), so expect more news on that front.
Were proud to announce the release of our Unity3D plug-in for AdRotator. This enables you to use our Windows and Windows Phone AdRotator solution in Unity3D projects for those platforms and configure how AdRotator works directly from the Unity editor.
Using this is simple and goes like this:
And you’re done.
Many thanks to Jared Bienz and his crew over at Microsoft who made the initial release of the Unity plug-in possible!
**Note, check the readme that comes with the AdRotator NuGet package if you intend to use PubCentre, there is an additional step to pass the reference for PubCentre directly to AdRotator which will be needed.
Well have fun and enjoy the latest release and be sure to let us know how you get on.
As a closing note, we’ve been talking about putting a testimonials page on the site to get some feedback for how everyone is using adrotator, what your feelings are on the project and if possible your own advice on Ad Providers and monetisation. Just something to help all devs using the platform make the most out of it that they can. Hopefully everyone will learn something new from everyone else.
Simon (Darkside) Jackson
AdRotator is now also listed on the Windows 8 Services store, thanks to some great help from Gabriel Valdez Malpartida on the Windows team – Our thanks Gabriel.
Following on from the previous post the AdRotator V1 NuGet packages have been updated
On the NuGet package store you will now find:
Grab ’em and let us know what you think. These versions are compatible with the new Unity plug in as well.
If there are no critical issues found we’ll replace the main releases.
We’ve just completed a last overhaul of the V1 version of AdRotator.
There have been several improvements / fixes and updates.
The Beta will be available soon on NuGet once NuGet allows us to upload again (some unknown error they are looking into)
We’re just finishing up the release and will let you know how it goes.
XNA version is almost ready with a few more tweaks to go.
Right, Beta is now up and running on the dropbox link https://www.dropbox.com/
“Time and Tide will tell” or so I’m told.
Strange words for a strange time, both Gergely and I have been mad busy the last few months with work and other projects so updates have been tricky.
That being said we just pushed up a patch release to the Alpha today to NuGet to resolve the following issues:
no much but what we could do given time, will update you again when we get some more meat on the bone
Well it’s been a long time coming but we are really making progress on AdRotator V2.
So as of this week were announcing the first alpha release of AdRotator V2 which is available on NuGet for:
The package is available on NuGet now for you to play and tinker with, it’s stable enough to use in Live projects as far as our testing goes but that’s up to you.
Alpha 1 is our first fully stable build which uses the all new and enhanced XML configuration structure and support for all our existing Ad Providers plus 1 new one Inmobi (want more providers then get voting here!!)
xml version="1.0" encoding="utf-8"?>
The new configuration XML breaks compatibility with the old version but for very good reasons, you can now:
One of the biggest headaches in V1 was that you had to have every ad provider registered in your project even if you weren’t using them, this was also a headache for us since we had to keep updating the NuGet package every time a provider dll was updated.
In V2 we have broken that dependency (in a good way), now:
In the Nuget Package we now only include AdDuplex (since they are on NuGet anyway) by default and you can add as many of the others as you wish.
You can also have just one configuration for all platforms because even if a provider isn’t supported on that platform it will now just ignore it.
Getting on the async bandwagon, AdRotator now fully supports Async on all platforms. This is a huge performance boon and simplifies how we manage the project.
All calls (inc web) are now offloaded and handled correctly coming back so fewer multi-threading issues and better performance (and no UI blocking issues either)
Obviously we’re not stopping there, if you check the backlog we have more high priority items to include, such as:
In the end this will the best AdRotator we can make it and with any luck you will be able to incorporate it just about anywhere (including on your website) 😀
Please direct any Comments or Queries to the AdRotator V2 codeplex site for all to see / discuss