XE6 Admob

FireMonkey ve Mobil uygulama (iOS, Android, Windows Phone) ile ilgili sorularınızı bu foruma sorabilirsiniz.
Cevapla
Kullanıcı avatarı
barisatalay
Üye
Mesajlar: 398
Kayıt: 02 Nis 2013 05:43
İletişim:

XE6 Admob

Mesaj gönderen barisatalay »

Merhabalar Embarcaderonun sitesinde anlattığı Admob olayını ben anlayabildiğim kadar anlayıp bir örnek hazırlayıp kendi bloğumda paylaşmıştım yararlı olabileceğini düşündüğüm ve sorusu olanlarla çözüm arayıp bulmak için burada paylaşıyorum.

Projeye başlamadan önce canlı örnek görmek isterseniz https://play.google.com/store/apps/deta ... alay.admob linkini tıklayarak örnek olarak paylaştığım projeyi görebilirsiniz.

Orjinal Anlattığım yer burasıdır "http://brsatalay.blogspot.com.tr/2014/0 ... admob.html" ileride alıntı dememeleri için. :)
Merhabalar, Bu yazımda sizlere Embarcadero'nun bizlere sunmuş olduğu nimetlerden bir tanesinden bahsetmek istiyorum.

XE6 Admob sayesinde artık uygulamalarından para kazanmak gibi düşüncesi olanlara şimdiden söyliyim gözünüzü çok yükseklere dikmeyin :)

Burada Admob hesap nasıl açılır UnitID nasıl bulunur gibi anlatımlara girmek istemiyorum Hz. Google'a sorabilirsiniz size seve seve yardımcı olacaktır :)

Örnek projemiz için bize lazım olan ekipman:

1 Adet Android Cihaz :)

Formumuza Eklenecek olan elemanlar:

1-) TBannerAd

2-)Label

3-)Button

İşlemlere başlamadan önce "INTERNET" ve "ACCESS_NETWORK_STATE" yetkilerinin açılmış olması gerektiğini unutmayalım.

Görselliğe uyması için TBannerAd nesnemizin Align özelliğini Top yaptıktan sonra formumuza labeli ve butonu yerleştiriyoruz.

Formun OnCreate Eventine:


BannerAd1.AdUnitID := 'ADMOB ID BURAYA';


Buton İçerisine :


BannerAd1.LoadAd;


Ve biraz işe aksiyon katmak istersek Reklamın ne kadar zaman boyunca izlendiğini labelimize yazdıralım.

Bu iş için öncelikle "Var" bloğumuz altına"ActionBeginDate: TDateTime; WastedSeconds: Integer;" değişkenlerini tanımlıyoruz.

TBannerAd nesnemizin Event sekmesinden "OnActionCanBegin" içerisine  admobun aktif olduğu saati kayıt etmesi için:

"OnActionCanBegin"


ActionBeginDate := Now;

Ve reklamlar arası geçiş, Reklama tıklanma vb. eventler olduğu zaman bu TBannerAd nesnemizin "OnActionDidFinish"

Eventine yansayacaktır ve bizde bunu yakalıyalım:

"OnActionDidFinish"

var
Seconds: Integer;
begin
Seconds := SecondsBetween(ActionBeginDate, Now);
WastedSeconds := WastedSeconds + Seconds;
Label1.Text := IntToStr(WastedSeconds) + ' boyunca reklam izlenmiş ve bitmiş.'


Bu sayede Loglarımızı da tutmuş olabiliriz. Ayrıca yazılımcı kusursuz değildir "UnitID" olsun başka birşey olsun TBannerAd nesnesinde de olabilir birçok sorun cıkabilir bunun için TBannerAd nesnesinin "OnDidFail" eventine yazacağımız kodlar TBannerAd nesnesinde herhangi bir hata çıktığı anda aktif olacak olan eventtir.

"OnDidFail"

Label1.Text := 'Hata : ' + Error;


Delphi IDE üzerinde yapacağımız değişiklikler bu kadardır sıradaki ve son işlemimiz "AndroidManifest.template.xml" dosyası içerisindedir.  <activity>  tagının bitim </activity>'nin bir alt satırına aşağıda verdiğimi eklemeniz gerekmektedir.

<activity android:name="com.google.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize">

Resim
Kullanıcı avatarı
AliZairov
Üye
Mesajlar: 341
Kayıt: 06 Nis 2012 03:09
Konum: Azerbaycan, Bakü
İletişim:

Re: XE6 Admob

Mesaj gönderen AliZairov »

Merhaba. Teşekkürler Barış. XE7 de biraz değişiklik yapmışlar. Normalde çalışmıyor. Ayarlardan aktif yapmak lazımmış.
Project > Options > Entitlement List, and select AdMob Service. Set its value to True.

* Bende ne sebepse o ayar yok biraz aradım nihayet çare buldum. Elle yaptım. :D
Projenin .dproj uzantılı dosyasını açarak

Kod: Tümünü seç

<Android_LauncherIcon96>
altına

Kod: Tümünü seç

<EL_AdMob>true</EL_AdMob>
ekleyip kayıt yapmanız yeterlidir.
Cevapla