إعدادات عمومية

اختيار النظام الأساسي: Android (إصدار تجريبي) جديد Android iOS Unity

يوفّر صف GADMobileAds إعدادات عامة للتحكّم في بعض المعلومات التي يتم جمعها بواسطة Google Mobile Ads SDK.

التحكّم في مستوى صوت إعلان الفيديو

إذا كان تطبيقك يتضمّن عناصر تحكّم خاصة به في مستوى الصوت، مثل مستويات مخصّصة للموسيقى أو المؤثرات الصوتية، فإنّ الإفصاح عن مستوى الصوت في التطبيق إلى Google Mobile Ads SDK يتيح لإعلانات الفيديو مراعاة إعدادات مستوى الصوت في التطبيق. يضمن ذلك عرض إعلانات الفيديو للمستخدمين بمستوى الصوت المتوقّع.

يحدّد مستوى صوت الجهاز، الذي يتم التحكّم فيه من خلال أزرار مستوى الصوت أو شريط تمرير مستوى الصوت على مستوى نظام التشغيل، مستوى صوت إخراج الصوت من الجهاز. ومع ذلك، يمكن للتطبيقات ضبط مستويات الصوت بشكل مستقل بما يتناسب مع مستوى صوت الجهاز لتخصيص تجربة الصوت.

بالنسبة إلى أشكال الإعلانات على شاشة فتح التطبيق وإعلانات البانر والإعلانات البينية والإعلانات مقابل مكافأة والإعلانات البينية مقابل مكافأة، يمكنك إبلاغ Google Mobile Ads SDK بمستوى صوت التطبيق النسبي من خلال ضبط السمة applicationVolume. تتراوح قيم مستوى صوت الإعلان الصالحة بين 0.0 (صامت) و1.0 (مستوى صوت الجهاز الحالي). في ما يلي مثال على كيفية إرسال حجم التطبيق النسبي إلى حزمة تطوير البرامج (SDK):

Swift

func viewDidLoad() {
  super.viewDidLoad()
  // Set app volume to be half of the current device volume.
  MobileAds.shared.applicationVolume = 0.5
  ...
}

Objective-C

- (void)viewDidLoad {
  [super viewDidLoad];
  // Set app volume to be half of the current device volume.
  GADMobileAds.sharedInstance.applicationVolume = 0.5;
  ...
}

بالنسبة إلى أشكال الإعلانات على شاشة فتح التطبيق وإعلانات البانر والإعلانات البينية والإعلانات مقابل مكافأة والإعلانات البينية مقابل مكافأة، يمكنك إعلام Google Mobile Ads SDK بأنّه تم كتم صوت التطبيق من خلال ضبط السمة applicationMuted على النحو التالي:

Swift

MobileAds.shared.applicationMuted = true

Objective-C

GADMobileAds.sharedInstance.applicationMuted = YES;

يتم ضبط applicationVolume تلقائيًا على 1 (مستوى صوت الجهاز الحالي) ويتم ضبط applicationMuted على NO.

إعلانات مدمجة مع المحتوى

اطّلِع على GADVideoOptions للحصول على تعليمات حول التحكّم في إعدادات كتم الصوت. بالنسبة إلى "الإعلانات المدمجة مع المحتوى"، لا تتوفّر ميزة التحكّم المخصّص في مستوى الصوت.

جلسات الصوت

تتيح لك جلسات الصوت التعبير للنظام عن نواياك بشأن سلوك الصوت في تطبيقك. يمكنك الاطّلاع على معلومات إضافية حول جلسات الصوت في دليل برمجة جلسات الصوت من Apple. تتوفّر خيارات إدارة صوت Google Mobile Ads SDK من خلال السمة audioVideoManager.

إذا كنت لا تستخدم الصوت في تطبيقك، لن تحتاج إلى استخدام واجهات برمجة التطبيقات هذه. تتولّى Google Mobile Ads SDK إدارة فئة جلسة الصوت تلقائيًا عند تشغيل الصوت. إذا كنت تشغّل الصوت في تطبيقك وأردت التحكّم بشكل أكبر في كيفية تشغيل الصوت وموعد تشغيله، يمكنك الاستفادة من واجهات برمجة التطبيقات هذه.Google Mobile Ads SDK

