Non-Intrusive Ad Network

168KB here.

I followed instructions.
Some specifics:

  • No optional LOCATION permissions in manifest.
  • Implementation using java code (not xml).
  • Proguarded apk (but I’ve tested this, non-proguarded passes test also).
  • What else could matter?

I am using only Airpush SmartWall in the in-app SDK - not using the Airpush Banner ads or other stuff.

If you can please be more detailed about implementation using java code. Because it might be that the antivirus reads the xml file and that’s why he turns on this Intrusive Adware notification. So kindly explain what exactly you do in the java file :slight_smile:

SmartWall and in-app banners should both considered as fully safe, because they contain nothing intrusive. And yeah, push notifications and icon ads can be annoying, I agree that this type of ads should be categorized as intrusive.

p.s. and maybe you can post a Test apk file here that is integrated with in-app SDK from AirPush so we could check it with our antiviruses to be sure that there is really some way to avoid the false alarm. Thanks :slight_smile:

I have both, banners and smart-wall.

As we are getting contradictory results, maybe “cross-check” of our apps could help. If there is anyone interested, send me your apk, and I’ll scan it on my device.

In java code, I create airpush banner view object (com.fbejweg….AdView), and add it to layout:


if (adViewAirPush == null) {
    			adViewAirPush = new com.XXXXX.AdView(
    					this
    				  , com.XXXXX.AdView.BANNER_TYPE_IN_APP_AD
    				  , com.XXXXX.AdView.PLACEMENT_TYPE_INTERSTITIAL
    				  , 60, false, false
    				  , com.XXXXX.AdView.ANIMATION_TYPE_FADE);
    			adViewAirPush.setId(SOME_ID);
    			adViewAirPush.setAdListener(this);
    		}
    		mAdLayout.addView(adViewAirPush);

I have nothing directly from airpush in xml.

PS. I don’t think you are making false alarm. Although I can’t reproduce virus warning by myself, I have got virus warning review from one of users.

apten,

What are you using for proguard-project.txt (the Airpush part) ?

I am using the suggested settings - and since there seems to be a lot of stuff there, I wonder if some of that could be signalling a “signature” to the AVG Antivirus app.

Other than that, I am using these AndroidManifest.xml settings (note that airpush creates a user-specific SDK name like com.XXXXX.YYYY.jar):



<!-- permissions for Airpush In-App SDK i.e. no push, no icon ads -->
<!-- http://manage.airpush.com/docs/index.php?title=Android_In-App_SDK_6.0_Documentation -->

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />


<!-- start of Airpush In-App SDK i.e. no push, no icon ads -->
<!-- use APPID and APIKEY from Airpush dashboard -->
<!-- http://manage.airpush.com/docs/index.php?title=Android_In-App_SDK_6.0_Documentation -->
<meta-data
	android:name="com.XXXXXXX.YYYYYYYYYYYYY.APPID"
	android:value="ZZZZZ" />
<meta-data
	android:name="com.XXXXXXX.YYYYYYYYYYYYY.APIKEY"
	android:value="android*ZZZZZZZZZZZZZZZZZZZ" />

<activity
	android:name="com.XXXXXXX.YYYYYYYYYYYYY.SmartWallActivity"
	android:configChanges="orientation|screenSize"
	android:exported="false"
	android:theme="@android:style/Theme.Translucent" />
<activity
	android:name="com.XXXXXXX.YYYYYYYYYYYYY.BrowserActivity"
	android:configChanges="orientation|screenSize" />
<!-- end of Airpush In-App SDK i.e. no push, no icon ads -->


I only have code for showing Airpush SmartWall/AppWall - no banner ads etc. (and of course, no push ads/icon ads etc.)

Some clarity - I removed the long entry for Airpush from proguard-project.txt and reduced it down to this:


need this for Airpush SDK (in-app SDK - no push notifications etc.)

Android In-App SDK 6.0 Documentation - manage.airpush.com/docs

-keep class com.XXXXXXX.YYYYYYYYYYYYY.** { *; }

Where com.XXXXX.YYYYY.jar is the developer-specific SDK that was created for you.

I am using this only for Airpush SmartWall/AppWall interstitials - and not banner ads or other stuff - so I don’t know if this works.

Now with the new APK installed - which IS using Airpush - but now difference is using the newer proguard settings as outlined above. Now AVG Antivirus is NOT recognizing the app as an “Intrusive Malware” - in fact the app is not showing up in the list at all.

@adforandroidapps,
After all, what does it mean now? Did u achieve what u wanted? and Did u apload this new apk to the market? If so, what is the results. Keep us updated

P.S: You might be want to make a small article about your adventure with Airpush and post in the according thread in this forum. Most people will appreciate it though.

Yeap, a detailed article would be much appreciated :slight_smile:

