تبلیغات بنری

پلتفرم را انتخاب کنید: Android iOS Unity Flutter

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

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

بنر تطبیقی ​​لنگردار

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

پیش نیازها

همیشه با تبلیغات آزمایشی تست کنید

هنگام ساخت و آزمایش برنامه های خود، مطمئن شوید که از تبلیغات آزمایشی به جای تبلیغات زنده و تولیدی استفاده می کنید. عدم انجام این کار می تواند منجر به تعلیق حساب شما شود.

ساده ترین راه برای بارگیری تبلیغات آزمایشی استفاده از شناسه واحد آگهی آزمایشی اختصاصی ما برای بنرهای iOS است:

ca-app-pub-3940256099942544/2435281174

این به‌طور ویژه پیکربندی شده است تا تبلیغات آزمایشی را برای هر درخواست بازگرداند، و شما می‌توانید هنگام کدنویسی، آزمایش و اشکال‌زدایی از آن در برنامه‌های خود استفاده کنید. فقط مطمئن شوید که قبل از انتشار برنامه خود، آن را با شناسه واحد تبلیغاتی خود جایگزین کنید.

برای کسب اطلاعات بیشتر در مورد نحوه عملکرد تبلیغات آزمایشی SDK Ads Mobile، به Test Ads مراجعه کنید.

یک GADBannerView ایجاد کنید

تبلیغات بنری در اشیاء GADBannerView نمایش داده می شوند، بنابراین اولین قدم برای یکپارچه سازی تبلیغات بنری این است که یک GADBannerView در سلسله مراتب مشاهده خود قرار دهید. این معمولاً به صورت برنامه‌نویسی یا از طریق Interface Builder انجام می‌شود.

به صورت برنامه ای

یک GADBannerView همچنین می‌تواند مستقیماً نمونه‌سازی شود. مثال زیر یک GADBannerView ایجاد می کند:

سویفت

// Initialize the BannerView.
bannerView = BannerView()

bannerView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(bannerView)

// This example doesn't give width or height constraints, as the ad size gives the banner an
// intrinsic content size to size the view.
NSLayoutConstraint.activate([
  // Align the banner's bottom edge with the safe area's bottom edge
  bannerView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor),
  // Center the banner horizontally in the view
  bannerView.centerXAnchor.constraint(equalTo: view.centerXAnchor),
])

SwiftUI

برای استفاده از BannerView ، یک UIViewRepresentable ایجاد کنید:

private struct BannerViewContainer: UIViewRepresentable {
  typealias UIViewType = BannerView
  let adSize: AdSize

  init(_ adSize: AdSize) {
    self.adSize = adSize
  }

  func makeUIView(context: Context) -> BannerView {
    let banner = BannerView(adSize: adSize)
    banner.adUnitID = "ca-app-pub-3940256099942544/2435281174"
    banner.load(Request())
    banner.delegate = context.coordinator
    return banner
  }

  func updateUIView(_ uiView: BannerView, context: Context) {}

  func makeCoordinator() -> BannerCoordinator {
    return BannerCoordinator(self)
  }

UIViewRepresentable خود را به سلسله مراتب view اضافه کنید و مقادیر height و width را مشخص کنید:

var body: some View {
  Spacer()
  // Request an anchored adaptive banner with a width of 375.
  let adSize = currentOrientationAnchoredAdaptiveBanner(width: 375)
  BannerViewContainer(adSize)
    .frame(width: adSize.size.width, height: adSize.size.height)
}

هدف-C

// Initialize the GADBannerView.
self.bannerView = [[GADBannerView alloc] init];

self.bannerView.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addSubview:self.bannerView];

// This example doesn't give width or height constraints, as the ad size gives the banner an
// intrinsic content size to size the view.
[NSLayoutConstraint activateConstraints:@[
    // Align the banner's bottom edge with the safe area's bottom edge
    [self.bannerView.bottomAnchor constraintEqualToAnchor:self.view.safeAreaLayoutGuide.bottomAnchor],
    // Center the banner horizontally in the view
    [self.bannerView.centerXAnchor constraintEqualToAnchor:self.view.centerXAnchor],
]];

رابط ساز