في "مدير الفيديو والصوت"، يمكنك ضبط السمة audioSessionIsApplicationManaged على YES إذا كنت تريد تحمّل مسؤولية إدارة فئة جلسة الصوت بنفسك.

إذا أردت إدارة فئة جلسة الصوت، يمكنك تنفيذ GADAudioVideoManagerDelegate وضبط السمة delegate في أداة إدارة الفيديو والصوت لتلقّي إشعارات بشأن أحداث تشغيل الفيديو والصوت للإعلانات. بعد ذلك، عليك تغيير فئة جلسة الصوت إلى الفئة ذات الصلة وفقًا لدليل برمجة جلسة الصوت من Apple.

في ما يلي نموذج رمز مبسط يعرض الطريقة المقترَحة إذا كان تطبيقك يشغّل الموسيقى، وذلك باستخدام واجهات برمجة التطبيقات المذكورة أعلاه:

Swift

func setUp() {
  MobileAds.shared.audioVideoManager.delegate = self
  MobileAds.shared.audioVideoManager.audioSessionIsApplicationManaged = false
}

// MARK: - GADAudioVideoManagerDelegate
func audioVideoManagerWillPlayAudio(_ audioVideoManager: GADAudioVideoManager) {
  // The Google Mobile Ads SDK is notifying your app that it will play audio. You
  // could optionally pause music depending on your apps design.
  MyAppObject.shared.pauseAllMusic()
}

func audioVideoManagerDidStopPlayingAudio(_ audioVideoManager: GADAudioVideoManager) {
  // The Google Mobile Ads SDK is notifying your app that it has stopped playing
  // audio. Depending on your design, you could resume music here.
  MyAppObject.shared.resumeAllMusic()
}

Objective-C

- (void)setUp {
  GADMobileAds.sharedInstance.audioVideoManager.delegate = self;
  GADMobileAds.sharedInstance.audioVideoManager.audioSessionIsApplicationManaged = NO;
}

#pragma mark - GADAudioVideoManagerDelegate

- (void)audioVideoManagerWillPlayAudio:(GADAudioVideoManager *)audioVideoManager {
  // Google Mobile Ads SDK is notifying your app that it will play audio. You
  // could optionally pause music depending on your apps design.
  [MyAppObject.sharedInstance pauseAllMusic];
}

- (void)audioVideoManagerDidStopPlayingAudio:(GADAudioVideoManager *)audioVideoManager {
    // Google Mobile Ads SDK is notifying your app that it has stopped playing
    // audio. Depending on your design, you could resume music here.
  [MyAppObject.sharedInstance resumeAllMusic];
}

إعداد تقارير الأعطال

تفحص Google Mobile Ads SDK الاستثناءات التي تحدث في تطبيق iOS وتسجّلها إذا كانت ناجمة عن حزمة SDK. ثم يتم معالجة هذه الاستثناءات في إصدارات حزمة SDK المستقبلية.

تكون ميزة الإبلاغ عن الأعطال مفعَّلة تلقائيًا. إذا كنت لا تريد تسجيل الاستثناءات المتعلّقة بحزمة SDK، يمكنك إيقاف هذه الميزة من خلال استدعاء الطريقة disableSDKCrashReporting. أفضل وقت لاستدعاء هذه الطريقة هو عند تشغيل التطبيق:

Swift

import GoogleMobileAds

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

  func application(_ application: UIApplication,
      didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

    MobileAds.shared.disableSDKCrashReporting()
    return true
  }
}

Objective-C

@import GoogleMobileAds;

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

  [GADMobileAds disableSDKCrashReporting];
  return YES;
}

@end

إذا كان تطبيقك يتضمّن متطلبات خاصة، يمكنك ضبط NSUserDefaults gad_has_consent_for_cookies الاختياري. تتيح قيمة Google Mobile Ads SDK الإعلانات المحدودة (LTD) إذا تم ضبط قيمة gad_has_consent_for_cookies على صفر.

Swift

UserDefaults.standard.set(0, forKey: "gad_has_consent_for_cookies")

Objective-C

NSUserDefaults.standardUserDefaults().setObject(Int(0),
    forKey: "gad_has_consent_for_cookies");