0

I implemented AdWhirl in my app. AdWhirl should show MillennialMedia and AdMob ads. A ad should be displayed for 30 seconds. But AdWhirl tries very often to rotate the ad.

07-12 15:35:08.193: DEBUG/AdWhirl SDK(3099): Showing ad:
07-12 15:35:08.193: DEBUG/AdWhirl SDK(3099):     nid: 867085576acb41328c1ba5f9d9b57f02
07-12 15:35:08.193: DEBUG/AdWhirl SDK(3099):     name: millennial
07-12 15:35:08.193: DEBUG/AdWhirl SDK(3099):     type: 6
07-12 15:35:08.193: DEBUG/AdWhirl SDK(3099):     key: 36973
07-12 15:35:08.193: DEBUG/AdWhirl SDK(3099):     key2: 
07-12 15:35:08.193: DEBUG/AdWhirl SDK(3099): Valid adapter, calling handle()
07-12 15:35:08.213: INFO/MillennialMediaAdSDK(3099): No incomplete downloads.
07-12 15:35:08.213: INFO/MillennialMediaAdSDK(3099): Last ad name is null. Call for new ad.
07-12 15:35:08.223: INFO/MillennialMediaAdSDK(3099): Making ad request
07-12 15:35:08.223: DEBUG/AdWhirl SDK(3099): Showing ad:
07-12 15:35:08.223: DEBUG/AdWhirl SDK(3099):     nid: 867085576acb41328c1ba5f9d9b57f02
07-12 15:35:08.223: DEBUG/AdWhirl SDK(3099):     name: millennial
07-12 15:35:08.223: DEBUG/AdWhirl SDK(3099):     type: 6
07-12 15:35:08.223: DEBUG/AdWhirl SDK(3099):     key: 36973
07-12 15:35:08.223: DEBUG/AdWhirl SDK(3099):     key2: 
07-12 15:35:08.223: DEBUG/AdWhirl SDK(3099): Valid adapter, calling handle()
07-12 15:35:08.233: INFO/MillennialMediaAdSDK(3099): No incomplete downloads.
07-12 15:35:08.243: INFO/MillennialMediaAdSDK(3099): Last ad name is null. Call for new ad.
07-12 15:35:08.253: INFO/MillennialMediaAdSDK(3099): Making ad request
07-12 15:35:08.253: DEBUG/AdWhirl SDK(3099): Showing ad:
07-12 15:35:08.253: DEBUG/AdWhirl SDK(3099):     nid: 867085576acb41328c1ba5f9d9b57f02
07-12 15:35:08.253: DEBUG/AdWhirl SDK(3099):     name: millennial
07-12 15:35:08.253: DEBUG/AdWhirl SDK(3099):     type: 6
07-12 15:35:08.253: DEBUG/AdWhirl SDK(3099):     key: 36973
07-12 15:35:08.253: DEBUG/AdWhirl SDK(3099):     key2: 
07-12 15:35:08.253: DEBUG/AdWhirl SDK(3099): Valid adapter, calling handle()
07-12 15:35:08.263: INFO/MillennialMediaAdSDK(3099): No incomplete downloads.
07-12 15:35:08.273: INFO/MillennialMediaAdSDK(3099): Last ad name is null. Call for new ad.
07-12 15:35:08.273: INFO/MillennialMediaAdSDK(3099): Making ad request
07-12 15:35:08.283: DEBUG/AdWhirl SDK(3099): Showing ad:
07-12 15:35:08.283: DEBUG/AdWhirl SDK(3099):     nid: 867085576acb41328c1ba5f9d9b57f02
07-12 15:35:08.283: DEBUG/AdWhirl SDK(3099):     name: millennial
07-12 15:35:08.283: DEBUG/AdWhirl SDK(3099):     type: 6
07-12 15:35:08.283: DEBUG/AdWhirl SDK(3099):     key: 36973
07-12 15:35:08.283: DEBUG/AdWhirl SDK(3099):     key2: 
07-12 15:35:08.283: DEBUG/AdWhirl SDK(3099): Valid adapter, calling handle()
07-12 15:35:08.293: INFO/MillennialMediaAdSDK(3099): No incomplete downloads.
07-12 15:35:08.303: INFO/MillennialMediaAdSDK(3099): Last ad name is null. Call for new ad.
07-12 15:35:08.303: INFO/MillennialMediaAdSDK(3099): Making ad request
07-12 15:35:08.373: WARN/MediaPlayer(3099): info/warning (1, 44)
07-12 15:35:08.463: DEBUG/dalvikvm(3099): GC freed 3121 objects / 172616 bytes in 51ms
07-12 15:35:08.493: INFO/MediaPlayer(3099): Info (1,44)
07-12 15:35:08.503: INFO/global(3099): Default buffer size used in BufferedReader constructor. It would be better to be explicit if an 8k-char buffer is required.
07-12 15:35:08.503: DEBUG/AdWhirl SDK(3099): Millennial success
07-12 15:35:08.503: DEBUG/AdWhirl SDK(3099): Will call rotateAd() in 30 seconds
07-12 15:35:08.513: DEBUG/AdWhirl SDK(3099): Added subview
07-12 15:35:08.523: DEBUG/AdWhirl SDK(3099): Pinging URL: http://met.adwhirl.com/exmet.php?appid=38bf6e85df2f40c0a796409186977dfd&nid=867085576acb41328c1ba5f9d9b57f02&type=6&uuid=7d1dd13a2fa91c0ad174cb69a11549a3&country_code=de_DE&appver=300&client=2
07-12 15:35:08.533: INFO/global(3099): Default buffer size used in BufferedReader constructor. It would be better to be explicit if an 8k-char buffer is required.
07-12 15:35:08.533: DEBUG/AdWhirl SDK(3099): Millennial success
07-12 15:35:08.533: DEBUG/AdWhirl SDK(3099): Will call rotateAd() in 30 seconds
07-12 15:35:08.653: DEBUG/dalvikvm(3099): GC freed 1985 objects / 166920 bytes in 52ms
07-12 15:35:08.663: INFO/global(3099): Default buffer size used in BufferedReader constructor. It would be better to be explicit if an 8k-char buffer is required.
07-12 15:35:08.663: DEBUG/AdWhirl SDK(3099): Millennial success
07-12 15:35:08.663: DEBUG/AdWhirl SDK(3099): Will call rotateAd() in 30 seconds
07-12 15:35:08.673: INFO/global(3099): Default buffer size used in BufferedReader constructor. It would be better to be explicit if an 8k-char buffer is required.
07-12 15:35:08.673: DEBUG/AdWhirl SDK(3099): Millennial success
07-12 15:35:08.673: DEBUG/AdWhirl SDK(3099): Will call rotateAd() in 30 seconds
07-12 15:35:08.703: DEBUG/AdWhirl SDK(3099): Added subview
07-12 15:35:08.713: DEBUG/AdWhirl SDK(3099): Added subview
07-12 15:35:08.713: DEBUG/AdWhirl SDK(3099): Added subview
07-12 15:35:08.723: WARN/webcore(3099): skip viewSizeChanged as w is 0
07-12 15:35:08.806: DEBUG/AdWhirl SDK(3099): Pinging URL: http://met.adwhirl.com/exmet.php?appid=38bf6e85df2f40c0a796409186977dfd&nid=867085576acb41328c1ba5f9d9b57f02&type=6&uuid=7d1dd13a2fa91c0ad174cb69a11549a3&country_code=de_DE&appver=300&client=2
07-12 15:35:08.873: INFO/MillennialMediaAdSDK(3099): Millennial ad return success
07-12 15:35:08.873: INFO/MillennialMediaAdSDK(3099): Millennial ad return success
07-12 15:35:09.043: INFO/MillennialMediaAdSDK(3099): Millennial ad return success
07-12 15:35:09.053: DEBUG/AdWhirl SDK(3099): Pinging URL: http://met.adwhirl.com/exmet.php?appid=38bf6e85df2f40c0a796409186977dfd&nid=867085576acb41328c1ba5f9d9b57f02&type=6&uuid=7d1dd13a2fa91c0ad174cb69a11549a3&country_code=de_DE&appver=300&client=2
07-12 15:35:09.133: DEBUG/dalvikvm(3099): GC freed 4009 objects / 757568 bytes in 55ms
07-12 15:35:09.163: ERROR/MillennialMediaAdSDK(3099): The reference to the ad view was broken.
07-12 15:35:09.293: DEBUG/dalvikvm(3099): GC freed 775 objects / 822176 bytes in 51ms
07-12 15:35:09.293: DEBUG/AdWhirl SDK(3099): Pinging URL: http://met.adwhirl.com/exmet.php?appid=38bf6e85df2f40c0a796409186977dfd&nid=867085576acb41328c1ba5f9d9b57f02&type=6&uuid=7d1dd13a2fa91c0ad174cb69a11549a3&country_code=de_DE&appver=300&client=2
07-12 15:35:10.553: WARN/MediaPlayer(3099): info/warning (1, 44)
07-12 15:35:10.553: INFO/MediaPlayer(3099): Info (1,44)
07-12 15:35:12.713: WARN/MediaPlayer(3099): info/warning (1, 44)
07-12 15:35:12.713: INFO/MediaPlayer(3099): Info (1,44)
07-12 15:35:13.013: INFO/AdWhirl SDK(3099): Rotating Ad
07-12 15:35:13.013: DEBUG/AdWhirl SDK(3099): Dart is <5.805535775904331> of <98.0>
07-12 15:35:13.013: DEBUG/AdWhirl SDK(3099): Showing ad:
07-12 15:35:13.013: DEBUG/AdWhirl SDK(3099):     nid: b44f46dac80e4d06be1760181025370b
07-12 15:35:13.013: DEBUG/AdWhirl SDK(3099):     name: admob
07-12 15:35:13.013: DEBUG/AdWhirl SDK(3099):     type: 1
07-12 15:35:13.013: DEBUG/AdWhirl SDK(3099):     key: a14cffb2bf162f1
07-12 15:35:13.013: DEBUG/AdWhirl SDK(3099):     key2: 
07-12 15:35:13.013: DEBUG/AdWhirl SDK(3099): Valid adapter, calling handle()