می توانید یک GADBannerView به استوری بورد یا فایل xib اضافه کنید. هنگام استفاده از این روش، مطمئن شوید که فقط محدودیت های موقعیت را روی بنر اضافه کنید. به عنوان مثال، هنگام نمایش یک بنر تطبیقی ​​در پایین صفحه، قسمت پایین نمای بنر را برابر با بالای راهنمای چیدمان پایین قرار دهید و محدودیت centerX را برابر با centerX superview تنظیم کنید.

اندازه آگهی بنر هنوز به صورت برنامه‌ریزی تنظیم می‌شود:

سویفت

// Request an anchored adaptive banner with a width of 375.
bannerView.adSize = currentOrientationAnchoredAdaptiveBanner(width: 375)

هدف-C

// Request an anchored adaptive banner with a width of 375.
self.bannerView.adSize = GADCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(375);

یک تبلیغ را بارگیری کنید

هنگامی که GADBannerView در جای خود قرار گرفت و ویژگی های آن، مانند adUnitID ، پیکربندی شد، زمان بارگذاری یک تبلیغ فرا می رسد. این کار با فراخوانی loadRequest: روی یک شی GADRequest انجام می شود:

سویفت

bannerView.load(Request())

SwiftUI

banner.adUnitID = "ca-app-pub-3940256099942544/2435281174"
banner.load(Request())

هدف-C

[self.bannerView loadRequest:[GADRequest request]];

اشیاء GADRequest یک درخواست آگهی واحد را نشان می‌دهند و دارای ویژگی‌هایی مانند اطلاعات هدف‌گیری هستند.

یک آگهی را تازه کنید

اگر واحد تبلیغات خود را برای بازخوانی پیکربندی کرده‌اید، نیازی به درخواست آگهی دیگری در صورت عدم بارگیری آگهی ندارید. Google Mobile Ads SDK به نرخ تازه‌سازی که در رابط کاربری AdMob مشخص کرده‌اید احترام می‌گذارد. اگر بازخوانی را فعال نکرده‌اید، درخواست جدیدی صادر کنید. برای جزئیات بیشتر در مورد بازخوانی واحد تبلیغات، مانند تنظیم نرخ تجدید، به استفاده از بازخوانی خودکار برای تبلیغات بنر مراجعه کنید.

رویدادهای تبلیغاتی

از طریق استفاده از GADBannerViewDelegate ، می‌توانید به رویدادهای چرخه حیات گوش دهید، مانند زمانی که آگهی بسته می‌شود یا کاربر برنامه را ترک می‌کند.

برای رویدادهای بنر ثبت نام کنید

برای ثبت نام برای رویدادهای تبلیغات بنری، ویژگی delegate را در GADBannerView روی شی ای تنظیم کنید که پروتکل GADBannerViewDelegate را پیاده سازی می کند. به طور کلی، کلاسی که تبلیغات بنری را پیاده سازی می کند، به عنوان کلاس delegate نیز عمل می کند، در این صورت، ویژگی delegate را می توان روی self تنظیم کرد.

سویفت

bannerView.delegate = self

SwiftUI

banner.delegate = context.coordinator

هدف-C

self.bannerView.delegate = self;

اجرای رویدادهای بنر

هر یک از متدها در GADBannerViewDelegate به‌عنوان اختیاری علامت‌گذاری شده‌اند، بنابراین شما فقط باید روش‌هایی را که می‌خواهید پیاده‌سازی کنید. این مثال هر روش را پیاده سازی می کند و یک پیام را به کنسول ثبت می کند:

سویفت

