پیشنیازها
همیشه با تبلیغات آزمایشی تست کنید
هنگام ساخت و آزمایش برنامههای خود، مطمئن شوید که از تبلیغات آزمایشی به جای تبلیغات زنده و تولیدی استفاده میکنید. عدم انجام این کار میتواند منجر به مسدود شدن حساب شما شود.
سادهترین راه برای بارگذاری تبلیغات آزمایشی، استفاده از شناسه واحد تبلیغات آزمایشی اختصاصی ما برای تبلیغات جایزهدار اندروید است:
ca-app-pub-3940256099942544/5224354917
این ابزار به طور ویژه پیکربندی شده است تا برای هر درخواست، تبلیغات آزمایشی را برگرداند و شما میتوانید در برنامههای خود هنگام کدنویسی، آزمایش و اشکالزدایی از آن استفاده کنید. فقط قبل از انتشار برنامه، مطمئن شوید که آن را با شناسه واحد تبلیغاتی خود جایگزین میکنید.
برای اطلاعات بیشتر در مورد نحوه عملکرد تبلیغات آزمایشی GMA Next Gen SDK، به تبلیغات آزمایشی مراجعه کنید.
بارگذاری یک تبلیغ
برای بارگذاری یک تبلیغ، GMA Next Gen SDK موارد زیر را ارائه میدهد:
با API بارگذاری تک تبلیغ بارگذاری کنید.
با استفاده از API پیشبارگذاری تبلیغات ، بارگذاری کنید که نیاز به بارگذاری و ذخیرهسازی دستی تبلیغات را از بین میبرد.
با API بارگذاری تک تبلیغ بارگذاری کنید
مثال زیر نحوه بارگذاری یک تبلیغ واحد را به شما نشان میدهد:
کاتلین
import com.google.android.libraries.ads.mobile.sdk.common.AdLoadCallback
import com.google.android.libraries.ads.mobile.sdk.common.AdRequest
import com.google.android.libraries.ads.mobile.sdk.common.FullScreenContentError
import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError
import com.google.android.libraries.ads.mobile.sdk.rewarded.RewardedAd
import com.google.android.libraries.ads.mobile.sdk.rewarded.RewardedAdEventCallback
import com.google.android.libraries.ads.mobile.sdk.MobileAds
class RewardedActivity : Activity() {
private var rewardedAd: RewardedAd? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// Load ads after you inititalize GMA Next Gen SDK.
RewardedAd.load(
AdRequest.Builder(AD_UNIT_ID).build(),
object : AdLoadCallback<RewardedAd> {
override fun onAdLoaded(ad: RewardedAd) {
// Rewarded ad loaded.
rewardedAd = ad
}
override fun onAdFailedToLoad(adError: LoadAdError) {
// Rewarded ad failed to load.
rewardedAd = null
}
},
)
}
companion object {
// Sample rewarded ad unit ID.
const val AD_UNIT_ID = "ca-app-pub-3940256099942544/5224354917"
}
}
جاوا
import com.google.android.libraries.ads.mobile.sdk.common.AdLoadCallback;
import com.google.android.libraries.ads.mobile.sdk.common.AdRequest;
import com.google.android.libraries.ads.mobile.sdk.common.FullScreenContentError;
import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError;
import com.google.android.libraries.ads.mobile.sdk.rewarded.RewardedAd;
import com.google.android.libraries.ads.mobile.sdk.rewarded.RewardedAdEventCallback;
import com.google.android.libraries.ads.mobile.sdk.MobileAds;
class RewardedActivity extends Activity {
// Sample rewarded ad unit ID.
private static final String AD_UNIT_ID = "ca-app-pub-3940256099942544/5224354917";
private RewardedAd rewardedAd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load ads after you initialize GMA Next Gen SDK.
RewardedAd.load(
new AdRequest.Builder(AD_UNIT_ID).build(),
new AdLoadCallback<RewardedAd>() {
@Override
public void onAdLoaded(@NonNull RewardedAd rewardedAd) {
// Rewarded ad loaded.
AdLoadCallback.super.onAdLoaded(rewardedAd);
RewardedActivity.this.rewardedAd = rewardedAd;
}
@Override
public void onAdFailedToLoad(@NonNull LoadAdError adError) {
// Rewarded ad failed to load.
AdLoadCallback.super.onAdFailedToLoad(adError);
rewardedAd = null;
}
}
);
}
}
با استفاده از API پیشبارگذاری تبلیغات، بارگذاری کنید
برای شروع پیش بارگذاری، موارد زیر را انجام دهید:
پیکربندی پیشبارگذاری را با یک درخواست تبلیغ آغاز کنید.
پیشبارگذار تبلیغات جایزهدار را با شناسه واحد تبلیغاتی و پیکربندی پیشبارگذاری خود شروع کنید:
کاتلین
private fun startPreloading(adUnitId: String) {
val adRequest = AdRequest.Builder(adUnitId).build()
val preloadConfig = PreloadConfiguration(adRequest)
RewardedAdPreloader.start(adUnitId, preloadConfig)
}
جاوا
private void startPreloading(String adUnitId) {
AdRequest adRequest = new AdRequest.Builder(adUnitId).build();
PreloadConfiguration preloadConfig = new PreloadConfiguration(adRequest);
RewardedAdPreloader.start(adUnitId, preloadConfig);
}
وقتی آماده نمایش تبلیغ شدید، تبلیغ را از پیشبارگذار (preloader) بررسی کنید:
کاتلین
// Polling returns the next available ad and loads another ad in the background.
val ad = RewardedAdPreloader.pollAd(adUnitId)
جاوا
// Polling returns the next available ad and loads another ad in the background.
final RewardedAd ad = RewardedAdPreloader.pollAd(adUnitId);
تنظیم RewardedAdEventCallback
RewardedAdEventCallback رویدادهای مربوط به نمایش RewardedAd شما را مدیریت میکند. قبل از نمایش تبلیغ پاداشدار، حتماً تابع فراخوانی زیر را تنظیم کنید:
کاتلین
// Listen for ad events.
rewardedAd?.adEventCallback =
object : RewardedAdEventCallback {
override fun onAdShowedFullScreenContent() {
// Rewarded ad did show.
}
override fun onAdDismissedFullScreenContent() {
// Rewarded ad did dismiss.
rewardedAd = null
}
override fun onAdFailedToShowFullScreenContent(
fullScreenContentError: FullScreenContentError
) {
// Rewarded ad failed to show.
rewardedAd = null
}
override fun onAdImpression() {
// Rewarded ad did record an impression.
}
override fun onAdClicked() {
// Rewarded ad did record a click.
}
}
جاوا
// Listen for ad events.
rewardedAd.setAdEventCallback(
new RewardedAdEventCallback() {
@Override
public void onAdShowedFullScreenContent() {
// Rewarded ad did show.
RewardedAdEventCallback.super.onAdShowedFullScreenContent();
}
@Override
public void onAdDismissedFullScreenContent() {
// Rewarded ad did dismiss.
RewardedAdEventCallback.super.onAdDismissedFullScreenContent();
rewardedAd = null;
}
@Override
public void onAdFailedToShowFullScreenContent(
@NonNull FullScreenContentError fullScreenContentError) {
// Rewarded ad failed to show.
RewardedAdEventCallback.super.onAdFailedToShowFullScreenContent(
fullScreenContentError);
rewardedAd = null;
}
@Override
public void onAdImpression() {
// Rewarded ad did record an impression.
RewardedAdEventCallback.super.onAdImpression();
}
@Override
public void onAdClicked() {
// Rewarded ad did record a click.
RewardedAdEventCallback.super.onAdClicked();
}
}
);
نمایش تبلیغ
برای نمایش یک تبلیغ جایزهدار، از متد show() استفاده کنید. از یک شیء OnUserEarnedRewardListener برای مدیریت رویدادهای جایزه استفاده کنید.
کاتلین
// Show the ad.
rewardedAd?.show(
this@RewardedActivity,
object : OnUserEarnedRewardListener {
override fun onUserEarnedReward(rewardItem: RewardItem) {
// User earned the reward.
val rewardAmount = rewardItem.amount
val rewardType = rewardItem.type
}
},
)
جاوا
// Show the ad.
rewardedAd.show(
RewardedActivity.this,
new OnUserEarnedRewardListener() {
@Override
public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
// User earned the reward.
int rewardAmount = rewardItem.getAmount();
String rewardType = rewardItem.getType();
}
});
سوالات متداول
- آیا برای فراخوانی مقداردهی اولیه، مهلت زمانی وجود دارد؟
- پس از 10 ثانیه، GMA Next Gen SDK حتی اگر یک شبکه میانجی هنوز مقداردهی اولیه را تکمیل نکرده باشد،
OnInitializationCompleteListenerرا فراخوانی میکند. - اگر برخی از شبکههای میانجیگری هنگام دریافت پاسخ اولیه آماده نباشند، چه میشود؟
توصیه میکنیم یک تبلیغ را در داخل فراخوانی
OnInitializationCompleteListenerبارگذاری کنید. حتی اگر یک شبکه میانجیگری آماده نباشد، GMA Next Gen SDK همچنان از آن شبکه درخواست تبلیغ میکند. بنابراین اگر یک شبکه میانجیگری پس از اتمام زمان، مقداردهی اولیه را انجام دهد، همچنان میتواند درخواستهای تبلیغ آینده را در آن جلسه ارائه دهد.شما میتوانید با فراخوانی
MobileAds.getInitializationStatus()به نظرسنجی در مورد وضعیت اولیهسازی همه آداپتورها در طول جلسه برنامه خود ادامه دهید.- چگونه بفهمم که چرا یک شبکه میانجیگری خاص آماده نیست؟
AdapterStatus.getDescription()توضیح میدهد که چرا یک آداپتور آمادهی سرویسدهی به درخواستهای تبلیغاتی نیست.- آیا تابع فراخوانی
onUserEarnedReward()همیشه قبل از تابع فراخوانیonAdDismissedFullScreenContent()فراخوانی میشود؟ برای تبلیغات گوگل، تمام فراخوانیهای
onUserEarnedReward()قبل ازonAdDismissedFullScreenContent()رخ میدهند. برای تبلیغاتی که از طریق میانجیگری ارائه میشوند، پیادهسازی SDK شبکه تبلیغاتی شخص ثالث، ترتیب فراخوانی را تعیین میکند. برای SDKهای شبکه تبلیغاتی که یک فراخوانی بسته واحد با اطلاعات پاداش ارائه میدهند، آداپتور میانجیگری،onUserEarnedReward()قبل ازonAdDismissedFullScreenContent()فراخوانی میکند.
مثال
برنامهی نمونهای که نحوهی استفاده از GMA Next Gen SDK را نشان میدهد، دانلود و اجرا کنید.