یک بسته برای تبلیغ و پوش در Basic4Android

در پروژه B4A، یکسان‌بودن نسخه کلاس‌های SDK اهمیت زیادی دارد. کلاس نمایش تبلیغ، کنترلر پیام و مثال پروژه باید از یک انتشار باشند. بسته یکپارچه دیدنکس، DidnexAds.bas و DidnexPush.bas را کنار هم ارائه می‌کند و پروژه آماده، هر دو ماژول را در فهرست خود دارد.

این مقاله مسیر اتصال را توضیح می‌دهد. برای کپی کد کامل Activity، مجوزها و همه فرمت‌ها، راهنمای B4A و راهنمای پوش B4A را باز کنید. از ترکیب یک کلاس تازه با نسخه قدیمی کلاس دیگر پرهیز کنید؛ جایگزینی فایل‌های همان SDK، نگهداری پروژه را ساده‌تر می‌کند.

رسانه و پکیج پروژه باید یکسان باشند

در Build Configurations پکیج واقعی اپ را مشخص کنید. همین مقدار باید هنگام ثبت رسانه در پنل ناشر وارد شود. نام نمایشی اپ با شناسه بسته تفاوت دارد؛ تغییر برچسب برنامه، پکیج ثبت‌شده را عوض نمی‌کند.

پس از بررسی و فعال‌شدن رسانه، جایگاه مناسب فرمت را بسازید. برای مثال جایگاه همسان ویدیویی به همان فرمت کمپین نیاز دارد. شناسه UNT_ را از پنل بردارید. شناسه کمپین یا شناسه رسانه را در آرگومان جایگاه قرار ندهید. اگر اپ سرور شخصی ندارد، مسیر مستقیم SDK برای اتصال به دیدنکس آماده است.

ماژول‌ها و کتابخانه‌ها را یک بار اضافه کنید

دو کلاس اصلی را با Add Existing Modules وارد پروژه کنید. نام ماژول‌ها مطابق فایل‌های بسته باشد. کتابخانه‌های موردنیاز کلاس تبلیغ، از جمله JSON، JavaObject و کتابخانه‌های شبکه را طبق README فعال کنید. Inbox به کتابخانه FirebaseNotifications نیاز ندارد.

اگر از پروژه آماده شروع می‌کنید، وجود DidnexPush را در فهرست ماژول‌ها بررسی کنید. اگر به اپ موجود اضافه می‌کنید، ماژول هم‌نام از نسخه قبلی را جایگزین کنید. مجوز INTERNET باید در Manifest نسخه انتشار هم وجود داشته باشد. درخواست اعلان سیستم‌عامل برای دریافت پس‌زمینه، مرحله جداگانه‌ای است.

کنترلر پوش را از همان Ads بسازید

در این نمونه، مقدار شناسه را با جایگاه فعال اپ خود عوض کنید. آرگومان چهارم Initialize در مسیر مستقیم، پکیج واقعی برنامه است.

Ads.Initialize(Me,"Ads","https://didnex.com",Application.PackageName)
Push = Ads.CreatePush("UNT_REPLACE_ME",Me,"Push")

ساخت کنترلر، پیام‌رسانی را بدون رضایت فعال نمی‌کند. دکمه پذیرش می‌تواند عملیات زیر را آغاز کند. نتیجه Boolean نشان می‌دهد ثبت عضویت موفق شده است؛ نمایش یک اعلان به وجود پیام معتبر در صف وابسته است.

Wait For (Push.EnableInbox(True,Array As String("general"))) Complete (Ok As Boolean)
If Ok = False Then Log("اتصال پوش برقرار نشد")

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

چرخه Activity را هماهنگ کنید

در Resume، دریافت پوش را فعال و در Pause آن را متوقف کنید. Push.Close برای پایان عمر کنترلر است. Ads.Close نمایش تبلیغ را پاک می‌کند و ممکن است در جریان تعویض تبلیغ دوباره استفاده شود؛ به همین دلیل پایان کنترلر پوش را جدا مدیریت کنید.

برای بنر و تبلیغ تمام‌صفحه، از نمونه‌های مجزای نمایش مطابق مثال SDK استفاده کنید. هویت نصب در مسیر مستقیم مشترک نگه داشته می‌شود. خطای شبکه یا نبود تبلیغ باید به وضعیت قابل نمایش تبدیل شود تا اپ به کار خود ادامه دهد.

خطا را از روی مرحله آن بخوانید

inactive_inventory به وضعیت رسانه، جایگاه یا حساب مربوط است. ابتدا شناسه واقعی، فعال‌بودن جایگاه و تأیید رسانه را بررسی کنید. package_mismatch نیازمند تطبیق پکیج پروژه با رسانه است. push_not_enabled یعنی سرویس پوش همان رسانه در پنل فعال نشده است.

برای اعلان پس‌زمینه، توکن واقعی FCM و تنظیم اتصال در پنل ناشر لازم است. کلید خصوصی حساب سرویس داخل اپ قرار نمی‌گیرد. اگر Inbox کار می‌کند ولی اعلان پس‌زمینه نمی‌رسد، مجوز سیستم‌عامل و تنظیم دریافت بومی را جدا بررسی کنید. تفاوت آمار این مسیرها در راهنمای گزارش پوش توضیح داده شده است.