func bannerViewDidReceiveAd(_ bannerView: BannerView) {
  print(#function)
}

func bannerView(_ bannerView: BannerView, didFailToReceiveAdWithError error: Error) {
  print(#function + ": " + error.localizedDescription)
}

func bannerViewDidRecordClick(_ bannerView: BannerView) {
  print(#function)
}

func bannerViewDidRecordImpression(_ bannerView: BannerView) {
  print(#function)
}

func bannerViewWillPresentScreen(_ bannerView: BannerView) {
  print(#function)
}

func bannerViewWillDismissScreen(_ bannerView: BannerView) {
  print(#function)
}

func bannerViewDidDismissScreen(_ bannerView: BannerView) {
  print(#function)
}

هدف-C

- (void)bannerViewDidReceiveAd:(GADBannerView *)bannerView {
  NSLog(@"bannerViewDidReceiveAd");
}

- (void)bannerView:(GADBannerView *)bannerView didFailToReceiveAdWithError:(NSError *)error {
  NSLog(@"bannerView:didFailToReceiveAdWithError: %@", [error localizedDescription]);
}

- (void)bannerViewDidRecordImpression:(GADBannerView *)bannerView {
  NSLog(@"bannerViewDidRecordImpression");
}

- (void)bannerViewWillPresentScreen:(GADBannerView *)bannerView {
  NSLog(@"bannerViewWillPresentScreen");
}

- (void)bannerViewWillDismissScreen:(GADBannerView *)bannerView {
  NSLog(@"bannerViewWillDismissScreen");
}

- (void)bannerViewDidDismissScreen:(GADBannerView *)bannerView {
  NSLog(@"bannerViewDidDismissScreen");
}

برای پیاده‌سازی روش‌های نمایندگی بنر در برنامه آزمایشی iOS API به مثال Ad Delegate مراجعه کنید.

Swift Objective-C

موارد استفاده کنید

در اینجا چند نمونه از موارد استفاده برای این روش های رویداد تبلیغاتی آورده شده است.

پس از دریافت آگهی، یک بنر به سلسله مراتب مشاهده اضافه کنید

ممکن است بخواهید افزودن GADBannerView به سلسله مراتب مشاهده را تا زمانی که آگهی دریافت کنید به تعویق بیندازید. می توانید این کار را با گوش دادن به رویداد bannerViewDidReceiveAd: انجام دهید:

سویفت

func bannerViewDidReceiveAd(_ bannerView: BannerView) {
  // Add banner to view and add constraints.
  addBannerViewToView(bannerView)
}

هدف-C

- (void)bannerViewDidReceiveAd:(GADBannerView *)bannerView {
  // Add bannerView to view and add constraints as above.
  [self addBannerViewToView:self.bannerView];
}

انیمیشن یک بنر تبلیغاتی

همچنین می توانید از رویداد bannerViewDidReceiveAd: برای متحرک سازی یک آگهی تبلیغاتی پس از بازگرداندن آن استفاده کنید، همانطور که در مثال زیر نشان داده شده است:

سویفت

func bannerViewDidReceiveAd(_ bannerView: BannerView) {
  bannerView.alpha = 0
  UIView.animate(withDuration: 1, animations: {
    bannerView.alpha = 1
  })
}

هدف-C

- (void)bannerViewDidReceiveAd:(GADBannerView *)bannerView {
  bannerView.alpha = 0;
  [UIView animateWithDuration:1.0 animations:^{
    bannerView.alpha = 1;
  }];
}

برنامه را متوقف کرده و از سر بگیرید

پروتکل GADBannerViewDelegate روش هایی دارد که شما را از رویدادها مطلع می کند، مانند زمانی که یک کلیک باعث ارائه یا رد شدن یک پوشش می شود. اگر می خواهید ردیابی کنید که آیا این رویدادها به دلیل تبلیغات بوده است یا خیر، برای این روش های GADBannerViewDelegate ثبت نام کنید.

برای مشاهده همه انواع ارائه‌های همپوشانی یا فراخوان‌های مرورگر خارجی، نه فقط مواردی که از کلیک‌های تبلیغاتی می‌آیند، برنامه شما بهتر است به روش‌های مشابه در UIViewController یا UIApplication گوش دهد. در اینجا جدولی وجود دارد که روش‌های معادل iOS را نشان می‌دهد که همزمان با متدهای GADBannerViewDelegate فراخوانی می‌شوند:

روش GADBannerViewDelegate روش iOS
bannerViewWillPresentScreen: نمای UIViewController viewWillDisappear:
bannerViewWillDismissScreen: نمای UIViewController viewWillAppear:
bannerViewDidDismissScreen: viewDidAppear:

منابع اضافی

نمونه هایی در GitHub

مراحل بعدی

بنرهای جمع شونده

بنرهای جمع‌شونده، بنری‌هایی هستند که در ابتدا به صورت یک پوشش بزرگ‌تر ارائه می‌شوند و دکمه‌ای برای جمع کردن آگهی به اندازه کوچک‌تر وجود دارد. استفاده از آن را برای بهینه سازی بیشتر عملکرد خود در نظر بگیرید. برای جزئیات بیشتر به بنرهای تاشو مراجعه کنید.

بنرهای تطبیقی ​​درون خطی

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

موضوعات دیگر را بررسی کنید