ساخت تبلیغگاه
ابتدا از پنل تپسل یک تبلیغگاه (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
و نوع بخشهای مختلف مطابق با جدول زیر باشد:
view | id | type |
---|---|---|
logo | tapsell_nativead_logo | ImageView |
title | tapsell_nativead_title | TextView |
ad indicator | tapsell_nativead_sponsored | View |
description | tapsell_nativead_description | TextView |
banner | tapsell_nativead_banner | ir.tapsell.sdk.nativeads.views.RatioImageView |
media view | tapsell_nativead_banner_admob | ir.tapsell.plus.adNetworks.admob.AdMobMediaView |
button | tapsell_nativead_cta | TextView |
clickable view | tapsell_nativead_cta_view | View |
- در صورتی که در طراحی دکمهای برای کلیک کردن وجود ندارد میتوانید از 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();
}