پیاده سازی تبلیغات همسان

ساخت تبلیغگاه

ابتدا از پنل تپسل یک تبلیغگاه (zone) همسان بسازید و zoneId را زمان درخواست و نمایش تبلیغ استفاده کنید.

ساخت AdHolder

در صفحه‌ای که قصد دارید بنر همسان نمایش بدهید باید یک ViewGroup به عنوان فضایی که قصد دارید تبلیغات در آن نمایش داده شود اضافه کنید (adContainer).

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <FrameLayout
        android:id="@+id/adContainer"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

    </FrameLayout>

</FrameLayout>

نمونه قالب‌های طراحی شده پیش‌فرض برای نمایش تبلیغات همسان در فایل‌های tapsell_content_banner_ad_template و tapsell_app_installation_banner_ad_template قابل مشاهده هستند.

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

viewidtype
logotapsell_nativead_logoImageView
titletapsell_nativead_titleTextView
ad indicatortapsell_nativead_sponsoredView
descriptiontapsell_nativead_descriptionTextView
bannertapsell_nativead_bannerir.tapsell.sdk.nativeads.views.RatioImageView
buttontapsell_nativead_ctaTextView
clickable viewtapsell_nativead_cta_viewView
  • در صورتی که در طراحی دکمه‌ای برای کلیک کردن وجود ندارد می‌توانید از clickable view استفاده کنید.
  • نوع ویوها میتواند از نوع‌های گفته شده ارث بری کرده باشند.

مطابق قطعه کد زیر adContainer و شناسه layout تبلیغ را به تپسل بدهید تا یک TapsellNativeBannerViewManager بسازید.

import ir.tapsell.sdk.nativeads.TapsellNativeBannerManager;
import ir.tapsell.sdk.nativeads.TapsellNativeBannerViewManager;;
...
ViewGroup adContainer = findViewById(R.id.adContainer);
...
TapsellNativeBannerViewManager nativeBannerViewManager = new TapsellNativeBannerManager
    .Builder()
    .setParentView(adContainer)
    .setContentViewTemplate(R.layout.tapsell_content_banner_ad_template)
    .setAppInstallationViewTemplate(R.layout.tapsell_app_installation_banner_ad_template)
    .inflateTemplate(CONTEXT);

درخواست تبلیغ

با کمک متد getAd و به روش زیر درخواست تبلیغ بدهید.

import ir.tapsell.sdk.AdRequestCallback;
import ir.tapsell.sdk.nativeads.TapsellNativeBannerManager;
.......
private void requestAd() {
    TapsellNativeBannerManager.getAd(CONTEXT, ZONE_ID_NATIVE,
                new AdRequestCallback() {
                    @Override
                    public void onResponse(String[] adId) {
                        //ad is ready to show
                    }

                    @Override
                    public void onFailed(String message) {
                        
                    }
                });
}

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

نمایش تبلیغ

بعد از اجرای متد onResponse تبلیغ آماده نمایش است و می‌توانید مطابق روش زیر نمایش دهید.

import ir.tapsell.sdk.nativeads.TapsellNativeBannerManager;
........
private void showAd() {
    TapsellNativeBannerManager.bindAd(
                CONTEXT,
                nativeBannerViewManager,
                ZONE_ID_NATIVE,
                adId[0]);
}