رفتن به مطلب اصلی
Version: 4.x.x

راه‌اندازی تبلیغات ادیوری در B4A

در این مستند نحوه نمایش تبلیغات ادیوری در اپلیکیشن‌های B4A را شرح می‌دهیم.

افزودن کتابخانه ادیوری به پروژه#

برای نمایش تبلیغات ادیوری ابتدا باید کتاب‌خانه‌ی B4A ادیوری را دانلود نمایید و محتویات آن را در دایرکتوری Libraries نرم‌افزار B4A قرار دهید.

راه‌اندازی کتابخانه ادیوری#

در بخش Libraries پروژه‌ی خود، کتاب‌خانه‌ی Adivery را فعال کنید.

سپس از منوی Project گزینه Manifest Editor را انتخاب کنید و کد زیر را به مانیفست پروژه اضافه کنید.

AddApplicationText(
<activity
android:name="com.adivery.sdk.networks.adivery.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:exported="false" />)

سپس در بخش Globals ادیوری را تعریف کنید.

Sub Process_Globals
Dim Adivery As Adivery
End Sub

در نهایت مشابه نمونه‌ی زیر در بخش Activity_Create کتاب‌خانه‌ی ادیوری را راه‌اندازی کنید. مقدار APP_ID را با شناسه اپلیکیشن خود که از داشبورد ناشرین دریافت می‌کنید، جایگزین کنید.

Sub Activity_Create(FirstTime As Boolean)
Adivery.Initialize("APP_ID")
Adivery.SetLoggingEnabled(True)
End Sub

نمایش تبلیغ بنری#

برای نمایش تبلیغ بنری، مشابه کد نمونه‌ی زیر یک AdiveryBannerAd بسازید و با استفاده از تابع Initialize2 درخواست نمایش تبلیغ را بدهید.

ورودی اول تابع Initialize2 پیشوند نام توابع دریافت کننده‌ی رویداد‌های تبلیغ است. برای مثال اگر مقدار آن را MyBanner در نظر بگیرید می‌توانید تابعی با اسم ‍MyBanner_AdLoadFailed تعریف کنید و در صورت رخ دادن مشکل در بارگذاری تبلیغ، مطلع شوید.

ورودی دوم تابع Initialize2 که در مثال زیر با PLACEMENT_ID مشخص شده است، کلید تبلیغ‌گاه شماست که می‌توانید آن را از پنل نمایش‌دهندگان ادیوری دریافت کنید.

ورودی سوم تابع Initialize2 که فقط مختص تبلیغات بنری است، نوع جایگاه شما را مشخص می‌کند که باید با نوع جایگاه مشخص شده در پنل نمایش‌دهندگان تطابق داشته باشد. یکی از مقادیر BANNER، LARGE_BANNER یا MEDIUM_RECTANGLE را می‌توانید به عنوان ورودی بدهید.

پس از درخواست نمایش تبلیغ، می‌توانید مشابه نمونه‌ی زیر به کمک Activity.AddView تبلیغ بنری را به مکان دلخواه از صفحه‌ی برنامه‌ی خود اضافه کنید.

Sub Globals
Dim Banner As AdiveryBannerAd
End Sub
Sub Activity_Create(FirstTime As Boolean)
Banner.Initialize2("MyBanner", "PLACEMENT_ID", Banner.BANNER)
Activity.AddView(Banner, 0, 100%y - 50dip, 100%x, 50dip)
End Sub
Sub MyBanner_Ad_Loaded
Log("Banner loaded")
End Sub
Sub MyBanner_Ad_Clicked
Log("Banner clicked")
End Sub
Sub MyBanner_On_Error(error As String)
Log(error)
End Sub

نمایش تبلیغ میان‌صفحه‌ای#

برای نمایش تبلیغ میان‌صفحه‌ای، مشابه کد نمونه‌ی زیر با استفاده از تابع PrepareInterstitialAd درخواست نمایش تبلیغ را بدهید و کلید تبلیغ‌گاه را که از پنل ادیوری دریافت می‌کنید به آن ورودی دهید.

تابع بالا به طور خودکار، پس از نمایش تبلیغ، تبلیغ بعدی را بارگزاری می‌کند و نیاز به صدا زدن دوباره این دستور ندارید.

برای مطلع شدن از آماده بودن تبلیغ جهت نمایش دو روش وجود دارد. روش اول پیاده‌سازی تابع On_Interstitial_Ad_Loaded(placement As String) است. این تابع هنگامی که تبلیغ آماده‌ی نمایش باشد فراخوانی می‌شود. روش دیگر بررسی وضعیت تبلیغ به وسیله‌ی تابع .IsLoaded() است.

پس از اطمینان از آماده بودن تبلیغ می‌توانید با صدا کردن .Show() تبلیغ را نمایش دهید.

Sub Globals
Dim InterstitialPlacement As String = "PLACEMENT_ID"
End Sub
Sub Show_Interstitial
If Adivery.IsLoaded(InterstitialPlacement) Then
Adivery.Show(InterstitialPlacement)
End If
End Sub
Sub Activity_Create(FirstTime As Boolean)
Adivery.PrepareInterstitialAd(InterstitialPlacement)
End Sub
Sub On_Interstitial_Ad_Loaded(placement As String)
Log("Interstitial loaded")
End Sub
Sub On_Interstitial_Ad_Clicked(placement As String)
Log("Interstitial clicked")
End Sub
Sub On_Error(placementId As String, error As String)
Log(error)
End Sub
Sub On_Interstitial_Ad_Closed(placement As String)
Log("Interstitial closed")
End Sub
Sub On_Interstitial_Ad_Shown(placement As String)
Log("Interstitial shown")
End Sub

اضافه و حذف کردن listener#

برای اضافه کردن و یا حذف کردن یک listener می‌توانید از دستورات زیر استفاده کنید که در آن‌ها EVENT_NAME یک پیش‌وند برای نام SUBها است.

Adivery.addListener(EVENT_NAME)
Adivery.removeListener(EVENT_NAME)
توجه

کالبک ها در ادیوری بطور global تنظیم می شوند، بنابراین باید دقت کنید تا در زمانی که به کالبک نیازی ندارید، آن‌را حذف کنید.

برای پیدا کردن لیست ایونت های ادیوری می‌توانید دستور زیر را در IDE وارد کنید و در پنجره نام adivery را انتخاب کنید.

SUB Space Tab

نمایش تبلیغ جایزه‌ای#

برای نمایش تبلیغ جایزه‌ای، مشابه کد نمونه‌ی زیر با استفاده از تابع PrepareRewardedAd درخواست نمایش تبلیغ را بدهید و کلید تبلیغ‌گاه که از پنل ادیوری دریافت می‌کنید را به آن ورودی دهید.

این دستور به طور خودکار، پس از نمایش تبلیغ، تبلیغ بعدی را بارگزاری می‌کند و نیاز به صدا زدن دوباره این دستور ندارید.

برای مطلع شدن از آماده بودن تبلیغ جهت نمایش دو روش وجود دارد. روش اول پیاده‌سازی تابع On_Rewarded_Ad_Loaded(placement As String) است. این تابع هنگامی که تبلیغ آماده‌ی نمایش باشد فراخوانی می‌شود. روش دیگر بررسی وضعیت تبلیغ به وسیله‌ی تابع .IsLoaded() است.

پس از اطمینان از آماده بودن تبلیغ می‌توانید با صدا کردن .Show() تبلیغ را نمایش دهید.

در صورتی که کاربر ویدیو را تا انتها ببیند تابع On_Rewarded_Ad_Closed(placement As String, rewarded As Boolean) با مقدار true فراخوانده می‌شود.

Sub Globals
Dim Adivery As Adivery
Dim RewardedPlacement As String = "PLACEMENT_ID"
End Sub
Sub Activity_Create(FirstTime As Boolean)
Adivery.PrepareRewardedAd(RewardedPlacement)
End Sub
Sub On_Rewarded_Ad_Loaded(placement As String)
Log("Rewarded loaded")
End Sub
Sub On_Rewarded_Ad_Clicked(placement As String)
Log("Rewarded clicked")
End Sub
Sub On_Error(placementId as String, error as String)
Log(error)
End Sub
Sub On_Rewarded_Ad_Closed(placement As String, rewarded As Boolean)
If rewarded Then
Log("rewarded")
Else
Log("no reward")
End If
End Sub
Sub On_Rewarded_Ad_Shown(placement As String)
Log("Rewarded shown")
End Sub

اضافه و حذف کردن listener#

برای اضافه کردن و یا حذف کردن یک listener می‌توانید از دستورات زیر استفاده کنید که در آن‌ها EVENT_NAME یک پیش‌وند برای نام SUBها است.

Adivery.addListener(EVENT_NAME)
Adivery.removeListener(EVENT_NAME)
توجه

کالبک ها در ادیوری بطور global تنظیم می شوند، بنابراین باید دقت کنید تا در زمانی که به کالبک نیازی ندارید، آن‌را حذف کنید.

نمایش تبلیغات AdMob#

برای نمایش تبلیغات AdMob در بخش Libraries کتاب‌خانه‌ی FirebaseAds را فعال نمایید و کد زیر را به مانیفست پروژه‌ی خود اضافه کنید.

AddApplicationText(
<meta-data android:name="com.google.android.gms.ads.AD_MANAGER_APP" android:value="true" />
<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:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:theme="@android:style/Theme.Translucent" />)

برای تست نمایش تبلیغات AdMob به مستند تست نمایش تبلیغات مراجعه کنید.