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

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

ابتدا از پنل تپسل یک تبلیغ‌گاه (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>

سپس یک layout دلخواه مطابق شکلی که قصد دارید تبلیغ نمایش داده شود بسازید که rootView از نوع com.google.android.gms.ads.nativead.NativeAdView باشد و id و نوع بخش‌های مختلف مطابق با جدول زیر باشد:

viewidtype
logotapsell_nativead_logoImageView
titletapsell_nativead_titleTextView
ad indicatortapsell_nativead_sponsoredView
descriptiontapsell_nativead_descriptionTextView
bannertapsell_nativead_bannerir.tapsell.sdk.nativeads.views.RatioImageView
media viewtapsell_nativead_banner_admobir.tapsell.plus.adNetworks.admob.AdMobMediaView
buttontapsell_nativead_ctaTextView
clickable viewtapsell_nativead_cta_viewView
  • در صورتی که در طراحی دکمه‌ای برای کلیک کردن وجود ندارد میتوانید از clickable view استفاده کنید.
  • نوع ویوها میتواند از نوع‌های گفته شده ارث بری کرده باشند.
  • باید ۲ ویو را برای نمایش عکس تبلیغات اختصاص بدهید. یکی از نوع ir.tapsell.sdk.nativeads.views.RatioImageView برای تپسل و دیگری از نوع ir.tapsell.plus.adNetworks.admob.AdMobMediaView برای AdMob این دو میتواند دقیقا روی هم قرار بگیرد. تپسل پلاس با توجه به تبلیغ آماده نمایش ویو مورد نظر را نمایش میدهد.

    از نسخه 1.2.3-rc4 در صورتی که از layout ‌پیش فرض استفاده نمیکنید و خودتان layoutای را طراحی و پیاده‌سازی نموده‌اید، به جای com.google.android.gms.ads.formats.MediaView از ir.tapsell.plus.adNetworks.admob.AdMobMediaView استفاده نمایید.

  • می‌توانید از view‌ای که برای این منظور از قبل آماده شده با id زیر استفاده کنید یا به عنوان راهنمایی در ساخت کمک بگیرید. native_banner

برای نمایش تبلیغات همسان، لازم است وابستگی play-services-ads را به پروژه خود در فایل app/build.gradle اضافه کنید.

dependencies {
   def supportedAdmob = "22.6.0"
   implementation("com.google.android.gms:play-services-ads:$supportedAdmob")
}

در صورتیکه از پیش از شبکه تبلیغاتی ادموب در پروژه خود استفاده نمی‌کنید، می‌توانید از کلید تست ادموب (ca-app-pub-3940256099942544~3347511713) استفاده کنید. در غیر اینصورت کلید اختصاصی خود را وارد نمایید.

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

import ir.tapsell.plus.AdHolder;
import ir.tapsell.plus.TapsellPlus;
...
ViewGroup adContainer = findViewById(R.id.adContainer);
...
AdHolder adHolder = TapsellPlus.createAdHolder(
      CONTEXT, adContainer, R.layout.native_banner);

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

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

import ir.tapsell.plus.AdRequestCallback;
import ir.tapsell.plus.TapsellPlus;
.......
private void requestAd() {
    TapsellPlus.requestNativeAd(
                CONTEXT,
                ZONE_ID_NATIVE,
                new AdRequestCallback() {
                    @Override
                    public void response(TapsellPlusAdModel tapsellPlusAdModel) {
                        super.response(tapsellPlusAdModel);

                        //Ad is ready to show
                        //Put the ad's responseId to your responseId variable
                        nativeAdResponseId = tapsellPlusAdModel.getResponseId();
                        showAd();
                    }

                    @Override
                    public void error(@NonNull String message) {
                    }
                });
}

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

نمایش تبلیغ

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

private void showAd() {
    TapsellPlus.showNativeAd(CONTEXT, nativeAdResponseId, adHolder,
                new AdShowListener() {
                    @Override
                    public void onOpened(TapsellPlusAdModel tapsellPlusAdModel) {
                        super.onOpened(tapsellPlusAdModel);
                    }

                    @Override
                    public void onError(TapsellPlusErrorModel tapsellPlusErrorModel) {
                        super.onError(tapsellPlusErrorModel);
                    }
                });
}

حذف تبلیغ

در پایان چرخه‌ی حیات اکتیویتی، می‌بایستی متد زیر را صدا بزنید:

private void destroyAd() {
    TapsellPlus.destroyNativeBanner(CONTEXT, nativeAdResponseId);
}

// For example in Activity's onDestory method
@Override
protected void onDestroy() {
    destroyAd();
    super.onDestroy();
}