D
Droidspirit
App-Anbieter (In-App)
- 50
Hallo,
ich habe gerade Madvertise & Admob in meine App integriert. Meine App gibt es in 3 verschiedenen Versionen: Eine Lizenz-, eine Kauf- und eine Testversion.
Die Ads sollen nur in der Lizenz-Version angezeigt werden, in den anderen Versionen sollen die Ads gar nicht erst geladen werden.
Das habe ich darüber gelöst, dass jede Activity, in der Ads angezeigt werden sollen, ein FrameLayout besitzt. Wenn es sich um die Lizenz-Version handelt, dann lade ich mittels LayoutInflater die AdView in das FrameLayout. Die Ads werden dann in einer Singleton-Klasse initialisiert.
Da ich mich vorher noch nicht mit Ads auseinander gesetzt habe wollte ich gerne mal in die Runde fragen, ob meine Umsetzung (speziell die Singleton-Klasse) so okay ist.
Z.B. weiß ich nicht genau, ob ich die überschriebenen Methoden des MadvertiseViewCallbackListeners noch ausprogrammieren muß, ob ich noch etwas vergessen oder ob ich noch etwas nicht berücksichtigt habe. Funktionsfähig ist alles soweit ...zumindest im Testbetrieb.
adview.xml
Initialisierung der Ads in einer Activity
Singleton-Klasse
Danke und viele Grüße
ich habe gerade Madvertise & Admob in meine App integriert. Meine App gibt es in 3 verschiedenen Versionen: Eine Lizenz-, eine Kauf- und eine Testversion.
Die Ads sollen nur in der Lizenz-Version angezeigt werden, in den anderen Versionen sollen die Ads gar nicht erst geladen werden.
Das habe ich darüber gelöst, dass jede Activity, in der Ads angezeigt werden sollen, ein FrameLayout besitzt. Wenn es sich um die Lizenz-Version handelt, dann lade ich mittels LayoutInflater die AdView in das FrameLayout. Die Ads werden dann in einer Singleton-Klasse initialisiert.
Da ich mich vorher noch nicht mit Ads auseinander gesetzt habe wollte ich gerne mal in die Runde fragen, ob meine Umsetzung (speziell die Singleton-Klasse) so okay ist.
Z.B. weiß ich nicht genau, ob ich die überschriebenen Methoden des MadvertiseViewCallbackListeners noch ausprogrammieren muß, ob ich noch etwas vergessen oder ob ich noch etwas nicht berücksichtigt habe. Funktionsfähig ist alles soweit ...zumindest im Testbetrieb.
adview.xml
Code:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:mad="http://schemas.android.com/apk/res/de.xxx"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/backgroundCst">
<com.google.ads.AdView
android:id="@+id/admad"
android:layout_width="match_parent"
android:layout_height="wrap_content"
ads:adUnitId="myId"
ads:adSize="BANNER"
ads:loadAdOnCreate="true"
android:layout_gravity="bottom"
/>
<de.madvertise.android.sdk.MadvertiseView
android:id="@+id/madad"
android:layout_width="match_parent"
android:layout_height="wrap_content"
mad:backgroundColor="@color/backgroundCst"
mad:bannerType="mma"
mad:placement_type="inline"
android:layout_gravity="bottom"/>
</FrameLayout>
Initialisierung der Ads in einer Activity
Code:
...
adViewMain = (FrameLayout) findViewById(R.id.adLayoutMain);
if(VERSION == LIZENZVERSION) { // PseudeCode If-Anweisung
LayoutInflater layoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
adViewMain.addView(layoutInflater.inflate(R.layout.adview, adViewMain, false));
AdAdapter.getInstance().initAds(parentActivity);
}
...
Singleton-Klasse
Code:
package de.helper;
import android.app.Activity;
import android.util.Log;
import android.view.View;
import android.widget.FrameLayout;
import com.google.ads.AdRequest;
import com.google.ads.AdView;
import de.R;
import de.madvertise.android.sdk.MadvertiseTracker;
import de.madvertise.android.sdk.MadvertiseView;
import de.madvertise.android.sdk.MadvertiseView.MadvertiseViewCallbackListener;
public class AdAdapter implements MadvertiseViewCallbackListener {
private static AdAdapter instance;
private FrameLayout adLayout;
private MadvertiseTracker mTracker;
private MadvertiseView mMadView;
private AdView mAdmView;
private Activity parentActivity;
public static AdAdapter getInstance() {
if(instance == null) {
instance = new AdAdapter();
}
return instance;
}
public void initAds(Activity parentActivity) {
this.parentActivity = parentActivity;
mMadView = (MadvertiseView) parentActivity.findViewById(R.id.madad);
mAdmView = (AdView) parentActivity.findViewById(R.id.admad);
// AdMob initialisieren
AdRequest adMobRequest = new AdRequest();
mAdmView.loadAd(adMobRequest);
mTracker = MadvertiseTracker.getInstance(parentActivity);
// Report the application's start.
mTracker.reportLaunch();
mMadView.setMadvertiseViewCallbackListener(this);
}
public void onLoaded(final boolean succeed, final MadvertiseView madView) {
if (succeed) {
if (mAdmView.getVisibility() == View.VISIBLE) {
mAdmView.setVisibility(View.GONE);
}
mMadView.setVisibility(View.VISIBLE);
} else {
mMadView.setVisibility(View.GONE);
}
}
@Override
public void onError(final Exception exception) {
}
@Override
public void onIllegalHttpStatusCode(final int statusCode, final String message) {
}
@Override
public void onAdClicked() {
}
@Override
public void onApplicationPause() {
}
@Override
public void onApplicationResume() {
}
}
Danke und viele Grüße
Zuletzt bearbeitet: