Neues AdMob SDK - war jemand erfolgreich?

  • 21 Antworten
  • Neuester Beitrag
Diskutiere Neues AdMob SDK - war jemand erfolgreich? im Android App Entwicklung im Bereich Betriebssysteme & Apps.
K

ko5tik

Stammgast
Hallo alle,

Ich versuche gerade mit dem neuen GoogleAdMobSDK, mit mäßigen Erfolg

Ich gave meinen AdView definitert:
Code:
<?xml version="1.0" encoding="utf-8"?>
<com.google.ads.AdView xmlns:android="http://schemas.android.com/apk/res/android"
                       xmlns:colors="http://schemas.android.com/apk/res/de.pribluda.games.android.colors"
                       android:id="@+id/ad"
                       android:visibility="visible"
                       android:layout_width="fill_parent"
                       android:layout_height="wrap_content"
                       android:layout_alignParentTop="true"
                       colors:adUnitId="hier den richtigehn Publisher-Id setzen"
                       colors:adSize="1"
        />
Attributen habe ich brav in meinen attrs.xml definiert:
Code:
    <!-- attempt to passs value to adview -->
    <declare-styleable name="com.google.ads.AdView">
        <attr name="adUnitId" format="string"/>
         <attr name="adSize" format="integer"/>     
    </declare-styleable>
Jetzt wird nicht mehr geschimpft über Fehlende Attributen, aber auch keine Werbung angezeigt...

Hat es jemand mit Hilfe von XML-AdView geschafft?

Dank im Voraus
 
Zuletzt bearbeitet:
K

ko5tik

Stammgast
Nachtrag: mann muss jetzt die Banner wohl selber bestellen:

Code:
        // TODO: this sucks....
        // fire up ad display
        AdView av = (AdView) findViewById(R.id.highscoreAd);
        av.loadAd(new AdRequest());
Irgendwie ist es ziemliche Fummelei...
 
K

ko5tik

Stammgast
Zusammenfassung:

Neues SDK ist kleiner ( 98K anstatt 138K ) - positiv, like
Programierung notwendig - this sucks, aber noch mehr Einstellungsmöglichkeiten
Konfiguration anders - neutral ( Nicht mehr im Manifest, dafür Site-ID separat pro AdView einstelbar )
Dokumanetation ist suboptimal und lasst sich nicht googeln - aber das ist man von Google gewöht ;)
 
M

miha

Erfahrenes Mitglied
Mich interessiert nach kurzem Überfliegen der Seite:

Geht es mit Android 1.5 und 1.6? (Im Forum schreibt jemand von Crashes!) Ich habe deutlich mehr 1.5/1.6 User laut Statistics als der Durchschnitt.

Funktioniert es mit Proguard? (Ich vermute man muss nur die richtigen Sachen noch zur cfg dazutun was derjenige mit Problemen im Forum nicht hinbekommen/versucht hat.) Ohne Proguard sind mir meine apks zu groß.

Hast du das probiert? Bevor ich das weiss investiere ich da keine Zeit wenn ich nicht muss :)
 
K

ko5tik

Stammgast
Es soll ab 1.5 Laufen,
aber der Aufwand es anzupassen ist mir m,omentan zu groß - ich bleibe erstmal bei dem alten. Zu Proguard kann ich nicht sagen, aber bei dem dekompilieren habe ich gesehen das es bereits obfuscated ist
 
W

wilco

Fortgeschrittenes Mitglied
Hast Du es denn jetzt zum Laufen gebracht, d.h. wird Werbung angezeigt? Ich hab's bisher sowohl ohne als auch mit Demo Modus versucht, aber mit dem neuen SDK noch keine Anzeige auf's Display gebracht.

Was mir nicht so ganz klar ist ist wo ich jetzt die Publisher-ID übergebe.

Auch habe ich gesehen dass es ja jetzt verschiedene Banner-Größen gibt, speziell angepasst auf Tablets. Hast Du das schon zum Laufen gebracht?
 
K

ko5tik

Stammgast
PUblische ID wird im XML gesetzt ( adUnitId ) , werbung wird angezeigt, aber um die Updates muss man selber kummern. Da ich mit Tablets nicht zu tun habe, habe ich es nicht getestet.

