Monetizacija kod besplatnih android aplikacija je osnovni izvor prihoda objavljivačima aplikacija (programerima) i glavni razlog zašto se aplikacije prave. Postoje razne firme koje Vam nude nadogradnju aplikacija dodacima za monetizaciju, ali morate biti veoma pažljivi pri izboru metode za monetizaciju, jer Google ima stroga pravila (pročitajte nekoliko strana o uslovima korišćenja), i ako ih prekršite može doci do gašenja Vašeg naloga. Zato preporučujem korišćenje servisa koji nudi Google nazvanog AdMob koji predstavlja sigurno rešenje, a i zarade koje se ostvaruju njegovim korišćenjem mogu biti sasvim solidne.
Na sajtu za programere Google objašnjava kako funcioniše monetizacija pomoću AdMob servisa kada radite u Java okruženju, dok ako koristite neki drugi programski jezik, morate da dodate u svom paketu specijalne dodatke koji vrše usklađivanje rada sa Javom i pozivanje glavnog servisa koji radi u Javi.
Na sajtu otvorenog koda github.com mogu se besplatno naći pomenuti dodaci za neka programska okruženja, a ovi dodaci se i prodaju na nekim sajtovima, i obično im je cena od 10 – 50 €. Njihovo funkcionisanje je veoma teško kontrolisati, jer im se samo šalje informacija o broju programera odnosno broju reklame – podaci za monetizaciju. Ovi dodaci šalju AdMob servisu predviđene podatke o aplikaciji, korisniku i lokaciji i naravno Vaše podatke za monetizaciju, a ostalo se sve odradi automatski, prikažu se reklame i isključe se kada se sakriju, uklone ili završe planirani posao.
Najpopularnija okruženja pored okruženja Jave u kojima se rade aplikacije za androide koja podržavaju monetizaciju pomocu reklama su Unity3d i Adobe Flash – Air. Za oba okruženja postoji po nekoliko dodataka za povezivanje sa Javom radi monetizacije, a pri izboru posebno obratite pažnju da li su ovi dodaci usklađeni sa najnovijim propisima koje zahteva Google. Oba sistema rade slično.
Dodatak koji ja koristim za monetizaciju pomocu Unity3d okruzenja je: AdmobVNTIS. Kod Unity3d programa treba raspakovati paket koji u sebi ima dosta fajlova sa ekstenzijom ‘.cs’ i ‘.jar’. Za aktiviranje reklama potrebno je na scenu dodati ‘prefab’ objekt i nakon toga na predviđeno mesto popuniti stringove tipa ‘ca-pub-xxx/yyy’ za ‘Banner’ i ‘ca-pub-xxx/zzz’ za ‘Interstitial’ reklamu. Ovi stringovi se dobijaju na sajtu AdMob, kada napravite novu oglasnu jedinicu – reklamu.
Pored ovog potrebno je i paket Google servisa GooglePlayLicenseVerification sa ‘hash’ kodom dodati ili tzv. ‘Base64-encoded RSA public key’, i popuniti na nekoliko mesta string koji se dobija pri prijavljivanju nove aplikacije na Google market. Ovaj kod se na nalazi na glavnom sajtu https://play.google.com/ u okviru aplikacije koju objavljujete u sekciji ‘SERVICES & APIS’ i popunjava se u fajlu ‘CheckLVLButton.cs’. Google automatski priznaje kada popunite ovaj kod, a bez njega ne dozvoljava da postavite aplikaciju na glavnom sajtu.
Takođe je potrebno pripremiti odgovarajuće ikone, i napraviti sertifikat sa Vašim podacima programom Unity3d u okviru opcije ‘File / Build Settings… / Android / PlayerSettings / Publishing Settings / Create New Keystore’, koji morate koristiti ako želite da objavite novu verziju aplikacije.
Davanje imena aplikacije je proizvoljno po Vašoj zelji, a obično se koristi obrnuti zapis domena iza čega ide naziv aplikacije – ‘com.vasdomen.imeaplikacije’ ili slično.
Unity3d mnoge stvari odradi automatski, ali pregledajte sve podatke koje se nalaze u ovom prozoru sa podešavanjima, i popunite ili izmenite šta je još potrebno.
Po kreiranju foldera ‘apk’ sa fajlom sa ekstenzijom ‘.apk’ prekontrolišite kako aplikacija radi na Vašem android uređaju, pre nego sto je objavite, i ako treba ispravite greške ako ih ima.
Adobe dodaci imaju za dodatak fajl tipa ‘.ane’ (android native extenstion) uz fajlove tipa ‘.as’ (action script), a može se naci i tip fajla kao što je ‘.swc’. Njihova implementacija se zasniva na raspakovanje paketa i unošenje stringa Vaše reklame tipa ‘ca-pub-xxx/yyy’ i ‘ca-pub-xxx/zzz’. Ove šifre se dobijaju na sajtu AdMob posebno za reklame tipa ‘Banner’ a posebno za reklame tipa ‘Interstitial’. Unošenjem ovih šifri na predviđeno mesto i pozivanjem reklame tipa ‘Banner’ ili tipa ‘Interstitial’ vrši se jedno prikazivanje reklame. Za ponovno prikazivanje ‘Interstitial’ reklame potrebno je ponovo pozvati ovaj dodatak, i mnogi programeri praktikuju ponovno prikazivanje reklame kada se završi neki ciklus u aplikaciji i/ili kada se napušta aplikacija. Prikazivanje reklame tipa ‘Banner’ se osvežava posle intervala koji se bira kada se kreira oglas na AdMob sajtu (obicno je 60 s). Neki programeri ostavljaju baner na ekranu stalno dok radi aplikacija, dok neki u zavisnosti od toga šta se radi u aplikaciji prikazuju i skrivaju baner. Prikazivanje i sakrivanje banera se radi veoma lako – korišćenjem naredbi ‘showBanner()’ i ‘hideBanner()’, i preporuka je da ne bi stalno pisali u programu ove naredbe uvesti jedno stanje sa nazivom poput ‘ShowAd’, i dodati kod koji na svakih nekoliko sekundi proverava ovo stanje i prikazuje ili sakriva reklamu. Ovo rešenje je mnogo bolje od stalnog pozivanja na odgovarajucim mestima u programu, jer ne možete u potpunosti da kontrolišete dodatak za monetizaciju, a desi se da reklama zakasni i pojavi se posle naredbe za sakrivanje, a retko ko postavi ikonu na koju kada se klikne, dolazi do sakrivanja reklame. Nepažljivim programerima se desi da ta reklama prekrije važne komande za funkcionisanje aplikacije, tako da aplikacija postaje neupotrebljiva.
U narednim linijama dat je opis kojim se najlakše implementiraju, pozivaju i skrivaju reklame u Flash-u koje koriste monetizaciju dodatkom AdMobAne.
Najpre se skine dodatak ‘.zip’ i raspakuje u folderu sa glavnim ‘***.fla’ fajlom. Potrebni folder za dodatak je ovde sa nazivom ‘anes’ u kome se nalaze sledeci fajlovi:
AdMobAne1.0.ane
SingleBanner.as
Interstitial.as
Pomenuti ‘AdMobAne1.0.ane’ fajl je obavezan i ne možete ga menjati, dok je kod za ostala dva fajla i kod u glavnom ‘***.fla’ fajlu dat tako da bude najshvatljiviji, i može se menjati po potrebi. U opcijama Flash-a morate dodati putanju ka ovom ‘AdMobAne1.0.ane’ dodatku ‘File / Publish Settings… / ActionScript Settings / Browse to a Native extension’.
Glavni ***.fla
…
import com.admob.AdMobManager;
import anes.SingleBanner;
import anes.Interstitial;
…
try {
var AdMobInterstitial:Interstitial = new Interstitial();
var AdMobBanner:SingleBanner = new SingleBanner();
}
catch (error:Error) {
// error
}
var Mode:String = “Show”;
setTimeout(ShowHideAdMobBanner, 1000);
function ShowHideAdMobBanner():void {
if (Mode == “Show”) {
AdMobBanner.ShowBanner();
}
else {
AdMobBanner.HideBanner();
}
setTimeout(ShowHideAdMobBanner, 1000);
}
function AdMobShowInterstitial():void {
AdMobInterstitial.ShowInterstitial();
}
setTimeout();
…
Kada je potrebno samo u okviru glavnog ‘***.fla’ fajla pozovete funkciju:
AdMobShowInterstitial();
Odnosno postavite vrednost za prikaz banera:
Mode = “Show”; // “Hide”
SingleBanner.as
package anes {
import com.admob.*;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.text.TextFormat;
public class SingleBanner extends Sprite {
public static const banner_id:String = “ca-app-pub-xxx/yyy”;
private var adMobManager:AdMobManager;
public function SingleBanner() {
super();
adMobManager = AdMobManager.manager;
if(adMobManager.isSupported){
adMobManager.verbose = true;
adMobManager.bannersAdMobId = banner_id;
adMobManager.createBanner(AdMobSize.SMART_BANNER_LAND, AdMobPosition.BOTTOM_CENTER, “BottomBanner”, null, true);
}
}
public function ShowBanner() {
if(adMobManager.isSupported) {
adMobManager.showAllBanner();
}
}
public function HideBanner() {
if(adMobManager.isSupported){
adMobManager.hideAllBanner();
}
}
}
}
Na predvidjeno mesto mora se uneti broj reklame koja prikazuje baner.
Interstitial.as
package anes {
import com.admob.AdMobManager;
import flash.display.Sprite;
import flash.utils.*;
public class Interstitial extends Sprite {
public static const full_id:String = “ca-app-pub-xxx/xxx”;
private var adMobManager:AdMobManager;
private var isShow:Boolean = false;
private var waiting:Boolean = false;
public function Interstitial() {
super();
adMobManager = AdMobManager.manager;
if (adMobManager.isSupported) {
adMobManager.verbose = true;
adMobManager.interstitialAdMobId = full_id;
adMobManager.createInterstitial(null, true);
}
}
public function ShowInterstitial() {
if(adMobManager.isSupported) {
if (!waiting) {
waiting = true;
if(adMobManager.isInterstitialLoaded()) {
WaitData();
}
else {
adMobManager.cacheInterstitial();
setTimeout(WaitData, 3000);
}
}
}
function WaitData():void {
if(adMobManager.isInterstitialLoaded()) {
waiting = false;
adMobManager.showInterstitial();
}
else {
setTimeout(WaitData, 3000);
}
}
}
}
}
Na pedvidjeno mesto mora se uneti broj reklame koja prikazuje Interstitial sadrzaj.
Fajlove ‘SingleBanner.as’ i ‘Interstitial.as’ kreirajte sami slično kao i ja ili iskoristite gotove fajlove koji su dati u primeru, uz minimalno prilagođavanje, a za fajl ‘.ane’ ne zaboravite da podesite u podešavanjima putanju ka ovom ‘.ane’ fajlu, kao i verziju za izvršavanje programa za android na 15.0 ili više.
Potrebno je dodati i dozvole u ‘File / Publish Settings… / Player Settings / Permissions’ i ja selektujem prve i poslednje 2 iz menija – prikaz u ‘***-.xml’ fajlu.
Potrebno je ovde i kreirati Vaš sertifikat sa šifrom, koji mora da se koristi pri reviziji aplikacije, a ovde se unose i verzija aplikacije, podržani jezici i ikone.
Takođe je potrebno posle prvog eksportovanja izmeniti fajl ‘***-app.xml’ fajl i tamo dodati redove bez kojih reklame neće da rade.
<application>
<meta-data android:name=”com.google.android.gms.version” android:value=”4452000″ />
<activity android:name=”com.google.android.gms.ads.AdActivity” android:configChanges=”keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize”/>
</application>
Dodajte i red za minimalnu verziju android operativnog sistema na kome funkcioniše program, jer će Vam Google izbaciti u protivnom upozorenje da se podaci ne poklapaju. Dodajte zato red u fajlu ‘***-app.xml’:
<uses-sdk android:minSdkVersion=”10″/>
Linije za izvršavanje dodatka za monetizaciju takođe moraju se naći u ‘***-app.xml’, jer bez njih reklame neće da rade.
<extensions>
<extensionID>com.admob.ane</extensionID>
</extensions>
Tek kada sve ovo završite, možete kreirati naredbom ‘publish’ fajl koji se učitava na androidima tipa ‘.apk’, čije funkcionisanje obavezno trebate proveriti na svom android uređaju. Nakon kreiranja ‘.apk’ fajla morate proveriti da li je novi ‘***-app.xml’ izmenjen i da li na kraju izgleda ovako:
<allowBrowserInvocation>false</allowBrowserInvocation>
<android>
<manifestAdditions>
<![CDATA[<manifest>
<uses-sdk android:minSdkVersion=”10″/>
<uses-permission android:name=”android.permission.INTERNET”/>
<uses-permission android:name=”android.permission.WRITE_EXTERNAL_STORAGE”/>
<uses-permission android:name=”android.permission.ACCESS_NETWORK_STATE”/>
<uses-permission android:name=”android.permission.ACCESS_WIFI_STATE”/>
<application>
<meta-data android:name=”com.google.android.gms.version” android:value=”4452000″ />
<activity android:name=”com.google.android.gms.ads.AdActivity” android:configChanges=”keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize”/>
</application>
</manifest>]]>
</manifestAdditions>
</android>
<supportedLanguages>en zh cs nl fr de it ja ko pl pt ru es sv tr</supportedLanguages>
<extensions>
<extensionID>com.admob.ane</extensionID>
</extensions>
</application>
Ako je Flash izmenio ‘.xml’ ispavite ga ponovo po gornjem primeru, a zatim ponovo kreirajte ‘.apk’, ali prethodno proverite sve podatke ponovo…
Ovako formirana ‘.apk’ verzija radi kako treba, i prikazuje reklame kako je predviđeno. Još samo da bude mnogo instalacija tj. klikova i blago Vama…
Android Zarada
Android Zarada – Pravilan Početak