inneractive

Developer's Wiki

What platforms do you support? Which product best suits my needs?

We offer native SDKs for Android, J2ME, Symbian & Qt. For all other platforms we have a protocol based on HTTP requests & responses. If your product is for a single platform, using the specific SDKs is simpler & quicker to implement. If you intend to create versions for multiple platforms, implementing the M2M protocol is similar in all platforms & thus, simpler.

When using the M2M protocol, should I use GET or POST?

You should use GET. POST works as well but the requests do not register in our logs (don’t worry, the requests & clicks are counted, but for QA & debug, using GET is necessary)

Why do you insist on sending the correct parameters in M2M requests?

Filling the correct mandatory parameters is crucial; the ‘aid’ makes sure clicks are registered to your account. The ‘cid’ (cliend ID) , The ‘po’ (portal = distribution channel) and the ‘ua’ (user agent) enable us to send you the most suited campaign ads as well as banners in the correct size. the ‘v’ (version) parameter is there to make sure you’re using the correct version of the protocol. 

How can I register my application and receive AppID?

Please fill out our online contact form with your contact details and information about the app. We will provide you with a unique ID for your application, which you should use as IA-X-contentName parameter:
For J2ME: in the JAD file and Manifest.
For Android: in the properties.txt file.
For M2M API: to be used as the "aid" request parameter.
 

I’ve been using your products and my CTR is very low. How can I increase it?

We can advise you on ad placement strategy to help increase your CTR. Feel free to contact your account manager at inneractive regarding this issue (or any other)

How big is your SDK? Some SDK take over 1MB…

We put all our efforts in producing light, optimized SDKs, which are still friendly to use…
The J2ME SDK jar file weights 28.9kb and the Android SDK jar is 48.2kb.

How can I integrate your SDK into my J2ME application?

Using the J2ME SDK step by step:
1) Include it in your build path as any other external jar.
If you are using the Eclipse IDE:
a. Choose the 'Project' option and then the 'properties' option
b. Choose the 'Java Build Path' option and then navigate to the 'library' tab
c. Choose the 'Add External Jars' option, and browse to the 'InneractiveSDK_MIDP2v.jar' in order to include the SDK in your project.

2) Add the following parameters into your JAD file:
   Add the following parameters into your JAD file:
IA-X-cmdExit: exit
IA-X-cmdOK: ok
IA-X-contentName: IA_GameTest (your app ID should be taken from our website or provided by your personal account manager, if you don't have one, contact us at developers@inner-active.com)
IA-X-disclaimerText: We are able to provide you a free, full version of this game thanks to the help of our sponsors, carefully selected to meet your preference.
IA-X-disclaimerTitle:Information
IA-X-errorInDisclaimerNotice: Oops... There has been a connectivity error and the application will exit now. Please check the connectivity setting and try again.
IA-X-firstURL: http://cd1.inner-active.com/Server-1.8X/ClientStart
IA-X-invertedFlag: non
IA-X-portal: 519 (distribution ID. Please use 519 for Ovi)
IA-X-socketSupport: 0
IA-X-getOfferingPageStr: ClientGetOffering
IA-X-languageFilePageStr: GetLanguageStringsFile
IA-X-mediaPageStr: ClientMedia
IA-X-offlineReportPageStr: ClientOfflineReport
IA-X-updateStatusPageStr: ClientUpdateStatus
IA-X-disclaimerFlag: 1 (or 0)
IA-X-socketPort: 82

Optional parameters:
IA-X-gender: "boy" or "girl"
IA-X-age: 0 < age <= 120
IA-X-userID: external userID

Please note that the IA-X-contentName parameter should be replaced by unique App ID.
For testing you can use ‘IA_GameTest’ as your app ID, but never publish your content with the test app ID as we’ll not be able to track your revenues!

Please note that the IA-X-contentName and IA-X-portal parameters should be replaced by a unique content name that will be generated by the inneractive administrator, and the relevant portal distribution.

 

The following should be included before signing the application as well:
MIDlet-Permissions-Opt: javax.microedition.io.Connector.http,javax.microedition.io.Connector.socket,javax.
microedition.pim.ContactList.
read,javax.microedition.io.Connector.sms,javax.wireless.messaging.sms.send

3) Placing Start()
Locate the application start point, usually at MIDlet.startApp(), and call IASDK.start().
In some cases, notably on most builds intended for Samsung and Motorola handsets, it is useful to make this call using a timer as in the example below, to wait out the method’s return.
Example without a Timer Task:
public void startApp() {
// call IASDK.start() with (application’s midlet)
int retCode = IASDK.start(this);
if (retCode != 0)
{
// Any cleanup code here, including: notifyDestroyed();
destroyApp(…);
quit();
}
// continue
g = new Game(this);

}
Example with a Timer Task:
Timer t = new Timer();
TimerTask startTask = new TimerTask() {
public void run() {
try{
int retCode = IASDK.start(this);
if (retCode != 0)
{
// Any cleanup code here, including : notifyDestroyed();
destroyApp(…);}
quit();
}
// Game logic should be inserted here also
g = new Game(this);
}
catch(Throwable e){
System.out.println("Error in IASDK.start "+e);
}
}};
t.schedule(startTask, 500);

4. Presenting Ad
Decide what the relevant places are in the application to call IASDK.displayAd(). These could be such points as in between significant screen.
Please verify not to make such calls from a system thread.

! Note that the SDK uses the cache memory so please verify that your application will not delete the RecordStores (RMS files) which starts with: ‘cur_’ , ‘next_’ and ‘IA’.

You're done :-)

When using M2M, I get Error: InvalidInput in the XML response. What's wrong?

Please check the parameters that passed on the request. Verify that the ‘aip’ parameter was passed on exactly as it was created (case sensitive) and that you don’t have any spaces.

Does your SDK do any caching?

The SDK caches ads. Note that the SDK uses the cache memory so please verify that your application will not delete the RecordStores (RMS files) that start with: ‘cur_’, ‘next_’ and ‘IA’.

When launching a J2ME app and calling the SDK the app hangs...

Do not make these calls from within system threads. Where necessary, use a timer, as in the example below, to wait out the method’s return:

Timer t = new Timer();
TimerTask exitTask = new TimerTask() {
                    public void run() {
                          midlet.destroyApp(true);
                          try
                         {
                              IASDK.exitApp();
                             midlet.notifyDestroyed();
                         }
                       catch(Throwable e)
                      {
                            System.out.println("Error in IASDK.exitAPP "+e);
}
             }};
t.schedule(exitTask, 500);

 

Why do I need to include all the IA-X-… parameters in the JAD file?

These parameters enable the configuration of important parameters, such as the distribution channel, the content name, etc. It is very important to include these parameters also in the MANIFEST file in cases where it is possible to upload only JAR files.



Success Stories

Mall of America Navigator

We recently ran an inneractive 360 campaign for the “Mall of America Navigator” App which is currently being promoted on Ovi,...


Our Solution  |  Developers Wiki  |  Partners  |  Press Releases  |  Support  |  Company Profile  |  Blog
Copyright © 2010 inneractive. Terms of use | Privacy policy