Grüß,
 
K

ko5tik

Stammgast
Ooops:
Code:
03-21 21:23:36.363: INFO/Ads(28739): Received ad url: <"url": "http://r.admob.com:80/ad_source.php?preqs=6&u_sd=1.5&u_w=480&slotname=a14b9fca4143c4a&msid=de.pribluda.games.android.colors&js=afma-sdk-a-v4.0.2&isu=BF25E88F70F80EB8AF4ACD7AED5A8D5F&format=320x50_mb&net=ed&app_name=4.0.2.android.de.pribluda.games.android.colors&hl=de&u_h=854&u_so=p&u_audio=1&prl=2629&output=html&region=mobile_app&u_tz=-60&ex=1&client_sdk=1&askip=1", "afmaNotifyDt": "null">
03-21 21:23:36.418: DEBUG/cache(28739): trim cache if needed
03-21 21:23:37.128: INFO/global(28739): Default buffer size used in BufferedReader constructor. It would be better to be explicit if an 8k-char buffer is required.
03-21 21:23:37.152: DEBUG/WebCore(28739): FrameLoaderClientAndroid[0x2f0ed0]::canHandleRequest() to closePluginWindow()
03-21 21:23:37.167: DEBUG/cache(28739): mDataBase.getCache() for url http://www.gstatic.com/afma/google-mobile-app-ads.js len=14835
03-21 21:23:37.497: DEBUG/skia(28739): >>>>>>>: CacheBuilder::BuildFrame(()
03-21 21:23:37.503: DEBUG/skia(28739): >>>>>>> WebViewCore::updateFrameCache()--2--cachedFocusNode=0; (nodePointer=0x0); m_frameCacheKit=0x556040; m_updatedFrameCache=1
03-21 21:23:37.511: WARN/dalvikvm(28739): threadid=33: thread exiting with uncaught exception (group=0x4001e2e0)
03-21 21:23:37.519: ERROR/AndroidRuntime(28739): Uncaught handler: thread AsyncTask #5 exiting due to uncaught exception
03-21 21:23:37.527: ERROR/AndroidRuntime(28739): java.lang.RuntimeException: An error occured while executing doInBackground()
        at android.os.AsyncTask$3.done(AsyncTask.java:200)
        at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
        at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
        at java.util.concurrent.FutureTask.run(FutureTask.java:137)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
        at java.lang.Thread.run(Thread.java:1096)
        Caused by: android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
        at android.view.ViewRoot.checkThread(ViewRoot.java:2738)
        at android.view.ViewRoot.requestLayout(ViewRoot.java:565)
        at android.view.View.requestLayout(View.java:8029)
        at android.view.View.requestLayout(View.java:8029)
        at android.view.View.requestLayout(View.java:8029)
        at android.view.View.requestLayout(View.java:8029)
        at android.widget.RelativeLayout.requestLayout(RelativeLayout.java:255)
        at android.view.View.requestLayout(View.java:8029)
        at android.view.View.setFlags(View.java:4417)
        at android.view.View.setVisibility(View.java:3028)
        at c.a(Unknown Source)
        at c.doInBackground(Unknown Source)
        at android.os.AsyncTask$2.call(AsyncTask.java:185)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
        ... 4 more
Damit ist Update für mich gestorben.

Kotz-und-repository-rewert ;)
 
W

wilco

Fortgeschrittenes Mitglied
Danke für die Warnung. Wo ist das denn aufgetreten? Einfach zwischendurch zur Laufzeit oder wenn Du eine bestimmte Aktion wie z.B. loadAd() ausführst?
 
K

ko5tik

Stammgast
Bei dem Ad-Refresh, und eventuell bei LoadAd ( Stacktrace ist nicht unbedingt aussegefähig )
 
C

computer_freak

Fortgeschrittenes Mitglied
Hallo, ich habe auch ein paar probleme mit admob:

Das Admob 4eck wird nicht angezeigt!