For some reason AdWhirl tries to show MillennialMedia Ads 3 times in a row. So the ad appears and disappers after some milliseconds and another MillennialMedia ad appears right away. At the end an AdMob ad appears and stays for 30 seconds. But Millennial success will be called 3 times just as rotateAd() in 30 seconds. I think the real problem is this:

ERROR/MillennialMediaAdSDK(3099): The reference to the ad view was broken.

A look in the reports shows that the impressions descreases extremly in the last few days.

Edit: I add ads this way:

layout.xml :

<de.xazen.tictactoe.mAdWhirlLayout
        android:id="@+id/adwhirl_layout"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_gravity="center_horizontal|bottom"
        android:onClick="onAdClick"
        /> 

manifest.xml :

  <!--         Ads   -->
    <meta-data 
        android:value="123456789asdfghkjlkuz" 
        android:name="ADWHIRL_KEY"
        />
    <!--         AdMobActivity definition -->
        <activity 
            android:name="com.google.ads.AdActivity"
        android:configChanges="keyboard|keyboardHidden|orientation"
        />
    <!--         Millenial definition -->
        <activity 
            android:name="com.millennialmedia.android.MMAdViewOverlayActivity"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" 
            />
        <activity 
            android:name="com.millennialmedia.android.VideoPlayer"
            android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
            android:configChanges="keyboardHidden|orientation|keyboard" 
            />
        <!-- Track Market installs from AdMob ads -->
        <receiver android:name="com.google.ads.InstallReceiver" android:exported="true">  
            <intent-filter>  
                <action android:name="com.android.vending.INSTALL_REFERRER" />  
            </intent-filter>  
        </receiver>  
        <!-- Used for install referrer tracking -->
        <receiver android:name="com.google.android.apps.analytics.AnalyticsReceiver" android:exported="true">
             <intent-filter>
                <action android:name="com.android.vending.INSTALL_REFERRER" />
             </intent-filter>
        </receiver>

