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

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

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

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

پیش‌نیازها

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

  • از Xcode 16.0 یا بالاتر استفاده کنید.
  • ‫iOS 13.0 یا بالاتر را هدف‌یابی کنید.

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

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

مدیر بسته Swift (توصیه‌شده)

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

  1. ‫Xcode را باز کنید.
  2. به فایل > افزودن وابستگی‌های بسته... پیمایش کنید.
  3. «Google Mobile Ads SDKبسته Swift» را نصب کنید.

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

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

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 13.0 پشتیبانی می‌کند، ساخت‌های Xcode 27 هنگام استفاده از CocoaPods ناموفق است.

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

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

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

    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 قالب‌های آگهی زیر را ارائه می‌دهد:

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