Mein layout code:
Code:
<LinearLayout /*...*/>	<com.google.ads.AdView 
						xmlns:android="http://schemas.android.com/apk/res/android"
                       	xmlns:colors="http://schemas.android.com/apk/res/engrave.imageswap"
                       	android:id="@+id/AdView"
                       	android:layout_width="fill_parent"
                       	android:layout_height="wrap_content"
                       	android:visibility="visible"
                       	colors:adUnitId="a14d864eacdc935"
                       	colors:adSize="1" />   
</LinearLayout>
Code:
<?xml version="1.0" encoding="utf-8"?>
<resources>
...
	
	<declare-styleable name="com.google.ads.AdView" >
        <attr name="adUnitId" format="string" />
        <attr name="adSize" format="integer" />     
	</declare-styleable>    
</resources>
Code:
oncreate:

		theAdView = (AdView) findViewById(R.id.AdView);
		theAdView.loadAd(new AdRequest());

Im main.xml / Graphical View wirds korrekt angezeigt, naja, zumindest "Ads by Google", es wird dort erkenntlich gemacht, dass es da ist, das control.

Starte ich die app jedoch, so ist keine spur von dem Control!
 
Zuletzt bearbeitet:
C

coolsmile

Neues Mitglied
Ich habe das gleiche Problem wie computer_freak. Ist da jemand weitergekommen?
Danke
 
W

wilco

Fortgeschrittenes Mitglied
Hier gibt es eine schöne Schritt für Schritt Anleitung zum Thema. Mit dem neuen SDK sehen die Schritte etwas anders aus, da fehlen Dir oben noch ein paar.

Du musst noch eine Activity definieren, die Banner Größe festlegen, einen AdRequest erstellen, manuell das Laden einer Anzeige triggern etc. Steht aber alles recht schön in der Anleitung beschrieben.

Zum Testen würde ich auf jeden Fall per
Code:
request.addTestDevice(AdRequest.TEST_EMULATOR);
festlegen dass Deine App auf dem Emulator eine Test-Anzeige zeigt. Ansonsten kann es sein dass Du alles richtig machst, und trotzdem keine Anzeige dargestellt wird - schlicht und ergreifend weil AdMob Dir momentan gerade keine liefern kann.
 
DieGoldeneMitte

DieGoldeneMitte

Experte
Ist vielleicht ein bisserl OT, aber ich würde ja gerne mal wissen, ob jemand (als Entwickler) schon mit der Problematik zu tun hatte, dass einige Werbeparter sich per WAP die Handynummer holen und irgendwelche Abos abrechnen.

Geht es da nur um bestimmte Werbebannerbetreiber?
Kann man als Entwickler etwas dagegen tun?
 
W

wilco

Fortgeschrittenes Mitglied
DieGoldeneMitte schrieb:
Ist vielleicht ein bisserl OT, aber ich würde ja gerne mal wissen, ob jemand (als Entwickler) schon mit der Problematik zu tun hatte, dass einige Werbeparter sich per WAP die Handynummer holen und irgendwelche Abos abrechnen.
Ja, und das ist sehr nervig zu sehen wenn man für seine Apps auf einmal Kommentare bekommt wie "Enthält Abzocke Werbung". Das Problem existiert übrigens nicht nur in Deutschland sondern quer über halb Europa.

DieGoldeneMitte schrieb:
Geht es da nur um bestimmte Werbebannerbetreiber?
Kann man als Entwickler etwas dagegen tun?
Als Entwickler bist Du da relativ machtlos. Das ist ja das frustrierende daran. Bei AdMob hast Du z.B. die Möglichkeit bestimmte URLs auszuschliessen (z.B. alle Anzeigen die auf AboAbzocke.de verweisen). Woher sollst Du jetzt allerdings wissen wo in ganz Europa die Betrüger sitzen und welche URLs sie verwenden.

Als zweites hast Du die Möglichkeit bestimmte Anzeigen-Kategorien auszuschliessen. Z.B. kannst Du sagen Du möchtest in Deiner App keine Anzeigen zum Thema Abos und keine zum Thema Religion sehen. Allerdings kontrolliert meines Wissens nach niemand ob die Werbekunden ihre Anzeigen auch in die richtigen Kategorien einsortieren. Und überhaupt gelten z.B. die Filterkriterien bei AdMob nur für Anzeigen aus dem AdMob Netzwerk, nicht aber für Anzeigen aus dem AdSense Netzwerk die AdMob ebenfalls anzeigt.