mAdWhirl.java :

public class mAdWhirlLayout extends AdWhirlLayout {

public mAdWhirlLayout(Context context, AttributeSet attrs) {
    super(context, attrs);
    // TODO Auto-generated constructor stub
}

@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
    if (event.getAction() == MotionEvent.ACTION_UP) {
        new Achievement("1234567567").unlock(new Achievement.UnlockCB () {
            @Override
            public void onSuccess(boolean newUnlock) {
                ((Activity) getContext()).setResult(Activity.RESULT_OK);
                //  ((Activity) getContext()).finish();
            }
            @Override public void onFailure(String exceptionMessage) {
                Toast.makeText( ((Activity) getContext()),
                        "Error (" + exceptionMessage + ") unlocking achievement.",
                        Toast.LENGTH_SHORT).show();
                ((Activity) getContext()).setResult(Activity.RESULT_CANCELED);
                //    ((Activity) getContext()).finish();
            }
        });
    }
    return super.onInterceptTouchEvent(event);
} 

}

I am not sure wether that could be the problem since it worked in older versions.

Xazen
  • 822
  • 2
  • 12
  • 26
  • Have you tried updating all the sdks? Maybe you updated one but not the other and something broke... – Tony Chan Jul 18 '11 at 03:26
  • I got the latest sdks. Still won't work. – Xazen Jul 21 '11 at 11:57
  • kind of a shot in the dark, but maybe you can post your code for the AdWhirl layout. I've noticed that when people create it in a certain way they tend to run into strange problems. – Tony Chan Jul 21 '11 at 18:29

1 Answers1

0

It seems it was a bug in the SDK. A new version of the SDK doesn't cause the problem. However... we are trying other networks now.

Xazen
  • 822
  • 2
  • 12
  • 26