Single Tech Games

Admob, Madvertise y LibGDX

Estaba sentado enfrente de mi compu comiendo canchita, viendo mis ingresos en Admob crecer y pensando “esto esta mejor que una película en 3D” 😀 y de pronto la avaricia se me cruzo en mi camino, ¿y como podría hacer para ganar más dinero?, pues una opción es colocarme más publicidad, podría colocarme una pantalla completa al inicio o forzar descargas con LeadBolt para llegar a la final, o quizás poner push notifications o colocarles un icono en el escritorio de Android, pero lo seguí pensando y me preocupo mi ranking, esto para mi es un negocio a largo plazo, me conviene que mis juegos tengan de 4 estrellas a más, poner ads forzosos como los de LeadBolt, por lo menos los push y el icono, te dan malos reviews, la pantalla de inicio no es mala idea, y las descargas forzosas pasando de nivel serían buenas si tuviera mas niveles, pero es un juego corto aunque si las hago no forzosas podría ser una buena opción.
Un poco de investigación después… ok ok es mentira casi después de 3 dias de investigación inspirados por la lujuria y la ambición, me hizo detenerme en el blog de Johannes Borchardt donde combinaba Madvertise y Admob, ¿Que es Madvertise? pues en pocas palabras una empresa que paga mucho más por clics que Admob pero que solo funciona en Europa, bueno mi juego ha pegado en Alemania, España, Italia, Francia, Inglaterra y al final en EEUU, osea como anillo al dedo, los que no son de Europa verán ads de Admob y los europeos los de Madvertise.

Como logras esto en Libgdx, bueno es un poco diferente a Admob, aquí el tutorial, pero no mucho, primero al igual que en el tutorial del mismo Madvertise tenemos que seguir los mismos pasos hasta la parte que dice “Edit your AndroidManifest.xml file”, listo luego de editar el Android Manifest como en el tutorial, escribimos el siguiente código en nuestro aplicativo android:

public class MiJuegoAndroidActivity extends AndroidApplication implements IActivityRequestHandler  {
protected AdView adView;
private MadvertiseView mMadView;
private MadvertiseTracker mTracker;
private final int SHOW_ADS = 1;
private final int HIDE_ADS = 0;
private static final boolean D = true;
protected Handler handler = new Handler()
{
@Override
public void handleMessage(Message msg) {
switch(msg.what) {
case SHOW_ADS:
{
adView.setVisibility(View.VISIBLE);
break;
}
case HIDE_ADS:
{
adView.setVisibility(View.GONE);
break;
}
}
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MadvertiseView.setAge("18-50");//edad delos que pueden ver los ads
MadvertiseView.setGender(MadvertiseView.GENDER_MALE);//Su Sexo
RelativeLayout layout = new RelativeLayout(this);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
View gameView = initializeForView(new TuJuego(this), false);
adView = new AdView(this, AdSize.BANNER, "TuCodigoAqui");
mMadView = new MadvertiseView(this);
mMadView.setMadvertiseViewCallbackListener(new MadvertiseViewCallbackListener() {
@Override public void onLoaded(boolean success, MadvertiseView arg1) {
if (success) {
if(D) {
Log.d(this.getClass().getSimpleName(), "MadAd Recibido");
}
if (adView.getVisibility() == View.VISIBLE) {
adView.setVisibility(View.GONE);
}
mMadView.setVisibility(View.VISIBLE);
} else {
if(D) {
Log.d(this.getClass().getSimpleName(), "MadAd No Recibido");
}
mMadView.setVisibility(View.GONE);
adView.setVisibility(View.VISIBLE);
}
}
@Override
public void onError(Exception exception) {
}
@Override
public void onIllegalHttpStatusCode(int statusCode, String message) {
// TODO Auto-generated method stub
}
@Override
public void onAdClicked() {
// TODO Auto-generated method stub
}
@Override
public void onApplicationPause() {
// TODO Auto-generated method stub
}
@Override
public void onApplicationResume() {
// TODO Auto-generated method stub
}
});
mTracker = MadvertiseTracker.getInstance(this);
mTracker.reportLaunch();
adView.loadAd(new AdRequest());
layout.addView(gameView);
RelativeLayout.LayoutParams adParams =
new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
adParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
adParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
layout.addView(adView, adParams);
layout.addView(mMadView, adParams);
setContentView(layout);

El código anterior ya tenia el admob funcionando, esta fácil de entender, el siguiente es mi Android Manifest

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="paquete.de.tu.juego"
android:versionCode="1"
android:versionName="1.0"
android:installLocation="preferExternal">
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="15"/>
<supports-screens android:smallScreens="false"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:anyDensity="true"/>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".ActivityDeTuJuego"
android:label="Nombre de tu juego"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:configChanges="keyboard|keyboardHidden|orientation"
android:screenOrientation="landscape" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="de.madvertise.android.sdk.MadvertiseActivity"/>
<meta-data android:value="TuCodigoAqui" android:name="madvertise_site_token" />
<activity android:name="android.app.Activity" />
<uses-library android:name="android.test.runner" />
<activity android:name="com.google.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>
<instrumentation android:targetPackage="paquete.de.tu.juego" android:name="android.test.InstrumentationTestRunner" />
</application>
</manifest>

Esto más los tutoriales de Admob y Madvertise debería ser suficiente para hacerlo andar, solo quiero decirles que no lo he probado todavía, obviamente no soy europeo soy peruano y a mi los ads no se me muestran, pero cuando mande la versión 2 del juego la siguiente semana, veremos como va y en caso de irme mal, corrijo este post, no olviden anexar las dependencias de Android para no tener esos errores horribles del nuevo ADB.
update-> Hoy 14/07/2012 me di cuenta que si funciona ya comenze a recibir dinero por publicidad en mi página de Madvertise, si les funciona el testToken, no deberían tener ningun problema.
Suerte!

0 0 votes
Article Rating
Subscribe
Notify of
guest
2 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
rafaelrfz

Hola, vi sobre los diferentes ads que puedes colocar en tu app, y viendo este post de que combinaste 2, admob y madvertise, mi pregunta es si se puede hacer con otros ads puesto que madvertise comentas que ya no son tan serios para realizar los pagos. Y si no esta en contra de las politicas de estos ads de querer usar diferentes en una misma app