Ansonsten hast Du als Entwickler keinerlei Möglichkeit festzulegen welche Anzeigen in Deinen Apps angezeigt werden.

Nachdem ich Berichte über einen bestimmten Klingeltonanbieter gesehen habe der offenbar auch Anzeigen in meinen Apps geschaltet hatte, habe ich AdMob entsprechend informiert mit der Bitte um a.) diesen Anzeigenkunden zu überprüfen und b.) eine Möglichkeit einzurichten als Entwickler generell die Weiterleitung auf WAP Seiten sperren zu können.

Leider habe ich nur eine allgemeine Antwort erhalten dass man sich den Anbieter anschauen wird. Keine Reaktion zum WAP Filter.

Alles sehr unbefriedigend. Nichtsdestotrotz denke ich liegt das Hauptproblem bei den Telefonfirmen. Mit der Einführung von WAP Billing haben sie diese Betrugsmöglichkeit ja erst geschaffen. Und ob die Weitergabe der Telefonnummer ohne explizite Einwilligung des Kunden legal ist ist denke ich auch sehr fraglich.

Jeder regt sich über das Thema auf, es gab schon jede Menge Zeitschriftenartikel und zahlreiche Fernsehbeiträge zu dem Thema (von Akte bis WiSo). Vor Gericht hat es meines Wissens nach noch niemand gewagt.
 
DieGoldeneMitte

DieGoldeneMitte

Experte
wilco schrieb:
Alles sehr unbefriedigend. Nichtsdestotrotz denke ich liegt das Hauptproblem bei den Telefonfirmen. Mit der Einführung von WAP Billing haben sie diese Betrugsmöglichkeit ja erst geschaffen. Und ob die Weitergabe der Telefonnummer ohne explizite Einwilligung des Kunden legal ist ist denke ich auch sehr fraglich.
Genau! Wenn man mit WAP-Billing Kosten wie bei Premium SMS erzeugen kann, sollten es auch bei der Rechtekontrolle ähnlich gebrandm^Wgekennzeichnet werden.
 
C

coolsmile

Neues Mitglied
Danke, diese Seite habe ich schon mal durchgelesen und sogar den Source Code heruntergeladen, compiliert und ins Gerät gespielt.
Tut es auch nicht.
Ich habe übrigens ein Milestone1.
Das hat bei mir auch schon mal funktioniert, aber ich habe die app etwas umgebaut, und dabei ist mir das kaputtgegangen.
Hat vielleicht jemand eine weitere Idee?
Danke
Alex
 
C

coolsmile

Neues Mitglied
Mein Code sieht wie folgt aus (Ausschnitt aus der Main Activity):
AdView adView = (AdView) this.findViewById(R.id.ad); //new AdView(this, AdSize.BANNER, MY_AD_UNIT_ID);
// Initiate a generic request to load it with an ad
AdRequest rq = new AdRequest();
rq.setTesting (true);
adView.loadAd (rq);

Im XML main Layout ist folgendes eingetragen:
<com.google.ads.AdView
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:id="@+id/ad"
android:layout_width="fill_parent"
ads:adUnitId="ADMOB_PUBLISHER_ID"
ads:adSize="BANNER" ads:loadAdOnCreate="true" android:layout_alignParentBottom="true"
android:layout_height="fill_parent"/>

Vielleicht mache ich ja grundsätzlich auch etwas falsch...
Danke
Alex
 
C

computer_freak

Fortgeschrittenes Mitglied
Coolsmile:
Schoen und gut, aber was ist nun das Problem? ;)
 
C

coolsmile

Neues Mitglied
Das Problem ist, dass bei mir auch nichts angezeigt wird (so wie in den oberen Beitrag von Dir-Computer_freak).
 
Zuletzt bearbeitet:
Ähnliche Themen - Neues AdMob SDK - war jemand erfolgreich? Antworten Datum
4
4
5