Глобальные настройки

Класс 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.

Если в вашем приложении нет аудиоконтента, эти API вам не нужны. Google Mobile Ads SDK автоматически управляет категорией аудиосеанса при воспроизведении аудио. Если вы воспроизводите аудио в приложении и хотите более точно контролировать, как и когда Google Mobile Ads SDK воспроизводит аудио, вы можете использовать эти API.

В менеджере аудио- и видеоконтента можно задать для свойства audioSessionIsApplicationManaged значение YES, если вы хотите самостоятельно управлять категорией аудиосеанса.

Если вы хотите управлять категорией аудиосеанса, реализуйте GADAudioVideoManagerDelegate и задайте свойство delegate в менеджере аудио- и видеоконтента, чтобы получать уведомления о событиях воспроизведения видео- и аудиообъявлений. Затем измените категорию аудиосеанса на подходящую в соответствии с руководством по программированию аудиосеансов от Apple.

Ниже приведен упрощенный пример кода, в котором показан рекомендуемый подход к воспроизведению музыки в приложении с использованием описанных выше API:

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 включает ограниченный показ рекламы, если для параметра gad_has_consent_for_cookies задано значение 0.

Swift

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

Objective-C

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