Using Ad Server to Manage Banner and Interstitials

I was thinking of using Ad server to manage banner ads in my apps rather than directly using banner codes from various ad network.

There is a free Ad server called mAdserve - Open Source Mobile Ad Server

This is good becoz it already has many integrations in place but it doesn’t have airpush etc. Anyone using madserve with success?

Is there any other Ad server which can do the job?

i had this idea since a long time ago. but the thing is different ad networks use different method to show Interstitials in the code. im not sure about the compatibility

Wow, I was developing exactly this on myself and this is supposed to be part of my thesis , the difference is that I’m implementing house Ads + others ad units (shit with the new policy).

Anyway mAdserver looks good!

Thanks guys. Just wondering if someone we are able to show interstitials from say appbrain. Do we still need to have appbrain SDK besides our own SDK?

been using madserve for a while. its well made php script, easy to customize, but adding additional SDK’s means they need to provide API to get ads, and i got no reply from airpush and appbrain on this matter :frowning:

May I know which ad networks are you using with Madserve right now. I wanted some control over my ads so I can run some of my own offers or cross promote my new games/apps. Can we use smaato Ad server for free?

Lots of people use MoPub - World’s Largest Mobile Ad Server and RTB Exchange for iOS and Android

Its not easy to use but I figured it out in a week or so…

i use inmobi with mobfox,.,but the ecpm is near $0.06 on those two :frowning:

mopub is nice as it lets you control ecpm , you can set only high pay ads but fill rate will be around 50%

Is Mopub totally free to use? I would ideally like to split impressions between airpush banners and my own campaigns.

I noticed mopub has open source SDK which means we can possibly integrate airpush or other network SDKs they dont support. Anyone managed to do this?

It’s free until you hit 100 million requests per month. Writing adapters for other networks is fairly straightforward, I did so for Amazon and Flurry (banners and interstitials).

The only thing I’d like to see would be a way to control distribution by percentage, e.g. “serve 30% MMedia, 50% Amazon, 20% house ads”. Right now it only does “strict” ranking by priority and eCPM that you enter.
Another thing that’s nice is that you can use a special URL format on house ads to trigger intents. You could run your own banner or interstitial that triggers an in-app purchase for example.

Thanks Skurry for explaining it. Is it possible for you to share the customized SDK with me?

Also can we link directly to our apps via house ads using market:// url format?

Here is the code for the adapters that are built into the Mopub SDK: https://github.com/mopub/mopub-android-sdk/tree/master/extras/src/com/mopub/mobileads
As you can see it’s pretty straightforward.

Since you can create HTML house ads, implementing no-SDK ads like Leadbolt’s HTML banner doesn’t even require coding.

For some reason the market:// URL format didn’t work for me, even though I can see it being handled in the Mopub code. What does work however is the http://play.google.com[…] format, it opens the Google Play Store app, and you can link to a specific app or developer.

oh i just remembered i have madserve installed for public use on MobAdsHQ - Android & iOS Ad Networks Management Server if u wanna see the script

Thanks. If I understand correctly. I can place airpushbanner.java or mobilecore.java to make this work with the server?

Yes. All you need to do is write one class that loads the ad, displays the network specific view inside the MoPub view, and delegates the network specific ad events to the MoPub event listener. In MoPub, you then create a “Custom Native Network” and specify the fully qualified class name, so that MoPub can instantiate the correct adapter. If it can’t find it (because the user is running an old version of the app for example), it will mediate and load other networks. Parameters are passed in a JSON-like format that you can set in MoPub (to pass in the publisher ID etc.)

I believe its under Networks > Edit [Network Name] > App Targeting > Your ad Unit > More options

on the right hand side, you can cap frequency of requests and distribute impressions on percentage basis…

I just integrated Airpush to MoPub and it works like a charm. Once you create the new class on mopub sdk (airpush jar included) also is necessary to specify the APPID, APIKEY and browser activity on the manifest of your app. In the MoPub webservice just fill the customer event class (com.mopub.mobileads.NameOfYourClass)

Great. Would you be kind enough to share your code?

@Override
protected void loadBanner(Context context,
CustomEventBannerListener customEventBannerListener,
Map<String, Object> localExtras,
Map<String, String> serverExtras) {
mBannerListener = customEventBannerListener;

    airpushView = new AdView((Activity) context, AdView.BANNER_TYPE_IN_APP_AD, AdView.PLACEMENT_TYPE_INTERSTITIAL,
    		45, false, false, AdView.ANIMATION_TYPE_LEFT_TO_RIGHT);
    airpushView.setAdListener(this);
    airpushView.refreshDrawableState();
    airpushView.setVisibility(AdView.VISIBLE);


  
}

and the listeners…

@Override
public void onAdClickListener() {
Log.d(“MoPub”, “Airpush banner ad clicked.”);
mBannerListener.onBannerClicked();

}

@Override
public void onAdExpandedListner() {
	// TODO Auto-generated method stub
	
}

@Override
public void onAdLoadedListener() {
	  Log.d("MoPub", "Airpush banner ad loaded successfully. Showing ad...");
	mBannerListener.onBannerLoaded(airpushView);
	
}

@Override
public void onAdLoadingListener() {
	// TODO Auto-generated method stub
	
}

@Override
public void onCloseListener() {
// TODO Auto-generated method stub

}

@Override
public void onErrorListener(String arg0) {
       Log.d("MoPub", "Airpush banner ad failed to load.");
        mBannerListener.onBannerFailed(NETWORK_NO_FILL);
	
}

That’s it, no big deal. In fact I found more difficulties on the website than coding…