I’m attaching the Source Code from the AirPush test app that comes with the in-app sdk. And of course this is by default integrated with only smartwall and in-app banners. However this is now detected as Intrusive Adware. So if someone( @adforandroidapps and/or @apten) can edit this files and show us a non-intrusive version of this app then it would be AWESOME :slight_smile: I know this can take some minutes from your time, but please make another HUGE contribution to this forum :slight_smile:

http://download1324.mediafire.com/9qmyh6a0esdg/r7qx8jffqgace1j/Airtest6.0.zip

And please post the apk file and the source code as well so we could study it.

Thank you again to all who participated in this discussion. I hope that this issue can be resolved and our revenue will increase with at least 50% :slight_smile:

@adforandroidapps
For proguard, I use settings from the documentation. The only thing I’ve changed is that I have commented out settings that were already present in my configuration (duplicates). Btw, it took quite long before I succeeded to export proguarded version. Setting project target to android-17 turned out to solve proguard issues for me.

For AndroidManifets.xml, my settings match yours.

Is really interesting, what you have figured out. As I understand, excluding classes from your airpush jar from being proguarded, the resulting apk passes avg test. How about plain, non-proguarded apk, does it pass/fail?

@vadimbolun, to get to bottom of this, we really need to cross-check out APKs. I’ve created test app (as you suggested previously) with airpish in-app sdk, which shows banner on the bottom of the screen, and launches smart-wall on exit. This APK passes avg test on my device.

adforandroidapps and vadimbolun, it would be great, if you could try my apk, and post results. Please PM me some e-mail, where I can send you my test APK. Thanks!

Unfortunately, just cleaning up a sample app will not demonstrate the correct procedure.

This is because a clean way to do it would be to first:

  • follow Airpush procedure for the “in-app SDK” - i.e. download Airpush SDK - with everything unchecked except for the “in-app SDK” option
  • then make sure you NOT use the proguard settings suggested by Airpush (in their “in-app SDK” even) - but use the abbreviated proguard-project.txt settings mentioned above:

need this for Airpush SDK (in-app SDK - no push notifications etc.)

Android In-App SDK 6.0 Documentation - manage.airpush.com/docs

-keep class com.XXXXXXX.YYYYYYYYYYYYY.** { *; }

And that SHOULD cover it.

For me, JUST removing the Airpush-suggested proguard-project.txt settings - and using the small version above was enough to make it appear clean to AVG Antivirus.

Per tests me and vadimbolun have made, the same APK with banners+smart-wall will:

  • be flagged as »Intrusive Adware« on Android 4.1.2
  • pass test with no warnings on Android 2.3.6

Go figure… :confused:

Did you miss any of these ?

1 - with and SDK that was EXPLICITLY generated using just a checkbox on in-app SDK ?


NOTE: Your AppID is required to integrate the SDK with your application. You can retrieve the AppID from the Application Dashboard or Edit Application section.
Include In-App Ad formats (Learn More)
Include Out-of-App Ad formatsHighly Recommended (Learn More)
Include Bugsense Error Tracking (Learn More)
Include Apsalar App Analytics (Learn More)

2 - the shortened proguard settings (with XXXX.YYYYY referring to the exact name given for your generated .jar file from step 1)


need this for Airpush SDK (in-app SDK - no push notifications etc.)

Android In-App SDK 6.0 Documentation - manage.airpush.com/docs

-keep class com.XXXXXXX.YYYYYYYYYYYYY.** { *; }

My use of these settings - on Android 4.0.3 did not trigger any alarm with AVG Antivirus. When just a few minutes before that it DID (calling it “Intrusive Adware”) when I was using the Airpush-suggested proguard settings (for the “in-app SDK”).

@adforandroidapps

I’ve tested both, in-app sdk and full sdk. On my device (android 2.3.6), AVG behaves as one would expect: APK with full SDK if flagged, APK with in-app SDK passes with no warnings. If I didn’t test full sdk, I would suspect there is something wrong with my installation of avg. But as full sdk gets flagged, this is not the case.
Also, 3 variants of proguard, resulting in 3 slightly different APKs, were tested:

  1. Airpus – suggested
  2. Airpush + your suggestion
  3. Using -keep class com.XXXXXXX.YYYYYYYYYYYYY.** { *; } only

Results:
Android 2.3.6 – pass for all 3 APKs.
Android 4.1.2 – fail for all 3 APKs.

Test app included banner as well, that is different from your case. AVG scanning sensitivity was set to HIGH. If set to LOW, then full sdk passes testing also.

Solution follows … (SPOILER: it is not a solution)

Testing on Androd 4.0.3 with AVG Antivirus set to “Extra Sensitive” i.e. above High even, I am seeing no warning about the app now.

