Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Версия
Дата выпуска
Примечания
23.5.0
2024-10-29
Обновлены сообщения logcat о сбое загрузки рекламы, представленные в выпуске 23.4.0, с уровня ошибки на информационный уровень.
Улучшена монетизация персонализированной рекламы в пользовательских вкладках API WebView для рекламы.
23.4.0
2024-09-30
При сбоях загрузки рекламы теперь в трассировке стека ошибки отображается сообщение logcat о том, что ad failed to load . Трассировка стека регистрирует это сообщение как ошибку, но это не означает сбоя. Чтобы интерпретировать распространенные сбои при загрузке объявлений, обратитесь к разделу «Отладка распространенных сообщений журнала ошибок» . Если вы видите повторяющуюся ошибку, связанную с показом рекламы, которая не задокументирована, поделитесь трассировкой стека с поддержкой Mobile Ads SDK .
Обновлена зависимость SDK платформы обмена сообщениями пользователей до версии 3.0.0.
23.2.0
2024-06-27
Добавлен AdView.isCollapsible() чтобы указать, можно ли свернуть последний загруженный баннер.
23.1.0
2024-05-09
Требуется минимальная compileSdkVersion 34.
Собственные адаптеры-посредники : устарели loadNativeAd и loadRtbNativeAd() в пользу loadNativeAdMapper() и loadRtbNativeAdMapper() . Адаптеры должны перейти на использование этих новых методов загрузки и связанных объектов.
Удален устаревший API MobileAds.enableSameAppKey() и обновлен альтернативный метод MobileAds.putPublisherFirstPartyIdEnabled() который возвращает логическое значение о том, успешно ли сохраняется элемент управления.
Native Ads :
Удален AdLoader.forUnifiedNativeAd() . Вместо этого используйте AdLoader.forNativeAd() .
Удален AdLoader.forCustomTemplateAd() . Вместо этого используйте AdLoader.forCustomFormatAd() .
Удален AdFormat.UNKNOWN без замены. Приложения, использующие QueryInfo.generate() должны передавать формат объявления.
Методы AdManagerAdRequest.Builder унаследованные от родительского объекта, теперь можно объединять в цепочку для создания объекта за один вызов. Это потребовало изменения структуры наследования, чтобы AdManagerAdRequest.Builder больше не наследовал от AdRequest.Builder .
Инспектор объявлений: включена возможность запускать запросы объявлений из пользовательского интерфейса инспектора объявлений на устройствах, на которых нет сервисов Google Play.
Адиация: возвращаемое значение для Adapter.getVersionInfo() и Adapter.getSDKVersionInfo() изменено с типа com.google.android.gms.ads.mediation.VersionInfo на com.google.android.gms.ads.VersionInfo . Мы рекомендуем адаптерам возвращать новый тип, поскольку com.google.android.gms.ads.mediation.VersionInfo устарел.
21.5.0
2023-01-31
Объявления при открытии приложения: устаревшие методы AppOpenAd.load() , которые принимают входной параметр ориентации, и добавлены новые методы, которые не принимают входные данные ориентации. Новые методы определяют ориентацию во время запроса, что соответствует поведению других полноэкранных форматов.
Медиация: добавлена поддержка медиации для объявлений при запуске приложения.
Удалено разрешение RECEIVE_BOOT_COMPLETED из зависимости androidx.work:work-runtime . Если вы используете версии Gradle до 7.2.0 и вам требуется разрешение для вашего приложения, вам может потребоваться явно объявить разрешение в манифесте Android.
21.4.0
2022-12-14
Идентификатор приложения Менеджера рекламы теперь необходим для всех приложений Менеджера рекламы и имеет формат ca-app-pub-################~########## . Дополнительные сведения см. в разделе Настройка приложения .
Инспектор объявлений. Расширьте поддержку SDK для показа баннерной и собственной рекламы, запрошенной через пользовательский интерфейс инспектора объявлений.
Добавлена поддержка собственного идентификатора издателя (ранее известного как тот же ключ приложения), который поможет вам предоставлять более релевантную и персонализированную рекламу с использованием данных, собранных из ваших приложений.
Официальная версия для генерации QueryInfo .
21.3.0
2022-10-10
Инспектор объявлений: добавлена поддержка SDK для запроса и показа объявлений, запрошенных через пользовательский интерфейс инспектора объявлений.
Google Mobile Ads SDK отключит передачу рекламного идентификатора Android (AAID), когда RequestConfiguration.Builder.setTagForChildDirectedTreatment() вызывается с TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE (см. настройку, ориентированную на детей ) или RequestConfiguration.Builder.setTagForUnderAgeOfConsent() вызывается с помощью TAG_FOR_UNDER_AGE_OF_CONSENT_TRUE (см. настройки пользователей, не достигших возраста согласия ).
20.5.0
2021-11-18
Добавлена поддержка устройств Android 12 для приложений, ориентированных на API 31.
Добавлена поддержка идентификатора набора приложений для таких случаев использования, как отчетность и предотвращение мошенничества.
20.4.0
2021-09-22
Начиная с версии 20.4.0, Google Mobile Ads SDK включает разрешение com.google.android.gms.permission.AD_ID в манифест SDK, который автоматически объединяется с манифестом приложения инструментами сборки Android. Чтобы узнать больше о объявлении разрешения AD_ID , в том числе о том, как его отключить, обратитесь к этой статье справки Play Console .
Добавлен обратный вызов onAdClicked() в FullScreenContentCallback .
Включен обратный вызов onAdClicked() в классе AdListener для собственного формата рекламы.
Добавлен обратный вызов onAdImpression() в FullScreenContentCallback .
Устаревший формат InstreamAd .
Адаптеры-посредники:
Устаревшие MediationBannerAdapter , MediationInterstitialAdapter и MediationNativeAdapter . Новые адаптеры должны реализовывать класс Adapter для загрузки этих форматов.
Адаптеры назначения ставок теперь могут реализовывать отдельные методы загрузки в классе Adapter для форматов, специфичных для RTB.
19.7.0
2021-01-20
Основные изменения в:
InterstitialAd
RewardedAd
NativeAd
AppOpenAd
Устаревший CustomRenderedAd .
Классы и пакеты с префиксом Publisher устарели и заменены префиксом AdManager .
Последний минорный выпуск перед версией 20.0.0. Все API, помеченные как устаревшие в этой и предыдущих версиях, будут удалены в версии 20.0.0. Дополнительные сведения см. в руководстве по миграции на версию 20.0.0 .
19.6.0
2020-12-04
Устаревший метод onAdLeftApplication() AdListener .
Исправлена ошибка, из-за которой пользователям устройств Android 11 предлагалось выбрать браузер при нажатии на рекламу.
19.5.0
2020-10-20
Баннерная реклама: метод onAdImpression() AdListener теперь вызывается для баннерной рекламы.
Добавлен метод setHttpTimeoutMillis() для настройки времени ожидания HTTPS-вызовов, выполняемых Google Mobile Ads SDK.
19.4.0
2020-09-10
Добавлена поддержка устройств Android 11 для приложений, ориентированных на API 30.
Объявления при открытии приложения: изменен формат AppOpenAd , который больше похож на полноэкранный формат, чем на просмотр баннера. В AppOpenAd добавлены методы getResponseInfo() и show() . Устаревшие классы AppOpenAdView и AppOpenAdPresentationCallback .
Медиация: теперь доступны отчеты о статусе медиации. Используйте ResponseInfo.getAdapterResponses() , чтобы получить информацию об ответе для каждой рекламной сети, участвовавшей в запросе объявления.
Устаревшая реклама с вознаграждением: устаревшая реклама RewardedVideoAd .
Исправлена ошибка, из-за которой MobileAds.initialize() вызывает обработчик завершения только один раз. Каждый вызов MobileAds.initialize() теперь вызывает обратный вызов завершения.
Добавлены новые обратные вызовы при сбое загрузки для всех форматов объявлений, которые возвращают LoadAdError . Например, onAdFailedToLoad(LoadAdError) .
Устаревшие обратные вызовы при сбое загрузки, возвращающие int. Например, onAdFailedToLoad(int) .
Объявления с вознаграждением: добавлен onRewardedAdFailedToShow(AdError) и устарел onRewardedAdFailedToShow(int) .
Посредничество с вознаграждением: добавлен код ошибки презентации MEDIATION_SHOW_ERROR . Все ошибки представления, связанные с рекламой с посредником, теперь возвращают MEDIATION_SHOW_ERROR для AdError.getCode() и NonNull AdError.getCause() представляющий основную ошибку посредника.
19.2.0
2020-06-18
Добавлен формат RewardedInterstitialAd . Эта функция в настоящее время находится на стадии закрытого бета-тестирования. Обратитесь к менеджеру своего аккаунта и запросите доступ.
Нативные объявления: добавлен пользовательский интерфейс нативного валидатора для тестовых запросов, который поможет вам выявлять и исправлять нарушения нативной политики.
Добавлены API для формата рекламы InstreamAd . Эта функция в настоящее время находится на стадии закрытого бета-тестирования. Обратитесь к менеджеру своего аккаунта и запросите доступ.
Адаптивный баннер : изменены методы создания адаптивного баннера в классе AdSize . Например, AdSize.getCurrentOrientationBannerAdSizeWithWidth() переименован в AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize() .
Посредничество . Google Mobile Ads SDK теперь улавливает исключения, создаваемые адаптерами посредничества.
Посредничество с вознаграждением : исправлена ошибка, из-за которой при кэшировании нескольких объявлений с вознаграждением за вознаграждение отображалось только одно.
Добавлен метод setTestDeviceIds() , позволяющий настраивать тестовые устройства один раз для всех запросов объявлений.
18.2.0
2019-08-29
Добавлены API для формата AppOpenAd . Эта функция в настоящее время находится на стадии закрытого бета-тестирования. Обратитесь к менеджеру своего аккаунта и запросите доступ.
Посредничество . Исключения адаптера, трассировка стека которых включает Google Mobile Ads SDK, теперь перехватываются и обрабатываются Google Mobile Ads SDK.
18.1.0
2019-07-09
Официальный релиз для поддержки App Measurement.
Измерение приложения по умолчанию инициализирует и отправляет данные при запуске приложения. Добавлена возможность отложить измерение приложения до тех пор, пока не будет явно вызван Google Mobile Ads SDK.
Добавлен MobileAds.getInitializationStatus() для предоставления статуса инициализации всех рекламных сетей, настроенных для вашего приложения.
Добавлен MobileAds.getRequestConfiguration() . Параметры таргетинга, установленные в этом объекте конфигурации, используются для всех запросов объявлений.
Нативные объявления . Для невидеообъявлений тип масштаба изображения MediaView теперь можно установить с помощью MediaView.setImageScaleType() .
Нативные объявления : добавлен UnifiedNativeAd.getMediaContent() . Издатели, которые загружают изображения только через URL-адреса, теперь могут получить медиаконтент объявления, добавить к нему изображение и вызвать MediaView.setMediaContent() для заполнения данных изображения через MediaView для невидеообъявлений.
Чтобы избежать сбоя, который происходит при первом запуске после установки приложения из магазина Play, этот выпуск требует от издателей объявить дополнительные зависимости в их build.gradle:
Исправлена ошибка ANR, возникающая в android.media.AudioManager.getStreamVolume .
17.2.0
2019-03-11
Видео с вознаграждением: добавлен новый набор API с вознаграждением (см. пакет с вознаграждением ), которые позволяют одновременно загружать несколько объявлений с вознаграждением.
Посредничество: добавлен новый набор API-интерфейсов адаптера-посредника, поддерживающих инициализацию. Адаптеры, реализующие новый API, реализуют класс Adapter .
Издатели, использующие firebase-analytics вместе с версией 17.2.0 любой библиотеки объявлений (например, com.google.android.gms:play-services-ads:17.2.0 ), должны использовать com.google.firebase:firebase-analytics:16.3.0 .
17.1.3
2019-01-31
Издатели, использующие firebase-analytics вместе с версией 17.1.3 любой библиотеки объявлений (например, com.google.android.gms:play-services-ads:17.1.3 ), должны использовать com.google.firebase:firebase-analytics:16.3.0 .
17.1.2
2018-12-03
Издатели, использующие firebase-analytics вместе с версией 17.1.2 любой библиотеки объявлений (например, com.google.android.gms:play-services-ads:17.1.2 ), должны использовать com.google.firebase:firebase-analytics:16.0.6 .
17.1.1
2018-11-12
Исправлена ошибка, из-за которой определенные комбинации play-services-ads и firebase-analytics (например, ads:17.1.0 & analytics:16.0.5 ) приводили к duplicate entry . Издатели, использующие firebase-analytics вместе с версией 17.1.1 любой библиотеки объявлений (например, com.google.android.gms:play-services-ads:17.1.1 ), должны использовать com.google.firebase:firebase-analytics:16.0.5 .
Google AdMob издатели обязаны указать тег <meta-data> с ключомcom.google.android.gms.ads.APPLICATION_IDв их AndroidManifest.xml. Дополнительные сведения см. в руководстве «Начало работы» .
Нативные объявления:NativeAppInstallAd , NativeContentAd и связанные API устарели в пользу UnifiedNativeAd . Дополнительные инструкции по использованию новых API см. в документе Native Ads Advanced Unified.
Нативные объявления: добавлена функция «Отключить это объявление».
Нативные объявления: безобидный журнал предупреждений: «UnconfirmedClickListener не должен иметь значение null, пока установлен ClickConfirmingView». был удален.
Объявления с вознаграждением: в RewardedVideoAd добавлен метод setAdMetadataListener для прослушивания изменений метаданных объявления.
Объявления с вознаграждением: вызов метода destroy() обнулит прослушиватель.
Исправлена ошибка, из-за которой onRewardedVideoCompleted() не срабатывал на эмуляторах.
16.0.0
2018-10-02
Реклама не меняется. Дополнительную информацию см. в примечаниях к выпуску сервисов Google Play.
15.0.0
2018-04-12
Бета-версия MRAID v3.
Нативные объявления: добавлен унифицированный API нативной рекламы. Это объединяет NativeAppInstallAds и NativeContentAds в один новый тип: UnifiedNativeAd .
Примечание. При использовании нативных объявлений в журналах появляется легкое предупреждение при нажатии на нативное объявление: « UnconfirmedClickListener не должно быть нулевым, пока установлен ClickConfirmingView». Это предупреждение можно игнорировать, и оно будет удалено в следующий выпуск.
12.0.1
2018-03-28
Реклама не меняется. Дополнительные сведения см. в примечаниях к выпуску сервисов Google Play.
12.0.0
2018-03-20
Видео с вознаграждением: в RewardedVideoAdListener добавлен метод обратного вызова onRewardedVideoCompleted() .
Нативное посредничество. В NativeAdMapper добавлен метод trackViews() , предоставляющий адаптерам доступ к объектам View соответствующим отдельным ресурсам нативной рекламы. Устаревший trackView() в пользу trackViews() .
11.8.0
2017-12-18
Исправлены ошибки и общие улучшения.
11.6.0
2017-11-07
Добавлен класс NativeAdViewHolder и связанные с ним методы в NativeAppInstallAd и NativeContentAd .
Устаревший AdLoader.getMediationAdapterClassName (вместо этого издателям следует использовать одноименные методы в NativeAppInstallAd и NativeContentAd ).
В тестовых объявлениях поверх объявления теперь отображается метка. Более подробную информацию смотрите в руководстве по тестированию .
11.4.0
2017-09-19
В классы NativeAppInstallAd и NativeContentAd добавлены методы getMediationAdapterClassName() . Одноименный метод в AdLoader станет устаревшим.
Добавлен новый метод loadAd() , который принимает объект PublisherAdRequest в класс RewardedVideoAd .
11.2.0
2017-08-14
В класс AdLoader добавлен метод loadAds() , который позволяет приложениям загружать несколько уникальных объявлений в одном запросе.
При обновлении приложения Google Mobile Ads SDK до версии 11.2.0 или более поздней необходимо также обновить build.gradle вашего приложения, чтобы указать значение compileSdkVersion не ниже 26 (Android O). Это не меняет способ работы вашего приложения. Вам не потребуется обновлять targetSdkVersion .
Начиная с версии 11.2.0, Google Mobile Ads SDK доступен в репозитории Google Maven. Дополнительную информацию см. в примечаниях к выпуску сервисов Google Play.
11.0.0
2017-06-07
В класс AdListener добавлены методы onAdClicked() и onAdImpression() . Эти методы вызываются только для нативной установки приложения и нативной рекламы с содержанием.
Удалены методы getInAppPurchaseListener() и setInAppPurchaseListener() из классов AdView , InterstitialAd и NativeExpressAdView . Также удалены соответствующие классы покупок внутри приложения.
Добавлена возможность включать режим погружения в полноэкранной рекламе путем добавления метода setImmersiveMode() в классы PublisherInterstitialAd и RewardedVideoAd .
Добавлен интерфейс OnPublisherAdViewLoadedListener , класс PublisherAdViewOptions и класс PublisherAdViewOptions.Builder для использования с AdLoader для запросов нативного контента и баннера.
Добавлен дополнительный интерфейс OnImmersiveModeUpdatedListener , который адаптеры-посредники могут реализовать для получения информации об обновлениях режима погружения.
В класс RewardedVideoAd добавлен метод getMediationAdapterClassName() .
Добавлены правила keep для автоматического сохранения имен классов адаптеров-посредников при использовании ProGuard .
10.2.0
2017-2-15
Сервисы Google Play 10.2.x — это первый выпуск, который больше не включает полную поддержку версии Android 2.3.x (Gingerbread). Приложения, разработанные с использованием SDK версии 10.2.x и более поздних версий, требуют минимального уровня Android API 14 и не могут быть установлены на устройствах с уровнем API ниже 14. Чтобы узнать больше о ваших возможностях, включая создание нескольких APK-файлов для расширения поддержки вашего приложения для Android Gingerbread, см. в блоге разработчиков Android .
Добавлена поддержка видеоресурсов для нативного расширенного контента и рекламы настраиваемых шаблонов.
В класс PublisherAdView добавлены методы getVideoController() , setVideoOptions() и getVideoOptions() .
Добавлен класс AdChoicesView .
В класс NativeAdMapper добавлены методы getAdChoicesContent() и setAdChoicesContent() .
Добавлен интерфейс InitializableMediationRewardedVideoAdAdapter для адаптеров посредничества видео с вознаграждением, которые хотят включить раннюю инициализацию до того, как будет сделан запрос объявления.
Добавлена поддержка предварительного просмотра в приложении и устранения неполадок в Google Ad Manager.
10.0.1
2016-11-21
Исправлены ошибки и общие улучшения.
9.8.0
2016-10-24
MobileAds.Initialize(Context) больше не поддерживается. Издателям Google Ad Manager следует вызывать этот метод при инициализации своих приложений. Издателям AdMob по-прежнему следует использовать MobileAds.Initialize(Context, String) и передавать код своего приложения.
9.6.0
2016-09-22
Добавлен класс MediaView для видеообъявлений Native Ads Advanced.
В класс MobileAds добавлен метод openDebugMenu() для предварительного просмотра объявлений и устранения неполадок рекламных блоков Менеджера рекламы.
Добавлена поддержка пользовательских событий видео с вознаграждением.
9.4.0
2016-08-01
Исправлены ошибки и общие улучшения.
9.2.0
2016-06-27
В класс NativeAdOptions.Builder добавлен метод setAdChoicesPlacement() , который теперь издатели приложений могут использовать для указания местоположения своих AdChoices в нативных объявлениях.
Воспроизведение видеорекламы было улучшено за счет исправления нескольких ошибок.
9.0.1
2016-05-26
Решает проблему ProGuard, появившуюся в версии 9.0.0. Издателям больше не нужна опция keep для com.google.android.gms.common.util.DynamiteApi .
9.0.0
2016-05-18
Добавлено автоматическое заполнение информации о местоположении для приложений, которые явно предоставляют разрешение на определение местоположения.
Добавлена поддержка пользовательских событий медиации видео с вознаграждением.
Добавлены параметры видео для объявлений Native Express.
Только в этом выпуске приложения, использующие ProGuard для постобработки своего приложения, должны добавить следующую опцию keep в свой файл конфигурации ProGuard: -keep public @com.google.android.gms.common.util.DynamiteApi class * { *; }
8.4.0
2015-12-18
Добавлен общедоступный метод MobileAds.setAppVolume() , который сообщает SDK Mobile Ads о текущем уровне громкости приложения.
Реализованы исправления ошибок и улучшения.
8.3.0
6 ноября 2015 г.
Добавлена поддержка видеообъявлений с вознаграждением.
В PublisherAdView и PublisherInterstitialAd добавлен метод isLoading() , позволяющий проверить, выполняется ли запрос объявления.
Добавлен метод setIsDesignedForFamilies() в AdRequest.Builder и PublisherAdRequest.Builder .
В NativeAdView добавлен метод destroy() .
8.1.0
2015-09-24
Различные исправления ошибок.
7.8.0
2015-08-13
Официальная версия MRAID v2.
В AdLoader , AdView и InterstitialAd добавлен метод isLoading() позволяющий проверить, выполняется ли запрос объявления.
Устаревший PublisherAdRequest.Builder#setManualImpressionsEnabled() . Вместо этого используйте PublisherAdView#setManualImpressionsEnabled() .
7.5.0
2015-05-28
Добавлена поддержка форматов нативной рекламы, ориентированной на установку приложения, и контента в AdMob и Менеджере рекламы.
Добавлена поддержка пользовательских форматов нативных объявлений, доступных при резервировании в Менеджере рекламы.
7.3.0
2015-04-28
Различные исправления ошибок.
7.0.0
2015-03-19
В PublisherAdRequest.Builder добавлены методы addCustomTargeting() и addCategoryExclusion() .
Исправлена проблема, из-за которой PublisherAdView.recordManualImpression() записывал несколько показов в Менеджере рекламы при подсчете показов вручную.
Добавлен метод setRequestAgent() в AdRequest.Builder и PublisherAdRequest.Builder . Этот метод следует использовать для обозначения источников запросов объявлений от третьих сторон, которые являются посредниками в Mobile Ads SDK.
6.5.87
2014-12-08
Представлена разделенная архитектура JAR. Разработчики Android Studio теперь могут просто включать рекламную часть сервисов Google Play, в зависимости от com.google.android.gms: play‑services‑ads :6.+ . Примечание. Приложения, создающие рекламные баннеры в формате XML, по-прежнему должны ссылаться на всю библиотеку com.google.android.gms: play‑services :6.+ .
Различные исправления ошибок.
6.1
08 октября 2014 г.
В com.google.android.gms.ads.MediationAdRequest добавлен метод getLocation() .
Для удобства добавлено описание контента к межстраничной кнопке закрытия.
Удаленная регистрация «Google Play Resources не найдена», когда библиотечный проект связан правильно.
Добавлен getMediationAdapterClassName() , чтобы AdView чтобы получить имя класса адаптера посредничества в сети в настоящее время, показывающее объявление.
5.0
2014–06–25
Добавлены новые API для реализации пользовательских событий.
Добавлено поток покупки по умолчанию для покупки в приложении, используя API Google Play Billing API.
4.4
2014–05–07
Добавлено новые API -интерфейсы адаптера.
Добавлен новый формат AD 320x100 LARGE_BANNER для телефонов и таблеток.
Добавлен новый интерстициальный формат для покупки в приложении. Установите InAppPurchaseListener на InterstitialAd , чтобы выслушать события покупки в приложении.
Исправление ошибки для сбоя SecurityException из -за чтения GSERVICES без разрешения.
4.3
2014–03–17
InterstitialAd теперь функционирует при передаче контекста приложения.
Добавлен метод setContentUrl() в PublisherAdRequest.Builder .
Исправление для исключения, когда служба не зарегистрирована .
4.2
2014–02–03
Различные исправления ошибок.
4.1
2014–01–16
Добавлена поддержка рекламного менеджера и поисковых объявлений для мобильных приложений.
AdRequest.Builder теперь имеет метод setLocation() .
Исправлена авария, которая произошла, если была запрошена интерстициальная реклама, но AdActivity не была указана в манифесте.
[[["Прост для понимания","easyToUnderstand","thumb-up"],["Помог мне решить мою проблему","solvedMyProblem","thumb-up"],["Другое","otherUp","thumb-up"]],[["Отсутствует нужная мне информация","missingTheInformationINeed","thumb-down"],["Слишком сложен/слишком много шагов","tooComplicatedTooManySteps","thumb-down"],["Устарел","outOfDate","thumb-down"],["Проблема с переводом текста","translationIssue","thumb-down"],["Проблемы образцов/кода","samplesCodeIssue","thumb-down"],["Другое","otherDown","thumb-down"]],["Последнее обновление: 2024-11-18 UTC."],[],[]]