راه‌اندازی کیت توسعه نرم‌افزار آگهی تلفن همراه Google

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

برای ارائه آگهی و کسب درآمد، Google Mobile Ads SDK را در برنامه iOS خود ادغام کنید. برای آماده‌سازی پروژه‌تان، قبل‌از درخواست آگهی، Google Mobile Ads SDK را وارد و مقداردهی اولیه کنید.

اگر Firebase را در برنامه iOS خود اضافه می‌کنید، شروع به کار با AdMob در پروژه iOS را ببینید.

این راهنما وارد کردن و مقداردهی اولیه Google Mobile Ads SDK و انتخاب قالب آگهی را پوشش می‌دهد.

پیش‌نیازها

قبل‌از ادامه دادن، مطمئن شوید موارد زیر را دارید:

  • از Xcode نسخه ۱۶.۰ یا بالاتر استفاده کنید.
  • iOS نسخه ۱۳.۰ یا بالاتر را هدف قرار دهد.

وارد کردن Google Mobile Ads SDK

برای وارد کردن Google Mobile Ads SDK، یکی از بخش‌های زیر را تکمیل کنید:

Swift Package Manager (توصیه‌شده)

برای افزودن وابستگی بسته به پروژه‌تان، این مراحل را دنبال کنید:

  1. Xcode را باز کنید.
  2. به File > Add Package Dependencies...‎ بروید.
  3. Google Mobile Ads SDK Swift Package را نصب کنید.

  4. در پیام‌واره‌ای که ظاهر می‌شود، «بسته Google Mobile Ads Swift» را در مخزن GitHub جستجو کنید:

    https://github.com/googleads/swift-package-manager-google-mobile-ads.git
    
  5. نسخه Google Mobile Ads SDK Swift Package موردنظرتان را برای استفاده انتخاب کنید. برای پروژه‌های جدید، توصیه می‌کنیم از Up to Next Major Version استفاده کنید.

CocoaPods

برای استفاده از CocoaPods، این مراحل را دنبال کنید:

  1. Podfile پروژه‌تان را باز کنید و این خط را به پیکربندی ساخت target برنامه‌تان اضافه کنید:

    pod 'Google-Mobile-Ads-SDK'
    
  2. در پایانه، فرمان زیر را اجرا کنید:

    pod install --repo-update

پیکربندی هدف استقرار برای Xcode 27

Xcode 27 برای همه هدف‌ها به حداقل هدف استقرار iOS 15.0 نیاز دارد. چون Google Mobile Ads SDK از iOS نسخه ۱۳.۰ پشتیبانی می‌کند، Xcode 27 هنگام استفاده از CocoaPods ساخته نمی‌شود.

برای رفع این مشکل، این مراحل را دنبال کنید:

  1. Podfile پروژه را باز کنید و قلاب post_install را که هدف استقرار را روی 15.0 تنظیم می‌کند اضافه کنید. اگر بلوک post_install دارید، حلقه داخلی را به بلوک موجود اضافه کنید.

    مثال زیر کلید IPHONEOS_DEPLOYMENT_TARGET را روی 15.0 برای همه هدف‌های pod تنظیم می‌کند:

    post_install do |installer|
      installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
          config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.0'
        end
      end
    end
    
  2. برای بازنصب کردن پادها، فرمان زیر را اجرا کنید:

    pod install --repo-update

بارگیری دستی

برای بارگیری دستی Google Mobile Ads SDK، کارهای زیر را انجام دهید:

  1. بارگیری Google Mobile Ads SDK.
  2. بسته googlemobileadssdkios.zip را استخراج کنید.
  3. در پروژه Xcode، چارچوب‌های زیر را اضافه کنید:

    • GoogleMobileAds.xcframework
    • UserMessagingPlatform.xcframework
  4. در تنظیمات عمومی هدف، به چارچوب‌ها، کتابخانه‌ها، و محتوای جاسازی‌شده بروید.

  5. تأیید کنید که GoogleMobileAds.xcframework و UserMessagingPlatform.xcframework را روی جاسازی و امضا تنظیم کرده‌اید.

  6. در تنظیمات ساخت پروژه، کارهای زیر را انجام دهید:

    • مسیر /usr/lib/swift را به مسیرهای جستجوی Runpath اضافه کنید.
    • پرچم پیونددهنده -ObjC را به پرچم‌های پیونددهنده دیگر اضافه کنید.

