digicrafts / Advertising-ANE

Advertising Native Extension for Adobe Air
http://igg.me/at/advertisingane/x/4441429
Other
18 stars 5 forks source link

Advertising Native Extension for Adobe Air

This Advertising ANE add supprt to using all major mobile system and popular adverting network with Adobe Air. Supports IOS, Android and Kindle.

Brought to you by the Indiegogo Campaign.

Thanks to our Backers.

Support

This is an open source software. We welcome any contribution and you can send us feedback or features requests in the issues section. But we don't guarantee we can answer all your questions.

Your kind donations will help us pause my daily job and put more serious effort into the development of this software for the future updates. Thanks.

[paypal]

If you need a dedicated support service for using this software, you can contact us at support[at]digicrafts.com.hk. We also provide software development services and you can contact us with email.

Version History

1.1

64-bit support for IOS (Need AIR SDK 16+) GooglePlay > 6.12.2 Amazon > ios 2.1.8 /android 5.4.235

1.0 First public release

Highlighted Features

The Universal Advertising AIR native extension will include the following highlighted features:

Supported Advertising Network

The current supporting network are list below:

(In development) AdColony (ios 2.4.13/android 2.1.3) (In development) Unity Ads (ios 1.3.10/android 1.3.10)

Install the library

Add the AmazonAds-ANE library to your project.

In Flash Professional CS6:

  1. Create a new mobile project
  2. Choose File > PublishSettings...
  3. Select the wrench icon next to 'Script' for 'ActionScriptSettings'
  4. Select the Library Path tab.
  5. Click 'Browse for Native Extension(ANE) File' and select the Mopub.ane file.

In Flash Builder 4.6:

  1. Goto Project Properties
  2. Select Native Extensions under Actionscript Build Path
  3. Choose Add ANE... and navigate to the Mopub.ane file
  4. Select Actionscript Build Packaging > Google Android or Apple IOS
  5. Select the Native Extensions tab, and click the 'Package' check box next to the extension

In Flash Professional CS5.5 or Lower:

  1. Select File>PublishSettings>Flash>ActionScript 3.0 Settings
  2. Select External Library Path
  3. Click Browseto SWC File
  4. Select the Mopub.swc

In Flash Builder 4.5:

  1. Goto Project Properties
  2. Select Action Script Build Path
  3. Select Add Swc
  4. Navigate to Mopub.swc and choose External Library type

In FlashDevelop:

  1. Copy the Mopub.swc file to your project folder.
  2. In the explorer panel, right click the .swc and select Add to Library.
  3. Right-click the swc file in the explorer, choose Options, and select External Library

Add the Actionscript

Import the library

import digicrafts.extensions.Advertising;
import digicrafts.extensions.core.AdSettings;
import digicrafts.extensions.data.*;
import digicrafts.extensions.adapter.*;
import digicrafts.extensions.events.*;

Create a settings object. And add the adapter for different network.

// Create a setting instance for the banner         
var settings:AdSettings= new AdSettings();

// Manual create adapter
// AdMob
var adMob:AdMobAdapter=new AdMobAdapter('AD-UNIT-ID');
// Amazon
var amazon:AmazonAdapter=new AmazonAdapter('APP_ID');        
// iAd
var iAd:IAdAdapter=new IAdAdapter();
// Backfill
// * Remember to include banner images when you packaging the app
var backfill:BackFillAdapter=new BackFillAdapter('http://www.google.com');
backfill.interstitial="BANNER.png";
backfill.banner="BANNER.png";
backfill.full_banner="FULL_BANNER.png";
backfill.leaderboard="LEADERBOARD.png";
backfill.medium_rectangle="MEDIUM_RECTANGLE.png";

// Add the adapter to the settings
settings.add(adMob,2);
settings.add(amazon,1);
settings.add(iAd,3);
settings.add(backfill,4);

If you want to load test ads, you can set the testMode property.

  Advertising.testMode=true;

Create a banner and load. Supply an unique name and size for each banner.

  Advertising.getBanner('BANNER_1',AdSize.BANNER,settings);

You can also show the banner immediately. Supply the position and refresh rate.

  Advertising.getBanner('BANNER_1',AdSize.BANNER,settings).show(AdPosition.BOTTOM,30);

Supported positions.

Remove the banner from screen.

  Advertising.getBanner('BANNER_1').remove();

Create an interstitial and load.

  Advertising.getInterstitial('INTERSTITIAL_1',AdSize.BANNER,settings);

Show the Interstitial Ad. Supply the frequency to appear. Also, you can specify the max count to show.

  Advertising.getInterstitial('INTERSTITIAL_1').show(3,2);

You can listen to the event by adding a listener to the Advertising instance.

function handleAdEvent(e:AdEvent):void{

 // e.data contains the raw event data

 // e.ad contains the ad instance for the event 

}
Advertising.getInstance().addEventListener(AdEvent.AD_LOADED, handleAdEvent );

Supported events.

Setup for Android

Important Notice: Since the current AIR SDK (<15.0) use an old version build tools and it is not compatialbe with the recent Google Play Service library. It lead to a class missing exception when using AdMob adapter. To fix, copy the dx.jar from the new Android SDK to the AIR SDK.

Update Your Application Descriptor

You'll need to be using the AIR 14.0 SDK or higher, include the extension in your Application Descriptor XML, and update the Android Manifest Additions with some settings.

Add the following settings in tag.

<!-- Google Play -->
<meta-data android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version"/>
<activity android:name="com.google.android.gms.ads.AdActivity"
    android:theme="@android:style/Theme.Translucent"
    android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>

<!-- Amazon Mobile Ads -->
<activity android:name="com.amazon.device.ads.AdActivity"
    android:configChanges="keyboardHidden|orientation|screenSize"/>

<!-- Millennial Media -->
<activity android:name="com.millennialmedia.android.MMActivity"
    android:theme="@android:style/Theme.Translucent.NoTitleBar"
    android:configChanges="keyboardHidden|orientation|keyboard|screenSize" ></activity>

<!-- InMobi -->
<activity android:name="com.inmobi.androidsdk.IMBrowserActivity"
    android:configChanges="keyboardHidden|orientation|keyboard|smallestScreenSize|screenSize"
    android:theme="@android:style/Theme.Translucent.NoTitleBar"
    android:hardwareAccelerated="true" />

Add the following basic permissions.

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

Add the following permission if you want video interstitial supported (millennialmedia).

<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-feature android:name="android.hardware.microphone" android:required="false" />

Add the following permission if you want the ad target location.

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

Developer

The software is developed by Digicrafts.

http://www.facebook.com/DigicraftsComponents

http://www.digicrafts.com.hk/components

License

This project is licensed under the BSD license link