|
FrequentlyAskedQuestions
List of AdWhirl Frequently Asked Questions
General Questions
AdWhirl is a free, open source tool that helps you make more money from your iPhone or Android app. It enables you to serve ads in your app from any number of ad networks as well as your own house ads. By using multiple networks, you can determine which perform best for you and optimize accordingly to maximize your revenue and fill all your inventory.
No. Both the AdWhirl Client SDK and Server code are free to download and use.
No. AdWhirl is a free service to the mobile community, and we believe that it is a necessary component of a healthy mobile ecosystem.
You will receive payments directly from the ad networks you work with. AdWhirl does not have any insight into your business relationships with ad networks and does not have access to your eCPMs or earnings on the ad networks you use.
AdMob has dedicated resources focused on improving the AdWhirl product and looks forward to working with the developer community at large to improve the product.
AdWhirl was acquired by AdMob in 2009. We decided to release it to the open source community so that ad mediation can be transparent and open and unbiased. Developers can review the code and then decide which ad networks to include in their own custom build.
Yes. AdWhirl was built to handle massive amounts of traffic, and many apps that use AdWhirl generate millions of impressions per day, so you shouldn't worry about scalability issues with AdWhirl.
The former is used by AdWhirl to manage the first requests that are sent to the ad networks. These allocation percentages represent the percent of initial ad requests that will be sent to each network. (Please note that your allocation totals must add up to 100% before you'll be able to save your changes.) If these requests come back unfilled, AdWhirl will then roll over to your backfill settings, starting with your #1 priority network, and continuing down. If you'd like to use only priorities, and not percentages, to request ads, you should set 100% of allocations to your #1 priority ad network. This way, all requests will be sent to this network initially, then unfilled requests will be filtered down to your lower-priority backfill networks.
Please check your spam folder to make sure the registration email wasn't accidentally placed there. If you're still unable to find it, you can fill out the "Sign Up" page for new accounts a second time to receive another email.
Please be aware that the password field is case sensitive, so make sure you're typing in your password correctly and with the proper case. If you're still not able to log in, use the "Forgot Password" link to have a password reset email sent to you.
The AdWhirl user forum is the best place to get technical help. Our AdWhirl team actively responds to questions on the forum, and members of the community also participate. You can find it at: http://groups.google.com/group/adwhirl-users. If you believe you've found a bug, you may first want to post it to the forum. If the bug is confirmed, you can report it via this link: http://code.google.com/p/adwhirl/issues/list. For more general questions, you can also write to us at support@adwhirl.com, and we'll get back to you as soon as we can. Getting Started
Most developers can set up AdWhirl in less than an hour. For help getting started, take a look at our walk-through.
Yes. You will need to retrieve the SDKs from each ad network you would like to include in the AdWhirl Open Source Client SDK. We have tested and verified that the SDK libraries for all supported ad networks are compatible with the AdWhirl SDK and have included detailed instructions to make integration easy for these ad networks.
Yes. You will need to register and create accounts with all of the ad networks you want to run within the AdWhirl SDK. You will receive your payment checks and reporting of revenue metrics directly from the individual ad networks.
If you didn't receive a sign-up verification message in your email inbox, please check your junk/spam boxes, especially if you've applied very strict spam filtering options. If you still don't see a verification email, please fill out the sign up form again to receive another email.
You can turn on an ad network after the application is already in the App Store for any ad network whose library you included in your AdWhirl build. That means you don't have to go through the hurdles of updating the application to the App Store. All you have to do is: (1) log into AdWhirl, (2) paste in your credentials for the new ad network, and (3) reconfigure your traffic allocation percentages. Custom Events and Generic Notifications
A Custom Event is a mechanism by which you can allocate traffic to any number of additional ad networks that aren't already featured in AdWhirl. You can use Custom Events to allocate traffic to ad networks that AdWhirl has yet to integrate, to a third party ad server, and to any other specific action you'd like. Custom Events replaced Generic Notifications in AdWhirl after April 29, 2010. They differ from Generic Notifications in that they are truly generic - you can create as many of them as you want - and you have the ability to name each of them. However, because custom events are so generic, you need to specify a function name you want to associate with a particular event to define it (the callback function mentioned below).
A function name is the function that AdWhirl will evoke when it makes a request through a custom event. It is important that you write the function name exactly as it appears in your code. No parameters are needed. For example: jumptapIntersitial and greystripeInterstitial are function names.
Generic Notifications have now been replaced by the more general Custom Events. For older AdWhirl users, you'll notice that the Generic Notifications you set up in the past continue to function and can be managed through the AdWhirl web site. Adding an unlimited number of additional networks can now be done through Custom Events. Help Make AdWhirl Better
1) Clone the source code at http://code.google.com/p/adwhirl/source/list 2) Post changes to 'Source' branch (development branch) and notify the user group 3) AdMob will test these changes and migrate them into the 'download' version (release branch)
It is possible to run on your own server and use MySQL, however, you'll need to change all the function calls to fetch from that difference data source. If you don't run on EC2 and still use SDB you will probably incur significant data transfer costs as all the data is fetched from outside the AWS network.
You can make any changes to the source code and submit new versions.
Yes, your name or company name can be acknowledged in the header of each source file you have modified or created. You may add an attribution or a copyright notice for the additions you have made to AdWhirl or your derivative work, in compliance with the Apache 2.0 license.
For further inquiries, please post a question to our user forum, http://groups.google.com/group/adwhirl-users, and we'll respond as soon as possible. House Ads
Yes. Simply click on the "House Ads" tab in the AdWhirl website after you are signed in. You will be able to create and manage your House Ads and choose which of your apps you'd like to see each House Ad appear in.
You can dedicate a specific share of the inventory available to your House Ads to individual House Ads. Under the "Apps" tab, select one of your applications. Then select "House Ads" along the left-hand side. From here you'll be able to manage which of your House Ads appear within this app, and in what percentages. Technical Questions (Client-Side)
You only have to return the AdWhirl application key. You can optionally implement methods to know when ads are received, when the in-app webview is visible, when users tap on a banner ad (so you can pause games, for example), any many others, including the ability to pass in information so that networks can provide better targeted ads.
You can include as many additional ad networks as you'd like by using the Custom Events feature. You may also modify the AdWhirl Client SDK source to directly support the desired ad network, and, if you so chose, submit your patches to the AdWhirl open source team for possible inclusion in the AdWhirl Client SDK open source distribution.
Yes. You can change the origin of the AdWhirlView frame to any spot you wish. You have full control over that frame and its size, but all of the ad content fits nicely in a 320x50 pixel frame size. The Preview on the AdWhirl website will not reflect these changes.
Yes. The client SDK checks to see if network connectivity is available before allowing any ad requests to run. If no network connectivity is available, no ad requests are made. Therefore, note that since no ad requests are made, no callbacks will be made.
If the ad networks you are using do not support location-based targeting, you will not be able to benefit from this feature. It is also possible that the ad networks SDKs are configured in such a way that they will override any AdWhirl settings. We recommend that you check the documentation of the ad networks' clients.
If the ad networks you are using do not support these settings, you will not be able to benefit from this feature. It is also possible that the ad networks' SDKs are configured in such a way that they will override any AdWhirl settings. We recommend that you check the documentation of the ad networks' clients.
Some ad networks' SDK's include compiled TouchJSON / TouchXML. The way around this is to just include the TouchJSON headers (or TouchXML headers) without building the .m files, so that you don't produce object files that will cause a linker error when the linker tries to link the ad networks' libraries. The TouchJSON headers are included with the AdWhirl iPhone SDK source.
If you're having issues with Pinch Media, it may be because TouchJSON is already included in the library (see question above).
You must first download ad network SDKs and put them in the AdNetworkLibs directory per the setup instructions. Then, click on Info.plist and change the "Bundle Identifier" value to something that your provisioning profile supports (e.g. com.yourcompany.sampleapp). Then, go to the build tab after double-clicking on your application's target and choose a provisioning file + development certificate combo. Lastly, change your Active SDK platform on the upper-left section on XCode to a version of "iPhone Device". You may have to reopen XCode if you're still having issues during the code-sign process or application load process.
Yes. You can refactor the class names of your version of TouchJSON, TouchXML or FMDB and make calls to your refactored classes. In that case, for example, you would no longer run calls to CJSON or CXML, but you'd make calls to your own classes instead (e.g. AWJSON or AWXML). In the meantime, we're providing this feedback to ad networks and urging them to refactor these classes.
When a refresh kicks in, a requestFreshAd call is made automatically. The call will choose an ad network based on the traffic allocation percentages you've applied. An ad request is then triggered. If the ad request fails, the backfill priorities will then be used. If all of these backup sources are used and all ad requests still fail, the SDK will stop fetching ads for this refresh. As a result, you will not see an ad refresh.
AdWhirl currently supports iPhone OS versions 2.2.1 and above, and Android. You can download instructions on how to configure AdWhirl for a specific OS by logging in to your account and visiting the Dev Resources page.
You have full control over the view frame. You will also notice that if you adjust the frame's size to any CGSize (such as 480x50), the frame will adjust accordingly. However, the ad content will still stay at 320x50. Therefore, we recommend that you simply center the view in landscape mode. To do so, adjust the view resizing mask to pad the left and right margins of the view (adWhirlView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin). Also, don't forget to set the clipsToBounds property to YES so that the animation happens within the 320x50 frame and doesn't leak out of that frame.
AdWhirl makes one request per application invocation to the AdWhirl server to retrieve configuration settings, on the first ad request. You can pre-fetch the configuration when the application starts so the configuration is ready when you are ready to show the first ad, hence the ad will show up more quickly. On the iPhone, You can call startPrefetchingConfigurationDataWithDelegate: to start pre-fetching the configuration. On Android, the configuration data is fetched as soon as the AdWhirlLayout is created.
How much bigger your executable will become depends on how many ad networks you include and your build settings (optimization level, debug symbol generation, etc.). You can find out how much the AdWhirl code adds to the size of your application by removing all AdWhirl source files from your build target and commenting out all AdWhirl-related code, then looking at the size of your build product. To find out how much ad network libraries add to the size of your application, remove the adapters from your build target and look at the size of your final build product. As a point of reference: the iPhone sample AdWhirlSDK2_Sample is about 1.1MB when built using the "iPhone Device 3.0" SDK, the "Release" configuration, and with all the ad networks included (AdMob, JumpTap, MdotM, Millennial, Quattro, VideoEgg). Removing all the ad network adapters from the build target, it is about 270 KB. iAds
iAd requires XCode 3.2.3 and AdWhirl version 2.3.0 or above. Please make sure you're building with the most current version of XCode, the most current version of the AdWhirl SDK (available at http://code.google.com/p/adwhirl), and the most recent version of each ad network's SDK. Also verify that you are building for Base SDK 4.0. If you continue to experience errors, please post your question to our user forum: http://groups.google.com/group/adwhirl-users
AdWhirl will intelligently handle this by not requesting iAds on devices that are incapable of displaying them. On devices that are not running iOS 4.0, AdWhirl will zero out the percentage you've assigned to iAd, and will bump up your other percentages to total 100%. For example, if you initially had 50% of ad requests allocated to iAd, 40% to Millennial, and 10% to JumpTap, devices that can't display iAds will make 80% of requests to Millennial and 20% to JumpTap. Because of the way we scale up allocation percentages, you should not set 100% of initial ad requests to iAd. If you do this, no ads will be served on non-iOS 4.0 devices. A useful work-around is to assign a maximum of 99% of ad requests to iAd. We are working on modifying this behavior in future releases of the AdWhirl SDK. AdWhirl will also intelligently remove iAd from your backfill priorities on devices that cannot display iAds.
It's possible that the fill rate on iAd is causing your ad requests to go unfilled. You should take a look at the log output from your app to see whether requests are being made and coming back unfilled. |
I tried adding InMobi?'s keyID and I entered random text and hit the page's "save Changes" button instead of the pop-ups "save changes" and now I have 2 extra bogus entries with InMobi? and no button to delete it :|