فایل Info.plist را به‌روز کنید

در فایل Info.plist برنامه‌تان، کلیدهای زیر را اضافه کنید:

نمونه کامل

<key>GADApplicationIdentifier</key>
<!-- Sample AdMob app ID: ca-app-pub-3940256099942544~1458002511 -->
<string>SAMPLE_APP_ID</string>
<key>SKAdNetworkItems</key>
<array>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>cstr6suwn9.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>4fzdc2evr5.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>2fnua5tdw4.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>ydx93a7ass.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>p78axxw29g.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>v72qych5uu.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>ludvb6z3bs.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>cp8zw746q7.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>3sh42y64q3.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>c6k4g5qg8m.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>s39g8k73mm.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>wg4vff78zm.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>3qy4746246.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>f38h382jlk.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>hs6bdukanm.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>mlmmfzh3r3.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>v4nxqhlyqp.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>wzmmz9fp6w.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>su67r6k2v3.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>yclnxrl5pm.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>t38b2kh725.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>7ug5zh24hu.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>gta9lk7p23.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>vutu7akeur.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>y5ghdn5j9k.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>v9wttpbfk9.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>n38lu8286q.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>47vhws6wlr.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>kbd757ywx3.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>9t245vhmpl.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>a2p9lx4jpn.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>22mmun2rn5.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>44jx6755aq.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>k674qkevps.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>4468km3ulz.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>2u9pt9hc89.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>8s468mfl3y.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>klf5c3l5u5.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>ppxm28t8ap.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>kbmxgpxpgc.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>uw77j35x4d.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>578prtvx9j.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>4dzt52r2t5.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>tl55sbb4fm.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>c3frkrj4fj.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>e5fvkxwrpn.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>8c4e2ghe7u.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>3rd42ekr43.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>97r2b46745.skadnetwork</string>
  </dict>
  <dict>
    <key>SKAdNetworkIdentifier</key>
    <string>3qcr597p9d.skadnetwork</string>
  </dict>
</array>

SAMPLE_APP_ID را با شناسه برنامه AdMob خودتان جایگزین کنید. هنگام آزمایش، از شناسه برنامه نمونه نشان‌داده‌شده در مثال قبلی استفاده کنید.

اگر هنوز حساب AdMob ایجاد نکرده‌اید و برنامه‌ای ثبت نکرده‌اید، اکنون زمان مناسبی برای انجام این کار است.

مقداردهی اولیه Google Mobile Ads SDK

قبل‌از بار کردن آگهی‌ها، Google Mobile Ads SDK را با فراخوانی روش start() از ویژگی GADMobileAds.sharedInstance مقداردهی اولیه کنید. این روش پس‌از اتمام پردازش Google Mobile Ads SDK و آداپتورهای میانجی، یا پس‌از ۳۰ ثانیه، یک گرداننده تکمیل را فراخوانی می‌کند.

مثال زیر Google Mobile Ads SDK را مقداردهی اولیه می‌کند:

Swift

// Initialize the Google Mobile Ads SDK.
MobileAds.shared.start()

SwiftUI

// Initialize the Google Mobile Ads SDK.
MobileAds.shared.start()

آبجکتیو-سی

// Initialize the Google Mobile Ads SDK.
[GADMobileAds.sharedInstance startWithCompletionHandler:nil];

هنگام مقداردهی اولیه، Google Mobile Ads SDK ممکن است آگهی‌ها را پیش‌بارگیری کند یا کیت‌های توسعه نرم‌افزار شخص ثالث را هنگام فراخوانی روش startWithCompletionHandler: مقداردهی اولیه کند. اگر لازم است از کاربران ساکن منطقه اقتصادی اروپا (EEA)، پادشاهی متحد (UK)، یا سوئیس رضایت بگیرید، پرچم‌های مختص درخواست را تنظیم کنید. اگر لازم است پرچم‌های مختص درخواست را تنظیم کنید، حتماً قبل‌از مقداردهی اولیه Google Mobile Ads SDK، پرچم‌ها را تنظیم کنید. برای جزئیات، هدف‌یابی را ببینید.

انتخاب قالب آگهی

پس‌از وارد کردن Google Mobile Ads SDK، می‌توانید قالب آگهی را برای پیاده‌سازی انتخاب کنید.

AdMob قالب‌های آگهی زیر را ارائه می‌دهد:

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