What is doubly-odd is that even the non-proguarded version of the app - which I am installing direct from Eclipse (i.e. compiling/testing app) - even THAT is not being flagged as any threat.

(at this moment I had a thought …)

Which makes me think the real reason why I am no longer getting warning by AVG Antivirus … maybe that … (man this is dumb !) …

  • that I once clicked on the “Ignore” button when AVG Antivirus complained on a previous run (when I installed app from eclipse to the android device)

After that point AVG Antivirus kept saying that the app was ok - perhaps for PRECISELY this reason (can you use perhaps and PRECISELY together ?).

I compiled another app - which was also giving the warning by AVG Antivirus - and I replicated the process - and that app IS getting the warning !!

So what does this say - it means using Airpush “in-app SDK” in any form (I was just using it for the interstitials - and not the banner ads etc.) will cause your app to be flagged as “Intrusive Malware” by AVG Antivirus.

The reason apten may be seeing his apps not-flagged as issue on the android 2.3.6 device - maybe that at some point he clicked “Ignore” as well on that device (?) perhaps some time in the past.

This would also explain why “all 3 methods” fail on Android 4.1.2 - because basically what I outlined above doesn’t work EITHER (i.e. fiddling with proguard will do NOTHING) - AVG Antivirus will still flag your app as “Intrusive Malware”.

This means I will be disabling Airpush (even the “in-app SDK”) for my update - because it is a mature app, and a sudden change in it’s risk profile will cause user comments - and I don’t want to waste time (and lose comment visibility of other issues and highlighting of “virus, virus”) at this point.

For a new app I might have considered - but again you have to balance the supposed benefit of Airpush SmartWall (which I have yet to see for myself) with the negatives (i.e. Airpush has not gotten their “in-app SDK” cleared by AVG Antivirus) - and the incremental advantage it may have over other interstitial ad networks.

Removed Airpush from the other app - by setting a flag to false - which envelops all calls to Airpush SDK - Eclipse should now remove all Airpush references (libs/ still held the library for Airpush however).

Installing a development version of the other app on android device - triggers alert from AVG Antivirus again. Made sure not clicked “Ignore” this time.

(though if one did do that by mistake - one could do a “Clean Data” for AVG Antivirus - to make sure the local copy forgets that)

Then ran re-scan on AVG Antivirus - and it labelled the app as “Intrusive Malware”.

Then installed a proguard (release version type) APK to android device - installed - and it triggered alert again.

Did re-scan of AVG Antivirus - and it again found the app as “Intrusive Malware”.

So this means even if I remove Airpush it is finding the same issue - so either the issue is not Airpush - or the other ad networks I was planning to use for next upgrade are causing this.

What to do ?

Or maybe AVG Antivirus has updated a local database and continues to label the same app package name as the same. Or worse if AVG Antivirus uploads the packagename to it’s server - so everywhere it gets labelled as virus (regardless of whether you use any ad networks or not - could AVG do that ?).

AVG Antivirus is even flagging the APK files in the bluetooth directory as being “Intrusive Adware” (listed in the Contents section).

This proguarded version of the other app - had airpush library in libs/ and Airpush library is listed in AndroidManifest.xml - and this is readable from the APK (if you rename to .zip and unzip).

Next thing would be to remove from libs/ and remove all references to Airpush library from AndroidManifest.xml (though remember this library IS named com.XXXXX.YYYYY - so just by name it would not be recognizable as dangerous by AVG Antivirus).

won’t removing push/icon ads reduce your earnings? I understand that to make considerable money, you have to have push/icon ads in apps. Banner/Interstitial can’t get that much of revenue.

P.S. I also don’t have push/icon ads in my apps.

Ok, I left the Airpush library in libs/ and left the .java files related to that in place - since was a pain to remove all that.

Instead just removed the Airpush entries from AndroidManifest.xml

And in my other code I was not referring to Airpush (thanks to a flag I set).

However, this proguarded APK also was identified as “Intrusive Malware”.

Now either AVG is picking up some signature - or it is also some other network other than Airpush which is triggering this - AVG doesn’t give any info about what is causing the alert so one can’t be sure.

Perhaps some other antivirus would give that info.

All the other ad networks I am using (or thinking of for next update) are interstitial ads - and using the “in-app SDK” versions for those ad networks.

So at this point, for ME at least, I think the option left is to just leave in Airpush - since I seem to be getting the alert either way (and I am not wanting to mess with the code - removing Airpush etc.).

And it is not clear if it is Airpush alone which is causing this …

I am not even sure if AVG is doing some internal caching or something like that (or informing it’s server) - which is PERSISTING the sense that the app is problematic.

So for now I am going to ignore AVG Antivirus warning - unless I get some specific info from another antivirus app about what the issue is …