From 728de54c221438d1d755f5fa7ead21b7f2e242b7 Mon Sep 17 00:00:00 2001 From: Bhargav Raviya <46953122+bhargavraviya@users.noreply.github.com> Date: Tue, 28 Oct 2025 20:10:12 +0530 Subject: [PATCH 001/251] Upgrade Flutter Version - Sample Rewarded (#1348) --- samples/admob/rewarded_example/.gitignore | 2 +- samples/admob/rewarded_example/.metadata | 13 ++-- .../admob/rewarded_example/android/.gitignore | 3 +- .../rewarded_example/android/app/build.gradle | 70 ------------------- .../android/app/build.gradle.kts | 44 ++++++++++++ .../android/app/src/main/AndroidManifest.xml | 12 ++++ .../example/rewarded_example/MainActivity.kt | 3 +- .../rewarded_example/android/build.gradle | 18 ----- .../rewarded_example/android/build.gradle.kts | 24 +++++++ .../android/gradle.properties | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../rewarded_example/android/settings.gradle | 25 ------- .../android/settings.gradle.kts | 26 +++++++ samples/admob/rewarded_example/pubspec.yaml | 4 +- 14 files changed, 119 insertions(+), 129 deletions(-) delete mode 100644 samples/admob/rewarded_example/android/app/build.gradle create mode 100644 samples/admob/rewarded_example/android/app/build.gradle.kts delete mode 100644 samples/admob/rewarded_example/android/build.gradle create mode 100644 samples/admob/rewarded_example/android/build.gradle.kts delete mode 100644 samples/admob/rewarded_example/android/settings.gradle create mode 100644 samples/admob/rewarded_example/android/settings.gradle.kts diff --git a/samples/admob/rewarded_example/.gitignore b/samples/admob/rewarded_example/.gitignore index 79c113f9b..3820a95c6 100644 --- a/samples/admob/rewarded_example/.gitignore +++ b/samples/admob/rewarded_example/.gitignore @@ -27,11 +27,11 @@ migrate_working_dir/ **/doc/api/ **/ios/Flutter/.last_build_id .dart_tool/ -.flutter-plugins .flutter-plugins-dependencies .pub-cache/ .pub/ /build/ +/coverage/ # Symbolication related app.*.symbols diff --git a/samples/admob/rewarded_example/.metadata b/samples/admob/rewarded_example/.metadata index 6c1bf2fff..380380670 100644 --- a/samples/admob/rewarded_example/.metadata +++ b/samples/admob/rewarded_example/.metadata @@ -4,7 +4,7 @@ # This file should be version controlled and should not be manually edited. version: - revision: "db7ef5bf9f59442b0e200a90587e8fa5e0c6336a" + revision: "a402d9a4376add5bc2d6b1e33e53edaae58c07f8" channel: "stable" project_type: app @@ -13,14 +13,11 @@ project_type: app migration: platforms: - platform: root - create_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a - base_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a + create_revision: a402d9a4376add5bc2d6b1e33e53edaae58c07f8 + base_revision: a402d9a4376add5bc2d6b1e33e53edaae58c07f8 - platform: android - create_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a - base_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a - - platform: ios - create_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a - base_revision: db7ef5bf9f59442b0e200a90587e8fa5e0c6336a + create_revision: a402d9a4376add5bc2d6b1e33e53edaae58c07f8 + base_revision: a402d9a4376add5bc2d6b1e33e53edaae58c07f8 # User provided section diff --git a/samples/admob/rewarded_example/android/.gitignore b/samples/admob/rewarded_example/android/.gitignore index 6f568019d..be3943c96 100644 --- a/samples/admob/rewarded_example/android/.gitignore +++ b/samples/admob/rewarded_example/android/.gitignore @@ -5,9 +5,10 @@ gradle-wrapper.jar /gradlew.bat /local.properties GeneratedPluginRegistrant.java +.cxx/ # Remember to never publicly share your keystore. -# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app +# See https://flutter.dev/to/reference-keystore key.properties **/*.keystore **/*.jks diff --git a/samples/admob/rewarded_example/android/app/build.gradle b/samples/admob/rewarded_example/android/app/build.gradle deleted file mode 100644 index f9b5a4f56..000000000 --- a/samples/admob/rewarded_example/android/app/build.gradle +++ /dev/null @@ -1,70 +0,0 @@ -plugins { - id "com.android.application" - id "kotlin-android" - id "dev.flutter.flutter-gradle-plugin" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - -android { - namespace "com.example.rewarded_example" - compileSdkVersion flutter.compileSdkVersion - ndkVersion = flutter.ndkVersion - - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } - - kotlinOptions { - jvmTarget = '1.8' - } - - sourceSets { - main.java.srcDirs += 'src/main/kotlin' - } - - defaultConfig { - // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - applicationId "com.example.rewarded_example" - // You can update the following values to match your application needs. - // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. - minSdkVersion 23 - multiDexEnabled true - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - } - - buildTypes { - release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig signingConfigs.debug - } - } -} - -flutter { - source '../..' -} - -dependencies { - implementation 'androidx.multidex:multidex:2.0.1' -} diff --git a/samples/admob/rewarded_example/android/app/build.gradle.kts b/samples/admob/rewarded_example/android/app/build.gradle.kts new file mode 100644 index 000000000..51e2ee1ef --- /dev/null +++ b/samples/admob/rewarded_example/android/app/build.gradle.kts @@ -0,0 +1,44 @@ +plugins { + id("com.android.application") + id("kotlin-android") + // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "com.example.rewarded_example" + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_11.toString() + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId = "com.example.rewarded_example" + // You can update the following values to match your application needs. + // For more information, see: https://flutter.dev/to/review-gradle-config. + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig = signingConfigs.getByName("debug") + } + } +} + +flutter { + source = "../.." +} diff --git a/samples/admob/rewarded_example/android/app/src/main/AndroidManifest.xml b/samples/admob/rewarded_example/android/app/src/main/AndroidManifest.xml index 0330b55bf..64d1cfabf 100644 --- a/samples/admob/rewarded_example/android/app/src/main/AndroidManifest.xml +++ b/samples/admob/rewarded_example/android/app/src/main/AndroidManifest.xml @@ -7,6 +7,7 @@ android:name=".MainActivity" android:exported="true" android:launchMode="singleTop" + android:taskAffinity="" android:theme="@style/LaunchTheme" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" android:hardwareAccelerated="true" @@ -33,4 +34,15 @@ android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ca-app-pub-3940256099942544~3347511713"/> + + + + + + + diff --git a/samples/admob/rewarded_example/android/app/src/main/kotlin/com/example/rewarded_example/MainActivity.kt b/samples/admob/rewarded_example/android/app/src/main/kotlin/com/example/rewarded_example/MainActivity.kt index e6f3f6c17..9fb470511 100644 --- a/samples/admob/rewarded_example/android/app/src/main/kotlin/com/example/rewarded_example/MainActivity.kt +++ b/samples/admob/rewarded_example/android/app/src/main/kotlin/com/example/rewarded_example/MainActivity.kt @@ -2,5 +2,4 @@ package com.example.rewarded_example import io.flutter.embedding.android.FlutterActivity -class MainActivity: FlutterActivity() { -} +class MainActivity : FlutterActivity() diff --git a/samples/admob/rewarded_example/android/build.gradle b/samples/admob/rewarded_example/android/build.gradle deleted file mode 100644 index bc157bd1a..000000000 --- a/samples/admob/rewarded_example/android/build.gradle +++ /dev/null @@ -1,18 +0,0 @@ -allprojects { - repositories { - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(':app') -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} diff --git a/samples/admob/rewarded_example/android/build.gradle.kts b/samples/admob/rewarded_example/android/build.gradle.kts new file mode 100644 index 000000000..dbee657bb --- /dev/null +++ b/samples/admob/rewarded_example/android/build.gradle.kts @@ -0,0 +1,24 @@ +allprojects { + repositories { + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} diff --git a/samples/admob/rewarded_example/android/gradle.properties b/samples/admob/rewarded_example/android/gradle.properties index 598d13fee..f018a6181 100644 --- a/samples/admob/rewarded_example/android/gradle.properties +++ b/samples/admob/rewarded_example/android/gradle.properties @@ -1,3 +1,3 @@ -org.gradle.jvmargs=-Xmx4G +org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError android.useAndroidX=true android.enableJetifier=true diff --git a/samples/admob/rewarded_example/android/gradle/wrapper/gradle-wrapper.properties b/samples/admob/rewarded_example/android/gradle/wrapper/gradle-wrapper.properties index 3c85cfe05..ac3b47926 100644 --- a/samples/admob/rewarded_example/android/gradle/wrapper/gradle-wrapper.properties +++ b/samples/admob/rewarded_example/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-all.zip diff --git a/samples/admob/rewarded_example/android/settings.gradle b/samples/admob/rewarded_example/android/settings.gradle deleted file mode 100644 index f4e0879bf..000000000 --- a/samples/admob/rewarded_example/android/settings.gradle +++ /dev/null @@ -1,25 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.6.0" apply false - id "org.jetbrains.kotlin.android" version "2.1.0" apply false -} - -include ":app" \ No newline at end of file diff --git a/samples/admob/rewarded_example/android/settings.gradle.kts b/samples/admob/rewarded_example/android/settings.gradle.kts new file mode 100644 index 000000000..fb605bc84 --- /dev/null +++ b/samples/admob/rewarded_example/android/settings.gradle.kts @@ -0,0 +1,26 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.9.1" apply false + id("org.jetbrains.kotlin.android") version "2.1.0" apply false +} + +include(":app") diff --git a/samples/admob/rewarded_example/pubspec.yaml b/samples/admob/rewarded_example/pubspec.yaml index dcf785aa7..1e8813fc3 100644 --- a/samples/admob/rewarded_example/pubspec.yaml +++ b/samples/admob/rewarded_example/pubspec.yaml @@ -1,10 +1,10 @@ name: rewarded_example -description: Example project for demoing rewarded ads. +description: "Example project for demoing rewarded ads." publish_to: 'none' version: 1.0.0+1 environment: - sdk: '>=3.2.0 <4.0.0' + sdk: ^3.9.2 dependencies: flutter: From 675aa0add29e6163ddcce3f32959ac4b2426f86b Mon Sep 17 00:00:00 2001 From: LTphantom Date: Tue, 16 Dec 2025 11:21:45 -0800 Subject: [PATCH 002/251] GMA SDK major version update 7.0.0 (#1369) * Fix Native Ads templates * Updated iOS project, updated inline banner ad unit in example app * Correctly set new low bounds for Flutter and Dart versions * Updated minSdk for Android to make it compatible with Flutter versions * Format fix * Added more contraints on Native Ad template to avoid unexpected button behaviors * Made the release a major release (7.0.0) * Updated Android GMA SDK to 24.9.0 * Modified layout contraints to let CTA button in Native Ad to not be pushed away --- packages/google_mobile_ads/CHANGELOG.md | 11 + .../google_mobile_ads/android/build.gradle | 39 +- .../gradle/wrapper/gradle-wrapper.properties | 4 +- .../plugins/googlemobileads/Constants.java | 2 +- .../res/layout/gnt_medium_template_view.xml | 9 +- .../res/layout/gnt_small_template_view.xml | 9 +- .../example/android/app/build.gradle | 4 +- .../example/android/gradle.properties | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 4 +- .../example/android/settings.gradle | 4 +- .../ios/Flutter/AppFrameworkInfo.plist | 2 +- .../google_mobile_ads/example/ios/Podfile | 2 +- .../ios/Runner.xcodeproj/project.pbxproj | 134 +- .../lib/anchored_adaptive_example.dart | 48 +- .../example/lib/fluid_example.dart | 83 +- .../example/lib/inline_adaptive_example.dart | 61 +- .../google_mobile_ads/example/lib/main.dart | 413 +++--- ..._adaptive_inline_with_recycle_example.dart | 60 +- .../example/lib/native_template_example.dart | 68 +- .../example/lib/reusable_inline_example.dart | 121 +- .../lib/snippets/banner_ad_snippets.dart | 40 +- .../snippets/interstitial_ad_snippets.dart | 6 +- .../lib/snippets/rewarded_ad_snippets.dart | 12 +- .../rewarded_interstitial_ad_snippets.dart | 12 +- .../example/lib/webview_example.dart | 12 +- .../google_mobile_ads/example/pubspec.yaml | 4 +- .../ios/Classes/FLTConstants.h | 2 +- .../ios/google_mobile_ads.podspec | 4 +- .../lib/src/ad_containers.dart | 306 +++-- .../lib/src/ad_inspector_containers.dart | 6 +- .../lib/src/ad_instance_manager.dart | 501 +++---- .../lib/src/ad_listeners.dart | 72 +- .../src/app_background_event_notifier.dart | 8 +- .../google_mobile_ads/lib/src/mobile_ads.dart | 9 +- .../native_template_font_style.dart | 2 +- .../native_template_style.dart | 16 +- .../src/nativetemplates/template_type.dart | 2 +- .../lib/src/request_configuration.dart | 11 +- .../lib/src/ump/consent_form.dart | 28 +- .../lib/src/ump/consent_information.dart | 9 +- .../lib/src/ump/consent_information_impl.dart | 14 +- .../src/ump/consent_request_parameters.dart | 8 +- .../lib/src/ump/user_messaging_channel.dart | 74 +- .../lib/src/ump/user_messaging_codec.dart | 21 +- packages/google_mobile_ads/pubspec.yaml | 14 +- .../test/ad_containers_test.dart | 805 +++++++----- .../test/admanager_banner_ad_test.dart | 126 +- .../google_mobile_ads/test/app_open_test.dart | 148 ++- .../test/banner_ad_test.dart | 126 +- .../google_mobile_ads/test/fluid_ad_test.dart | 123 +- .../test/mobile_ads_test.dart | 416 +++--- .../test/mobile_ads_test.mocks.dart | 1147 ++++++++--------- .../test/rewarded_interstitial_ad_test.dart | 317 +++-- .../google_mobile_ads/test/test_util.dart | 27 +- .../test/ump/consent_form_impl_test.dart | 5 +- .../ump/consent_form_impl_test.mocks.dart | 156 +-- .../test/ump/consent_form_test.dart | 38 +- .../test/ump/consent_form_test.mocks.dart | 172 ++- .../ump/consent_information_impl_test.dart | 41 +- .../consent_information_impl_test.mocks.dart | 156 +-- .../test/ump/user_messaging_channel_test.dart | 281 ++-- .../test/ump/user_messaging_codec_test.dart | 11 +- 62 files changed, 3442 insertions(+), 2926 deletions(-) diff --git a/packages/google_mobile_ads/CHANGELOG.md b/packages/google_mobile_ads/CHANGELOG.md index 699008229..b23d4acde 100644 --- a/packages/google_mobile_ads/CHANGELOG.md +++ b/packages/google_mobile_ads/CHANGELOG.md @@ -1,3 +1,14 @@ +## 7.0.0 +* Added character limits expected for Native Ad Templates. Issues [1243](https://github.com/googleads/googleads-mobile-flutter/issues/1243) and [1332](https://github.com/googleads/googleads-mobile-flutter/issues/1332) +* Fixed padding for Native Ads small template. [Issue 1357](https://github.com/googleads/googleads-mobile-flutter/issues/1357) +* Updated to use Gradle plugin 9.2.1 [Issue 1361](https://github.com/googleads/googleads-mobile-flutter/issues/1361) +* Updates dependencies. [Issue 1366](https://github.com/googleads/googleads-mobile-flutter/issues/1366) +* Updates GMA [Android](https://developers.google.com/admob/android/rel-notes) dependency to 24.9.0 +* Updates GMA [iOS](https://developers.google.com/admob/ios/rel-notes) dependency to 12.14.0 +* Uses latest UMP SDK: + * [Android](https://developers.google.com/admob/android/privacy/release-notes) UMP SDK version 4.0.0. + * [iOS](https://developers.google.com/admob/ios/privacy/download#release_notes) UMP SDK version 3.1.0. + ## 6.0.0 * Updates minimum Flutter SDK to 3.27.0 * Updates Dart SDK low bound to 3.6.0. diff --git a/packages/google_mobile_ads/android/build.gradle b/packages/google_mobile_ads/android/build.gradle index 948e368f3..009e9518e 100644 --- a/packages/google_mobile_ads/android/build.gradle +++ b/packages/google_mobile_ads/android/build.gradle @@ -1,14 +1,17 @@ group 'io.flutter.plugins.googlemobileads' -version '6.0.0' +version '7.0.0' buildscript { + ext { + agp_version = '8.13.1' + } repositories { google() mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:8.3.2' + classpath "com.android.tools.build:gradle:$agp_version" } } @@ -22,29 +25,29 @@ rootProject.allprojects { apply plugin: 'com.android.library' android { - compileSdk 35 + compileSdk 36 if (project.android.hasProperty('namespace')) { namespace 'io.flutter.plugins.googlemobileads' } defaultConfig { - minSdk 23 + minSdk 24 } lintOptions { disable 'InvalidPackage' } dependencies { - api 'com.google.android.gms:play-services-ads:24.1.0' - implementation 'com.google.android.ump:user-messaging-platform:3.2.0' - implementation 'androidx.constraintlayout:constraintlayout:2.1.4' - implementation 'androidx.lifecycle:lifecycle-process:2.6.2' - implementation 'com.google.errorprone:error_prone_annotations:2.16' + api 'com.google.android.gms:play-services-ads:24.9.0' + implementation 'com.google.android.ump:user-messaging-platform:4.0.0' + implementation 'androidx.constraintlayout:constraintlayout:2.2.1' + implementation 'androidx.lifecycle:lifecycle-process:2.10.0' + implementation 'com.google.errorprone:error_prone_annotations:2.44.0' testImplementation 'junit:junit:4.13.2' testImplementation 'org.hamcrest:hamcrest:3.0' - testImplementation 'org.mockito:mockito-core:5.15.2' - testImplementation 'org.robolectric:robolectric:4.14.1' - testImplementation 'androidx.test:core:1.5.0' + testImplementation 'org.mockito:mockito-core:5.20.0' + testImplementation 'org.robolectric:robolectric:4.16' + testImplementation 'androidx.test:core:1.7.0' } testOptions { unitTests { @@ -54,15 +57,11 @@ android { } afterEvaluate { - def containsEmbeddingDependencies = false - for (def configuration : configurations.all) { - for (def dependency : configuration.dependencies) { - if (dependency.group == 'io.flutter' && + def containsEmbeddingDependencies = configurations.any { configuration -> + configuration.dependencies.any { dependency -> + dependency.group == 'io.flutter' && dependency.name.startsWith('flutter_embedding') && - dependency.isTransitive()) { - containsEmbeddingDependencies = true - break - } + (dependency instanceof ModuleDependency && dependency.isTransitive()) } } if (!containsEmbeddingDependencies) { diff --git a/packages/google_mobile_ads/android/gradle/wrapper/gradle-wrapper.properties b/packages/google_mobile_ads/android/gradle/wrapper/gradle-wrapper.properties index 9c034ab11..c5856afbe 100644 --- a/packages/google_mobile_ads/android/gradle/wrapper/gradle-wrapper.properties +++ b/packages/google_mobile_ads/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Sat May 13 14:37:03 CEST 2023 +#Thu Dec 04 10:45:11 PST 2025 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/Constants.java b/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/Constants.java index cd12d7170..fc8c808aa 100644 --- a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/Constants.java +++ b/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/Constants.java @@ -17,7 +17,7 @@ /** Constants used in the plugin. */ public class Constants { /** Version request agent. Should be bumped alongside plugin versions. */ - public static final String REQUEST_AGENT_PREFIX_VERSIONED = "Flutter-GMA-6.0.0"; + public static final String REQUEST_AGENT_PREFIX_VERSIONED = "Flutter-GMA-7.0.0"; /** Prefix for news template */ public static final String REQUEST_AGENT_NEWS_TEMPLATE_PREFIX = "News"; diff --git a/packages/google_mobile_ads/android/src/main/res/layout/gnt_medium_template_view.xml b/packages/google_mobile_ads/android/src/main/res/layout/gnt_medium_template_view.xml index a9153d795..d4184b806 100644 --- a/packages/google_mobile_ads/android/src/main/res/layout/gnt_medium_template_view.xml +++ b/packages/google_mobile_ads/android/src/main/res/layout/gnt_medium_template_view.xml @@ -86,6 +86,7 @@ android:layout_width="match_parent" android:layout_height="@dimen/gnt_no_size" android:layout_weight="0.5" + android:maxLength="25" android:gravity="left" android:background="@android:color/transparent" app:layout_constraintBottom_toTopOf="@+id/row_two" @@ -197,17 +198,21 @@ android:paddingBottom="@dimen/gnt_default_margin" android:paddingLeft="@dimen/gnt_default_margin" android:id="@+id/body" + android:maxLength="90" + android:maxLines="2" + android:ellipsize="end" app:layout_constraintBottom_toTopOf="@+id/cta" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/middle" + app:layout_constraintHeight_max="50dp" android:paddingStart="@dimen/gnt_default_margin" android:layout_marginBottom="@dimen/gnt_small_margin" /> diff --git a/packages/google_mobile_ads/android/src/main/res/layout/gnt_small_template_view.xml b/packages/google_mobile_ads/android/src/main/res/layout/gnt_small_template_view.xml index 02db5fda2..189dbef42 100644 --- a/packages/google_mobile_ads/android/src/main/res/layout/gnt_small_template_view.xml +++ b/packages/google_mobile_ads/android/src/main/res/layout/gnt_small_template_view.xml @@ -18,10 +18,10 @@ arm64 MinimumOSVersion - 11.0 + 13.0 diff --git a/packages/google_mobile_ads/example/ios/Podfile b/packages/google_mobile_ads/example/ios/Podfile index 03efaafd8..5dc3b65f7 100644 --- a/packages/google_mobile_ads/example/ios/Podfile +++ b/packages/google_mobile_ads/example/ios/Podfile @@ -1,5 +1,5 @@ # Uncomment this line to define a global platform for your project -platform :ios, '12.0' +platform :ios, '13.0' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' diff --git a/packages/google_mobile_ads/example/ios/Runner.xcodeproj/project.pbxproj b/packages/google_mobile_ads/example/ios/Runner.xcodeproj/project.pbxproj index 3d588697c..9ec8e605a 100644 --- a/packages/google_mobile_ads/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/google_mobile_ads/example/ios/Runner.xcodeproj/project.pbxproj @@ -9,6 +9,7 @@ /* Begin PBXBuildFile section */ 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 887A5D54EBB22EE56FEA68C0 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D45D7A6903C5DAFE9FAFAD /* Pods_RunnerTests.framework */; }; 8FC897F52411A9F100415930 /* NativeAdView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8FC897F42411A9F100415930 /* NativeAdView.xib */; }; 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; }; 97C146F31CF9000F007C117D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C146F21CF9000F007C117D /* main.m */; }; @@ -37,6 +38,7 @@ 9E61AA6029BBE8FD00801A83 /* FLTNativeTemplateStyleTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 9E61AA5B29BBE8FD00801A83 /* FLTNativeTemplateStyleTest.m */; }; 9E61AA6129BBE8FD00801A83 /* FLTNativeTemplateFontStyleTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 9E61AA5C29BBE8FD00801A83 /* FLTNativeTemplateFontStyleTest.m */; }; 9E61AA6229BBE8FD00801A83 /* FLTNativeTemplateColorTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 9E61AA5D29BBE8FD00801A83 /* FLTNativeTemplateColorTest.m */; }; + EBE2BC5BBFE6DB1E33F703F6 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FE39CA478AEB75A8616A301A /* Pods_Runner.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -63,8 +65,12 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 04096F79A89B65B77A1695FF /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + 0AA51DA50D3118092B5307E1 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; + 0E1C520597602A0CDC46050E /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 27D45D7A6903C5DAFE9FAFAD /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; 44F3DED22B745BEE004D7117 /* FLTMediationExtras.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = FLTMediationExtras.h; path = ../../ios/Classes/FLTMediationExtras.h; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; @@ -150,6 +156,8 @@ 9EF4E6FE26392B230007E4FE /* FLTGoogleMobileAdsCollection_Internal.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = FLTGoogleMobileAdsCollection_Internal.m; path = ../../ios/Classes/FLTGoogleMobileAdsCollection_Internal.m; sourceTree = ""; }; 9EF4E6FF26392B230007E4FE /* FLTMobileAds_Internal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = FLTMobileAds_Internal.h; path = ../../ios/Classes/FLTMobileAds_Internal.h; sourceTree = ""; }; 9EFEAB4E29B0019F000A063B /* GoogleMobileAds.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = GoogleMobileAds.xcframework; path = "Pods/Google-Mobile-Ads-SDK/Frameworks/GoogleMobileAdsFramework/GoogleMobileAds.xcframework"; sourceTree = ""; }; + A380EE5B67A6B0F501F9FBF1 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + FE39CA478AEB75A8616A301A /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -157,6 +165,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + EBE2BC5BBFE6DB1E33F703F6 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -164,6 +173,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 887A5D54EBB22EE56FEA68C0 /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -173,6 +183,10 @@ 194BB02CA5CDABA098EA0B10 /* Pods */ = { isa = PBXGroup; children = ( + 04096F79A89B65B77A1695FF /* Pods-Runner.debug.xcconfig */, + A380EE5B67A6B0F501F9FBF1 /* Pods-Runner.release.xcconfig */, + 0E1C520597602A0CDC46050E /* Pods-RunnerTests.debug.xcconfig */, + 0AA51DA50D3118092B5307E1 /* Pods-RunnerTests.release.xcconfig */, ); path = Pods; sourceTree = ""; @@ -183,6 +197,8 @@ 9EFEAB4E29B0019F000A063B /* GoogleMobileAds.xcframework */, 9EB9FE57280F853D00DDBB4F /* UserMessagingPlatform.xcframework */, 9EA7213525BB6464008D57E3 /* GoogleMobileAds.xcframework */, + FE39CA478AEB75A8616A301A /* Pods_Runner.framework */, + 27D45D7A6903C5DAFE9FAFAD /* Pods_RunnerTests.framework */, ); name = Frameworks; sourceTree = ""; @@ -368,12 +384,15 @@ isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( + 0EDD04BE717BEB4026757E35 /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + D621B7120BAE5B88B39CB730 /* [CP] Embed Pods Frameworks */, + 352E2E45CC90E4DC15A87261 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -388,9 +407,11 @@ isa = PBXNativeTarget; buildConfigurationList = 9E61AA1E29BBE51900801A83 /* Build configuration list for PBXNativeTarget "RunnerTests" */; buildPhases = ( + 1C462BC1BFB6789887F378CB /* [CP] Check Pods Manifest.lock */, 9E61AA1229BBE51900801A83 /* Sources */, 9E61AA1329BBE51900801A83 /* Frameworks */, 9E61AA1429BBE51900801A83 /* Resources */, + 01F28CB039EB603C0792037A /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -464,6 +485,90 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + 01F28CB039EB603C0792037A /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-RunnerTests/Pods-RunnerTests-frameworks.sh", + "${BUILT_PRODUCTS_DIR}/OCMock/OCMock.framework", + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OCMock.framework", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-RunnerTests/Pods-RunnerTests-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 0EDD04BE717BEB4026757E35 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 1C462BC1BFB6789887F378CB /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 352E2E45CC90E4DC15A87261 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh", + "${PODS_CONFIGURATION_BUILD_DIR}/Google-Mobile-Ads-SDK/GoogleMobileAdsResources.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUserMessagingPlatform/UserMessagingPlatformResources.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/google_mobile_ads/google_mobile_ads.bundle", + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleMobileAdsResources.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/UserMessagingPlatformResources.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/google_mobile_ads.bundle", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; @@ -471,6 +576,7 @@ files = ( ); inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", ); name = "Thin Binary"; outputPaths = ( @@ -494,6 +600,24 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build\n"; }; + D621B7120BAE5B88B39CB730 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh", + "${BUILT_PRODUCTS_DIR}/webview_flutter_wkwebview/webview_flutter_wkwebview.framework", + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/webview_flutter_wkwebview.framework", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -616,7 +740,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -668,7 +792,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; @@ -689,7 +813,7 @@ "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -716,7 +840,7 @@ "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -732,6 +856,7 @@ }; 9E61AA1C29BBE51900801A83 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 0E1C520597602A0CDC46050E /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; @@ -758,6 +883,7 @@ }; 9E61AA1D29BBE51900801A83 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 0AA51DA50D3118092B5307E1 /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; diff --git a/packages/google_mobile_ads/example/lib/anchored_adaptive_example.dart b/packages/google_mobile_ads/example/lib/anchored_adaptive_example.dart index 8261a5c69..251ecc2e0 100644 --- a/packages/google_mobile_ads/example/lib/anchored_adaptive_example.dart +++ b/packages/google_mobile_ads/example/lib/anchored_adaptive_example.dart @@ -52,7 +52,8 @@ class _AnchoredAdaptiveExampleState extends State { final AnchoredAdaptiveBannerAdSize? size = await AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize( - MediaQuery.of(context).size.width.truncate()); + MediaQuery.of(context).size.width.truncate(), + ); if (size == null) { print('Unable to get height of anchored banner.'); @@ -113,30 +114,29 @@ class _AnchoredAdaptiveExampleState extends State { @override Widget build(BuildContext context) => Scaffold( - appBar: AppBar( - title: Text('Anchored adaptive banner example'), - ), - body: Center( - child: Stack( - alignment: AlignmentDirectional.bottomCenter, - children: [ - ListView.separated( - padding: const EdgeInsets.symmetric(horizontal: 16.0), - itemBuilder: (context, index) { - return Text( - Constants.placeholderText, - style: TextStyle(fontSize: 24), - ); - }, - separatorBuilder: (context, index) { - return Container(height: 40); - }, - itemCount: 5), - _getAdWidget(), - ], + appBar: AppBar(title: Text('Anchored adaptive banner example')), + body: Center( + child: Stack( + alignment: AlignmentDirectional.bottomCenter, + children: [ + ListView.separated( + padding: const EdgeInsets.symmetric(horizontal: 16.0), + itemBuilder: (context, index) { + return Text( + Constants.placeholderText, + style: TextStyle(fontSize: 24), + ); + }, + separatorBuilder: (context, index) { + return Container(height: 40); + }, + itemCount: 5, ), - ), - ); + _getAdWidget(), + ], + ), + ), + ); @override void dispose() { diff --git a/packages/google_mobile_ads/example/lib/fluid_example.dart b/packages/google_mobile_ads/example/lib/fluid_example.dart index ed2ff51ed..361ffee98 100644 --- a/packages/google_mobile_ads/example/lib/fluid_example.dart +++ b/packages/google_mobile_ads/example/lib/fluid_example.dart @@ -30,53 +30,48 @@ class _FluidExampleExampleState extends State { @override Widget build(BuildContext context) => Scaffold( - appBar: AppBar( - title: Text('Fluid example'), - ), - body: Center( - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 16.0), - child: ListView.separated( - itemCount: 3, - separatorBuilder: (BuildContext context, int index) { - return Container( - height: 40, + appBar: AppBar(title: Text('Fluid example')), + body: Center( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 16.0), + child: ListView.separated( + itemCount: 3, + separatorBuilder: (BuildContext context, int index) { + return Container(height: 40); + }, + itemBuilder: (BuildContext context, int index) { + if (index == 1) { + return Align( + alignment: Alignment.center, + child: FluidAdWidget(width: _width, ad: _fluidAd!), ); - }, - itemBuilder: (BuildContext context, int index) { - if (index == 1) { - return Align( - alignment: Alignment.center, - child: FluidAdWidget( - width: _width, - ad: _fluidAd!, - ), - ); - } else if (index == 2) { - return ElevatedButton( - onPressed: () { - double newWidth; - if (_width == 200.0) { - newWidth = 100.0; - } else if (_width == 100.0) { - newWidth = 150.0; - } else { - newWidth = 200.0; - } - setState(() { - _width = newWidth; - }); - }, - child: Text('Change size')); - } - return Text( - Constants.placeholderText, - style: TextStyle(fontSize: 24), + } else if (index == 2) { + return ElevatedButton( + onPressed: () { + double newWidth; + if (_width == 200.0) { + newWidth = 100.0; + } else if (_width == 100.0) { + newWidth = 150.0; + } else { + newWidth = 200.0; + } + setState(() { + _width = newWidth; + }); + }, + child: Text('Change size'), ); - }, - ), + } + return Text( + Constants.placeholderText, + style: TextStyle(fontSize: 24), + ); + }, ), - )); + ), + ), + ); @override void didChangeDependencies() { diff --git a/packages/google_mobile_ads/example/lib/inline_adaptive_example.dart b/packages/google_mobile_ads/example/lib/inline_adaptive_example.dart index c6d4fc59e..0052508f9 100644 --- a/packages/google_mobile_ads/example/lib/inline_adaptive_example.dart +++ b/packages/google_mobile_ads/example/lib/inline_adaptive_example.dart @@ -54,12 +54,13 @@ class _InlineAdaptiveExampleState extends State { // Get an inline adaptive size for the current orientation. AdSize size = AdSize.getCurrentOrientationInlineAdaptiveBannerAdSize( - _adWidth.truncate()); + _adWidth.truncate(), + ); _inlineAdaptiveAd = AdManagerBannerAd( adUnitId: Platform.isAndroid ? '/21775744923/example/banner' - : '/6499/example/adaptive-banner', + : '/21775744923/example/adaptive-banner', sizes: [size], request: AdManagerAdRequest(), listener: AdManagerBannerAdListener( @@ -103,13 +104,12 @@ class _InlineAdaptiveExampleState extends State { _isLoaded && _adSize != null) { return Align( - child: Container( - width: _adWidth, - height: _adSize!.height.toDouble(), - child: AdWidget( - ad: _inlineAdaptiveAd!, + child: Container( + width: _adWidth, + height: _adSize!.height.toDouble(), + child: AdWidget(ad: _inlineAdaptiveAd!), ), - )); + ); } // Reload the ad if the orientation changes. if (_currentOrientation != orientation) { @@ -123,31 +123,28 @@ class _InlineAdaptiveExampleState extends State { @override Widget build(BuildContext context) => Scaffold( - appBar: AppBar( - title: Text('Inline adaptive banner example'), - ), - body: Center( - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: _insets), - child: ListView.separated( - itemCount: 3, - separatorBuilder: (BuildContext context, int index) { - return Container( - height: 40, - ); - }, - itemBuilder: (BuildContext context, int index) { - if (index == 1) { - return _getAdWidget(); - } - return Text( - Constants.placeholderText, - style: TextStyle(fontSize: 24), - ); - }, - ), + appBar: AppBar(title: Text('Inline adaptive banner example')), + body: Center( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: _insets), + child: ListView.separated( + itemCount: 3, + separatorBuilder: (BuildContext context, int index) { + return Container(height: 40); + }, + itemBuilder: (BuildContext context, int index) { + if (index == 1) { + return _getAdWidget(); + } + return Text( + Constants.placeholderText, + style: TextStyle(fontSize: 24), + ); + }, ), - )); + ), + ), + ); @override void dispose() { diff --git a/packages/google_mobile_ads/example/lib/main.dart b/packages/google_mobile_ads/example/lib/main.dart index bdb7130cf..8ee75cb54 100644 --- a/packages/google_mobile_ads/example/lib/main.dart +++ b/packages/google_mobile_ads/example/lib/main.dart @@ -76,7 +76,8 @@ class _MyAppState extends State { void initState() { super.initState(); MobileAds.instance.updateRequestConfiguration( - RequestConfiguration(testDeviceIds: [testDevice])); + RequestConfiguration(testDeviceIds: [testDevice]), + ); _createInterstitialAd(); _createRewardedAd(); _createRewardedInterstitialAd(); @@ -84,26 +85,27 @@ class _MyAppState extends State { void _createInterstitialAd() { InterstitialAd.load( - adUnitId: Platform.isAndroid - ? 'ca-app-pub-3940256099942544/1033173712' - : 'ca-app-pub-3940256099942544/4411468910', - request: request, - adLoadCallback: InterstitialAdLoadCallback( - onAdLoaded: (InterstitialAd ad) { - print('$ad loaded'); - _interstitialAd = ad; - _numInterstitialLoadAttempts = 0; - _interstitialAd!.setImmersiveMode(true); - }, - onAdFailedToLoad: (LoadAdError error) { - print('InterstitialAd failed to load: $error.'); - _numInterstitialLoadAttempts += 1; - _interstitialAd = null; - if (_numInterstitialLoadAttempts < maxFailedLoadAttempts) { - _createInterstitialAd(); - } - }, - )); + adUnitId: Platform.isAndroid + ? 'ca-app-pub-3940256099942544/1033173712' + : 'ca-app-pub-3940256099942544/4411468910', + request: request, + adLoadCallback: InterstitialAdLoadCallback( + onAdLoaded: (InterstitialAd ad) { + print('$ad loaded'); + _interstitialAd = ad; + _numInterstitialLoadAttempts = 0; + _interstitialAd!.setImmersiveMode(true); + }, + onAdFailedToLoad: (LoadAdError error) { + print('InterstitialAd failed to load: $error.'); + _numInterstitialLoadAttempts += 1; + _interstitialAd = null; + if (_numInterstitialLoadAttempts < maxFailedLoadAttempts) { + _createInterstitialAd(); + } + }, + ), + ); } void _showInterstitialAd() { @@ -131,25 +133,26 @@ class _MyAppState extends State { void _createRewardedAd() { RewardedAd.load( - adUnitId: Platform.isAndroid - ? 'ca-app-pub-3940256099942544/5224354917' - : 'ca-app-pub-3940256099942544/1712485313', - request: request, - rewardedAdLoadCallback: RewardedAdLoadCallback( - onAdLoaded: (RewardedAd ad) { - print('$ad loaded.'); - _rewardedAd = ad; - _numRewardedLoadAttempts = 0; - }, - onAdFailedToLoad: (LoadAdError error) { - print('RewardedAd failed to load: $error'); - _rewardedAd = null; - _numRewardedLoadAttempts += 1; - if (_numRewardedLoadAttempts < maxFailedLoadAttempts) { - _createRewardedAd(); - } - }, - )); + adUnitId: Platform.isAndroid + ? 'ca-app-pub-3940256099942544/5224354917' + : 'ca-app-pub-3940256099942544/1712485313', + request: request, + rewardedAdLoadCallback: RewardedAdLoadCallback( + onAdLoaded: (RewardedAd ad) { + print('$ad loaded.'); + _rewardedAd = ad; + _numRewardedLoadAttempts = 0; + }, + onAdFailedToLoad: (LoadAdError error) { + print('RewardedAd failed to load: $error'); + _rewardedAd = null; + _numRewardedLoadAttempts += 1; + if (_numRewardedLoadAttempts < maxFailedLoadAttempts) { + _createRewardedAd(); + } + }, + ), + ); } void _showRewardedAd() { @@ -174,33 +177,35 @@ class _MyAppState extends State { _rewardedAd!.setImmersiveMode(true); _rewardedAd!.show( - onUserEarnedReward: (AdWithoutView ad, RewardItem reward) { - print('$ad with reward $RewardItem(${reward.amount}, ${reward.type})'); - }); + onUserEarnedReward: (AdWithoutView ad, RewardItem reward) { + print('$ad with reward $RewardItem(${reward.amount}, ${reward.type})'); + }, + ); _rewardedAd = null; } void _createRewardedInterstitialAd() { RewardedInterstitialAd.load( - adUnitId: Platform.isAndroid - ? 'ca-app-pub-3940256099942544/5354046379' - : 'ca-app-pub-3940256099942544/6978759866', - request: request, - rewardedInterstitialAdLoadCallback: RewardedInterstitialAdLoadCallback( - onAdLoaded: (RewardedInterstitialAd ad) { - print('$ad loaded.'); - _rewardedInterstitialAd = ad; - _numRewardedInterstitialLoadAttempts = 0; - }, - onAdFailedToLoad: (LoadAdError error) { - print('RewardedInterstitialAd failed to load: $error'); - _rewardedInterstitialAd = null; - _numRewardedInterstitialLoadAttempts += 1; - if (_numRewardedInterstitialLoadAttempts < maxFailedLoadAttempts) { - _createRewardedInterstitialAd(); - } - }, - )); + adUnitId: Platform.isAndroid + ? 'ca-app-pub-3940256099942544/5354046379' + : 'ca-app-pub-3940256099942544/6978759866', + request: request, + rewardedInterstitialAdLoadCallback: RewardedInterstitialAdLoadCallback( + onAdLoaded: (RewardedInterstitialAd ad) { + print('$ad loaded.'); + _rewardedInterstitialAd = ad; + _numRewardedInterstitialLoadAttempts = 0; + }, + onAdFailedToLoad: (LoadAdError error) { + print('RewardedInterstitialAd failed to load: $error'); + _rewardedInterstitialAd = null; + _numRewardedInterstitialLoadAttempts += 1; + if (_numRewardedInterstitialLoadAttempts < maxFailedLoadAttempts) { + _createRewardedInterstitialAd(); + } + }, + ), + ); } void _showRewardedInterstitialAd() { @@ -210,26 +215,27 @@ class _MyAppState extends State { } _rewardedInterstitialAd!.fullScreenContentCallback = FullScreenContentCallback( - onAdShowedFullScreenContent: (RewardedInterstitialAd ad) => - print('$ad onAdShowedFullScreenContent.'), - onAdDismissedFullScreenContent: (RewardedInterstitialAd ad) { - print('$ad onAdDismissedFullScreenContent.'); - ad.dispose(); - _createRewardedInterstitialAd(); - }, - onAdFailedToShowFullScreenContent: - (RewardedInterstitialAd ad, AdError error) { - print('$ad onAdFailedToShowFullScreenContent: $error'); - ad.dispose(); - _createRewardedInterstitialAd(); - }, - ); + onAdShowedFullScreenContent: (RewardedInterstitialAd ad) => + print('$ad onAdShowedFullScreenContent.'), + onAdDismissedFullScreenContent: (RewardedInterstitialAd ad) { + print('$ad onAdDismissedFullScreenContent.'); + ad.dispose(); + _createRewardedInterstitialAd(); + }, + onAdFailedToShowFullScreenContent: + (RewardedInterstitialAd ad, AdError error) { + print('$ad onAdFailedToShowFullScreenContent: $error'); + ad.dispose(); + _createRewardedInterstitialAd(); + }, + ); _rewardedInterstitialAd!.setImmersiveMode(true); _rewardedInterstitialAd!.show( - onUserEarnedReward: (AdWithoutView ad, RewardItem reward) { - print('$ad with reward $RewardItem(${reward.amount}, ${reward.type})'); - }); + onUserEarnedReward: (AdWithoutView ad, RewardItem reward) { + print('$ad with reward $RewardItem(${reward.amount}, ${reward.type})'); + }, + ); _rewardedInterstitialAd = null; } @@ -244,124 +250,139 @@ class _MyAppState extends State { @override Widget build(BuildContext context) { return MaterialApp( - home: Builder(builder: (BuildContext context) { - return Scaffold( - appBar: AppBar( - title: const Text('AdMob Plugin example app'), - actions: [ - PopupMenuButton( - onSelected: (String result) { - switch (result) { - case interstitialButtonText: - _showInterstitialAd(); - break; - case rewardedButtonText: - _showRewardedAd(); - break; - case rewardedInterstitialButtonText: - _showRewardedInterstitialAd(); - break; - case fluidButtonText: - Navigator.push( - context, - MaterialPageRoute(builder: (context) => FluidExample()), - ); - break; - case inlineAdaptiveButtonText: - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => InlineAdaptiveExample()), - ); - break; - case mulipleInlineAdaptiveWithRecycleButtonText: - Navigator.push( - context, - MaterialPageRoute( + home: Builder( + builder: (BuildContext context) { + return Scaffold( + appBar: AppBar( + title: const Text('AdMob Plugin example app'), + actions: [ + PopupMenuButton( + onSelected: (String result) { + switch (result) { + case interstitialButtonText: + _showInterstitialAd(); + break; + case rewardedButtonText: + _showRewardedAd(); + break; + case rewardedInterstitialButtonText: + _showRewardedInterstitialAd(); + break; + case fluidButtonText: + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => FluidExample(), + ), + ); + break; + case inlineAdaptiveButtonText: + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => InlineAdaptiveExample(), + ), + ); + break; + case mulipleInlineAdaptiveWithRecycleButtonText: + Navigator.push( + context, + MaterialPageRoute( builder: (context) => - MultiInlineAdaptiveWithRecycleExample()), - ); - break; - case anchoredAdaptiveButtonText: - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => AnchoredAdaptiveExample()), - ); - break; - case nativeTemplateButtonText: - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => NativeTemplateExample()), - ); - break; - case webviewExampleButtonText: - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => WebViewExample()), - ); - break; - case adInspectorButtonText: - MobileAds.instance.openAdInspector((error) => log( - 'Ad Inspector ' + - (error == null - ? 'opened.' - : 'error: ' + (error.message ?? '')))); - break; - default: - throw AssertionError('unexpected button: $result'); - } - }, - itemBuilder: (BuildContext context) => >[ - PopupMenuItem( - value: interstitialButtonText, - child: Text(interstitialButtonText), - ), - PopupMenuItem( - value: rewardedButtonText, - child: Text(rewardedButtonText), - ), - PopupMenuItem( - value: rewardedInterstitialButtonText, - child: Text(rewardedInterstitialButtonText), - ), - PopupMenuItem( - value: fluidButtonText, - child: Text(fluidButtonText), - ), - PopupMenuItem( - value: inlineAdaptiveButtonText, - child: Text(inlineAdaptiveButtonText), - ), - PopupMenuItem( - value: mulipleInlineAdaptiveWithRecycleButtonText, - child: Text(mulipleInlineAdaptiveWithRecycleButtonText), - ), - PopupMenuItem( - value: anchoredAdaptiveButtonText, - child: Text(anchoredAdaptiveButtonText), - ), - PopupMenuItem( - value: nativeTemplateButtonText, - child: Text(nativeTemplateButtonText), - ), - PopupMenuItem( - value: webviewExampleButtonText, - child: Text(webviewExampleButtonText), - ), - PopupMenuItem( - value: adInspectorButtonText, - child: Text(adInspectorButtonText), - ), - ], - ), - ], - ), - body: SafeArea(child: ReusableInlineExample()), - ); - }), + MultiInlineAdaptiveWithRecycleExample(), + ), + ); + break; + case anchoredAdaptiveButtonText: + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => AnchoredAdaptiveExample(), + ), + ); + break; + case nativeTemplateButtonText: + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => NativeTemplateExample(), + ), + ); + break; + case webviewExampleButtonText: + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => WebViewExample(), + ), + ); + break; + case adInspectorButtonText: + MobileAds.instance.openAdInspector( + (error) => log( + 'Ad Inspector ' + + (error == null + ? 'opened.' + : 'error: ' + (error.message ?? '')), + ), + ); + break; + default: + throw AssertionError('unexpected button: $result'); + } + }, + itemBuilder: (BuildContext context) => + >[ + PopupMenuItem( + value: interstitialButtonText, + child: Text(interstitialButtonText), + ), + PopupMenuItem( + value: rewardedButtonText, + child: Text(rewardedButtonText), + ), + PopupMenuItem( + value: rewardedInterstitialButtonText, + child: Text(rewardedInterstitialButtonText), + ), + PopupMenuItem( + value: fluidButtonText, + child: Text(fluidButtonText), + ), + PopupMenuItem( + value: inlineAdaptiveButtonText, + child: Text(inlineAdaptiveButtonText), + ), + PopupMenuItem( + value: mulipleInlineAdaptiveWithRecycleButtonText, + child: Text( + mulipleInlineAdaptiveWithRecycleButtonText, + ), + ), + PopupMenuItem( + value: anchoredAdaptiveButtonText, + child: Text(anchoredAdaptiveButtonText), + ), + PopupMenuItem( + value: nativeTemplateButtonText, + child: Text(nativeTemplateButtonText), + ), + PopupMenuItem( + value: webviewExampleButtonText, + child: Text(webviewExampleButtonText), + ), + PopupMenuItem( + value: adInspectorButtonText, + child: Text(adInspectorButtonText), + ), + ], + ), + ], + ), + body: SafeArea(child: ReusableInlineExample()), + ); + }, + ), ); } } diff --git a/packages/google_mobile_ads/example/lib/multi_adaptive_inline_with_recycle_example.dart b/packages/google_mobile_ads/example/lib/multi_adaptive_inline_with_recycle_example.dart index 40c942a12..f1c310c27 100644 --- a/packages/google_mobile_ads/example/lib/multi_adaptive_inline_with_recycle_example.dart +++ b/packages/google_mobile_ads/example/lib/multi_adaptive_inline_with_recycle_example.dart @@ -100,37 +100,41 @@ class _MultiInlineAdaptiveWithRecycleExampleState return Scaffold( appBar: AppBar(title: Text('Adaptive Size, Recycle')), body: ListView.builder( - // Arbitrary example of 100 items in the list. - itemCount: 100, - itemBuilder: (BuildContext context, int index) { - if (index % _adInterval == 0) { - int bannerPosition = index ~/ _adInterval; - BannerAd bannerAd = _getRecycledBannerAd(bannerPosition); - final AdSize? adSize = _bannerSizes[bannerAd]; - if (adSize == null) { - // Null adSize means the banner's content is not fetched yet. - return SizedBox.shrink(); - } - // Now this banner is loaded with ad content and corresponding ad size. - return SizedBox( - width: adSize.width.toDouble(), - height: adSize.height.toDouble(), - child: AdWidget(ad: bannerAd)); + // Arbitrary example of 100 items in the list. + itemCount: 100, + itemBuilder: (BuildContext context, int index) { + if (index % _adInterval == 0) { + int bannerPosition = index ~/ _adInterval; + BannerAd bannerAd = _getRecycledBannerAd(bannerPosition); + final AdSize? adSize = _bannerSizes[bannerAd]; + if (adSize == null) { + // Null adSize means the banner's content is not fetched yet. + return SizedBox.shrink(); } + // Now this banner is loaded with ad content and corresponding ad size. + return SizedBox( + width: adSize.width.toDouble(), + height: adSize.height.toDouble(), + child: AdWidget(ad: bannerAd), + ); + } - // Show your regular non-ad content. - return Container( - decoration: BoxDecoration( - border: Border.all( - color: Colors.blue, - width: 1.0, - style: BorderStyle.solid, - ), + // Show your regular non-ad content. + return Container( + decoration: BoxDecoration( + border: Border.all( + color: Colors.blue, + width: 1.0, + style: BorderStyle.solid, ), - child: SizedBox( - height: 100, child: ColoredBox(color: Colors.yellow)), - ); - }), + ), + child: SizedBox( + height: 100, + child: ColoredBox(color: Colors.yellow), + ), + ); + }, + ), ); } diff --git a/packages/google_mobile_ads/example/lib/native_template_example.dart b/packages/google_mobile_ads/example/lib/native_template_example.dart index ae2ce51df..415db8ed0 100644 --- a/packages/google_mobile_ads/example/lib/native_template_example.dart +++ b/packages/google_mobile_ads/example/lib/native_template_example.dart @@ -31,41 +31,39 @@ class _NativeTemplateExampleExampleState extends State { @override Widget build(BuildContext context) => Scaffold( - appBar: AppBar( - title: Text('Native templates example'), - ), - body: Center( - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 16.0), - child: ListView.separated( - itemCount: 10, - separatorBuilder: (BuildContext context, int index) { - return Container( - height: 40, - ); - }, - itemBuilder: (BuildContext context, int index) { - if (index == 5 && _nativeAd != null && _nativeAdIsLoaded) { - return Align( - alignment: Alignment.center, - child: ConstrainedBox( - constraints: const BoxConstraints( - minWidth: 300, - minHeight: 350, - maxHeight: 400, - maxWidth: 450, - ), - child: AdWidget(ad: _nativeAd!), - )); - } - return Text( - Constants.placeholderText, - style: TextStyle(fontSize: 24), + appBar: AppBar(title: Text('Native templates example')), + body: Center( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 16.0), + child: ListView.separated( + itemCount: 10, + separatorBuilder: (BuildContext context, int index) { + return Container(height: 40); + }, + itemBuilder: (BuildContext context, int index) { + if (index == 5 && _nativeAd != null && _nativeAdIsLoaded) { + return Align( + alignment: Alignment.center, + child: ConstrainedBox( + constraints: const BoxConstraints( + minWidth: 300, + minHeight: 350, + maxHeight: 400, + maxWidth: 450, + ), + child: AdWidget(ad: _nativeAd!), + ), ); - }, - ), + } + return Text( + Constants.placeholderText, + style: TextStyle(fontSize: 24), + ); + }, ), - )); + ), + ), + ); @override void didChangeDependencies() { @@ -91,9 +89,7 @@ class _NativeTemplateExampleExampleState extends State { nativeTemplateStyle: NativeTemplateStyle( templateType: TemplateType.medium, mainBackgroundColor: Colors.white12, - callToActionTextStyle: NativeTemplateTextStyle( - size: 16.0, - ), + callToActionTextStyle: NativeTemplateTextStyle(size: 16.0), primaryTextStyle: NativeTemplateTextStyle( textColor: Colors.black38, backgroundColor: Colors.white70, diff --git a/packages/google_mobile_ads/example/lib/reusable_inline_example.dart b/packages/google_mobile_ads/example/lib/reusable_inline_example.dart index cec91c280..187111618 100644 --- a/packages/google_mobile_ads/example/lib/reusable_inline_example.dart +++ b/packages/google_mobile_ads/example/lib/reusable_inline_example.dart @@ -38,74 +38,77 @@ class _ReusableInlineExampleState extends State { @override Widget build(BuildContext context) => Center( - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 16.0), - child: ListView.separated( - itemCount: 20, - separatorBuilder: (BuildContext context, int index) { - return Container( - height: 40, - ); - }, - itemBuilder: (BuildContext context, int index) { - final BannerAd? bannerAd = _bannerAd; - if (index == 5 && _bannerAdIsLoaded && bannerAd != null) { - return Container( - height: bannerAd.size.height.toDouble(), - width: bannerAd.size.width.toDouble(), - child: AdWidget(ad: bannerAd)); - } + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 16.0), + child: ListView.separated( + itemCount: 20, + separatorBuilder: (BuildContext context, int index) { + return Container(height: 40); + }, + itemBuilder: (BuildContext context, int index) { + final BannerAd? bannerAd = _bannerAd; + if (index == 5 && _bannerAdIsLoaded && bannerAd != null) { + return Container( + height: bannerAd.size.height.toDouble(), + width: bannerAd.size.width.toDouble(), + child: AdWidget(ad: bannerAd), + ); + } - final AdManagerBannerAd? adManagerBannerAd = _adManagerBannerAd; - if (index == 10 && - _adManagerBannerAdIsLoaded && - adManagerBannerAd != null) { - return Container( - height: adManagerBannerAd.sizes[0].height.toDouble(), - width: adManagerBannerAd.sizes[0].width.toDouble(), - child: AdWidget(ad: _adManagerBannerAd!)); - } + final AdManagerBannerAd? adManagerBannerAd = _adManagerBannerAd; + if (index == 10 && + _adManagerBannerAdIsLoaded && + adManagerBannerAd != null) { + return Container( + height: adManagerBannerAd.sizes[0].height.toDouble(), + width: adManagerBannerAd.sizes[0].width.toDouble(), + child: AdWidget(ad: _adManagerBannerAd!), + ); + } - final NativeAd? nativeAd = _nativeAd; - if (index == 15 && _nativeAdIsLoaded && nativeAd != null) { - return Container( - width: 250, height: 350, child: AdWidget(ad: nativeAd)); - } + final NativeAd? nativeAd = _nativeAd; + if (index == 15 && _nativeAdIsLoaded && nativeAd != null) { + return Container( + width: 250, + height: 350, + child: AdWidget(ad: nativeAd), + ); + } - return Text( - Constants.placeholderText, - style: TextStyle(fontSize: 24), - ); - }, - ), - ), - ); + return Text( + Constants.placeholderText, + style: TextStyle(fontSize: 24), + ); + }, + ), + ), + ); @override void didChangeDependencies() { super.didChangeDependencies(); // Create the ad objects and load ads. _bannerAd = BannerAd( - size: AdSize.banner, - adUnitId: Platform.isAndroid - ? 'ca-app-pub-3940256099942544/6300978111' - : 'ca-app-pub-3940256099942544/2934735716', - listener: BannerAdListener( - onAdLoaded: (Ad ad) { - print('$BannerAd loaded.'); - setState(() { - _bannerAdIsLoaded = true; - }); - }, - onAdFailedToLoad: (Ad ad, LoadAdError error) { - print('$BannerAd failedToLoad: $error'); - ad.dispose(); - }, - onAdOpened: (Ad ad) => print('$BannerAd onAdOpened.'), - onAdClosed: (Ad ad) => print('$BannerAd onAdClosed.'), - ), - request: AdRequest()) - ..load(); + size: AdSize.banner, + adUnitId: Platform.isAndroid + ? 'ca-app-pub-3940256099942544/6300978111' + : 'ca-app-pub-3940256099942544/2934735716', + listener: BannerAdListener( + onAdLoaded: (Ad ad) { + print('$BannerAd loaded.'); + setState(() { + _bannerAdIsLoaded = true; + }); + }, + onAdFailedToLoad: (Ad ad, LoadAdError error) { + print('$BannerAd failedToLoad: $error'); + ad.dispose(); + }, + onAdOpened: (Ad ad) => print('$BannerAd onAdOpened.'), + onAdClosed: (Ad ad) => print('$BannerAd onAdClosed.'), + ), + request: AdRequest(), + )..load(); _nativeAd = NativeAd( adUnitId: Platform.isAndroid diff --git a/packages/google_mobile_ads/example/lib/snippets/banner_ad_snippets.dart b/packages/google_mobile_ads/example/lib/snippets/banner_ad_snippets.dart index 4383292db..b2f9370ca 100644 --- a/packages/google_mobile_ads/example/lib/snippets/banner_ad_snippets.dart +++ b/packages/google_mobile_ads/example/lib/snippets/banner_ad_snippets.dart @@ -47,25 +47,27 @@ class _BannerAdSnippets extends State<_BannerAdWidget> { return; } - unawaited(BannerAd( - adUnitId: _adUnitId, - request: const AdManagerAdRequest(), - size: size, - listener: BannerAdListener( - onAdLoaded: (ad) { - // Called when an ad is successfully received. - debugPrint('Ad was loaded.'); - setState(() { - _bannerAd = ad as BannerAd; - }); - }, - onAdFailedToLoad: (ad, err) { - // Called when an ad request failed. - debugPrint('Ad failed to load with error: $err'); - ad.dispose(); - }, - ), - ).load()); + unawaited( + BannerAd( + adUnitId: _adUnitId, + request: const AdManagerAdRequest(), + size: size, + listener: BannerAdListener( + onAdLoaded: (ad) { + // Called when an ad is successfully received. + debugPrint('Ad was loaded.'); + setState(() { + _bannerAd = ad as BannerAd; + }); + }, + onAdFailedToLoad: (ad, err) { + // Called when an ad request failed. + debugPrint('Ad failed to load with error: $err'); + ad.dispose(); + }, + ), + ).load(), + ); } // [END load_ad_ad_manager] diff --git a/packages/google_mobile_ads/example/lib/snippets/interstitial_ad_snippets.dart b/packages/google_mobile_ads/example/lib/snippets/interstitial_ad_snippets.dart index 638cc1719..10d49c891 100644 --- a/packages/google_mobile_ads/example/lib/snippets/interstitial_ad_snippets.dart +++ b/packages/google_mobile_ads/example/lib/snippets/interstitial_ad_snippets.dart @@ -82,9 +82,9 @@ class _InterstitialAdSnippets { // [END ad_events] } -// =================================================================== -// Ad Manager snippets -// =================================================================== + // =================================================================== + // Ad Manager snippets + // =================================================================== void _loadAdManagerInterstitialAd() { // [START load_ad_ad_manager] diff --git a/packages/google_mobile_ads/example/lib/snippets/rewarded_ad_snippets.dart b/packages/google_mobile_ads/example/lib/snippets/rewarded_ad_snippets.dart index 32914b198..82b152ed1 100644 --- a/packages/google_mobile_ads/example/lib/snippets/rewarded_ad_snippets.dart +++ b/packages/google_mobile_ads/example/lib/snippets/rewarded_ad_snippets.dart @@ -91,7 +91,8 @@ class _RewardedAdSnippets { onAdLoaded: (ad) { ServerSideVerificationOptions _options = ServerSideVerificationOptions( - customData: 'SAMPLE_CUSTOM_DATA_STRING'); + customData: 'SAMPLE_CUSTOM_DATA_STRING', + ); ad.setServerSideOptions(_options); _rewardedAd = ad; }, @@ -101,9 +102,9 @@ class _RewardedAdSnippets { // [END validate_server_side_verification] } -// =================================================================== -// Ad Manager snippets -// =================================================================== + // =================================================================== + // Ad Manager snippets + // =================================================================== void _loadAdManagerRewardedAd() { // [START load_ad_ad_manager] @@ -138,7 +139,8 @@ class _RewardedAdSnippets { onAdLoaded: (ad) { ServerSideVerificationOptions _options = ServerSideVerificationOptions( - customData: 'SAMPLE_CUSTOM_DATA_STRING'); + customData: 'SAMPLE_CUSTOM_DATA_STRING', + ); ad.setServerSideOptions(_options); _rewardedAd = ad; }, diff --git a/packages/google_mobile_ads/example/lib/snippets/rewarded_interstitial_ad_snippets.dart b/packages/google_mobile_ads/example/lib/snippets/rewarded_interstitial_ad_snippets.dart index 19073f482..ff932b61b 100644 --- a/packages/google_mobile_ads/example/lib/snippets/rewarded_interstitial_ad_snippets.dart +++ b/packages/google_mobile_ads/example/lib/snippets/rewarded_interstitial_ad_snippets.dart @@ -92,7 +92,8 @@ class _RewardedInterstitialAdSnippets { onAdLoaded: (ad) { ServerSideVerificationOptions _options = ServerSideVerificationOptions( - customData: 'SAMPLE_CUSTOM_DATA_STRING'); + customData: 'SAMPLE_CUSTOM_DATA_STRING', + ); ad.setServerSideOptions(_options); _rewardedInterstitialAd = ad; }, @@ -102,9 +103,9 @@ class _RewardedInterstitialAdSnippets { // [END validate_server_side_verification] } -// =================================================================== -// Ad Manager snippets -// =================================================================== + // =================================================================== + // Ad Manager snippets + // =================================================================== void _loadAdManagerRewardedInterstitialAd() { // [START load_ad_ad_manager] @@ -139,7 +140,8 @@ class _RewardedInterstitialAdSnippets { onAdLoaded: (ad) { ServerSideVerificationOptions _options = ServerSideVerificationOptions( - customData: 'SAMPLE_CUSTOM_DATA_STRING'); + customData: 'SAMPLE_CUSTOM_DATA_STRING', + ); ad.setServerSideOptions(_options); _rewardedInterstitialAd = ad; }, diff --git a/packages/google_mobile_ads/example/lib/webview_example.dart b/packages/google_mobile_ads/example/lib/webview_example.dart index fb003374f..e0dc505f2 100644 --- a/packages/google_mobile_ads/example/lib/webview_example.dart +++ b/packages/google_mobile_ads/example/lib/webview_example.dart @@ -62,12 +62,16 @@ class _WebViewExampleState extends State { ); if (controller.platform is AndroidWebViewController) { AndroidWebViewCookieManager cookieManager = AndroidWebViewCookieManager( - PlatformWebViewCookieManagerCreationParams()); + PlatformWebViewCookieManagerCreationParams(), + ); await cookieManager.setAcceptThirdPartyCookies( - controller.platform as AndroidWebViewController, true); + controller.platform as AndroidWebViewController, + true, + ); } await MobileAds.instance.registerWebView(controller); - await controller - .loadRequest(Uri.parse('https://webview-api-for-ads-test.glitch.me/')); + await controller.loadRequest( + Uri.parse('https://webview-api-for-ads-test.glitch.me/'), + ); } } diff --git a/packages/google_mobile_ads/example/pubspec.yaml b/packages/google_mobile_ads/example/pubspec.yaml index 0c3fcf18e..aa0ac8594 100644 --- a/packages/google_mobile_ads/example/pubspec.yaml +++ b/packages/google_mobile_ads/example/pubspec.yaml @@ -22,7 +22,7 @@ dependencies: sdk: flutter google_mobile_ads: path: ../ - webview_flutter_android: ^4.3.1 + webview_flutter_android: ^4.10.9 webview_flutter: ^4.10.0 dev_dependencies: @@ -34,4 +34,4 @@ flutter: uses-material-design: true environment: - sdk: ">=3.6.0 <4.0.0" + sdk: ">=3.9.0 <4.0.0" diff --git a/packages/google_mobile_ads/ios/Classes/FLTConstants.h b/packages/google_mobile_ads/ios/Classes/FLTConstants.h index c72a0c98d..de436414d 100644 --- a/packages/google_mobile_ads/ios/Classes/FLTConstants.h +++ b/packages/google_mobile_ads/ios/Classes/FLTConstants.h @@ -13,4 +13,4 @@ // limitations under the License. /** Versioned request agent string. */ -#define FLT_REQUEST_AGENT_VERSIONED @"Flutter-GMA-6.0.0" +#define FLT_REQUEST_AGENT_VERSIONED @"Flutter-GMA-7.0.0" diff --git a/packages/google_mobile_ads/ios/google_mobile_ads.podspec b/packages/google_mobile_ads/ios/google_mobile_ads.podspec index cb6ecc020..e503293f3 100644 --- a/packages/google_mobile_ads/ios/google_mobile_ads.podspec +++ b/packages/google_mobile_ads/ios/google_mobile_ads.podspec @@ -3,7 +3,7 @@ # Pod::Spec.new do |s| s.name = 'google_mobile_ads' - s.version = '6.0.0' + s.version = '7.0.0' s.summary = 'Google Mobile Ads plugin for Flutter.' s.description = <<-DESC Google Mobile Ads plugin for Flutter. @@ -15,7 +15,7 @@ Google Mobile Ads plugin for Flutter. s.source_files = 'Classes/**/*.{h,m}' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'Google-Mobile-Ads-SDK','~> 12.2.0' + s.dependency 'Google-Mobile-Ads-SDK','~> 12.14.0' s.dependency 'webview_flutter_wkwebview' s.ios.deployment_target = '12.0' s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'VALID_ARCHS' => 'armv7 arm64 x86_64' } diff --git a/packages/google_mobile_ads/lib/src/ad_containers.dart b/packages/google_mobile_ads/lib/src/ad_containers.dart index 5303fc646..85ae6f0f1 100644 --- a/packages/google_mobile_ads/lib/src/ad_containers.dart +++ b/packages/google_mobile_ads/lib/src/ad_containers.dart @@ -65,12 +65,13 @@ class AdError { class ResponseInfo { /// Constructs a [ResponseInfo] with the [responseId] and [mediationAdapterClassName]. @protected - const ResponseInfo( - {this.responseId, - this.mediationAdapterClassName, - this.adapterResponses, - this.loadedAdapterResponseInfo, - required this.responseExtras}); + const ResponseInfo({ + this.responseId, + this.mediationAdapterClassName, + this.adapterResponses, + this.loadedAdapterResponseInfo, + required this.responseExtras, + }); /// An identifier for the loaded ad. final String? responseId; @@ -174,7 +175,7 @@ class LoadAdError extends AdError { /// Default constructor for [LoadAdError]. @protected LoadAdError(int code, String domain, String message, this.responseInfo) - : super(code, domain, message); + : super(code, domain, message); /// The [ResponseInfo] for the error. final ResponseInfo? responseInfo; @@ -192,16 +193,16 @@ class LoadAdError extends AdError { /// [AdRequest.Builder for Android](https://developers.google.com/android/reference/com/google/android/gms/ads/AdRequest.Builder). class AdRequest { /// Default constructor for [AdRequest]. - const AdRequest( - {this.keywords, - this.contentUrl, - this.neighboringContentUrls, - this.nonPersonalizedAds, - this.httpTimeoutMillis, - @Deprecated('Use mediationExtras instead.') - this.mediationExtrasIdentifier, - this.extras, - this.mediationExtras}); + const AdRequest({ + this.keywords, + this.contentUrl, + this.neighboringContentUrls, + this.nonPersonalizedAds, + this.httpTimeoutMillis, + @Deprecated('Use mediationExtras instead.') this.mediationExtrasIdentifier, + this.extras, + this.mediationExtras, + }); /// Words or phrases describing the current user activity. final List? keywords; @@ -256,15 +257,16 @@ class AdRequest { @override int get hashCode => Object.hash( - keywords, - contentUrl, - nonPersonalizedAds, - neighboringContentUrls, - httpTimeoutMillis, - //ignore: deprecated_member_use_from_same_package - mediationExtrasIdentifier, - extras, - mediationExtras); + keywords, + contentUrl, + nonPersonalizedAds, + neighboringContentUrls, + httpTimeoutMillis, + //ignore: deprecated_member_use_from_same_package + mediationExtrasIdentifier, + extras, + mediationExtras, + ); } /// Targeting info per the Ad Manager API. @@ -283,16 +285,16 @@ class AdManagerAdRequest extends AdRequest { Map? extras, List? mediationExtras, }) : super( - keywords: keywords, - contentUrl: contentUrl, - neighboringContentUrls: neighboringContentUrls, - nonPersonalizedAds: nonPersonalizedAds, - httpTimeoutMillis: httpTimeoutMillis, - //ignore: deprecated_member_use_from_same_package - mediationExtrasIdentifier: mediationExtrasIdentifier, - extras: extras, - mediationExtras: mediationExtras, - ); + keywords: keywords, + contentUrl: contentUrl, + neighboringContentUrls: neighboringContentUrls, + nonPersonalizedAds: nonPersonalizedAds, + httpTimeoutMillis: httpTimeoutMillis, + //ignore: deprecated_member_use_from_same_package + mediationExtrasIdentifier: mediationExtrasIdentifier, + extras: extras, + mediationExtras: mediationExtras, + ); /// Key-value pairs used for custom targeting. final Map? customTargeting; @@ -391,8 +393,8 @@ class InlineAdaptiveSize extends AdSize { int? get orientationValue => orientation == null ? null : orientation == Orientation.portrait - ? 0 - : 1; + ? 0 + : 1; } /// [AdSize] represents the size of a banner ad. @@ -403,10 +405,7 @@ class InlineAdaptiveSize extends AdSize { /// additional details. class AdSize { /// Constructs an [AdSize] with the given [width] and [height]. - const AdSize({ - required this.width, - required this.height, - }); + const AdSize({required this.width, required this.height}); /// The vertical span of an ad. final int height; @@ -445,10 +444,7 @@ class AdSize { ) async { final num? height = await instanceManager.channel.invokeMethod( 'AdSize#getAnchoredAdaptiveBannerAdSize', - { - 'orientation': orientation.name, - 'width': width, - }, + {'orientation': orientation.name, 'width': width}, ); if (height == null) return null; @@ -466,12 +462,10 @@ class AdSize { /// This function always returns the same height for any width / device combination. /// For more details, visit: https://developers.google.com/android/reference/com/google/android/gms/ads/AdSize#getCurrentOrientationAnchoredAdaptiveBannerAdSize(android.content.Context,%20int) static Future - getCurrentOrientationAnchoredAdaptiveBannerAdSize(int width) async { + getCurrentOrientationAnchoredAdaptiveBannerAdSize(int width) async { final num? height = await instanceManager.channel.invokeMethod( 'AdSize#getAnchoredAdaptiveBannerAdSize', - { - 'width': width, - }, + {'width': width}, ); if (height == null) return null; @@ -493,7 +487,8 @@ class AdSize { /// This ad size is most suitable for ads intended to be displayed inside /// scrollable content. static InlineAdaptiveSize getCurrentOrientationInlineAdaptiveBannerAdSize( - int width) { + int width, + ) { return InlineAdaptiveSize._(width: width); } @@ -509,7 +504,9 @@ class AdSize { /// scrollable content. static InlineAdaptiveSize getLandscapeInlineAdaptiveBannerAdSize(int width) { return InlineAdaptiveSize._( - width: width, orientation: Orientation.landscape); + width: width, + orientation: Orientation.landscape, + ); } /// Gets an AdSize in portrait orientation with the given width and 0 height. @@ -524,7 +521,9 @@ class AdSize { /// scrollable content. static InlineAdaptiveSize getPortraitInlineAdaptiveBannerAdSize(int width) { return InlineAdaptiveSize._( - width: width, orientation: Orientation.portrait); + width: width, + orientation: Orientation.portrait, + ); } /// Gets an AdSize with the given width and height that is always 0. @@ -537,7 +536,9 @@ class AdSize { /// This ad size is most suitable for ads intended to be displayed inside /// scrollable content. static InlineAdaptiveSize getInlineAdaptiveBannerAdSize( - int width, int maxHeight) { + int width, + int maxHeight, + ) { return InlineAdaptiveSize._(width: width, maxHeight: maxHeight); } @@ -605,7 +606,7 @@ abstract class Ad { abstract class AdWithView extends Ad { /// Default constructor, used by subclasses. AdWithView({required String adUnitId, required this.listener}) - : super(adUnitId: adUnitId); + : super(adUnitId: adUnitId); /// The [AdWithViewListener] for the ad. final AdWithViewListener listener; @@ -693,18 +694,22 @@ class _AdWidgetState extends State { throw FlutterError.fromParts([ ErrorSummary('This AdWidget is already in the Widget tree'), ErrorHint( - 'If you placed this AdWidget in a list, make sure you create a new instance ' - 'in the builder function with a unique ad object.'), + 'If you placed this AdWidget in a list, make sure you create a new instance ' + 'in the builder function with a unique ad object.', + ), ErrorHint( - 'Make sure you are not using the same ad object in more than one AdWidget.'), + 'Make sure you are not using the same ad object in more than one AdWidget.', + ), ]); } if (_adLoadNotCalled) { throw FlutterError.fromParts([ ErrorSummary( - 'AdWidget requires Ad.load to be called before AdWidget is inserted into the tree'), + 'AdWidget requires Ad.load to be called before AdWidget is inserted into the tree', + ), ErrorHint( - 'Parameter ad is not loaded. Call Ad.load before AdWidget is inserted into the tree.'), + 'Parameter ad is not loaded. Call Ad.load before AdWidget is inserted into the tree.', + ), ]); } if (defaultTargetPlatform == TargetPlatform.android) { @@ -712,20 +717,21 @@ class _AdWidgetState extends State { viewType: '${instanceManager.channel.name}/ad_widget', surfaceFactory: (BuildContext context, PlatformViewController controller) { - return AndroidViewSurface( - controller: controller as AndroidViewController, - gestureRecognizers: const >{}, - hitTestBehavior: PlatformViewHitTestBehavior.opaque, - ); - }, + return AndroidViewSurface( + controller: controller as AndroidViewController, + gestureRecognizers: + const >{}, + hitTestBehavior: PlatformViewHitTestBehavior.opaque, + ); + }, onCreatePlatformView: (PlatformViewCreationParams params) { return PlatformViewsService.initSurfaceAndroidView( - id: params.id, - viewType: '${instanceManager.channel.name}/ad_widget', - layoutDirection: TextDirection.ltr, - creationParams: instanceManager.adIdFor(widget.ad), - creationParamsCodec: StandardMessageCodec(), - ) + id: params.id, + viewType: '${instanceManager.channel.name}/ad_widget', + layoutDirection: TextDirection.ltr, + creationParams: instanceManager.adIdFor(widget.ad), + creationParamsCodec: StandardMessageCodec(), + ) ..addOnPlatformViewCreatedListener(params.onPlatformViewCreated) ..create(); }, @@ -746,7 +752,7 @@ class _AdWidgetState extends State { class FluidAdWidget extends StatefulWidget { /// Constructs a [FluidAdWidget]. const FluidAdWidget({Key? key, required this.ad, this.width}) - : super(key: key); + : super(key: key); /// Ad to be displayed as a widget. final FluidAdManagerBannerAd ad; @@ -792,18 +798,22 @@ class _FluidAdWidgetState extends State { throw FlutterError.fromParts([ ErrorSummary('This AdWidget is already in the Widget tree'), ErrorHint( - 'If you placed this AdWidget in a list, make sure you create a new instance ' - 'in the builder function with a unique ad object.'), + 'If you placed this AdWidget in a list, make sure you create a new instance ' + 'in the builder function with a unique ad object.', + ), ErrorHint( - 'Make sure you are not using the same ad object in more than one AdWidget.'), + 'Make sure you are not using the same ad object in more than one AdWidget.', + ), ]); } if (_adLoadNotCalled) { throw FlutterError.fromParts([ ErrorSummary( - 'AdWidget requires Ad.load to be called before AdWidget is inserted into the tree'), + 'AdWidget requires Ad.load to be called before AdWidget is inserted into the tree', + ), ErrorHint( - 'Parameter ad is not loaded. Call Ad.load before AdWidget is inserted into the tree.'), + 'Parameter ad is not loaded. Call Ad.load before AdWidget is inserted into the tree.', + ), ]); } @@ -820,20 +830,21 @@ class _FluidAdWidgetState extends State { viewType: '${instanceManager.channel.name}/ad_widget', surfaceFactory: (BuildContext context, PlatformViewController controller) { - return AndroidViewSurface( - controller: controller as AndroidViewController, - gestureRecognizers: const >{}, - hitTestBehavior: PlatformViewHitTestBehavior.opaque, - ); - }, + return AndroidViewSurface( + controller: controller as AndroidViewController, + gestureRecognizers: + const >{}, + hitTestBehavior: PlatformViewHitTestBehavior.opaque, + ); + }, onCreatePlatformView: (PlatformViewCreationParams params) { return PlatformViewsService.initSurfaceAndroidView( - id: params.id, - viewType: '${instanceManager.channel.name}/ad_widget', - layoutDirection: TextDirection.ltr, - creationParams: instanceManager.adIdFor(widget.ad), - creationParamsCodec: StandardMessageCodec(), - ) + id: params.id, + viewType: '${instanceManager.channel.name}/ad_widget', + layoutDirection: TextDirection.ltr, + creationParams: instanceManager.adIdFor(widget.ad), + creationParamsCodec: StandardMessageCodec(), + ) ..addOnPlatformViewCreatedListener(params.onPlatformViewCreated) ..create(); }, @@ -927,11 +938,11 @@ class FluidAdManagerBannerAd extends AdManagerBannerAd { required AdManagerAdRequest request, this.onFluidAdHeightChangedListener, }) : super( - sizes: [FluidAdSize()], - adUnitId: adUnitId, - listener: listener, - request: request, - ); + sizes: [FluidAdSize()], + adUnitId: adUnitId, + listener: listener, + request: request, + ); /// Listener for when the height of the ad changes. OnFluidAdHeightChangedListener? onFluidAdHeightChangedListener; @@ -955,8 +966,8 @@ class AdManagerBannerAd extends AdWithView { required String adUnitId, required this.listener, required this.request, - }) : assert(sizes.isNotEmpty), - super(adUnitId: adUnitId, listener: listener); + }) : assert(sizes.isNotEmpty), + super(adUnitId: adUnitId, listener: listener); /// Targeting information used to fetch an [Ad]. final AdManagerAdRequest request; @@ -1023,10 +1034,10 @@ class NativeAd extends AdWithView { this.nativeAdOptions, this.customOptions, this.nativeTemplateStyle, - }) : adManagerRequest = null, - assert(request != null), - assert(nativeTemplateStyle != null || factoryId != null), - super(adUnitId: adUnitId, listener: listener); + }) : adManagerRequest = null, + assert(request != null), + assert(nativeTemplateStyle != null || factoryId != null), + super(adUnitId: adUnitId, listener: listener); /// Creates a [NativeAd] with Ad Manager. /// @@ -1042,10 +1053,10 @@ class NativeAd extends AdWithView { this.nativeAdOptions, this.customOptions, this.nativeTemplateStyle, - }) : request = null, - assert(adManagerRequest != null), - assert(nativeTemplateStyle != null || factoryId != null), - super(adUnitId: adUnitId, listener: listener); + }) : request = null, + assert(adManagerRequest != null), + assert(nativeTemplateStyle != null || factoryId != null), + super(adUnitId: adUnitId, listener: listener); /// An identifier for the factory that creates the Platform view. final String? factoryId; @@ -1109,7 +1120,10 @@ class InterstitialAd extends AdWithoutView { required InterstitialAdLoadCallback adLoadCallback, }) async { InterstitialAd ad = InterstitialAd._( - adUnitId: adUnitId, adLoadCallback: adLoadCallback, request: request); + adUnitId: adUnitId, + adLoadCallback: adLoadCallback, + request: request, + ); await instanceManager.loadInterstitialAd(ad); } @@ -1155,7 +1169,10 @@ class AdManagerInterstitialAd extends AdWithoutView { AppEventListener? appEventListener, }) async { AdManagerInterstitialAd ad = AdManagerInterstitialAd._( - adUnitId: adUnitId, adLoadCallback: adLoadCallback, request: request); + adUnitId: adUnitId, + adLoadCallback: adLoadCallback, + request: request, + ); await instanceManager.loadAdManagerInterstitialAd(ad); } @@ -1181,8 +1198,8 @@ class RewardedAd extends AdWithoutView { required String adUnitId, required this.rewardedAdLoadCallback, required this.request, - }) : adManagerRequest = null, - super(adUnitId: adUnitId); + }) : adManagerRequest = null, + super(adUnitId: adUnitId); /// Creates a [RewardedAd] with a [AdManagerAdRequest]. /// @@ -1191,8 +1208,8 @@ class RewardedAd extends AdWithoutView { required String adUnitId, required this.rewardedAdLoadCallback, required this.adManagerRequest, - }) : request = null, - super(adUnitId: adUnitId); + }) : request = null, + super(adUnitId: adUnitId); /// Targeting information used to fetch an [Ad]. final AdRequest? request; @@ -1216,9 +1233,10 @@ class RewardedAd extends AdWithoutView { required RewardedAdLoadCallback rewardedAdLoadCallback, }) async { RewardedAd rewardedAd = RewardedAd._( - adUnitId: adUnitId, - request: request, - rewardedAdLoadCallback: rewardedAdLoadCallback); + adUnitId: adUnitId, + request: request, + rewardedAdLoadCallback: rewardedAdLoadCallback, + ); await instanceManager.loadRewardedAd(rewardedAd); } @@ -1230,9 +1248,10 @@ class RewardedAd extends AdWithoutView { required RewardedAdLoadCallback rewardedAdLoadCallback, }) async { RewardedAd rewardedAd = RewardedAd._fromAdManagerRequest( - adUnitId: adUnitId, - adManagerRequest: adManagerRequest, - rewardedAdLoadCallback: rewardedAdLoadCallback); + adUnitId: adUnitId, + adManagerRequest: adManagerRequest, + rewardedAdLoadCallback: rewardedAdLoadCallback, + ); await instanceManager.loadRewardedAd(rewardedAd); } @@ -1270,8 +1289,8 @@ class RewardedInterstitialAd extends AdWithoutView { required String adUnitId, required this.rewardedInterstitialAdLoadCallback, required this.request, - }) : adManagerRequest = null, - super(adUnitId: adUnitId); + }) : adManagerRequest = null, + super(adUnitId: adUnitId); /// Creates a [RewardedInterstitialAd] with an [AdManagerAdRequest]. /// @@ -1280,8 +1299,8 @@ class RewardedInterstitialAd extends AdWithoutView { required String adUnitId, required this.rewardedInterstitialAdLoadCallback, required this.adManagerRequest, - }) : request = null, - super(adUnitId: adUnitId); + }) : request = null, + super(adUnitId: adUnitId); /// Targeting information used to fetch an [Ad]. final AdRequest? request; @@ -1303,12 +1322,13 @@ class RewardedInterstitialAd extends AdWithoutView { required String adUnitId, required AdRequest request, required RewardedInterstitialAdLoadCallback - rewardedInterstitialAdLoadCallback, + rewardedInterstitialAdLoadCallback, }) async { RewardedInterstitialAd rewardedInterstitialAd = RewardedInterstitialAd._( - adUnitId: adUnitId, - request: request, - rewardedInterstitialAdLoadCallback: rewardedInterstitialAdLoadCallback); + adUnitId: adUnitId, + request: request, + rewardedInterstitialAdLoadCallback: rewardedInterstitialAdLoadCallback, + ); await instanceManager.loadRewardedInterstitialAd(rewardedInterstitialAd); } @@ -1318,14 +1338,15 @@ class RewardedInterstitialAd extends AdWithoutView { required String adUnitId, required AdManagerAdRequest adManagerRequest, required RewardedInterstitialAdLoadCallback - rewardedInterstitialAdLoadCallback, + rewardedInterstitialAdLoadCallback, }) async { RewardedInterstitialAd rewardedInterstitialAd = RewardedInterstitialAd._fromAdManagerRequest( - adUnitId: adUnitId, - adManagerRequest: adManagerRequest, - rewardedInterstitialAdLoadCallback: - rewardedInterstitialAdLoadCallback); + adUnitId: adUnitId, + adManagerRequest: adManagerRequest, + rewardedInterstitialAdLoadCallback: + rewardedInterstitialAdLoadCallback, + ); await instanceManager.loadRewardedInterstitialAd(rewardedInterstitialAd); } @@ -1394,15 +1415,15 @@ class AppOpenAd extends AdWithoutView { required String adUnitId, required this.adLoadCallback, required this.request, - }) : adManagerAdRequest = null, - super(adUnitId: adUnitId); + }) : adManagerAdRequest = null, + super(adUnitId: adUnitId); AppOpenAd._fromAdManagerRequest({ required String adUnitId, required this.adLoadCallback, required this.adManagerAdRequest, - }) : request = null, - super(adUnitId: adUnitId); + }) : request = null, + super(adUnitId: adUnitId); /// The [AdRequest] used to load the ad. final AdRequest? request; @@ -1468,7 +1489,7 @@ enum MediaAspectRatio { portrait, /// Close to square media aspect ratio. This is not a strict 1:1 aspect ratio. - square + square, } /// Indicates preferred location of AdChoices icon. @@ -1483,7 +1504,7 @@ enum AdChoicesPlacement { bottomRightCorner, /// Bottom left corner. - bottomLeftCorner + bottomLeftCorner, } /// Used to configure native ad requests. @@ -1541,12 +1562,13 @@ class NativeAdOptions { @override int get hashCode => Object.hash( - adChoicesPlacement, - mediaAspectRatio, - videoOptions, - requestCustomMuteThisAd, - shouldRequestMultipleImages, - shouldReturnUrlsForImageAssets); + adChoicesPlacement, + mediaAspectRatio, + videoOptions, + requestCustomMuteThisAd, + shouldRequestMultipleImages, + shouldReturnUrlsForImageAssets, + ); } /// Options for controlling video playback in supported ad formats. diff --git a/packages/google_mobile_ads/lib/src/ad_inspector_containers.dart b/packages/google_mobile_ads/lib/src/ad_inspector_containers.dart index d3e118a89..cfc42daab 100644 --- a/packages/google_mobile_ads/lib/src/ad_inspector_containers.dart +++ b/packages/google_mobile_ads/lib/src/ad_inspector_containers.dart @@ -18,11 +18,7 @@ typedef OnAdInspectorClosedListener = void Function(AdInspectorError?); /// Error information about why the ad inspector failed. class AdInspectorError { /// Create an AdInspectorError with the given code, domain and message. - AdInspectorError({ - this.code, - this.domain, - this.message, - }); + AdInspectorError({this.code, this.domain, this.message}); /// Code to identifier the error. final String? code; diff --git a/packages/google_mobile_ads/lib/src/ad_instance_manager.dart b/packages/google_mobile_ads/lib/src/ad_instance_manager.dart index b5061bbea..aa37a30a0 100644 --- a/packages/google_mobile_ads/lib/src/ad_instance_manager.dart +++ b/packages/google_mobile_ads/lib/src/ad_instance_manager.dart @@ -50,12 +50,13 @@ AdInstanceManager instanceManager = AdInstanceManager( /// Maintains access to loaded [Ad] instances and handles sending/receiving /// messages to platform code. class AdInstanceManager { - AdInstanceManager(String channelName, - {this.webViewControllerUtil = const WebViewControllerUtil()}) - : channel = MethodChannel( - channelName, - StandardMethodCodec(AdMessageCodec()), - ) { + AdInstanceManager( + String channelName, { + this.webViewControllerUtil = const WebViewControllerUtil(), + }) : channel = MethodChannel( + channelName, + StandardMethodCodec(AdMessageCodec()), + ) { channel.setMethodCallHandler((MethodCall call) async { assert(call.method == 'onAdEvent'); @@ -133,20 +134,25 @@ class AdInstanceManager { break; case 'adWillDismissFullScreenContent': if (ad is RewardedAd) { - ad.fullScreenContentCallback?.onAdWillDismissFullScreenContent - ?.call(ad); + ad.fullScreenContentCallback?.onAdWillDismissFullScreenContent?.call( + ad, + ); } else if (ad is InterstitialAd) { - ad.fullScreenContentCallback?.onAdWillDismissFullScreenContent - ?.call(ad); + ad.fullScreenContentCallback?.onAdWillDismissFullScreenContent?.call( + ad, + ); } else if (ad is RewardedInterstitialAd) { - ad.fullScreenContentCallback?.onAdWillDismissFullScreenContent - ?.call(ad); + ad.fullScreenContentCallback?.onAdWillDismissFullScreenContent?.call( + ad, + ); } else if (ad is AdManagerInterstitialAd) { - ad.fullScreenContentCallback?.onAdWillDismissFullScreenContent - ?.call(ad); + ad.fullScreenContentCallback?.onAdWillDismissFullScreenContent?.call( + ad, + ); } else if (ad is AppOpenAd) { - ad.fullScreenContentCallback?.onAdWillDismissFullScreenContent - ?.call(ad); + ad.fullScreenContentCallback?.onAdWillDismissFullScreenContent?.call( + ad, + ); } else { debugPrint('invalid ad: $ad, for event name: $eventName'); } @@ -166,7 +172,10 @@ class AdInstanceManager { } void _onAdEventAndroid( - Ad ad, String eventName, Map arguments) { + Ad ad, + String eventName, + Map arguments, + ) { switch (eventName) { case 'onAdLoaded': _invokeOnAdLoaded(ad, eventName, arguments); @@ -215,13 +224,17 @@ class AdInstanceManager { void _invokeFluidAdHeightChanged(Ad ad, Map arguments) { assert(ad is FluidAdManagerBannerAd); - (ad as FluidAdManagerBannerAd) - .onFluidAdHeightChangedListener - ?.call(ad, arguments['height'].toDouble()); + (ad as FluidAdManagerBannerAd).onFluidAdHeightChangedListener?.call( + ad, + arguments['height'].toDouble(), + ); } void _invokeOnAdLoaded( - Ad ad, String eventName, Map arguments) { + Ad ad, + String eventName, + Map arguments, + ) { ad.responseInfo = arguments['responseInfo']; if (ad is AdWithView) { ad.listener.onAdLoaded?.call(ad); @@ -241,7 +254,10 @@ class AdInstanceManager { } void _invokeOnAdFailedToLoad( - Ad ad, String eventName, Map arguments) { + Ad ad, + String eventName, + Map arguments, + ) { if (ad is AdWithView) { ad.listener.onAdFailedToLoad?.call(ad, arguments['loadAdError']); } else if (ad is RewardedAd) { @@ -252,8 +268,9 @@ class AdInstanceManager { ad.adLoadCallback.onAdFailedToLoad.call(arguments['loadAdError']); } else if (ad is RewardedInterstitialAd) { ad.dispose(); - ad.rewardedInterstitialAdLoadCallback.onAdFailedToLoad - .call(arguments['loadAdError']); + ad.rewardedInterstitialAdLoadCallback.onAdFailedToLoad.call( + arguments['loadAdError'], + ); } else if (ad is AdManagerInterstitialAd) { ad.dispose(); ad.adLoadCallback.onAdFailedToLoad.call(arguments['loadAdError']); @@ -265,19 +282,28 @@ class AdInstanceManager { } void _invokeOnAppEvent( - Ad ad, String eventName, Map arguments) { + Ad ad, + String eventName, + Map arguments, + ) { if (ad is AdManagerBannerAd) { ad.listener.onAppEvent?.call(ad, arguments['name'], arguments['data']); } else if (ad is AdManagerInterstitialAd) { - ad.appEventListener?.onAppEvent - ?.call(ad, arguments['name'], arguments['data']); + ad.appEventListener?.onAppEvent?.call( + ad, + arguments['name'], + arguments['data'], + ); } else { debugPrint('invalid ad: $ad, for event name: $eventName'); } } void _invokeOnUserEarnedReward( - Ad ad, String eventName, Map arguments) { + Ad ad, + String eventName, + Map arguments, + ) { assert(arguments['rewardItem'] != null); if (ad is RewardedAd) { ad.onUserEarnedRewardCallback?.call(ad, arguments['rewardItem']); @@ -337,22 +363,35 @@ class AdInstanceManager { } void _invokeOnAdFailedToShowFullScreenContent( - Ad ad, String eventName, Map arguments) { + Ad ad, + String eventName, + Map arguments, + ) { if (ad is RewardedAd) { - ad.fullScreenContentCallback?.onAdFailedToShowFullScreenContent - ?.call(ad, arguments['error']); + ad.fullScreenContentCallback?.onAdFailedToShowFullScreenContent?.call( + ad, + arguments['error'], + ); } else if (ad is InterstitialAd) { - ad.fullScreenContentCallback?.onAdFailedToShowFullScreenContent - ?.call(ad, arguments['error']); + ad.fullScreenContentCallback?.onAdFailedToShowFullScreenContent?.call( + ad, + arguments['error'], + ); } else if (ad is RewardedInterstitialAd) { - ad.fullScreenContentCallback?.onAdFailedToShowFullScreenContent - ?.call(ad, arguments['error']); + ad.fullScreenContentCallback?.onAdFailedToShowFullScreenContent?.call( + ad, + arguments['error'], + ); } else if (ad is AdManagerInterstitialAd) { - ad.fullScreenContentCallback?.onAdFailedToShowFullScreenContent - ?.call(ad, arguments['error']); + ad.fullScreenContentCallback?.onAdFailedToShowFullScreenContent?.call( + ad, + arguments['error'], + ); } else if (ad is AppOpenAd) { - ad.fullScreenContentCallback?.onAdFailedToShowFullScreenContent - ?.call(ad, arguments['error']); + ad.fullScreenContentCallback?.onAdFailedToShowFullScreenContent?.call( + ad, + arguments['error'], + ); } else { debugPrint('invalid ad: $ad, for event name: $eventName'); } @@ -397,7 +436,10 @@ class AdInstanceManager { } void _invokePaidEvent( - Ad ad, String eventName, Map arguments) { + Ad ad, + String eventName, + Map arguments, + ) { assert(arguments['valueMicros'] != null && arguments['valueMicros'] is num); int precisionTypeInt = arguments['precision']; @@ -448,9 +490,7 @@ class AdInstanceManager { Future getAdSize(Ad ad) => instanceManager.channel.invokeMethod( 'getAdSize', - { - 'adId': adIdFor(ad), - }, + {'adId': adIdFor(ad)}, ); /// Returns null if an invalid [adId] was passed in. @@ -480,15 +520,12 @@ class AdInstanceManager { final int adId = _nextAdId++; _loadedAds[adId] = ad; - return channel.invokeMethod( - 'loadBannerAd', - { - 'adId': adId, - 'adUnitId': ad.adUnitId, - 'request': ad.request, - 'size': ad.size, - }, - ); + return channel.invokeMethod('loadBannerAd', { + 'adId': adId, + 'adUnitId': ad.adUnitId, + 'request': ad.request, + 'size': ad.size, + }); } Future loadInterstitialAd(InterstitialAd ad) { @@ -498,14 +535,11 @@ class AdInstanceManager { final int adId = _nextAdId++; _loadedAds[adId] = ad; - return channel.invokeMethod( - 'loadInterstitialAd', - { - 'adId': adId, - 'adUnitId': ad.adUnitId, - 'request': ad.request, - }, - ); + return channel.invokeMethod('loadInterstitialAd', { + 'adId': adId, + 'adUnitId': ad.adUnitId, + 'request': ad.request, + }); } /// Starts loading the ad if not previously loaded. @@ -518,19 +552,16 @@ class AdInstanceManager { final int adId = _nextAdId++; _loadedAds[adId] = ad; - return channel.invokeMethod( - 'loadNativeAd', - { - 'adId': adId, - 'adUnitId': ad.adUnitId, - 'request': ad.request, - 'adManagerRequest': ad.adManagerRequest, - 'factoryId': ad.factoryId, - 'nativeAdOptions': ad.nativeAdOptions, - 'customOptions': ad.customOptions, - 'nativeTemplateStyle': ad.nativeTemplateStyle, - }, - ); + return channel.invokeMethod('loadNativeAd', { + 'adId': adId, + 'adUnitId': ad.adUnitId, + 'request': ad.request, + 'adManagerRequest': ad.adManagerRequest, + 'factoryId': ad.factoryId, + 'nativeAdOptions': ad.nativeAdOptions, + 'customOptions': ad.customOptions, + 'nativeTemplateStyle': ad.nativeTemplateStyle, + }); } /// Starts loading the ad if not previously loaded. @@ -543,15 +574,12 @@ class AdInstanceManager { final int adId = _nextAdId++; _loadedAds[adId] = ad; - return channel.invokeMethod( - 'loadRewardedAd', - { - 'adId': adId, - 'adUnitId': ad.adUnitId, - 'request': ad.request, - 'adManagerRequest': ad.adManagerRequest, - }, - ); + return channel.invokeMethod('loadRewardedAd', { + 'adId': adId, + 'adUnitId': ad.adUnitId, + 'request': ad.request, + 'adManagerRequest': ad.adManagerRequest, + }); } /// Starts loading the ad if not previously loaded. @@ -564,15 +592,13 @@ class AdInstanceManager { final int adId = _nextAdId++; _loadedAds[adId] = ad; - return channel.invokeMethod( - 'loadRewardedInterstitialAd', - { - 'adId': adId, - 'adUnitId': ad.adUnitId, - 'request': ad.request, - 'adManagerRequest': ad.adManagerRequest, - }, - ); + return channel + .invokeMethod('loadRewardedInterstitialAd', { + 'adId': adId, + 'adUnitId': ad.adUnitId, + 'request': ad.request, + 'adManagerRequest': ad.adManagerRequest, + }); } /// Load an app open ad. @@ -583,15 +609,12 @@ class AdInstanceManager { final int adId = _nextAdId++; _loadedAds[adId] = ad; - return channel.invokeMethod( - 'loadAppOpenAd', - { - 'adId': adId, - 'adUnitId': ad.adUnitId, - 'request': ad.request, - 'adManagerRequest': ad.adManagerAdRequest, - }, - ); + return channel.invokeMethod('loadAppOpenAd', { + 'adId': adId, + 'adUnitId': ad.adUnitId, + 'request': ad.request, + 'adManagerRequest': ad.adManagerAdRequest, + }); } /// Starts loading the ad if not previously loaded. @@ -625,15 +648,12 @@ class AdInstanceManager { final int adId = _nextAdId++; _loadedAds[adId] = ad; - return channel.invokeMethod( - 'loadFluidAd', - { - 'adId': adId, - 'sizes': ad.sizes, - 'adUnitId': ad.adUnitId, - 'request': ad.request, - }, - ); + return channel.invokeMethod('loadFluidAd', { + 'adId': adId, + 'sizes': ad.sizes, + 'adUnitId': ad.adUnitId, + 'request': ad.request, + }); } /// Loads an ad if not currently loading or loaded. @@ -666,12 +686,9 @@ class AdInstanceManager { if (disposedAd == null) { return Future.value(); } - return channel.invokeMethod( - 'disposeAd', - { - 'adId': adId, - }, - ); + return channel.invokeMethod('disposeAd', { + 'adId': adId, + }); } /// Display an [AdWithoutView] that is overlaid on top of the application. @@ -681,23 +698,22 @@ class AdInstanceManager { '$Ad has not been loaded or has already been disposed.', ); - return channel.invokeMethod( - 'showAdWithoutView', - { - 'adId': adIdFor(ad), - }, - ); + return channel.invokeMethod('showAdWithoutView', { + 'adId': adIdFor(ad), + }); } /// Gets the global [RequestConfiguration]. Future getRequestConfiguration() async { return (await instanceManager.channel.invokeMethod( - 'MobileAds#getRequestConfiguration'))!; + 'MobileAds#getRequestConfiguration', + ))!; } /// Set the [RequestConfiguration] to apply for future ad requests. Future updateRequestConfiguration( - RequestConfiguration requestConfiguration) { + RequestConfiguration requestConfiguration, + ) { return channel.invokeMethod( 'MobileAds#updateRequestConfiguration', { @@ -714,9 +730,7 @@ class AdInstanceManager { Future setSameAppKeyEnabled(bool isEnabled) { return channel.invokeMethod( 'MobileAds#setSameAppKeyEnabled', - { - 'isEnabled': isEnabled, - }, + {'isEnabled': isEnabled}, ); } @@ -724,9 +738,7 @@ class AdInstanceManager { Future setAppMuted(bool muted) { return channel.invokeMethod( 'MobileAds#setAppMuted', - { - 'muted': muted, - }, + {'muted': muted}, ); } @@ -734,9 +746,7 @@ class AdInstanceManager { Future setAppVolume(double volume) { return channel.invokeMethod( 'MobileAds#setAppVolume', - { - 'volume': volume, - }, + {'volume': volume}, ); } @@ -747,13 +757,10 @@ class AdInstanceManager { '$ad has not been loaded or has already been disposed.', ); - return channel.invokeMethod( - 'setImmersiveMode', - { - 'adId': adIdFor(ad), - 'immersiveModeEnabled': immersiveModeEnabled, - }, - ); + return channel.invokeMethod('setImmersiveMode', { + 'adId': adIdFor(ad), + 'immersiveModeEnabled': immersiveModeEnabled, + }); } /// Disables automated SDK crash reporting. @@ -763,14 +770,16 @@ class AdInstanceManager { /// Disables mediation adapter initialization during initialization of the GMA SDK. Future disableMediationInitialization() { - return channel - .invokeMethod('MobileAds#disableMediationInitialization'); + return channel.invokeMethod( + 'MobileAds#disableMediationInitialization', + ); } /// Gets the version string of Google Mobile Ads SDK. Future getVersionString() async { - return (await instanceManager.channel - .invokeMethod('MobileAds#getVersionString'))!; + return (await instanceManager.channel.invokeMethod( + 'MobileAds#getVersionString', + ))!; } /// Set server side verification options on the ad. @@ -794,9 +803,7 @@ class AdInstanceManager { Future openDebugMenu(String adUnitId) async { return channel.invokeMethod( 'MobileAds#openDebugMenu', - { - 'adUnitId': adUnitId, - }, + {'adUnitId': adUnitId}, ); } @@ -827,8 +834,11 @@ class AdInstanceManager { await channel.invokeMethod('MobileAds#openAdInspector'); listener(null); } on PlatformException catch (e) { - var error = - AdInspectorError(code: e.code, domain: e.details, message: e.message); + var error = AdInspectorError( + code: e.code, + domain: e.details, + message: e.message, + ); listener(error); } } @@ -1016,15 +1026,20 @@ class AdMessageCodec extends StandardMessageCodec { : AdSize.getLandscapeInlineAdaptiveBannerAdSize(width.toInt()); } else if (maxHeight != null) { return AdSize.getInlineAdaptiveBannerAdSize( - width.toInt(), maxHeight.toInt()); + width.toInt(), + maxHeight.toInt(), + ); } else { return AdSize.getCurrentOrientationInlineAdaptiveBannerAdSize( - width.toInt()); + width.toInt(), + ); } case _valueAnchoredAdaptiveBannerAdSize: - final String? orientationStr = - readValueOfType(buffer.getUint8(), buffer); + final String? orientationStr = readValueOfType( + buffer.getUint8(), + buffer, + ); final num width = readValueOfType(buffer.getUint8(), buffer); Orientation? orientation; if (orientationStr != null) { @@ -1038,8 +1053,10 @@ class AdMessageCodec extends StandardMessageCodec { height: -1, // Unused value ); case _valueSmartBannerAdSize: - final String orientationStr = - readValueOfType(buffer.getUint8(), buffer); + final String orientationStr = readValueOfType( + buffer.getUint8(), + buffer, + ); return SmartBannerAdSize( Orientation.values.firstWhere( (Orientation orientation) => orientation.name == orientationStr, @@ -1048,10 +1065,7 @@ class AdMessageCodec extends StandardMessageCodec { case _valueAdSize: num width = readValueOfType(buffer.getUint8(), buffer); num height = readValueOfType(buffer.getUint8(), buffer); - return AdSize( - width: width.toInt(), - height: height.toInt(), - ); + return AdSize(width: width.toInt(), height: height.toInt()); case _valueFluidAdSize: return FluidAdSize(); case _valueAdRequest: @@ -1059,20 +1073,28 @@ class AdMessageCodec extends StandardMessageCodec { keywords: readValueOfType(buffer.getUint8(), buffer)?.cast(), contentUrl: readValueOfType(buffer.getUint8(), buffer), nonPersonalizedAds: readValueOfType(buffer.getUint8(), buffer), - neighboringContentUrls: - readValueOfType(buffer.getUint8(), buffer)?.cast(), + neighboringContentUrls: readValueOfType( + buffer.getUint8(), + buffer, + )?.cast(), httpTimeoutMillis: (defaultTargetPlatform == TargetPlatform.android) ? readValueOfType(buffer.getUint8(), buffer) : null, mediationExtrasIdentifier: readValueOfType(buffer.getUint8(), buffer), - extras: readValueOfType(buffer.getUint8(), buffer) - ?.cast(), - mediationExtras: readValueOfType(buffer.getUint8(), buffer) - ?.cast>(), + extras: readValueOfType( + buffer.getUint8(), + buffer, + )?.cast(), + mediationExtras: readValueOfType( + buffer.getUint8(), + buffer, + )?.cast>(), ); case _valueMediationExtras: - return _MediationExtras(readValueOfType(buffer.getUint8(), buffer), - readValueOfType(buffer.getUint8(), buffer)); + return _MediationExtras( + readValueOfType(buffer.getUint8(), buffer), + readValueOfType(buffer.getUint8(), buffer), + ); case _valueRewardItem: return RewardItem( readValueOfType(buffer.getUint8(), buffer), @@ -1082,24 +1104,29 @@ class AdMessageCodec extends StandardMessageCodec { return ResponseInfo( responseId: readValueOfType(buffer.getUint8(), buffer), mediationAdapterClassName: readValueOfType(buffer.getUint8(), buffer), - adapterResponses: readValueOfType(buffer.getUint8(), buffer) - ?.cast(), + adapterResponses: readValueOfType( + buffer.getUint8(), + buffer, + )?.cast(), loadedAdapterResponseInfo: readValueOfType(buffer.getUint8(), buffer), responseExtras: _deepCastStringKeyDynamicValueMap( - readValueOfType(buffer.getUint8(), buffer)), + readValueOfType(buffer.getUint8(), buffer), + ), ); case _valueAdapterResponseInfo: return AdapterResponseInfo( - adapterClassName: _safeReadString(buffer), - latencyMillis: readValueOfType(buffer.getUint8(), buffer), - description: _safeReadString(buffer), - adUnitMapping: - _deepCastStringMap(readValueOfType(buffer.getUint8(), buffer)), - adError: readValueOfType(buffer.getUint8(), buffer), - adSourceName: _safeReadString(buffer), - adSourceId: _safeReadString(buffer), - adSourceInstanceName: _safeReadString(buffer), - adSourceInstanceId: _safeReadString(buffer)); + adapterClassName: _safeReadString(buffer), + latencyMillis: readValueOfType(buffer.getUint8(), buffer), + description: _safeReadString(buffer), + adUnitMapping: _deepCastStringMap( + readValueOfType(buffer.getUint8(), buffer), + ), + adError: readValueOfType(buffer.getUint8(), buffer), + adSourceName: _safeReadString(buffer), + adSourceId: _safeReadString(buffer), + adSourceInstanceName: _safeReadString(buffer), + adSourceInstanceId: _safeReadString(buffer), + ); case _valueLoadAdError: return LoadAdError( readValueOfType(buffer.getUint8(), buffer), @@ -1109,30 +1136,39 @@ class AdMessageCodec extends StandardMessageCodec { ); case _valueAdError: return AdError( - readValueOfType(buffer.getUint8(), buffer), - readValueOfType(buffer.getUint8(), buffer), - readValueOfType(buffer.getUint8(), buffer)); + readValueOfType(buffer.getUint8(), buffer), + readValueOfType(buffer.getUint8(), buffer), + readValueOfType(buffer.getUint8(), buffer), + ); case _valueAdManagerAdRequest: return AdManagerAdRequest( keywords: readValueOfType(buffer.getUint8(), buffer)?.cast(), contentUrl: readValueOfType(buffer.getUint8(), buffer), - customTargeting: readValueOfType(buffer.getUint8(), buffer) - ?.cast(), + customTargeting: readValueOfType( + buffer.getUint8(), + buffer, + )?.cast(), customTargetingLists: _tryDeepMapCast( readValueOfType(buffer.getUint8(), buffer), ), nonPersonalizedAds: readValueOfType(buffer.getUint8(), buffer), - neighboringContentUrls: - readValueOfType(buffer.getUint8(), buffer)?.cast(), + neighboringContentUrls: readValueOfType( + buffer.getUint8(), + buffer, + )?.cast(), httpTimeoutMillis: (defaultTargetPlatform == TargetPlatform.android) ? readValueOfType(buffer.getUint8(), buffer) : null, publisherProvidedId: readValueOfType(buffer.getUint8(), buffer), mediationExtrasIdentifier: readValueOfType(buffer.getUint8(), buffer), - extras: readValueOfType(buffer.getUint8(), buffer) - ?.cast(), - mediationExtras: readValueOfType(buffer.getUint8(), buffer) - ?.cast>(), + extras: readValueOfType( + buffer.getUint8(), + buffer, + )?.cast(), + mediationExtras: readValueOfType( + buffer.getUint8(), + buffer, + )?.cast>(), ); case _valueInitializationState: switch (readValueOfType(buffer.getUint8(), buffer)) { @@ -1143,8 +1179,10 @@ class AdMessageCodec extends StandardMessageCodec { } throw ArgumentError(); case _valueAdapterStatus: - final AdapterInitializationState state = - readValueOfType(buffer.getUint8(), buffer); + final AdapterInitializationState state = readValueOfType( + buffer.getUint8(), + buffer, + ); final String description = readValueOfType(buffer.getUint8(), buffer); double latency = readValueOfType(buffer.getUint8(), buffer).toDouble(); @@ -1157,13 +1195,16 @@ class AdMessageCodec extends StandardMessageCodec { return AdapterStatus(state, description, latency); case _valueInitializationStatus: return InitializationStatus( - readValueOfType(buffer.getUint8(), buffer) - .cast(), + readValueOfType( + buffer.getUint8(), + buffer, + ).cast(), ); case _valueServerSideVerificationOptions: return ServerSideVerificationOptions( - userId: readValueOfType(buffer.getUint8(), buffer), - customData: readValueOfType(buffer.getUint8(), buffer)); + userId: readValueOfType(buffer.getUint8(), buffer), + customData: readValueOfType(buffer.getUint8(), buffer), + ); case _valueNativeAdOptions: int? adChoices = readValueOfType(buffer.getUint8(), buffer); int? mediaAspectRatio = readValueOfType(buffer.getUint8(), buffer); @@ -1172,10 +1213,14 @@ class AdMessageCodec extends StandardMessageCodec { mediaAspectRatio: MediaAspectRatioExtension.fromInt(mediaAspectRatio), videoOptions: readValueOfType(buffer.getUint8(), buffer), requestCustomMuteThisAd: readValueOfType(buffer.getUint8(), buffer), - shouldRequestMultipleImages: - readValueOfType(buffer.getUint8(), buffer), - shouldReturnUrlsForImageAssets: - readValueOfType(buffer.getUint8(), buffer), + shouldRequestMultipleImages: readValueOfType( + buffer.getUint8(), + buffer, + ), + shouldReturnUrlsForImageAssets: readValueOfType( + buffer.getUint8(), + buffer, + ), ); case _valueVideoOptions: return VideoOptions( @@ -1186,11 +1231,15 @@ class AdMessageCodec extends StandardMessageCodec { case _valueRequestConfigurationParams: return RequestConfiguration( maxAdContentRating: readValueOfType(buffer.getUint8(), buffer), - tagForChildDirectedTreatment: - readValueOfType(buffer.getUint8(), buffer), + tagForChildDirectedTreatment: readValueOfType( + buffer.getUint8(), + buffer, + ), tagForUnderAgeOfConsent: readValueOfType(buffer.getUint8(), buffer), - testDeviceIds: - readValueOfType(buffer.getUint8(), buffer).cast(), + testDeviceIds: readValueOfType( + buffer.getUint8(), + buffer, + ).cast(), ); case _valueNativeTemplateStyle: return NativeTemplateStyle( @@ -1215,13 +1264,16 @@ class AdMessageCodec extends StandardMessageCodec { ); case _valueColor: return Color.fromARGB( - readValueOfType(buffer.getUint8(), buffer), - readValueOfType(buffer.getUint8(), buffer), - readValueOfType(buffer.getUint8(), buffer), - readValueOfType(buffer.getUint8(), buffer)); + readValueOfType(buffer.getUint8(), buffer), + readValueOfType(buffer.getUint8(), buffer), + readValueOfType(buffer.getUint8(), buffer), + readValueOfType(buffer.getUint8(), buffer), + ); case _valueNativeTemplateFontStyle: - return NativeTemplateFontStyle - .values[readValueOfType(buffer.getUint8(), buffer)]; + return NativeTemplateFontStyle.values[readValueOfType( + buffer.getUint8(), + buffer, + )]; default: return super.readValueOfType(type, buffer); } @@ -1230,31 +1282,24 @@ class AdMessageCodec extends StandardMessageCodec { Map>? _tryDeepMapCast(Map? map) { if (map == null) return null; return map.map>( - (dynamic key, dynamic value) => MapEntry>( - key, - value?.cast(), - ), + (dynamic key, dynamic value) => + MapEntry>(key, value?.cast()), ); } Map _deepCastStringMap(Map? map) { if (map == null) return {}; return map.map( - (dynamic key, dynamic value) => MapEntry( - key, - value, - ), + (dynamic key, dynamic value) => MapEntry(key, value), ); } Map _deepCastStringKeyDynamicValueMap( - Map? map) { + Map? map, + ) { if (map == null) return {}; return map.map( - (dynamic key, dynamic value) => MapEntry( - key, - value, - ), + (dynamic key, dynamic value) => MapEntry(key, value), ); } @@ -1295,12 +1340,10 @@ class AdMessageCodec extends StandardMessageCodec { } class _MediationExtras implements MediationExtras { - _MediationExtras( - String className, - Map extras, - ) : _androidClassName = className, - _iOSClassName = className, - _extras = extras; + _MediationExtras(String className, Map extras) + : _androidClassName = className, + _iOSClassName = className, + _extras = extras; final String _androidClassName; final String _iOSClassName; diff --git a/packages/google_mobile_ads/lib/src/ad_listeners.dart b/packages/google_mobile_ads/lib/src/ad_listeners.dart index 5677a2469..2645bf98c 100644 --- a/packages/google_mobile_ads/lib/src/ad_listeners.dart +++ b/packages/google_mobile_ads/lib/src/ad_listeners.dart @@ -26,19 +26,24 @@ typedef GenericAdEventCallback = void Function(Ad ad); typedef FullScreenAdLoadErrorCallback = void Function(LoadAdError error); /// The callback type for when a user earns a reward. -typedef OnUserEarnedRewardCallback = void Function( - AdWithoutView ad, RewardItem reward); +typedef OnUserEarnedRewardCallback = + void Function(AdWithoutView ad, RewardItem reward); /// The callback type to handle an error loading an [Ad]. typedef AdLoadErrorCallback = void Function(Ad ad, LoadAdError error); /// The callback type for when an ad receives revenue value. -typedef OnPaidEventCallback = void Function( - Ad ad, double valueMicros, PrecisionType precision, String currencyCode); +typedef OnPaidEventCallback = + void Function( + Ad ad, + double valueMicros, + PrecisionType precision, + String currencyCode, + ); /// The callback type for when a fluid ad's height changes. -typedef OnFluidAdHeightChangedListener = void Function( - FluidAdManagerBannerAd ad, double height); +typedef OnFluidAdHeightChangedListener = + void Function(FluidAdManagerBannerAd ad, double height); /// Allowed constants for precision type in [OnPaidEventCallback]. enum PrecisionType { @@ -52,7 +57,7 @@ enum PrecisionType { publisherProvided, /// The precise value paid for this ad. - precise + precise, } /// Listener for app events. @@ -131,15 +136,15 @@ class BannerAdListener extends AdWithViewListener { OnPaidEventCallback? onPaidEvent, AdEventCallback? onAdClicked, }) : super( - onAdLoaded: onAdLoaded, - onAdFailedToLoad: onAdFailedToLoad, - onAdOpened: onAdOpened, - onAdClosed: onAdClosed, - onAdWillDismissScreen: onAdWillDismissScreen, - onAdImpression: onAdImpression, - onPaidEvent: onPaidEvent, - onAdClicked: onAdClicked, - ); + onAdLoaded: onAdLoaded, + onAdFailedToLoad: onAdFailedToLoad, + onAdOpened: onAdOpened, + onAdClosed: onAdClosed, + onAdWillDismissScreen: onAdWillDismissScreen, + onAdImpression: onAdImpression, + onPaidEvent: onPaidEvent, + onAdClicked: onAdClicked, + ); } /// A listener for receiving notifications for the lifecycle of an [AdManagerBannerAd]. @@ -170,15 +175,15 @@ class AdManagerBannerAdListener extends BannerAdListener this.onAppEvent, AdEventCallback? onAdClicked, }) : super( - onAdLoaded: onAdLoaded, - onAdFailedToLoad: onAdFailedToLoad, - onAdOpened: onAdOpened, - onAdWillDismissScreen: onAdWillDismissScreen, - onAdClosed: onAdClosed, - onAdImpression: onAdImpression, - onPaidEvent: onPaidEvent, - onAdClicked: onAdClicked, - ); + onAdLoaded: onAdLoaded, + onAdFailedToLoad: onAdFailedToLoad, + onAdOpened: onAdOpened, + onAdWillDismissScreen: onAdWillDismissScreen, + onAdClosed: onAdClosed, + onAdImpression: onAdImpression, + onPaidEvent: onPaidEvent, + onAdClicked: onAdClicked, + ); /// Called when an app event is received. @override @@ -211,14 +216,15 @@ class NativeAdListener extends AdWithViewListener { OnPaidEventCallback? onPaidEvent, AdEventCallback? onAdClicked, }) : super( - onAdLoaded: onAdLoaded, - onAdFailedToLoad: onAdFailedToLoad, - onAdOpened: onAdOpened, - onAdWillDismissScreen: onAdWillDismissScreen, - onAdClosed: onAdClosed, - onAdImpression: onAdImpression, - onPaidEvent: onPaidEvent, - onAdClicked: onAdClicked); + onAdLoaded: onAdLoaded, + onAdFailedToLoad: onAdFailedToLoad, + onAdOpened: onAdOpened, + onAdWillDismissScreen: onAdWillDismissScreen, + onAdClosed: onAdClosed, + onAdImpression: onAdImpression, + onPaidEvent: onPaidEvent, + onAdClicked: onAdClicked, + ); } /// Callback events for for full screen ads, such as Rewarded and Interstitial. diff --git a/packages/google_mobile_ads/lib/src/app_background_event_notifier.dart b/packages/google_mobile_ads/lib/src/app_background_event_notifier.dart index 5fb61ed58..8c0d1e280 100644 --- a/packages/google_mobile_ads/lib/src/app_background_event_notifier.dart +++ b/packages/google_mobile_ads/lib/src/app_background_event_notifier.dart @@ -23,7 +23,7 @@ enum AppState { background, /// App is foregrounded. - foreground + foreground, } /// Notifies changes in app foreground/background. @@ -46,8 +46,10 @@ class AppStateEventNotifier { /// Call [startListening] before subscribing to this stream to /// start listening to background/foreground events on the platform side. static Stream get appStateStream => - _eventChannel.receiveBroadcastStream().map((event) => - event == 'foreground' ? AppState.foreground : AppState.background); + _eventChannel.receiveBroadcastStream().map( + (event) => + event == 'foreground' ? AppState.foreground : AppState.background, + ); /// Start listening to background/foreground events. static Future startListening() async { diff --git a/packages/google_mobile_ads/lib/src/mobile_ads.dart b/packages/google_mobile_ads/lib/src/mobile_ads.dart index ac6ab1eac..ab6facb40 100644 --- a/packages/google_mobile_ads/lib/src/mobile_ads.dart +++ b/packages/google_mobile_ads/lib/src/mobile_ads.dart @@ -63,7 +63,8 @@ class MobileAds { /// Update the [RequestConfiguration] to apply for future ad requests. Future updateRequestConfiguration( - RequestConfiguration requestConfiguration) { + RequestConfiguration requestConfiguration, + ) { return instanceManager.updateRequestConfiguration(requestConfiguration); } @@ -157,9 +158,9 @@ class InitializationStatus { /// /// Returned when calling [MobileAds.initialize]; InitializationStatus(Map adapterStatuses) - : adapterStatuses = Map.unmodifiable( - adapterStatuses, - ); + : adapterStatuses = Map.unmodifiable( + adapterStatuses, + ); /// Initialization status of each known ad network, keyed by its adapter's class name. final Map adapterStatuses; diff --git a/packages/google_mobile_ads/lib/src/nativetemplates/native_template_font_style.dart b/packages/google_mobile_ads/lib/src/nativetemplates/native_template_font_style.dart index d7f9b81c8..451362ffd 100644 --- a/packages/google_mobile_ads/lib/src/nativetemplates/native_template_font_style.dart +++ b/packages/google_mobile_ads/lib/src/nativetemplates/native_template_font_style.dart @@ -24,5 +24,5 @@ enum NativeTemplateFontStyle { italic, /// Monospace - monospace + monospace, } diff --git a/packages/google_mobile_ads/lib/src/nativetemplates/native_template_style.dart b/packages/google_mobile_ads/lib/src/nativetemplates/native_template_style.dart index 0e800c450..8d6873ee8 100644 --- a/packages/google_mobile_ads/lib/src/nativetemplates/native_template_style.dart +++ b/packages/google_mobile_ads/lib/src/nativetemplates/native_template_style.dart @@ -74,12 +74,12 @@ class NativeTemplateStyle { @override int get hashCode => Object.hashAll([ - templateType, - callToActionTextStyle, - primaryTextStyle, - secondaryTextStyle, - tertiaryTextStyle, - mainBackgroundColor, - cornerRadius - ]); + templateType, + callToActionTextStyle, + primaryTextStyle, + secondaryTextStyle, + tertiaryTextStyle, + mainBackgroundColor, + cornerRadius, + ]); } diff --git a/packages/google_mobile_ads/lib/src/nativetemplates/template_type.dart b/packages/google_mobile_ads/lib/src/nativetemplates/template_type.dart index 48ba90c50..86b63c5b9 100644 --- a/packages/google_mobile_ads/lib/src/nativetemplates/template_type.dart +++ b/packages/google_mobile_ads/lib/src/nativetemplates/template_type.dart @@ -18,5 +18,5 @@ enum TemplateType { small, /// Medium layout - medium + medium, } diff --git a/packages/google_mobile_ads/lib/src/request_configuration.dart b/packages/google_mobile_ads/lib/src/request_configuration.dart index e027b5c1a..47491c7a2 100644 --- a/packages/google_mobile_ads/lib/src/request_configuration.dart +++ b/packages/google_mobile_ads/lib/src/request_configuration.dart @@ -30,11 +30,12 @@ class RequestConfiguration { final List? testDeviceIds; /// Creates a [RequestConfiguration]. - RequestConfiguration( - {this.maxAdContentRating, - this.tagForChildDirectedTreatment, - this.tagForUnderAgeOfConsent, - this.testDeviceIds}); + RequestConfiguration({ + this.maxAdContentRating, + this.tagForChildDirectedTreatment, + this.tagForUnderAgeOfConsent, + this.testDeviceIds, + }); } /// Values for [RequestConfiguration.maxAdContentRating]. diff --git a/packages/google_mobile_ads/lib/src/ump/consent_form.dart b/packages/google_mobile_ads/lib/src/ump/consent_form.dart index 62e0514f4..0cd3dd01f 100644 --- a/packages/google_mobile_ads/lib/src/ump/consent_form.dart +++ b/packages/google_mobile_ads/lib/src/ump/consent_form.dart @@ -21,8 +21,8 @@ import 'user_messaging_channel.dart'; typedef OnConsentFormDismissedListener = void Function(FormError? formError); /// Callback to be invoked when a consent form loads successfully -typedef OnConsentFormLoadSuccessListener = void Function( - ConsentForm consentForm); +typedef OnConsentFormLoadSuccessListener = + void Function(ConsentForm consentForm); /// Callback to be invoked when a consent form failed to load. typedef OnConsentFormLoadFailureListener = void Function(FormError formError); @@ -34,9 +34,11 @@ abstract class ConsentForm { /// Presents a privacy options form. static Future showPrivacyOptionsForm( - OnConsentFormDismissedListener onConsentFormDismissedListener) async { + OnConsentFormDismissedListener onConsentFormDismissedListener, + ) async { onConsentFormDismissedListener( - await UserMessagingChannel.instance.showPrivacyOptionsForm()); + await UserMessagingChannel.instance.showPrivacyOptionsForm(), + ); } /// Free platform resources associated with this object. @@ -48,16 +50,22 @@ abstract class ConsentForm { /// /// Check that [ConsentInformation.isConsentFormAvailable()] returns true /// prior to calling this method. - static void loadConsentForm(OnConsentFormLoadSuccessListener successListener, - OnConsentFormLoadFailureListener failureListener) { - UserMessagingChannel.instance - .loadConsentForm(successListener, failureListener); + static void loadConsentForm( + OnConsentFormLoadSuccessListener successListener, + OnConsentFormLoadFailureListener failureListener, + ) { + UserMessagingChannel.instance.loadConsentForm( + successListener, + failureListener, + ); } /// Loads a consent form and immediately shows it. static Future loadAndShowConsentFormIfRequired( - OnConsentFormDismissedListener onConsentFormDismissedListener) async { + OnConsentFormDismissedListener onConsentFormDismissedListener, + ) async { onConsentFormDismissedListener( - await UserMessagingChannel.instance.loadAndShowConsentFormIfRequired()); + await UserMessagingChannel.instance.loadAndShowConsentFormIfRequired(), + ); } } diff --git a/packages/google_mobile_ads/lib/src/ump/consent_information.dart b/packages/google_mobile_ads/lib/src/ump/consent_information.dart index c64f3bf16..5d265941d 100644 --- a/packages/google_mobile_ads/lib/src/ump/consent_information.dart +++ b/packages/google_mobile_ads/lib/src/ump/consent_information.dart @@ -42,9 +42,10 @@ enum ConsentStatus { abstract class ConsentInformation { /// Requests a consent information update. void requestConsentInfoUpdate( - ConsentRequestParameters params, - OnConsentInfoUpdateSuccessListener successListener, - OnConsentInfoUpdateFailureListener failureListener); + ConsentRequestParameters params, + OnConsentInfoUpdateSuccessListener successListener, + OnConsentInfoUpdateFailureListener failureListener, + ); /// Returns true if a ConsentForm is available, false otherwise. Future isConsentFormAvailable(); @@ -80,5 +81,5 @@ enum PrivacyOptionsRequirementStatus { required, /// Privacy options requirement status is unknown. - unknown; + unknown, } diff --git a/packages/google_mobile_ads/lib/src/ump/consent_information_impl.dart b/packages/google_mobile_ads/lib/src/ump/consent_information_impl.dart index 5fb15322e..c2a4fe811 100644 --- a/packages/google_mobile_ads/lib/src/ump/consent_information_impl.dart +++ b/packages/google_mobile_ads/lib/src/ump/consent_information_impl.dart @@ -23,11 +23,15 @@ class ConsentInformationImpl extends ConsentInformation { @override void requestConsentInfoUpdate( - ConsentRequestParameters params, - OnConsentInfoUpdateSuccessListener successListener, - OnConsentInfoUpdateFailureListener failureListener) { - UserMessagingChannel.instance - .requestConsentInfoUpdate(params, successListener, failureListener); + ConsentRequestParameters params, + OnConsentInfoUpdateSuccessListener successListener, + OnConsentInfoUpdateFailureListener failureListener, + ) { + UserMessagingChannel.instance.requestConsentInfoUpdate( + params, + successListener, + failureListener, + ); } @override diff --git a/packages/google_mobile_ads/lib/src/ump/consent_request_parameters.dart b/packages/google_mobile_ads/lib/src/ump/consent_request_parameters.dart index 7419d211a..f9f031a6a 100644 --- a/packages/google_mobile_ads/lib/src/ump/consent_request_parameters.dart +++ b/packages/google_mobile_ads/lib/src/ump/consent_request_parameters.dart @@ -17,8 +17,10 @@ import 'package:flutter/foundation.dart'; /// Parameters sent on updating user consent info. class ConsentRequestParameters { /// Construct a [ConsentRequestParameters]. - ConsentRequestParameters( - {this.tagForUnderAgeOfConsent, this.consentDebugSettings}); + ConsentRequestParameters({ + this.tagForUnderAgeOfConsent, + this.consentDebugSettings, + }); /// Tag for underage of consent. /// @@ -80,5 +82,5 @@ enum DebugGeography { debugGeographyRegulatedUsState, /// Geography appears as in a region with no regulation in force. - debugGeographyOther + debugGeographyOther, } diff --git a/packages/google_mobile_ads/lib/src/ump/user_messaging_channel.dart b/packages/google_mobile_ads/lib/src/ump/user_messaging_channel.dart index d795b83f6..9a64e2f1d 100644 --- a/packages/google_mobile_ads/lib/src/ump/user_messaging_channel.dart +++ b/packages/google_mobile_ads/lib/src/ump/user_messaging_channel.dart @@ -29,8 +29,12 @@ class UserMessagingChannel { UserMessagingChannel(MethodChannel channel) : _methodChannel = channel; /// The shared [UserMessagingChannel] instance. - static UserMessagingChannel instance = UserMessagingChannel(MethodChannel( - _methodChannelName, StandardMethodCodec(UserMessagingCodec()))); + static UserMessagingChannel instance = UserMessagingChannel( + MethodChannel( + _methodChannelName, + StandardMethodCodec(UserMessagingCodec()), + ), + ); final MethodChannel _methodChannel; @@ -39,15 +43,14 @@ class UserMessagingChannel { /// Invokes [successListener] or [failureListener] depending on if there was /// an error. void requestConsentInfoUpdate( - ConsentRequestParameters params, - OnConsentInfoUpdateSuccessListener successListener, - OnConsentInfoUpdateFailureListener failureListener) async { + ConsentRequestParameters params, + OnConsentInfoUpdateSuccessListener successListener, + OnConsentInfoUpdateFailureListener failureListener, + ) async { try { await _methodChannel.invokeMethod( 'ConsentInformation#requestConsentInfoUpdate', - { - 'params': params, - }, + {'params': params}, ); successListener(); } on PlatformException catch (e) { @@ -57,14 +60,16 @@ class UserMessagingChannel { /// Returns a future indicating whether a consent form is available. Future isConsentFormAvailable() async { - return (await _methodChannel - .invokeMethod('ConsentInformation#isConsentFormAvailable'))!; + return (await _methodChannel.invokeMethod( + 'ConsentInformation#isConsentFormAvailable', + ))!; } /// Gets the consent status. Future getConsentStatus() async { - int consentStatus = (await _methodChannel - .invokeMethod('ConsentInformation#getConsentStatus'))!; + int consentStatus = (await _methodChannel.invokeMethod( + 'ConsentInformation#getConsentStatus', + ))!; if (defaultTargetPlatform == TargetPlatform.iOS) { switch (consentStatus) { @@ -104,15 +109,17 @@ class UserMessagingChannel { /// Returns indicating whether it is ok to request ads. Future canRequestAds() async { - return (await _methodChannel - .invokeMethod('ConsentInformation#canRequestAds'))!; + return (await _methodChannel.invokeMethod( + 'ConsentInformation#canRequestAds', + ))!; } /// Indicates the privacy options requirement status as a [PrivacyOptionsRequirementStatus]. Future - getPrivacyOptionsRequirementStatus() async { + getPrivacyOptionsRequirementStatus() async { int? privacyOptionsStatusInt = (await _methodChannel.invokeMethod( - 'ConsentInformation#getPrivacyOptionsRequirementStatus')); + 'ConsentInformation#getPrivacyOptionsRequirementStatus', + )); switch (privacyOptionsStatusInt) { case 0: return PrivacyOptionsRequirementStatus.notRequired; @@ -124,11 +131,14 @@ class UserMessagingChannel { } /// Loads a consent form and calls the corresponding listener. - void loadConsentForm(OnConsentFormLoadSuccessListener successListener, - OnConsentFormLoadFailureListener failureListener) async { + void loadConsentForm( + OnConsentFormLoadSuccessListener successListener, + OnConsentFormLoadFailureListener failureListener, + ) async { try { - ConsentForm form = (await _methodChannel - .invokeMethod('UserMessagingPlatform#loadConsentForm'))!; + ConsentForm form = (await _methodChannel.invokeMethod( + 'UserMessagingPlatform#loadConsentForm', + ))!; successListener(form); } on PlatformException catch (e) { failureListener(_formErrorFromPlatformException(e)); @@ -139,21 +149,22 @@ class UserMessagingChannel { Future loadAndShowConsentFormIfRequired() async { try { return await _methodChannel.invokeMethod( - 'UserMessagingPlatform#loadAndShowConsentFormIfRequired'); + 'UserMessagingPlatform#loadAndShowConsentFormIfRequired', + ); } on PlatformException catch (e) { return _formErrorFromPlatformException(e); } } /// Show the consent form. - void show(ConsentForm consentForm, - OnConsentFormDismissedListener onConsentFormDismissedListener) async { + void show( + ConsentForm consentForm, + OnConsentFormDismissedListener onConsentFormDismissedListener, + ) async { try { await _methodChannel.invokeMethod( 'ConsentForm#show', - { - 'consentForm': consentForm, - }, + {'consentForm': consentForm}, ); onConsentFormDismissedListener(null); } on PlatformException catch (e) { @@ -165,7 +176,8 @@ class UserMessagingChannel { Future showPrivacyOptionsForm() async { try { return await _methodChannel.invokeMethod( - 'UserMessagingPlatform#showPrivacyOptionsForm'); + 'UserMessagingPlatform#showPrivacyOptionsForm', + ); } on PlatformException catch (e) { return _formErrorFromPlatformException(e); } @@ -173,16 +185,16 @@ class UserMessagingChannel { FormError _formErrorFromPlatformException(PlatformException e) { return FormError( - errorCode: int.tryParse(e.code) ?? -1, message: e.message ?? ''); + errorCode: int.tryParse(e.code) ?? -1, + message: e.message ?? '', + ); } /// Free platform resources associated with the [ConsentForm]. Future disposeConsentForm(ConsentForm consentForm) { return _methodChannel.invokeMethod( 'ConsentForm#dispose', - { - 'consentForm': consentForm, - }, + {'consentForm': consentForm}, ); } } diff --git a/packages/google_mobile_ads/lib/src/ump/user_messaging_codec.dart b/packages/google_mobile_ads/lib/src/ump/user_messaging_codec.dart index 96eb36917..f81a5250f 100644 --- a/packages/google_mobile_ads/lib/src/ump/user_messaging_codec.dart +++ b/packages/google_mobile_ads/lib/src/ump/user_messaging_codec.dart @@ -52,21 +52,28 @@ class UserMessagingCodec extends StandardMessageCodec { switch (type) { case _valueConsentRequestParameters: bool? tfuac = readValueOfType(buffer.getUint8(), buffer); - ConsentDebugSettings? debugSettings = - readValueOfType(buffer.getUint8(), buffer); + ConsentDebugSettings? debugSettings = readValueOfType( + buffer.getUint8(), + buffer, + ); return ConsentRequestParameters( - tagForUnderAgeOfConsent: tfuac, - consentDebugSettings: debugSettings); + tagForUnderAgeOfConsent: tfuac, + consentDebugSettings: debugSettings, + ); case _valueConsentDebugSettings: int? debugGeographyInt = readValueOfType(buffer.getUint8(), buffer); DebugGeography? debugGeography; if (debugGeographyInt != null) { debugGeography = DebugGeography.values[debugGeographyInt]; } - List? testIds = - readValueOfType(buffer.getUint8(), buffer)?.cast(); + List? testIds = readValueOfType( + buffer.getUint8(), + buffer, + )?.cast(); return ConsentDebugSettings( - debugGeography: debugGeography, testIdentifiers: testIds); + debugGeography: debugGeography, + testIdentifiers: testIds, + ); case _valueConsentForm: final int hashCode = readValueOfType(buffer.getUint8(), buffer); return ConsentFormImpl(hashCode); diff --git a/packages/google_mobile_ads/pubspec.yaml b/packages/google_mobile_ads/pubspec.yaml index f801939ff..275a0470d 100644 --- a/packages/google_mobile_ads/pubspec.yaml +++ b/packages/google_mobile_ads/pubspec.yaml @@ -13,7 +13,7 @@ # limitations under the License. name: google_mobile_ads -version: 6.0.0 +version: 7.0.0 description: Flutter plugin for Google Mobile Ads, supporting banner, interstitial (full-screen), rewarded and native ads repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/google_mobile_ads @@ -28,11 +28,11 @@ flutter: pluginClass: FLTGoogleMobileAdsPlugin dependencies: - meta: ^1.10.0 + meta: ^1.16.0 flutter: sdk: flutter - webview_flutter_android: ^4.3.4 - webview_flutter_wkwebview: ^3.18.4 + webview_flutter_android: ^4.10.9 + webview_flutter_wkwebview: ^3.23.4 webview_flutter: ^4.10.0 dev_dependencies: @@ -41,12 +41,12 @@ dev_dependencies: sdk: flutter mockito: ^5.4.5 build_runner: ^2.4.15 - flutter_lints: ^5.0.0 + flutter_lints: ^6.0.0 flutter_test: sdk: flutter webview_flutter_platform_interface: ^2.10.0 environment: - sdk: ">=3.6.0 <4.0.0" - flutter: ">=3.27.0" + sdk: ">=3.9.0 <4.0.0" + flutter: ">=3.35.1" diff --git a/packages/google_mobile_ads/test/ad_containers_test.dart b/packages/google_mobile_ads/test/ad_containers_test.dart index f67ed656f..fa8dd0c00 100644 --- a/packages/google_mobile_ads/test/ad_containers_test.dart +++ b/packages/google_mobile_ads/test/ad_containers_test.dart @@ -24,7 +24,10 @@ import 'package:flutter/services.dart'; Future handlePlatformMessage(ByteData? data) async { await TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger .handlePlatformMessage( - 'plugins.flutter.io/google_mobile_ads', data, (data) {}); + 'plugins.flutter.io/google_mobile_ads', + data, + (data) {}, + ); } // ignore_for_file: deprecated_member_use_from_same_package @@ -37,33 +40,35 @@ void main() { setUp(() async { log.clear(); - instanceManager = - AdInstanceManager('plugins.flutter.io/google_mobile_ads'); + instanceManager = AdInstanceManager( + 'plugins.flutter.io/google_mobile_ads', + ); TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger - .setMockMethodCallHandler(instanceManager.channel, - (MethodCall methodCall) async { - log.add(methodCall); - switch (methodCall.method) { - case 'MobileAds#updateRequestConfiguration': - case 'MobileAds#setSameAppKeyEnabled': - case 'setImmersiveMode': - case 'loadBannerAd': - case 'loadNativeAd': - case 'showAdWithoutView': - case 'disposeAd': - case 'loadRewardedAd': - case 'loadInterstitialAd': - case 'loadAdManagerInterstitialAd': - case 'loadAdManagerBannerAd': - case 'setServerSideVerificationOptions': - return Future.value(); - case 'getAdSize': - return Future.value(AdSize.banner); - default: - assert(false); - return null; - } - }); + .setMockMethodCallHandler(instanceManager.channel, ( + MethodCall methodCall, + ) async { + log.add(methodCall); + switch (methodCall.method) { + case 'MobileAds#updateRequestConfiguration': + case 'MobileAds#setSameAppKeyEnabled': + case 'setImmersiveMode': + case 'loadBannerAd': + case 'loadNativeAd': + case 'showAdWithoutView': + case 'disposeAd': + case 'loadRewardedAd': + case 'loadInterstitialAd': + case 'loadAdManagerInterstitialAd': + case 'loadAdManagerBannerAd': + case 'setServerSideVerificationOptions': + return Future.value(); + case 'getAdSize': + return Future.value(AdSize.banner); + default: + assert(false); + return null; + } + }); }); test('updateRequestConfiguration', () async { @@ -75,13 +80,15 @@ void main() { ); await instanceManager.updateRequestConfiguration(requestConfiguration); expect(log, [ - isMethodCall('MobileAds#updateRequestConfiguration', - arguments: { - 'maxAdContentRating': MaxAdContentRating.ma, - 'tagForChildDirectedTreatment': TagForChildDirectedTreatment.yes, - 'tagForUnderAgeOfConsent': TagForUnderAgeOfConsent.yes, - 'testDeviceIds': ['test-device-id'], - }) + isMethodCall( + 'MobileAds#updateRequestConfiguration', + arguments: { + 'maxAdContentRating': MaxAdContentRating.ma, + 'tagForChildDirectedTreatment': TagForChildDirectedTreatment.yes, + 'tagForUnderAgeOfConsent': TagForUnderAgeOfConsent.yes, + 'testDeviceIds': ['test-device-id'], + }, + ), ]); }); @@ -89,23 +96,23 @@ void main() { await instanceManager.setSameAppKeyEnabled(true); expect(log, [ - isMethodCall('MobileAds#setSameAppKeyEnabled', - arguments: { - 'isEnabled': true, - }) + isMethodCall( + 'MobileAds#setSameAppKeyEnabled', + arguments: {'isEnabled': true}, + ), ]); await instanceManager.setSameAppKeyEnabled(false); expect(log, [ - isMethodCall('MobileAds#setSameAppKeyEnabled', - arguments: { - 'isEnabled': true, - }), - isMethodCall('MobileAds#setSameAppKeyEnabled', - arguments: { - 'isEnabled': false, - }) + isMethodCall( + 'MobileAds#setSameAppKeyEnabled', + arguments: {'isEnabled': true}, + ), + isMethodCall( + 'MobileAds#setSameAppKeyEnabled', + arguments: {'isEnabled': false}, + ), ]); }); @@ -116,22 +123,26 @@ void main() { adUnitId: 'test-ad-unit', request: request, rewardedAdLoadCallback: RewardedAdLoadCallback( - onAdLoaded: (ad) { - rewarded = ad; - }, - onAdFailedToLoad: (error) => null), + onAdLoaded: (ad) { + rewarded = ad; + }, + onAdFailedToLoad: (error) => null, + ), ); RewardedAd createdAd = instanceManager.adFor(0) as RewardedAd; (createdAd).rewardedAdLoadCallback.onAdLoaded(createdAd); expect(log, [ - isMethodCall('loadRewardedAd', arguments: { - 'adId': 0, - 'adUnitId': 'test-ad-unit', - 'request': request, - 'adManagerRequest': null, - }), + isMethodCall( + 'loadRewardedAd', + arguments: { + 'adId': 0, + 'adUnitId': 'test-ad-unit', + 'request': request, + 'adManagerRequest': null, + }, + ), ]); expect(instanceManager.adFor(0), isNotNull); @@ -141,8 +152,10 @@ void main() { log.clear(); await createdAd.setImmersiveMode(true); expect(log, [ - isMethodCall('setImmersiveMode', - arguments: {'adId': 0, 'immersiveModeEnabled': true}) + isMethodCall( + 'setImmersiveMode', + arguments: {'adId': 0, 'immersiveModeEnabled': true}, + ), ]); // Set ssv @@ -150,8 +163,10 @@ void main() { final ssv = ServerSideVerificationOptions(); await createdAd.setServerSideOptions(ssv); expect(log, [ - isMethodCall('setServerSideVerificationOptions', - arguments: {'adId': 0, 'serverSideVerificationOptions': ssv}) + isMethodCall( + 'setServerSideVerificationOptions', + arguments: {'adId': 0, 'serverSideVerificationOptions': ssv}, + ), ]); }); @@ -161,21 +176,25 @@ void main() { adUnitId: 'test-ad-unit', request: AdRequest(), adLoadCallback: InterstitialAdLoadCallback( - onAdLoaded: (ad) { - interstitial = ad; - }, - onAdFailedToLoad: (error) => null), + onAdLoaded: (ad) { + interstitial = ad; + }, + onAdFailedToLoad: (error) => null, + ), ); InterstitialAd createdAd = (instanceManager.adFor(0) as InterstitialAd); (createdAd).adLoadCallback.onAdLoaded(createdAd); expect(log, [ - isMethodCall('loadInterstitialAd', arguments: { - 'adId': 0, - 'adUnitId': 'test-ad-unit', - 'request': interstitial!.request, - }) + isMethodCall( + 'loadInterstitialAd', + arguments: { + 'adId': 0, + 'adUnitId': 'test-ad-unit', + 'request': interstitial!.request, + }, + ), ]); expect(instanceManager.adFor(0), isNotNull); @@ -183,8 +202,10 @@ void main() { log.clear(); await createdAd.setImmersiveMode(false); expect(log, [ - isMethodCall('setImmersiveMode', - arguments: {'adId': 0, 'immersiveModeEnabled': false}) + isMethodCall( + 'setImmersiveMode', + arguments: {'adId': 0, 'immersiveModeEnabled': false}, + ), ]); }); @@ -194,10 +215,11 @@ void main() { adUnitId: 'test-id', request: AdManagerAdRequest(), adLoadCallback: AdManagerInterstitialAdLoadCallback( - onAdLoaded: (ad) { - interstitial = ad; - }, - onAdFailedToLoad: (error) => null), + onAdLoaded: (ad) { + interstitial = ad; + }, + onAdFailedToLoad: (error) => null, + ), ); AdManagerInterstitialAd createdAd = @@ -205,12 +227,14 @@ void main() { (createdAd).adLoadCallback.onAdLoaded(createdAd); expect(log, [ - isMethodCall('loadAdManagerInterstitialAd', - arguments: { - 'adId': 0, - 'adUnitId': 'test-id', - 'request': interstitial!.request, - }) + isMethodCall( + 'loadAdManagerInterstitialAd', + arguments: { + 'adId': 0, + 'adUnitId': 'test-id', + 'request': interstitial!.request, + }, + ), ]); expect(instanceManager.adFor(0), isNotNull); @@ -218,24 +242,27 @@ void main() { log.clear(); await createdAd.setImmersiveMode(true); expect(log, [ - isMethodCall('setImmersiveMode', - arguments: {'adId': 0, 'immersiveModeEnabled': true}) + isMethodCall( + 'setImmersiveMode', + arguments: {'adId': 0, 'immersiveModeEnabled': true}, + ), ]); }); test('load native', () async { final Map options = {'a': 1, 'b': 2}; final NativeAdOptions nativeAdOptions = NativeAdOptions( - adChoicesPlacement: AdChoicesPlacement.bottomLeftCorner, - mediaAspectRatio: MediaAspectRatio.any, - videoOptions: VideoOptions( - clickToExpandRequested: true, - customControlsRequested: true, - startMuted: true, - ), - requestCustomMuteThisAd: false, - shouldRequestMultipleImages: true, - shouldReturnUrlsForImageAssets: false); + adChoicesPlacement: AdChoicesPlacement.bottomLeftCorner, + mediaAspectRatio: MediaAspectRatio.any, + videoOptions: VideoOptions( + clickToExpandRequested: true, + customControlsRequested: true, + startMuted: true, + ), + requestCustomMuteThisAd: false, + shouldRequestMultipleImages: true, + shouldReturnUrlsForImageAssets: false, + ); final NativeAd native = NativeAd( adUnitId: 'test-ad-unit', factoryId: '0', @@ -247,16 +274,19 @@ void main() { await native.load(); expect(log, [ - isMethodCall('loadNativeAd', arguments: { - 'adId': 0, - 'adUnitId': 'test-ad-unit', - 'request': native.request, - 'adManagerRequest': null, - 'factoryId': '0', - 'nativeAdOptions': nativeAdOptions, - 'customOptions': options, - 'nativeTemplateStyle': null, - }) + isMethodCall( + 'loadNativeAd', + arguments: { + 'adId': 0, + 'adUnitId': 'test-ad-unit', + 'request': native.request, + 'adManagerRequest': null, + 'factoryId': '0', + 'nativeAdOptions': nativeAdOptions, + 'customOptions': options, + 'nativeTemplateStyle': null, + }, + ), ]); expect(instanceManager.adFor(0), isNotNull); @@ -270,22 +300,26 @@ void main() { customOptions: options, listener: NativeAdListener(), adManagerRequest: AdManagerAdRequest(), - nativeTemplateStyle: - NativeTemplateStyle(templateType: TemplateType.medium), + nativeTemplateStyle: NativeTemplateStyle( + templateType: TemplateType.medium, + ), ); await native.load(); expect(log, [ - isMethodCall('loadNativeAd', arguments: { - 'adId': 0, - 'adUnitId': 'test-id', - 'request': null, - 'adManagerRequest': native.adManagerRequest, - 'factoryId': '0', - 'nativeAdOptions': null, - 'customOptions': options, - 'nativeTemplateStyle': native.nativeTemplateStyle, - }) + isMethodCall( + 'loadNativeAd', + arguments: { + 'adId': 0, + 'adUnitId': 'test-id', + 'request': null, + 'adManagerRequest': native.adManagerRequest, + 'factoryId': '0', + 'nativeAdOptions': null, + 'customOptions': options, + 'nativeTemplateStyle': native.nativeTemplateStyle, + }, + ), ]); expect(instanceManager.adFor(0), isNotNull); @@ -348,12 +382,7 @@ void main() { child: SizedBox( width: 100, height: 100, - child: Stack( - children: [ - widget, - widget, - ], - ), + child: Stack(children: [widget, widget]), ), ), ); @@ -361,56 +390,50 @@ void main() { dynamic exception = tester.takeException(); expect(exception, isA()); expect( - (exception as FlutterError).toStringDeep(), - 'FlutterError\n' - ' This AdWidget is already in the Widget tree\n' - ' If you placed this AdWidget in a list, make sure you create a new\n' - ' instance in the builder function with a unique ad object.\n' - ' Make sure you are not using the same ad object in more than one\n' - ' AdWidget.\n' - ''); + (exception as FlutterError).toStringDeep(), + 'FlutterError\n' + ' This AdWidget is already in the Widget tree\n' + ' If you placed this AdWidget in a list, make sure you create a new\n' + ' instance in the builder function with a unique ad object.\n' + ' Make sure you are not using the same ad object in more than one\n' + ' AdWidget.\n' + '', + ); } }); testWidgets( - 'ad objects can be reused if the widget holding the object is disposed', - (WidgetTester tester) async { - final NativeAd ad = NativeAd( - adUnitId: 'test-ad-unit', - factoryId: '0', - listener: NativeAdListener(), - request: AdRequest(), - ); - await ad.load(); - final AdWidget widget = AdWidget(ad: ad); - try { - await tester.pumpWidget( - Directionality( - textDirection: TextDirection.ltr, - child: SizedBox( - width: 100, - height: 100, - child: widget, - ), - ), + 'ad objects can be reused if the widget holding the object is disposed', + (WidgetTester tester) async { + final NativeAd ad = NativeAd( + adUnitId: 'test-ad-unit', + factoryId: '0', + listener: NativeAdListener(), + request: AdRequest(), ); + await ad.load(); + final AdWidget widget = AdWidget(ad: ad); + try { + await tester.pumpWidget( + Directionality( + textDirection: TextDirection.ltr, + child: SizedBox(width: 100, height: 100, child: widget), + ), + ); - await tester.pumpWidget(Container()); + await tester.pumpWidget(Container()); - await tester.pumpWidget( - Directionality( - textDirection: TextDirection.ltr, - child: SizedBox( - width: 100, - height: 100, - child: widget, + await tester.pumpWidget( + Directionality( + textDirection: TextDirection.ltr, + child: SizedBox(width: 100, height: 100, child: widget), ), - ), - ); - } finally { - expect(tester.takeException(), isNull); - } - }); + ); + } finally { + expect(tester.takeException(), isNull); + } + }, + ); test('load show rewarded', () async { RewardedAd? rewarded; @@ -419,22 +442,26 @@ void main() { adUnitId: 'test-ad-unit', request: request, rewardedAdLoadCallback: RewardedAdLoadCallback( - onAdLoaded: (ad) { - rewarded = ad; - }, - onAdFailedToLoad: (error) => null), + onAdLoaded: (ad) { + rewarded = ad; + }, + onAdFailedToLoad: (error) => null, + ), ); RewardedAd createdAd = instanceManager.adFor(0) as RewardedAd; (createdAd).rewardedAdLoadCallback.onAdLoaded(createdAd); expect(log, [ - isMethodCall('loadRewardedAd', arguments: { - 'adId': 0, - 'adUnitId': 'test-ad-unit', - 'request': request, - 'adManagerRequest': null, - }), + isMethodCall( + 'loadRewardedAd', + arguments: { + 'adId': 0, + 'adUnitId': 'test-ad-unit', + 'request': request, + 'adManagerRequest': null, + }, + ), ]); expect(instanceManager.adFor(0), isNotNull); @@ -443,9 +470,10 @@ void main() { log.clear(); await rewarded!.show(onUserEarnedReward: (ad, reward) => null); expect(log, [ - isMethodCall('showAdWithoutView', arguments: { - 'adId': 0, - }) + isMethodCall( + 'showAdWithoutView', + arguments: {'adId': 0}, + ), ]); }); @@ -456,22 +484,26 @@ void main() { adUnitId: 'test-ad-unit', adManagerRequest: request, rewardedAdLoadCallback: RewardedAdLoadCallback( - onAdLoaded: (ad) { - rewarded = ad; - }, - onAdFailedToLoad: (error) => null), + onAdLoaded: (ad) { + rewarded = ad; + }, + onAdFailedToLoad: (error) => null, + ), ); RewardedAd createdAd = instanceManager.adFor(0) as RewardedAd; (createdAd).rewardedAdLoadCallback.onAdLoaded(createdAd); expect(log, [ - isMethodCall('loadRewardedAd', arguments: { - 'adId': 0, - 'adUnitId': 'test-ad-unit', - 'request': null, - 'adManagerRequest': request, - }), + isMethodCall( + 'loadRewardedAd', + arguments: { + 'adId': 0, + 'adUnitId': 'test-ad-unit', + 'request': null, + 'adManagerRequest': request, + }, + ), ]); expect(instanceManager.adFor(0), isNotNull); @@ -479,9 +511,10 @@ void main() { log.clear(); await rewarded!.show(onUserEarnedReward: (ad, reward) => null); expect(log, [ - isMethodCall('showAdWithoutView', arguments: { - 'adId': 0, - }) + isMethodCall( + 'showAdWithoutView', + arguments: {'adId': 0}, + ), ]); }); @@ -491,21 +524,25 @@ void main() { adUnitId: 'test-ad-unit', request: AdRequest(), adLoadCallback: InterstitialAdLoadCallback( - onAdLoaded: (ad) { - interstitial = ad; - }, - onAdFailedToLoad: (error) => null), + onAdLoaded: (ad) { + interstitial = ad; + }, + onAdFailedToLoad: (error) => null, + ), ); InterstitialAd createdAd = (instanceManager.adFor(0) as InterstitialAd); (createdAd).adLoadCallback.onAdLoaded(createdAd); expect(log, [ - isMethodCall('loadInterstitialAd', arguments: { - 'adId': 0, - 'adUnitId': 'test-ad-unit', - 'request': interstitial!.request, - }) + isMethodCall( + 'loadInterstitialAd', + arguments: { + 'adId': 0, + 'adUnitId': 'test-ad-unit', + 'request': interstitial!.request, + }, + ), ]); expect(instanceManager.adFor(0), isNotNull); @@ -513,9 +550,10 @@ void main() { log.clear(); await interstitial!.show(); expect(log, [ - isMethodCall('showAdWithoutView', arguments: { - 'adId': 0, - }) + isMethodCall( + 'showAdWithoutView', + arguments: {'adId': 0}, + ), ]); }); @@ -525,10 +563,11 @@ void main() { adUnitId: 'test-id', request: AdManagerAdRequest(), adLoadCallback: AdManagerInterstitialAdLoadCallback( - onAdLoaded: (ad) { - interstitial = ad; - }, - onAdFailedToLoad: (error) => null), + onAdLoaded: (ad) { + interstitial = ad; + }, + onAdFailedToLoad: (error) => null, + ), ); AdManagerInterstitialAd createdAd = @@ -536,12 +575,14 @@ void main() { (createdAd).adLoadCallback.onAdLoaded(createdAd); expect(log, [ - isMethodCall('loadAdManagerInterstitialAd', - arguments: { - 'adId': 0, - 'adUnitId': 'test-id', - 'request': interstitial!.request, - }) + isMethodCall( + 'loadAdManagerInterstitialAd', + arguments: { + 'adId': 0, + 'adUnitId': 'test-id', + 'request': interstitial!.request, + }, + ), ]); expect(instanceManager.adFor(0), isNotNull); @@ -549,9 +590,10 @@ void main() { log.clear(); await interstitial!.show(); expect(log, [ - isMethodCall('showAdWithoutView', arguments: { - 'adId': 0, - }) + isMethodCall( + 'showAdWithoutView', + arguments: {'adId': 0}, + ), ]); }); @@ -562,16 +604,20 @@ void main() { adUnitId: 'test-ad-unit', request: request, adLoadCallback: InterstitialAdLoadCallback( - onAdLoaded: (ad) => null, - onAdFailedToLoad: (error) => resultsCompleter.complete(error)), + onAdLoaded: (ad) => null, + onAdFailedToLoad: (error) => resultsCompleter.complete(error), + ), ); expect(log, [ - isMethodCall('loadInterstitialAd', arguments: { - 'adId': 0, - 'adUnitId': 'test-ad-unit', - 'request': request, - }) + isMethodCall( + 'loadInterstitialAd', + arguments: { + 'adId': 0, + 'adUnitId': 'test-ad-unit', + 'request': request, + }, + ), ]); expect(instanceManager.adFor(0), isNotNull); @@ -604,8 +650,9 @@ void main() { 'loadAdError': LoadAdError(1, 'domain', 'message', responseInfo), }); - final ByteData data = - instanceManager.channel.codec.encodeMethodCall(methodCall); + final ByteData data = instanceManager.channel.codec.encodeMethodCall( + methodCall, + ); await handlePlatformMessage(data); @@ -618,8 +665,10 @@ void main() { expect(result.domain, 'domain'); expect(result.message, 'message'); expect(result.responseInfo!.responseId, responseInfo.responseId); - expect(result.responseInfo!.mediationAdapterClassName, - responseInfo.mediationAdapterClassName); + expect( + result.responseInfo!.mediationAdapterClassName, + responseInfo.mediationAdapterClassName, + ); expect(result.responseInfo!.responseExtras, responseInfo.responseExtras); List responses = result.responseInfo!.adapterResponses!; @@ -639,17 +688,20 @@ void main() { adUnitId: 'test-ad-unit', request: request, adLoadCallback: AdManagerInterstitialAdLoadCallback( - onAdLoaded: (ad) => null, - onAdFailedToLoad: (error) => resultsCompleter.complete(error)), + onAdLoaded: (ad) => null, + onAdFailedToLoad: (error) => resultsCompleter.complete(error), + ), ); expect(log, [ - isMethodCall('loadAdManagerInterstitialAd', - arguments: { - 'adId': 0, - 'adUnitId': 'test-ad-unit', - 'request': request, - }) + isMethodCall( + 'loadAdManagerInterstitialAd', + arguments: { + 'adId': 0, + 'adUnitId': 'test-ad-unit', + 'request': request, + }, + ), ]); expect(instanceManager.adFor(0), isNotNull); @@ -682,8 +734,9 @@ void main() { 'loadAdError': LoadAdError(1, 'domain', 'message', responseInfo), }); - final ByteData data = - instanceManager.channel.codec.encodeMethodCall(methodCall); + final ByteData data = instanceManager.channel.codec.encodeMethodCall( + methodCall, + ); await handlePlatformMessage(data); // The ad reference should be freed when load failure occurs. expect(instanceManager.adFor(0), isNull); @@ -694,8 +747,10 @@ void main() { expect(result.domain, 'domain'); expect(result.message, 'message'); expect(result.responseInfo!.responseId, responseInfo.responseId); - expect(result.responseInfo!.mediationAdapterClassName, - responseInfo.mediationAdapterClassName); + expect( + result.responseInfo!.mediationAdapterClassName, + responseInfo.mediationAdapterClassName, + ); expect(result.responseInfo!.responseExtras, responseInfo.responseExtras); List responses = result.responseInfo!.adapterResponses!; @@ -715,17 +770,21 @@ void main() { adUnitId: 'test-ad-unit', request: request, rewardedAdLoadCallback: RewardedAdLoadCallback( - onAdLoaded: (ad) => null, - onAdFailedToLoad: (error) => resultsCompleter.complete(error)), + onAdLoaded: (ad) => null, + onAdFailedToLoad: (error) => resultsCompleter.complete(error), + ), ); expect(log, [ - isMethodCall('loadRewardedAd', arguments: { - 'adId': 0, - 'adUnitId': 'test-ad-unit', - 'request': request, - 'adManagerRequest': null, - }) + isMethodCall( + 'loadRewardedAd', + arguments: { + 'adId': 0, + 'adUnitId': 'test-ad-unit', + 'request': request, + 'adManagerRequest': null, + }, + ), ]); expect(instanceManager.adFor(0), isNotNull); @@ -758,8 +817,9 @@ void main() { 'loadAdError': LoadAdError(1, 'domain', 'message', responseInfo), }); - final ByteData data = - instanceManager.channel.codec.encodeMethodCall(methodCall); + final ByteData data = instanceManager.channel.codec.encodeMethodCall( + methodCall, + ); await handlePlatformMessage(data); @@ -772,8 +832,10 @@ void main() { expect(result.domain, 'domain'); expect(result.message, 'message'); expect(result.responseInfo!.responseId, responseInfo.responseId); - expect(result.responseInfo!.mediationAdapterClassName, - responseInfo.mediationAdapterClassName); + expect( + result.responseInfo!.mediationAdapterClassName, + responseInfo.mediationAdapterClassName, + ); expect(result.responseInfo!.responseExtras, responseInfo.responseExtras); List responses = result.responseInfo!.adapterResponses!; @@ -793,17 +855,21 @@ void main() { adUnitId: 'test-ad-unit', factoryId: 'testId', listener: NativeAdListener( - onAdImpression: (Ad ad) => adEventCompleter.complete(ad)), + onAdImpression: (Ad ad) => adEventCompleter.complete(ad), + ), request: AdRequest(), ); await native.load(); - final MethodCall methodCall = MethodCall('onAdEvent', - {'adId': 0, 'eventName': 'onAdImpression'}); + final MethodCall methodCall = MethodCall('onAdEvent', { + 'adId': 0, + 'eventName': 'onAdImpression', + }); - final ByteData data = - instanceManager.channel.codec.encodeMethodCall(methodCall); + final ByteData data = instanceManager.channel.codec.encodeMethodCall( + methodCall, + ); await handlePlatformMessage(data); @@ -816,13 +882,15 @@ void main() { AdRequest request = AdRequest(); await RewardedAd.load( - adUnitId: 'test-ad-unit', - request: request, - rewardedAdLoadCallback: RewardedAdLoadCallback( - onAdLoaded: (ad) { - loadCompleter.complete(ad); - }, - onAdFailedToLoad: (error) => null)); + adUnitId: 'test-ad-unit', + request: request, + rewardedAdLoadCallback: RewardedAdLoadCallback( + onAdLoaded: (ad) { + loadCompleter.complete(ad); + }, + onAdFailedToLoad: (error) => null, + ), + ); AdapterResponseInfo adapterResponseInfo = AdapterResponseInfo( adapterClassName: 'adapter-name', @@ -858,8 +926,9 @@ void main() { 'responseInfo': responseInfo, }); - ByteData data = - instanceManager.channel.codec.encodeMethodCall(methodCall); + ByteData data = instanceManager.channel.codec.encodeMethodCall( + methodCall, + ); await handlePlatformMessage(data); final ad = await loadCompleter.future; @@ -899,20 +968,23 @@ void main() { RewardedAd? rewarded; await RewardedAd.load( - adUnitId: 'test-ad-unit', - request: AdRequest(), - rewardedAdLoadCallback: RewardedAdLoadCallback( - onAdLoaded: (ad) { - rewarded = ad; - }, - onAdFailedToLoad: (error) => null)); + adUnitId: 'test-ad-unit', + request: AdRequest(), + rewardedAdLoadCallback: RewardedAdLoadCallback( + onAdLoaded: (ad) { + rewarded = ad; + }, + onAdFailedToLoad: (error) => null, + ), + ); RewardedAd createdAd = instanceManager.adFor(0) as RewardedAd; createdAd.rewardedAdLoadCallback.onAdLoaded(createdAd); // Reward callback is now set when you call show. await rewarded!.show( - onUserEarnedReward: (ad, item) => - resultCompleter.complete([ad, item])); + onUserEarnedReward: (ad, item) => + resultCompleter.complete([ad, item]), + ); final MethodCall methodCall = MethodCall('onAdEvent', { 'adId': 0, @@ -920,8 +992,9 @@ void main() { 'rewardItem': RewardItem(1, 'one'), }); - final ByteData data = - instanceManager.channel.codec.encodeMethodCall(methodCall); + final ByteData data = instanceManager.channel.codec.encodeMethodCall( + methodCall, + ); await handlePlatformMessage(data); @@ -939,8 +1012,12 @@ void main() { size: AdSize.banner, listener: BannerAdListener( onPaidEvent: (Ad ad, double value, precision, String currencyCode) => - resultCompleter - .complete([ad, value, precision, currencyCode]), + resultCompleter.complete([ + ad, + value, + precision, + currencyCode, + ]), ), request: AdRequest(), ); @@ -956,8 +1033,9 @@ void main() { 'currencyCode': 'USD', }); - ByteData data = - instanceManager.channel.codec.encodeMethodCall(methodCall); + ByteData data = instanceManager.channel.codec.encodeMethodCall( + methodCall, + ); await handlePlatformMessage(data); @@ -978,7 +1056,8 @@ void main() { }); data = instanceManager.channel.codec.encodeMethodCall(methodCall); await handlePlatformMessage( - instanceManager.channel.codec.encodeMethodCall(methodCall)); + instanceManager.channel.codec.encodeMethodCall(methodCall), + ); result = await resultCompleter.future; expect(result[2], PrecisionType.unknown); @@ -994,7 +1073,8 @@ void main() { }); data = instanceManager.channel.codec.encodeMethodCall(methodCall); await handlePlatformMessage( - instanceManager.channel.codec.encodeMethodCall(methodCall)); + instanceManager.channel.codec.encodeMethodCall(methodCall), + ); result = await resultCompleter.future; expect(result[1], 12345); expect(result[2], PrecisionType.estimated); @@ -1100,8 +1180,10 @@ void main() { expect(error.message, 'message'); expect(error.responseInfo?.responseId, responseInfo.responseId); expect(error.responseInfo?.responseExtras, responseInfo.responseExtras); - expect(error.responseInfo?.mediationAdapterClassName, - responseInfo.mediationAdapterClassName); + expect( + error.responseInfo?.mediationAdapterClassName, + responseInfo.mediationAdapterClassName, + ); expect(error.responseInfo?.adapterResponses, null); }); @@ -1115,7 +1197,8 @@ void main() { test('encode/decode $InlineAdaptiveSize', () async { ByteData byteData = codec.encodeMessage( - AdSize.getCurrentOrientationInlineAdaptiveBannerAdSize(100))!; + AdSize.getCurrentOrientationInlineAdaptiveBannerAdSize(100), + )!; InlineAdaptiveSize result = codec.decodeMessage(byteData); expect(result.orientation, null); @@ -1123,8 +1206,9 @@ void main() { expect(result.maxHeight, null); expect(result.height, 0); - byteData = codec - .encodeMessage(AdSize.getPortraitInlineAdaptiveBannerAdSize(200))!; + byteData = codec.encodeMessage( + AdSize.getPortraitInlineAdaptiveBannerAdSize(200), + )!; result = codec.decodeMessage(byteData); expect(result.orientation, Orientation.portrait); @@ -1132,8 +1216,9 @@ void main() { expect(result.maxHeight, null); expect(result.height, 0); - byteData = codec - .encodeMessage(AdSize.getLandscapeInlineAdaptiveBannerAdSize(20))!; + byteData = codec.encodeMessage( + AdSize.getLandscapeInlineAdaptiveBannerAdSize(20), + )!; result = codec.decodeMessage(byteData); expect(result.orientation, Orientation.landscape); @@ -1141,8 +1226,9 @@ void main() { expect(result.maxHeight, null); expect(result.height, 0); - byteData = - codec.encodeMessage(AdSize.getInlineAdaptiveBannerAdSize(20, 50))!; + byteData = codec.encodeMessage( + AdSize.getInlineAdaptiveBannerAdSize(20, 50), + )!; result = codec.decodeMessage(byteData); expect(result.orientation, null); @@ -1153,27 +1239,38 @@ void main() { test('encode/decode $AnchoredAdaptiveBannerAdSize', () async { final ByteData byteDataPortrait = codec.encodeMessage( - AnchoredAdaptiveBannerAdSize(Orientation.portrait, - width: 23, height: 34))!; + AnchoredAdaptiveBannerAdSize( + Orientation.portrait, + width: 23, + height: 34, + ), + )!; - final AnchoredAdaptiveBannerAdSize resultPortrait = - codec.decodeMessage(byteDataPortrait); + final AnchoredAdaptiveBannerAdSize resultPortrait = codec.decodeMessage( + byteDataPortrait, + ); expect(resultPortrait.orientation, Orientation.portrait); expect(resultPortrait.width, 23); expect(resultPortrait.height, -1); final ByteData byteDataLandscape = codec.encodeMessage( - AnchoredAdaptiveBannerAdSize(Orientation.landscape, - width: 34, height: 23))!; + AnchoredAdaptiveBannerAdSize( + Orientation.landscape, + width: 34, + height: 23, + ), + )!; - final AnchoredAdaptiveBannerAdSize resultLandscape = - codec.decodeMessage(byteDataLandscape); + final AnchoredAdaptiveBannerAdSize resultLandscape = codec.decodeMessage( + byteDataLandscape, + ); expect(resultLandscape.orientation, Orientation.landscape); expect(resultLandscape.width, 34); expect(resultLandscape.height, -1); final ByteData byteData = codec.encodeMessage( - AnchoredAdaptiveBannerAdSize(null, width: 45, height: 34))!; + AnchoredAdaptiveBannerAdSize(null, width: 45, height: 34), + )!; final AnchoredAdaptiveBannerAdSize result = codec.decodeMessage(byteData); expect(result.orientation, null); @@ -1183,8 +1280,9 @@ void main() { test('encode/decode $SmartBannerAdSize', () async { debugDefaultTargetPlatformOverride = TargetPlatform.iOS; - final ByteData byteData = - codec.encodeMessage(SmartBannerAdSize(Orientation.portrait))!; + final ByteData byteData = codec.encodeMessage( + SmartBannerAdSize(Orientation.portrait), + )!; final SmartBannerAdSize result = codec.decodeMessage(byteData); expect(result.orientation, Orientation.portrait); @@ -1228,7 +1326,7 @@ void main() { contentUrl: 'dat', customTargeting: {'boy': 'who'}, customTargetingLists: >{ - 'him': ['is'] + 'him': ['is'], }, nonPersonalizedAds: true, neighboringContentUrls: ['url1.com', 'url2.com'], @@ -1244,7 +1342,7 @@ void main() { contentUrl: 'dat', customTargeting: {'boy': 'who'}, customTargetingLists: >{ - 'him': ['is'] + 'him': ['is'], }, nonPersonalizedAds: true, neighboringContentUrls: ['url1.com', 'url2.com'], @@ -1253,10 +1351,7 @@ void main() { mediationExtrasIdentifier: 'identifier', extras: {'key': 'value'}, ); - expect( - codec.decodeMessage(byteData), - decodedRequest, - ); + expect(codec.decodeMessage(byteData), decodedRequest); }); test('encode/decode $AdManagerAdRequest iOS', () async { @@ -1267,7 +1362,7 @@ void main() { contentUrl: 'dat', customTargeting: {'boy': 'who'}, customTargetingLists: >{ - 'him': ['is'] + 'him': ['is'], }, nonPersonalizedAds: true, neighboringContentUrls: ['url1.com', 'url2.com'], @@ -1298,17 +1393,21 @@ void main() { adUnitId: 'test-ad-unit', factoryId: 'testId', listener: NativeAdListener( - onAdClicked: (ad) => adClickCompleter.complete(ad)), + onAdClicked: (ad) => adClickCompleter.complete(ad), + ), request: AdRequest(), ); await native.load(); - final MethodCall methodCall = MethodCall('onAdEvent', - {'adId': adId, 'eventName': eventName}); + final MethodCall methodCall = MethodCall( + 'onAdEvent', + {'adId': adId, 'eventName': eventName}, + ); - final ByteData data = - instanceManager.channel.codec.encodeMethodCall(methodCall); + final ByteData data = instanceManager.channel.codec.encodeMethodCall( + methodCall, + ); await handlePlatformMessage(data); expect(adClickCompleter.future, completion(native)); @@ -1329,28 +1428,34 @@ void main() { RewardedAd? rewarded; AdRequest request = AdRequest(); await RewardedAd.load( - adUnitId: 'test-ad-unit', - request: request, - rewardedAdLoadCallback: RewardedAdLoadCallback( - onAdLoaded: (ad) { - rewarded = ad; - ad.fullScreenContentCallback = FullScreenContentCallback( - onAdClicked: (ad) => adClickCompleter.complete(ad)); - }, - onAdFailedToLoad: (error) => null)); + adUnitId: 'test-ad-unit', + request: request, + rewardedAdLoadCallback: RewardedAdLoadCallback( + onAdLoaded: (ad) { + rewarded = ad; + ad.fullScreenContentCallback = FullScreenContentCallback( + onAdClicked: (ad) => adClickCompleter.complete(ad), + ); + }, + onAdFailedToLoad: (error) => null, + ), + ); MethodCall methodCall = MethodCall('onAdEvent', { 'adId': adId, 'eventName': 'onAdLoaded', }); - ByteData data = - instanceManager.channel.codec.encodeMethodCall(methodCall); + ByteData data = instanceManager.channel.codec.encodeMethodCall( + methodCall, + ); await handlePlatformMessage(data); // Handle adDidRecordClick method call - methodCall = MethodCall('onAdEvent', - {'adId': adId, 'eventName': eventName}); + methodCall = MethodCall('onAdEvent', { + 'adId': adId, + 'eventName': eventName, + }); data = instanceManager.channel.codec.encodeMethodCall(methodCall); await handlePlatformMessage(data); @@ -1376,12 +1481,14 @@ void main() { adUnitId: 'test-ad-unit', request: request, adLoadCallback: InterstitialAdLoadCallback( - onAdLoaded: (ad) { - interstitialAd = ad; - ad.fullScreenContentCallback = FullScreenContentCallback( - onAdClicked: (ad) => adClickCompleter.complete(ad)); - }, - onAdFailedToLoad: (error) => null), + onAdLoaded: (ad) { + interstitialAd = ad; + ad.fullScreenContentCallback = FullScreenContentCallback( + onAdClicked: (ad) => adClickCompleter.complete(ad), + ); + }, + onAdFailedToLoad: (error) => null, + ), ); MethodCall methodCall = MethodCall('onAdEvent', { @@ -1389,13 +1496,16 @@ void main() { 'eventName': 'onAdLoaded', }); - ByteData data = - instanceManager.channel.codec.encodeMethodCall(methodCall); + ByteData data = instanceManager.channel.codec.encodeMethodCall( + methodCall, + ); await handlePlatformMessage(data); // Handle adDidRecordClick method call - methodCall = MethodCall('onAdEvent', - {'adId': adId, 'eventName': eventName}); + methodCall = MethodCall('onAdEvent', { + 'adId': adId, + 'eventName': eventName, + }); data = instanceManager.channel.codec.encodeMethodCall(methodCall); await handlePlatformMessage(data); @@ -1421,12 +1531,14 @@ void main() { adUnitId: 'test-ad-unit', request: request, adLoadCallback: InterstitialAdLoadCallback( - onAdLoaded: (ad) { - interstitialAd = ad; - ad.fullScreenContentCallback = FullScreenContentCallback( - onAdClicked: (ad) => adClickCompleter.complete(ad)); - }, - onAdFailedToLoad: (error) => null), + onAdLoaded: (ad) { + interstitialAd = ad; + ad.fullScreenContentCallback = FullScreenContentCallback( + onAdClicked: (ad) => adClickCompleter.complete(ad), + ); + }, + onAdFailedToLoad: (error) => null, + ), ); MethodCall methodCall = MethodCall('onAdEvent', { @@ -1434,13 +1546,16 @@ void main() { 'eventName': 'onAdLoaded', }); - ByteData data = - instanceManager.channel.codec.encodeMethodCall(methodCall); + ByteData data = instanceManager.channel.codec.encodeMethodCall( + methodCall, + ); await handlePlatformMessage(data); // Handle adDidRecordClick method call - methodCall = MethodCall('onAdEvent', - {'adId': adId, 'eventName': eventName}); + methodCall = MethodCall('onAdEvent', { + 'adId': adId, + 'eventName': eventName, + }); data = instanceManager.channel.codec.encodeMethodCall(methodCall); await handlePlatformMessage(data); diff --git a/packages/google_mobile_ads/test/admanager_banner_ad_test.dart b/packages/google_mobile_ads/test/admanager_banner_ad_test.dart index 804f9f341..b2fdaa14f 100644 --- a/packages/google_mobile_ads/test/admanager_banner_ad_test.dart +++ b/packages/google_mobile_ads/test/admanager_banner_ad_test.dart @@ -30,22 +30,24 @@ void main() { setUp(() async { log.clear(); - instanceManager = - AdInstanceManager('plugins.flutter.io/google_mobile_ads'); + instanceManager = AdInstanceManager( + 'plugins.flutter.io/google_mobile_ads', + ); TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger - .setMockMethodCallHandler(instanceManager.channel, - (MethodCall methodCall) async { - log.add(methodCall); - switch (methodCall.method) { - case 'loadAdManagerBannerAd': - case 'disposeAd': - return Future.value(); - default: - assert(false); - return null; - } - }); + .setMockMethodCallHandler(instanceManager.channel, ( + MethodCall methodCall, + ) async { + log.add(methodCall); + switch (methodCall.method) { + case 'loadAdManagerBannerAd': + case 'disposeAd': + return Future.value(); + default: + assert(false); + return null; + } + }); }); test('android loaded events', () async { @@ -82,12 +84,15 @@ void main() { await bannerAd.load(); expect(log, [ - isMethodCall('loadAdManagerBannerAd', arguments: { - 'adId': 0, - 'adUnitId': 'ad-unit', - 'request': request, - 'sizes': [AdSize.banner], - }), + isMethodCall( + 'loadAdManagerBannerAd', + arguments: { + 'adId': 0, + 'adUnitId': 'ad-unit', + 'request': request, + 'sizes': [AdSize.banner], + }, + ), ]); // Simulate load callback @@ -120,7 +125,11 @@ void main() { 'currencyCode': 'USD', }; await TestUtil.sendAdEvent( - 0, 'onPaidEvent', instanceManager, paidEventArgs); + 0, + 'onPaidEvent', + instanceManager, + paidEventArgs, + ); List paidEventCallback = await paidEvent.future; expect(paidEventCallback[0], bannerAd); expect(paidEventCallback[1], 1.2345); @@ -137,8 +146,9 @@ void main() { adUnitId: 'test-ad-unit', sizes: [AdSize.banner], listener: AdManagerBannerAdListener( - onAdFailedToLoad: (Ad ad, LoadAdError error) => - resultsCompleter.complete([ad, error])), + onAdFailedToLoad: (Ad ad, LoadAdError error) => + resultsCompleter.complete([ad, error]), + ), request: AdManagerAdRequest(), ); @@ -166,16 +176,20 @@ void main() { final MethodCall methodCall = MethodCall('onAdEvent', { - 'adId': adId, - 'eventName': 'onAdFailedToLoad', - 'loadAdError': LoadAdError(1, 'domain', 'message', responseInfo), - }); + 'adId': adId, + 'eventName': 'onAdFailedToLoad', + 'loadAdError': LoadAdError(1, 'domain', 'message', responseInfo), + }); - final ByteData data = - instanceManager.channel.codec.encodeMethodCall(methodCall); + final ByteData data = instanceManager.channel.codec.encodeMethodCall( + methodCall, + ); await TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger .handlePlatformMessage( - 'plugins.flutter.io/google_mobile_ads', data, (data) {}); + 'plugins.flutter.io/google_mobile_ads', + data, + (data) {}, + ); final List results = await resultsCompleter.future; expect(results[0], banner); @@ -183,10 +197,14 @@ void main() { expect(results[1].domain, 'domain'); expect(results[1].message, 'message'); expect(results[1].responseInfo.responseId, responseInfo.responseId); - expect(results[1].responseInfo.mediationAdapterClassName, - responseInfo.mediationAdapterClassName); - expect(results[1].responseInfo.responseExtras, - responseInfo.responseExtras); + expect( + results[1].responseInfo.mediationAdapterClassName, + responseInfo.mediationAdapterClassName, + ); + expect( + results[1].responseInfo.responseExtras, + responseInfo.responseExtras, + ); List responses = results[1].responseInfo.adapterResponses; expect(responses.first.adapterClassName, 'adapter-name'); @@ -241,12 +259,15 @@ void main() { await bannerAd.load(); expect(log, [ - isMethodCall('loadAdManagerBannerAd', arguments: { - 'adId': 0, - 'adUnitId': 'ad-unit', - 'request': request, - 'sizes': [AdSize.banner], - }), + isMethodCall( + 'loadAdManagerBannerAd', + arguments: { + 'adId': 0, + 'adUnitId': 'ad-unit', + 'request': request, + 'sizes': [AdSize.banner], + }, + ), ]); // Simulate load callback @@ -265,15 +286,24 @@ void main() { expect(await clicked.future, bannerAd); await TestUtil.sendAdEvent( - 0, 'onBannerWillPresentScreen', instanceManager); + 0, + 'onBannerWillPresentScreen', + instanceManager, + ); expect(await opened.future, bannerAd); await TestUtil.sendAdEvent( - 0, 'onBannerDidDismissScreen', instanceManager); + 0, + 'onBannerDidDismissScreen', + instanceManager, + ); expect(await closed.future, bannerAd); await TestUtil.sendAdEvent( - 0, 'onBannerWillDismissScreen', instanceManager); + 0, + 'onBannerWillDismissScreen', + instanceManager, + ); expect(await willDismiss.future, bannerAd); const paidEventArgs = { @@ -282,7 +312,11 @@ void main() { 'currencyCode': 'USD', }; await TestUtil.sendAdEvent( - 0, 'onPaidEvent', instanceManager, paidEventArgs); + 0, + 'onPaidEvent', + instanceManager, + paidEventArgs, + ); List paidEventCallback = await paidEvent.future; expect(paidEventCallback[0], bannerAd); expect(paidEventCallback[1], 1.2345); @@ -302,9 +336,7 @@ void main() { log.clear(); await banner.dispose(); expect(log, [ - isMethodCall('disposeAd', arguments: { - 'adId': 0, - }) + isMethodCall('disposeAd', arguments: {'adId': 0}), ]); expect(instanceManager.adFor(0), isNull); diff --git a/packages/google_mobile_ads/test/app_open_test.dart b/packages/google_mobile_ads/test/app_open_test.dart index a1a4b6bfa..9b38f01b6 100644 --- a/packages/google_mobile_ads/test/app_open_test.dart +++ b/packages/google_mobile_ads/test/app_open_test.dart @@ -30,22 +30,24 @@ void main() { setUp(() async { log.clear(); - instanceManager = - AdInstanceManager('plugins.flutter.io/google_mobile_ads'); + instanceManager = AdInstanceManager( + 'plugins.flutter.io/google_mobile_ads', + ); TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger - .setMockMethodCallHandler(instanceManager.channel, - (MethodCall methodCall) async { - log.add(methodCall); - switch (methodCall.method) { - case 'loadAppOpenAd': - case 'showAdWithoutView': - case 'disposeAd': - return Future.value(); - default: - assert(false); - return null; - } - }); + .setMockMethodCallHandler(instanceManager.channel, ( + MethodCall methodCall, + ) async { + log.add(methodCall); + switch (methodCall.method) { + case 'loadAppOpenAd': + case 'showAdWithoutView': + case 'disposeAd': + return Future.value(); + default: + assert(false); + return null; + } + }); }); test('load show android', () async { @@ -56,19 +58,23 @@ void main() { adUnitId: 'test-ad-unit', request: request, adLoadCallback: AppOpenAdLoadCallback( - onAdLoaded: (ad) { - appOpenAd = ad; - }, - onAdFailedToLoad: (error) {}), + onAdLoaded: (ad) { + appOpenAd = ad; + }, + onAdFailedToLoad: (error) {}, + ), ); expect(log, [ - isMethodCall('loadAppOpenAd', arguments: { - 'adId': 0, - 'adUnitId': 'test-ad-unit', - 'request': request, - 'adManagerRequest': null, - }), + isMethodCall( + 'loadAppOpenAd', + arguments: { + 'adId': 0, + 'adUnitId': 'test-ad-unit', + 'request': request, + 'adManagerRequest': null, + }, + ), ]); // Simulate load callback @@ -84,9 +90,10 @@ void main() { // Show the ad and verify method call. await appOpenAd!.show(); expect(log, [ - isMethodCall('showAdWithoutView', arguments: { - 'adId': 0, - }) + isMethodCall( + 'showAdWithoutView', + arguments: {'adId': 0}, + ), ]); // Check that full screen events are passed correctly. @@ -112,15 +119,25 @@ void main() { expect(await clickedCompleter.future, appOpenAd); await TestUtil.sendAdEvent( - 0, 'onAdShowedFullScreenContent', instanceManager); + 0, + 'onAdShowedFullScreenContent', + instanceManager, + ); expect(await showedCompleter.future, appOpenAd); await TestUtil.sendAdEvent( - 0, 'onAdDismissedFullScreenContent', instanceManager); + 0, + 'onAdDismissedFullScreenContent', + instanceManager, + ); expect(await dismissedCompleter.future, appOpenAd); - await TestUtil.sendAdEvent(0, 'onFailedToShowFullScreenContent', - instanceManager, {'error': AdError(1, 'domain', 'message')}); + await TestUtil.sendAdEvent( + 0, + 'onFailedToShowFullScreenContent', + instanceManager, + {'error': AdError(1, 'domain', 'message')}, + ); expect(await failedToShowCompleter.future, appOpenAd); // Check paid event callback @@ -135,7 +152,11 @@ void main() { 'currencyCode': 'USD', }; await TestUtil.sendAdEvent( - 0, 'onPaidEvent', instanceManager, paidEventArgs); + 0, + 'onPaidEvent', + instanceManager, + paidEventArgs, + ); List paidEventCallback = await paidEventCompleter.future; expect(paidEventCallback[0], appOpenAd); expect(paidEventCallback[1], 1.2345); @@ -152,19 +173,23 @@ void main() { adUnitId: 'test-ad-unit', request: request, adLoadCallback: AppOpenAdLoadCallback( - onAdLoaded: (ad) { - appOpenAd = ad; - }, - onAdFailedToLoad: (error) {}), + onAdLoaded: (ad) { + appOpenAd = ad; + }, + onAdFailedToLoad: (error) {}, + ), ); expect(log, [ - isMethodCall('loadAppOpenAd', arguments: { - 'adId': 0, - 'adUnitId': 'test-ad-unit', - 'request': request, - 'adManagerRequest': null, - }), + isMethodCall( + 'loadAppOpenAd', + arguments: { + 'adId': 0, + 'adUnitId': 'test-ad-unit', + 'request': request, + 'adManagerRequest': null, + }, + ), ]); // Simulate load callback @@ -180,9 +205,10 @@ void main() { // Show the ad and verify method call. await appOpenAd!.show(); expect(log, [ - isMethodCall('showAdWithoutView', arguments: { - 'adId': 0, - }) + isMethodCall( + 'showAdWithoutView', + arguments: {'adId': 0}, + ), ]); // Check that full screen events are passed correctly. @@ -211,22 +237,32 @@ void main() { expect(await clickedCompleter.future, appOpenAd); await TestUtil.sendAdEvent( - 0, 'adWillPresentFullScreenContent', instanceManager); + 0, + 'adWillPresentFullScreenContent', + instanceManager, + ); expect(await showedCompleter.future, appOpenAd); await TestUtil.sendAdEvent( - 0, 'adDidDismissFullScreenContent', instanceManager); + 0, + 'adDidDismissFullScreenContent', + instanceManager, + ); expect(await dismissedCompleter.future, appOpenAd); await TestUtil.sendAdEvent( - 0, 'adWillDismissFullScreenContent', instanceManager); + 0, + 'adWillDismissFullScreenContent', + instanceManager, + ); expect(await dismissedCompleter.future, appOpenAd); await TestUtil.sendAdEvent( - 0, - 'didFailToPresentFullScreenContentWithError', - instanceManager, - {'error': AdError(1, 'domain', 'message')}); + 0, + 'didFailToPresentFullScreenContentWithError', + instanceManager, + {'error': AdError(1, 'domain', 'message')}, + ); expect(await failedToShowCompleter.future, appOpenAd); // Check paid event callback @@ -241,7 +277,11 @@ void main() { 'currencyCode': 'USD', }; await TestUtil.sendAdEvent( - 0, 'onPaidEvent', instanceManager, paidEventArgs); + 0, + 'onPaidEvent', + instanceManager, + paidEventArgs, + ); List paidEventCallback = await paidEventCompleter.future; expect(paidEventCallback[0], appOpenAd); expect(paidEventCallback[1], 1.2345); diff --git a/packages/google_mobile_ads/test/banner_ad_test.dart b/packages/google_mobile_ads/test/banner_ad_test.dart index 74aa6bbf3..c54b87fb0 100644 --- a/packages/google_mobile_ads/test/banner_ad_test.dart +++ b/packages/google_mobile_ads/test/banner_ad_test.dart @@ -30,21 +30,23 @@ void main() { setUp(() async { log.clear(); - instanceManager = - AdInstanceManager('plugins.flutter.io/google_mobile_ads'); + instanceManager = AdInstanceManager( + 'plugins.flutter.io/google_mobile_ads', + ); TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger - .setMockMethodCallHandler(instanceManager.channel, - (MethodCall methodCall) async { - log.add(methodCall); - switch (methodCall.method) { - case 'loadBannerAd': - case 'disposeAd': - return Future.value(); - default: - assert(false); - return null; - } - }); + .setMockMethodCallHandler(instanceManager.channel, ( + MethodCall methodCall, + ) async { + log.add(methodCall); + switch (methodCall.method) { + case 'loadBannerAd': + case 'disposeAd': + return Future.value(); + default: + assert(false); + return null; + } + }); }); test('android loaded events', () async { @@ -81,12 +83,15 @@ void main() { await bannerAd.load(); expect(log, [ - isMethodCall('loadBannerAd', arguments: { - 'adId': 0, - 'adUnitId': 'ad-unit', - 'request': request, - 'size': AdSize.banner, - }), + isMethodCall( + 'loadBannerAd', + arguments: { + 'adId': 0, + 'adUnitId': 'ad-unit', + 'request': request, + 'size': AdSize.banner, + }, + ), ]); // Simulate load callback @@ -118,7 +123,11 @@ void main() { 'currencyCode': 'USD', }; await TestUtil.sendAdEvent( - 0, 'onPaidEvent', instanceManager, paidEventArgs); + 0, + 'onPaidEvent', + instanceManager, + paidEventArgs, + ); List paidEventCallback = await paidEvent.future; expect(paidEventCallback[0], bannerAd); expect(paidEventCallback[1], 1.2345); @@ -135,8 +144,9 @@ void main() { adUnitId: 'test-ad-unit', size: AdSize.banner, listener: BannerAdListener( - onAdFailedToLoad: (Ad ad, LoadAdError error) => - resultsCompleter.complete([ad, error])), + onAdFailedToLoad: (Ad ad, LoadAdError error) => + resultsCompleter.complete([ad, error]), + ), request: AdRequest(), ); @@ -164,16 +174,20 @@ void main() { final MethodCall methodCall = MethodCall('onAdEvent', { - 'adId': adId, - 'eventName': 'onAdFailedToLoad', - 'loadAdError': LoadAdError(1, 'domain', 'message', responseInfo), - }); + 'adId': adId, + 'eventName': 'onAdFailedToLoad', + 'loadAdError': LoadAdError(1, 'domain', 'message', responseInfo), + }); - final ByteData data = - instanceManager.channel.codec.encodeMethodCall(methodCall); + final ByteData data = instanceManager.channel.codec.encodeMethodCall( + methodCall, + ); await TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger .handlePlatformMessage( - 'plugins.flutter.io/google_mobile_ads', data, (data) {}); + 'plugins.flutter.io/google_mobile_ads', + data, + (data) {}, + ); final List results = await resultsCompleter.future; expect(results[0], banner); @@ -181,10 +195,14 @@ void main() { expect(results[1].domain, 'domain'); expect(results[1].message, 'message'); expect(results[1].responseInfo.responseId, responseInfo.responseId); - expect(results[1].responseInfo.mediationAdapterClassName, - responseInfo.mediationAdapterClassName); - expect(results[1].responseInfo.responseExtras, - responseInfo.responseExtras); + expect( + results[1].responseInfo.mediationAdapterClassName, + responseInfo.mediationAdapterClassName, + ); + expect( + results[1].responseInfo.responseExtras, + responseInfo.responseExtras, + ); List responses = results[1].responseInfo.adapterResponses; expect(responses.first.adapterClassName, 'adapter-name'); @@ -239,12 +257,15 @@ void main() { await bannerAd.load(); expect(log, [ - isMethodCall('loadBannerAd', arguments: { - 'adId': 0, - 'adUnitId': 'ad-unit', - 'request': request, - 'size': AdSize.banner, - }), + isMethodCall( + 'loadBannerAd', + arguments: { + 'adId': 0, + 'adUnitId': 'ad-unit', + 'request': request, + 'size': AdSize.banner, + }, + ), ]); // Simulate load callback @@ -262,15 +283,24 @@ void main() { expect(await clicked.future, bannerAd); await TestUtil.sendAdEvent( - 0, 'onBannerWillPresentScreen', instanceManager); + 0, + 'onBannerWillPresentScreen', + instanceManager, + ); expect(await opened.future, bannerAd); await TestUtil.sendAdEvent( - 0, 'onBannerDidDismissScreen', instanceManager); + 0, + 'onBannerDidDismissScreen', + instanceManager, + ); expect(await closed.future, bannerAd); await TestUtil.sendAdEvent( - 0, 'onBannerWillDismissScreen', instanceManager); + 0, + 'onBannerWillDismissScreen', + instanceManager, + ); expect(await willDismiss.future, bannerAd); const paidEventArgs = { @@ -279,7 +309,11 @@ void main() { 'currencyCode': 'USD', }; await TestUtil.sendAdEvent( - 0, 'onPaidEvent', instanceManager, paidEventArgs); + 0, + 'onPaidEvent', + instanceManager, + paidEventArgs, + ); List paidEventCallback = await paidEvent.future; expect(paidEventCallback[0], bannerAd); expect(paidEventCallback[1], 1.2345); @@ -299,9 +333,7 @@ void main() { log.clear(); await banner.dispose(); expect(log, [ - isMethodCall('disposeAd', arguments: { - 'adId': 0, - }) + isMethodCall('disposeAd', arguments: {'adId': 0}), ]); expect(instanceManager.adFor(0), isNull); diff --git a/packages/google_mobile_ads/test/fluid_ad_test.dart b/packages/google_mobile_ads/test/fluid_ad_test.dart index 765d77675..c1e540318 100644 --- a/packages/google_mobile_ads/test/fluid_ad_test.dart +++ b/packages/google_mobile_ads/test/fluid_ad_test.dart @@ -30,21 +30,23 @@ void main() { setUp(() async { log.clear(); - instanceManager = - AdInstanceManager('plugins.flutter.io/google_mobile_ads'); + instanceManager = AdInstanceManager( + 'plugins.flutter.io/google_mobile_ads', + ); TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger - .setMockMethodCallHandler(instanceManager.channel, - (MethodCall methodCall) async { - log.add(methodCall); - switch (methodCall.method) { - case 'loadFluidAd': - case 'disposeAd': - return Future.value(); - default: - assert(false); - return null; - } - }); + .setMockMethodCallHandler(instanceManager.channel, ( + MethodCall methodCall, + ) async { + log.add(methodCall); + switch (methodCall.method) { + case 'loadFluidAd': + case 'disposeAd': + return Future.value(); + default: + assert(false); + return null; + } + }); }); test('load android with callbacks', () async { @@ -84,12 +86,15 @@ void main() { await fluidAd.load(); expect(log, [ - isMethodCall('loadFluidAd', arguments: { - 'adId': 0, - 'adUnitId': 'testId', - 'sizes': [FluidAdSize()], - 'request': AdManagerAdRequest(), - }) + isMethodCall( + 'loadFluidAd', + arguments: { + 'adId': 0, + 'adUnitId': 'testId', + 'sizes': [FluidAdSize()], + 'request': AdManagerAdRequest(), + }, + ), ]); await TestUtil.sendAdEvent(0, 'onAdLoaded', instanceManager); @@ -108,28 +113,46 @@ void main() { const heightChangedArgs = {'height': 25}; await TestUtil.sendAdEvent( - 0, 'onFluidAdHeightChanged', instanceManager, heightChangedArgs); + 0, + 'onFluidAdHeightChanged', + instanceManager, + heightChangedArgs, + ); expect(await heightChangedCompleter.future, [fluidAd, 25]); LoadAdError error = LoadAdError(1, 'domain', 'message', null); var errorArgs = {'loadAdError': error}; await TestUtil.sendAdEvent( - 0, 'onAdFailedToLoad', instanceManager, errorArgs); + 0, + 'onAdFailedToLoad', + instanceManager, + errorArgs, + ); List adAndError = await failedToLoadCompleter.future; expect(adAndError[0], loadedAd); expect(adAndError[1].toString(), error.toString()); const appEventArgs = {'name': 'name', 'data': '1234'}; await TestUtil.sendAdEvent( - 0, 'onAppEvent', instanceManager, appEventArgs); + 0, + 'onAppEvent', + instanceManager, + appEventArgs, + ); expect(await appEventCompleter.future, [fluidAd, 'name', '1234']); // will dismiss is iOS only event. var willDismissCompleted = false; - unawaited(willDismissCompleter.future - .whenComplete(() => willDismissCompleted = true)); + unawaited( + willDismissCompleter.future.whenComplete( + () => willDismissCompleted = true, + ), + ); await TestUtil.sendAdEvent( - 0, 'onBannerWillDismissScreen', instanceManager); + 0, + 'onBannerWillDismissScreen', + instanceManager, + ); expect(willDismissCompleted, false); }); @@ -170,12 +193,15 @@ void main() { await fluidAd.load(); expect(log, [ - isMethodCall('loadFluidAd', arguments: { - 'adId': 0, - 'adUnitId': 'testId', - 'sizes': [FluidAdSize()], - 'request': AdManagerAdRequest(), - }) + isMethodCall( + 'loadFluidAd', + arguments: { + 'adId': 0, + 'adUnitId': 'testId', + 'sizes': [FluidAdSize()], + 'request': AdManagerAdRequest(), + }, + ), ]); await TestUtil.sendAdEvent(0, 'onAdLoaded', instanceManager); @@ -187,34 +213,55 @@ void main() { expect(await impressionCompleter.future, loadedAd); await TestUtil.sendAdEvent( - 0, 'onBannerWillPresentScreen', instanceManager); + 0, + 'onBannerWillPresentScreen', + instanceManager, + ); expect(await openedCompleter.future, loadedAd); await TestUtil.sendAdEvent( - 0, 'onBannerDidDismissScreen', instanceManager); + 0, + 'onBannerDidDismissScreen', + instanceManager, + ); expect(await closedCompleter.future, loadedAd); const heightChangedArgs = {'height': 25}; await TestUtil.sendAdEvent( - 0, 'onFluidAdHeightChanged', instanceManager, heightChangedArgs); + 0, + 'onFluidAdHeightChanged', + instanceManager, + heightChangedArgs, + ); expect(await heightChangedCompleter.future, [fluidAd, 25]); LoadAdError error = LoadAdError(1, 'domain', 'message', null); var errorArgs = {'loadAdError': error}; await TestUtil.sendAdEvent( - 0, 'onAdFailedToLoad', instanceManager, errorArgs); + 0, + 'onAdFailedToLoad', + instanceManager, + errorArgs, + ); List adAndError = await failedToLoadCompleter.future; expect(adAndError[0], loadedAd); expect(adAndError[1].toString(), error.toString()); const appEventArgs = {'name': 'name', 'data': '1234'}; await TestUtil.sendAdEvent( - 0, 'onAppEvent', instanceManager, appEventArgs); + 0, + 'onAppEvent', + instanceManager, + appEventArgs, + ); expect(await appEventCompleter.future, [fluidAd, 'name', '1234']); // will dismiss is iOS only event. await TestUtil.sendAdEvent( - 0, 'onBannerWillDismissScreen', instanceManager); + 0, + 'onBannerWillDismissScreen', + instanceManager, + ); expect(await willDismissCompleter.future, fluidAd); }); }); diff --git a/packages/google_mobile_ads/test/mobile_ads_test.dart b/packages/google_mobile_ads/test/mobile_ads_test.dart index a53aaf609..ab7eddad7 100644 --- a/packages/google_mobile_ads/test/mobile_ads_test.dart +++ b/packages/google_mobile_ads/test/mobile_ads_test.dart @@ -40,57 +40,62 @@ void main() { }); setUp(() async { - instanceManager = - AdInstanceManager('plugins.flutter.io/google_mobile_ads'); + instanceManager = AdInstanceManager( + 'plugins.flutter.io/google_mobile_ads', + ); log.clear(); TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger .setMockMethodCallHandler( - MethodChannel( - 'plugins.flutter.io/google_mobile_ads', - StandardMethodCodec(AdMessageCodec()), - ), (MethodCall methodCall) async { - log.add(methodCall); - switch (methodCall.method) { - case 'MobileAds#initialize': - return InitializationStatus({ - 'aName': AdapterStatus( - AdapterInitializationState.notReady, - 'desc', - 0, - ), - }); - case '_init': - case 'MobileAds#setSameAppKeyEnabled': - case 'MobileAds#setAppMuted': - case 'MobileAds#setAppVolume': - case 'MobileAds#disableSDKCrashReporting': - case 'MobileAds#disableMediationInitialization': - return null; - case 'MobileAds#getVersionString': - return Future.value('Test-SDK-Version'); - case 'MobileAds#updateRequestConfiguration': - return null; - case 'MobileAds#registerWebView': - return null; - case 'MobileAds#getRequestConfiguration': - return RequestConfiguration( - maxAdContentRating: MaxAdContentRating.ma, - tagForChildDirectedTreatment: TagForChildDirectedTreatment.yes, - tagForUnderAgeOfConsent: TagForUnderAgeOfConsent.no, - testDeviceIds: ['test-device-id'], - ); - case 'AdSize#getAnchoredAdaptiveBannerAdSize': - return null; - default: - assert(false); - return null; - } - }); + MethodChannel( + 'plugins.flutter.io/google_mobile_ads', + StandardMethodCodec(AdMessageCodec()), + ), + (MethodCall methodCall) async { + log.add(methodCall); + switch (methodCall.method) { + case 'MobileAds#initialize': + return InitializationStatus({ + 'aName': AdapterStatus( + AdapterInitializationState.notReady, + 'desc', + 0, + ), + }); + case '_init': + case 'MobileAds#setSameAppKeyEnabled': + case 'MobileAds#setAppMuted': + case 'MobileAds#setAppVolume': + case 'MobileAds#disableSDKCrashReporting': + case 'MobileAds#disableMediationInitialization': + return null; + case 'MobileAds#getVersionString': + return Future.value('Test-SDK-Version'); + case 'MobileAds#updateRequestConfiguration': + return null; + case 'MobileAds#registerWebView': + return null; + case 'MobileAds#getRequestConfiguration': + return RequestConfiguration( + maxAdContentRating: MaxAdContentRating.ma, + tagForChildDirectedTreatment: + TagForChildDirectedTreatment.yes, + tagForUnderAgeOfConsent: TagForUnderAgeOfConsent.no, + testDeviceIds: ['test-device-id'], + ); + case 'AdSize#getAnchoredAdaptiveBannerAdSize': + return null; + default: + assert(false); + return null; + } + }, + ); }); test('encode/decode $AdapterInitializationState', () { - final ByteData byteData = - codec.encodeMessage(AdapterInitializationState.ready)!; + final ByteData byteData = codec.encodeMessage( + AdapterInitializationState.ready, + )!; final AdapterInitializationState result = codec.decodeMessage(byteData); expect(result, AdapterInitializationState.ready); @@ -98,11 +103,9 @@ void main() { test('encode/decode $AdapterStatus', () { debugDefaultTargetPlatformOverride = TargetPlatform.android; - final ByteData byteData = codec.encodeMessage(AdapterStatus( - AdapterInitializationState.notReady, - 'describe', - 23, - ))!; + final ByteData byteData = codec.encodeMessage( + AdapterStatus(AdapterInitializationState.notReady, 'describe', 23), + )!; AdapterStatus result = codec.decodeMessage(byteData); expect(result.state, AdapterInitializationState.notReady); @@ -132,14 +135,15 @@ void main() { }); test('encode/decode $InitializationStatus', () { - final ByteData byteData = - codec.encodeMessage(InitializationStatus({ - 'adMediation': AdapterStatus( - AdapterInitializationState.ready, - 'aDescription', - 0, - ), - }))!; + final ByteData byteData = codec.encodeMessage( + InitializationStatus({ + 'adMediation': AdapterStatus( + AdapterInitializationState.ready, + 'aDescription', + 0, + ), + }), + )!; final InitializationStatus result = codec.decodeMessage(byteData); expect(result.adapterStatuses, hasLength(1)); @@ -154,7 +158,7 @@ void main() { expect(log, [ isMethodCall('_init', arguments: null), - isMethodCall('MobileAds#initialize', arguments: null) + isMethodCall('MobileAds#initialize', arguments: null), ]); expect(result.adapterStatuses, hasLength(1)); @@ -167,8 +171,9 @@ void main() { test('$MobileAds.registerWebView', () async { instanceManager = MockAdInstanceManager(); final webView = MockWebViewController(); - when(instanceManager.registerWebView(webView)) - .thenAnswer((realInvocation) => Future.value()); + when( + instanceManager.registerWebView(webView), + ).thenAnswer((realInvocation) => Future.value()); await MobileAds.instance.registerWebView(webView); verify(instanceManager.registerWebView(webView)); @@ -179,13 +184,14 @@ void main() { final mockWebViewControllerUtil = MockWebViewControllerUtil(); when(mockWebViewControllerUtil.webViewIdentifier(any)).thenReturn(1); instanceManager = AdInstanceManager( - 'plugins.flutter.io/google_mobile_ads', - webViewControllerUtil: mockWebViewControllerUtil); + 'plugins.flutter.io/google_mobile_ads', + webViewControllerUtil: mockWebViewControllerUtil, + ); final webView = MockWebViewController(); await MobileAds.instance.registerWebView(webView); expect(log, [ - isMethodCall('MobileAds#registerWebView', arguments: {'webViewId': 1}) + isMethodCall('MobileAds#registerWebView', arguments: {'webViewId': 1}), ]); }); @@ -194,25 +200,28 @@ void main() { final mockWebViewControllerUtil = MockWebViewControllerUtil(); when(mockWebViewControllerUtil.webViewIdentifier(any)).thenReturn(1); instanceManager = AdInstanceManager( - 'plugins.flutter.io/google_mobile_ads', - webViewControllerUtil: mockWebViewControllerUtil); + 'plugins.flutter.io/google_mobile_ads', + webViewControllerUtil: mockWebViewControllerUtil, + ); final webView = MockWebViewController(); await MobileAds.instance.registerWebView(webView); expect(log, [ - isMethodCall('MobileAds#registerWebView', arguments: {'webViewId': 1}) + isMethodCall('MobileAds#registerWebView', arguments: {'webViewId': 1}), ]); }); test('$MobileAds.openAdInspector success', () async { TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger .setMockMethodCallHandler( - MethodChannel( - 'plugins.flutter.io/google_mobile_ads', - StandardMethodCodec(AdMessageCodec()), - ), (MethodCall methodCall) async { - return null; - }); + MethodChannel( + 'plugins.flutter.io/google_mobile_ads', + StandardMethodCodec(AdMessageCodec()), + ), + (MethodCall methodCall) async { + return null; + }, + ); Completer completer = Completer(); MobileAds.instance.openAdInspector((error) { @@ -226,13 +235,18 @@ void main() { test('$MobileAds.openAdInspector error', () async { TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger .setMockMethodCallHandler( - MethodChannel( - 'plugins.flutter.io/google_mobile_ads', - StandardMethodCodec(AdMessageCodec()), - ), (MethodCall methodCall) async { - throw PlatformException( - code: '1', details: 'details', message: 'message'); - }); + MethodChannel( + 'plugins.flutter.io/google_mobile_ads', + StandardMethodCodec(AdMessageCodec()), + ), + (MethodCall methodCall) async { + throw PlatformException( + code: '1', + details: 'details', + message: 'message', + ); + }, + ); Completer completer = Completer(); MobileAds.instance.openAdInspector((error) { @@ -251,17 +265,23 @@ void main() { await MobileAds.instance.setSameAppKeyEnabled(true); expect(log, [ - isMethodCall('MobileAds#setSameAppKeyEnabled', - arguments: {'isEnabled': true}) + isMethodCall( + 'MobileAds#setSameAppKeyEnabled', + arguments: {'isEnabled': true}, + ), ]); await MobileAds.instance.setSameAppKeyEnabled(false); expect(log, [ - isMethodCall('MobileAds#setSameAppKeyEnabled', - arguments: {'isEnabled': true}), - isMethodCall('MobileAds#setSameAppKeyEnabled', - arguments: {'isEnabled': false}) + isMethodCall( + 'MobileAds#setSameAppKeyEnabled', + arguments: {'isEnabled': true}, + ), + isMethodCall( + 'MobileAds#setSameAppKeyEnabled', + arguments: {'isEnabled': false}, + ), ]); }); @@ -277,8 +297,9 @@ void main() { expect(result.shouldReturnUrlsForImageAssets, null); expect(result.videoOptions, null); - byteData = - codec.encodeMessage(NativeAdOptions(videoOptions: VideoOptions()))!; + byteData = codec.encodeMessage( + NativeAdOptions(videoOptions: VideoOptions()), + )!; result = codec.decodeMessage(byteData); expect(result.mediaAspectRatio, null); expect(result.adChoicesPlacement, null); @@ -292,16 +313,17 @@ void main() { test('encode/decode native ad options', () { NativeAdOptions nativeAdOptions = NativeAdOptions( - adChoicesPlacement: AdChoicesPlacement.topRightCorner, - mediaAspectRatio: MediaAspectRatio.unknown, - videoOptions: VideoOptions( - clickToExpandRequested: false, - customControlsRequested: false, - startMuted: false, - ), - requestCustomMuteThisAd: false, - shouldRequestMultipleImages: false, - shouldReturnUrlsForImageAssets: false); + adChoicesPlacement: AdChoicesPlacement.topRightCorner, + mediaAspectRatio: MediaAspectRatio.unknown, + videoOptions: VideoOptions( + clickToExpandRequested: false, + customControlsRequested: false, + startMuted: false, + ), + requestCustomMuteThisAd: false, + shouldRequestMultipleImages: false, + shouldReturnUrlsForImageAssets: false, + ); debugDefaultTargetPlatformOverride = TargetPlatform.android; ByteData byteData = codec.encodeMessage(nativeAdOptions)!; @@ -317,16 +339,17 @@ void main() { expect(result.videoOptions!.clickToExpandRequested, false); nativeAdOptions = NativeAdOptions( - adChoicesPlacement: AdChoicesPlacement.bottomLeftCorner, - mediaAspectRatio: MediaAspectRatio.landscape, - videoOptions: VideoOptions( - clickToExpandRequested: true, - customControlsRequested: true, - startMuted: true, - ), - requestCustomMuteThisAd: true, - shouldRequestMultipleImages: true, - shouldReturnUrlsForImageAssets: true); + adChoicesPlacement: AdChoicesPlacement.bottomLeftCorner, + mediaAspectRatio: MediaAspectRatio.landscape, + videoOptions: VideoOptions( + clickToExpandRequested: true, + customControlsRequested: true, + startMuted: true, + ), + requestCustomMuteThisAd: true, + shouldRequestMultipleImages: true, + shouldReturnUrlsForImageAssets: true, + ); byteData = codec.encodeMessage(nativeAdOptions)!; result = codec.decodeMessage(byteData); @@ -345,14 +368,14 @@ void main() { await MobileAds.instance.setAppMuted(true); expect(log, [ - isMethodCall('MobileAds#setAppMuted', arguments: {'muted': true}) + isMethodCall('MobileAds#setAppMuted', arguments: {'muted': true}), ]); await MobileAds.instance.setAppMuted(false); expect(log, [ isMethodCall('MobileAds#setAppMuted', arguments: {'muted': true}), - isMethodCall('MobileAds#setAppMuted', arguments: {'muted': false}) + isMethodCall('MobileAds#setAppMuted', arguments: {'muted': false}), ]); }); @@ -360,7 +383,7 @@ void main() { await MobileAds.instance.setAppVolume(1.0); expect(log, [ - isMethodCall('MobileAds#setAppVolume', arguments: {'volume': 1.0}) + isMethodCall('MobileAds#setAppVolume', arguments: {'volume': 1.0}), ]); }); @@ -369,7 +392,7 @@ void main() { await MobileAds.instance.disableSDKCrashReporting(); expect(log, [ - isMethodCall('MobileAds#disableSDKCrashReporting', arguments: null) + isMethodCall('MobileAds#disableSDKCrashReporting', arguments: null), ]); }); @@ -377,8 +400,10 @@ void main() { await MobileAds.instance.disableMediationInitialization(); expect(log, [ - isMethodCall('MobileAds#disableMediationInitialization', - arguments: null) + isMethodCall( + 'MobileAds#disableMediationInitialization', + arguments: null, + ), ]); }); @@ -386,7 +411,7 @@ void main() { await MobileAds.instance.getVersionString(); expect(log, [ - isMethodCall('MobileAds#getVersionString', arguments: null) + isMethodCall('MobileAds#getVersionString', arguments: null), ]); }); @@ -394,42 +419,56 @@ void main() { await AdSize.getAnchoredAdaptiveBannerAdSize(Orientation.portrait, 23); expect(log, [ - isMethodCall('AdSize#getAnchoredAdaptiveBannerAdSize', - arguments: {'orientation': 'portrait', 'width': 23}) + isMethodCall( + 'AdSize#getAnchoredAdaptiveBannerAdSize', + arguments: {'orientation': 'portrait', 'width': 23}, + ), ]); await AdSize.getAnchoredAdaptiveBannerAdSize(Orientation.landscape, 34); expect(log, [ - isMethodCall('AdSize#getAnchoredAdaptiveBannerAdSize', - arguments: {'orientation': 'portrait', 'width': 23}), - isMethodCall('AdSize#getAnchoredAdaptiveBannerAdSize', - arguments: {'orientation': 'landscape', 'width': 34}) + isMethodCall( + 'AdSize#getAnchoredAdaptiveBannerAdSize', + arguments: {'orientation': 'portrait', 'width': 23}, + ), + isMethodCall( + 'AdSize#getAnchoredAdaptiveBannerAdSize', + arguments: {'orientation': 'landscape', 'width': 34}, + ), ]); await AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(45); expect(log, [ - isMethodCall('AdSize#getAnchoredAdaptiveBannerAdSize', - arguments: {'orientation': 'portrait', 'width': 23}), - isMethodCall('AdSize#getAnchoredAdaptiveBannerAdSize', - arguments: {'orientation': 'landscape', 'width': 34}), - isMethodCall('AdSize#getAnchoredAdaptiveBannerAdSize', - arguments: {'width': 45}) + isMethodCall( + 'AdSize#getAnchoredAdaptiveBannerAdSize', + arguments: {'orientation': 'portrait', 'width': 23}, + ), + isMethodCall( + 'AdSize#getAnchoredAdaptiveBannerAdSize', + arguments: {'orientation': 'landscape', 'width': 34}, + ), + isMethodCall( + 'AdSize#getAnchoredAdaptiveBannerAdSize', + arguments: {'width': 45}, + ), ]); }); test('encode/decode $MobileAds.getRequestConfiguration', () async { - RequestConfiguration requestConfig = - await MobileAds.instance.getRequestConfiguration(); + RequestConfiguration requestConfig = await MobileAds.instance + .getRequestConfiguration(); debugDefaultTargetPlatformOverride = TargetPlatform.iOS; ByteData byteData = codec.encodeMessage(requestConfig)!; RequestConfiguration result = codec.decodeMessage(byteData); expect(result.maxAdContentRating, MaxAdContentRating.ma); - expect(result.tagForChildDirectedTreatment, - TagForChildDirectedTreatment.yes); + expect( + result.tagForChildDirectedTreatment, + TagForChildDirectedTreatment.yes, + ); expect(result.tagForUnderAgeOfConsent, TagForUnderAgeOfConsent.no); expect(result.testDeviceIds, ['test-device-id']); @@ -438,8 +477,10 @@ void main() { result = codec.decodeMessage(byteData); expect(result.maxAdContentRating, MaxAdContentRating.ma); - expect(result.tagForChildDirectedTreatment, - TagForChildDirectedTreatment.yes); + expect( + result.tagForChildDirectedTreatment, + TagForChildDirectedTreatment.yes, + ); expect(result.tagForUnderAgeOfConsent, TagForUnderAgeOfConsent.no); expect(result.testDeviceIds, ['test-device-id']); }); @@ -455,39 +496,49 @@ void main() { await MobileAds.instance.updateRequestConfiguration(requestConfiguration); debugDefaultTargetPlatformOverride = TargetPlatform.iOS; - RequestConfiguration result = - await MobileAds.instance.getRequestConfiguration(); + RequestConfiguration result = await MobileAds.instance + .getRequestConfiguration(); expect(result.maxAdContentRating, MaxAdContentRating.ma); - expect(result.tagForChildDirectedTreatment, - TagForChildDirectedTreatment.yes); + expect( + result.tagForChildDirectedTreatment, + TagForChildDirectedTreatment.yes, + ); expect(result.tagForUnderAgeOfConsent, TagForUnderAgeOfConsent.no); expect(result.testDeviceIds, ['test-device-id']); expect(log, [ - isMethodCall('MobileAds#updateRequestConfiguration', arguments: { - 'maxAdContentRating': MaxAdContentRating.ma, - 'tagForChildDirectedTreatment': TagForChildDirectedTreatment.yes, - 'testDeviceIds': ['test-device-id'], - 'tagForUnderAgeOfConsent': TagForUnderAgeOfConsent.no, - }), - isMethodCall('MobileAds#getRequestConfiguration', arguments: null) + isMethodCall( + 'MobileAds#updateRequestConfiguration', + arguments: { + 'maxAdContentRating': MaxAdContentRating.ma, + 'tagForChildDirectedTreatment': TagForChildDirectedTreatment.yes, + 'testDeviceIds': ['test-device-id'], + 'tagForUnderAgeOfConsent': TagForUnderAgeOfConsent.no, + }, + ), + isMethodCall('MobileAds#getRequestConfiguration', arguments: null), ]); debugDefaultTargetPlatformOverride = TargetPlatform.android; result = await MobileAds.instance.getRequestConfiguration(); expect(result.maxAdContentRating, MaxAdContentRating.ma); - expect(result.tagForChildDirectedTreatment, - TagForChildDirectedTreatment.yes); + expect( + result.tagForChildDirectedTreatment, + TagForChildDirectedTreatment.yes, + ); expect(result.tagForUnderAgeOfConsent, TagForUnderAgeOfConsent.no); expect(result.testDeviceIds, ['test-device-id']); expect(log, [ - isMethodCall('MobileAds#updateRequestConfiguration', arguments: { - 'maxAdContentRating': MaxAdContentRating.ma, - 'tagForChildDirectedTreatment': TagForChildDirectedTreatment.yes, - 'testDeviceIds': ['test-device-id'], - 'tagForUnderAgeOfConsent': TagForUnderAgeOfConsent.no, - }), + isMethodCall( + 'MobileAds#updateRequestConfiguration', + arguments: { + 'maxAdContentRating': MaxAdContentRating.ma, + 'tagForChildDirectedTreatment': TagForChildDirectedTreatment.yes, + 'testDeviceIds': ['test-device-id'], + 'tagForUnderAgeOfConsent': TagForUnderAgeOfConsent.no, + }, + ), + isMethodCall('MobileAds#getRequestConfiguration', arguments: null), isMethodCall('MobileAds#getRequestConfiguration', arguments: null), - isMethodCall('MobileAds#getRequestConfiguration', arguments: null) ]); }); @@ -527,8 +578,9 @@ void main() { }); test('encode/decode empty native template style', () { - final templateStyle = - NativeTemplateStyle(templateType: TemplateType.medium); + final templateStyle = NativeTemplateStyle( + templateType: TemplateType.medium, + ); final byteData = codec.encodeMessage(templateStyle); final result = codec.decodeMessage(byteData); expect(result, templateStyle); @@ -537,20 +589,19 @@ void main() { test('encode/decode non-empty native template style, ios', () { debugDefaultTargetPlatformOverride = TargetPlatform.iOS; final templateStyle = NativeTemplateStyle( - templateType: TemplateType.medium, - callToActionTextStyle: NativeTemplateTextStyle(), - primaryTextStyle: NativeTemplateTextStyle( - textColor: Colors.blue.shade900, - ), - secondaryTextStyle: NativeTemplateTextStyle( - backgroundColor: Colors.green.shade900, - style: NativeTemplateFontStyle.italic, - ), - tertiaryTextStyle: NativeTemplateTextStyle( - size: 15, - ), - mainBackgroundColor: Colors.cyan.shade900, - cornerRadius: 12); + templateType: TemplateType.medium, + callToActionTextStyle: NativeTemplateTextStyle(), + primaryTextStyle: NativeTemplateTextStyle( + textColor: Colors.blue.shade900, + ), + secondaryTextStyle: NativeTemplateTextStyle( + backgroundColor: Colors.green.shade900, + style: NativeTemplateFontStyle.italic, + ), + tertiaryTextStyle: NativeTemplateTextStyle(size: 15), + mainBackgroundColor: Colors.cyan.shade900, + cornerRadius: 12, + ); final byteData = codec.encodeMessage(templateStyle); final result = codec.decodeMessage(byteData); expect(result, templateStyle); @@ -559,20 +610,19 @@ void main() { test('encode/decode non-empty native template style, android', () { debugDefaultTargetPlatformOverride = TargetPlatform.android; final templateStyle = NativeTemplateStyle( - templateType: TemplateType.medium, - callToActionTextStyle: NativeTemplateTextStyle(), - primaryTextStyle: NativeTemplateTextStyle( - textColor: Colors.blue.shade900, - ), - secondaryTextStyle: NativeTemplateTextStyle( - backgroundColor: Colors.green.shade900, - style: NativeTemplateFontStyle.italic, - ), - tertiaryTextStyle: NativeTemplateTextStyle( - size: 15, - ), - mainBackgroundColor: Color.fromARGB(1, 2, 3, 4), - cornerRadius: 12); + templateType: TemplateType.medium, + callToActionTextStyle: NativeTemplateTextStyle(), + primaryTextStyle: NativeTemplateTextStyle( + textColor: Colors.blue.shade900, + ), + secondaryTextStyle: NativeTemplateTextStyle( + backgroundColor: Colors.green.shade900, + style: NativeTemplateFontStyle.italic, + ), + tertiaryTextStyle: NativeTemplateTextStyle(size: 15), + mainBackgroundColor: Color.fromARGB(1, 2, 3, 4), + cornerRadius: 12, + ); final byteData = codec.encodeMessage(templateStyle); final NativeTemplateStyle result = codec.decodeMessage(byteData); // cornerRadius is dropped on android diff --git a/packages/google_mobile_ads/test/mobile_ads_test.mocks.dart b/packages/google_mobile_ads/test/mobile_ads_test.mocks.dart index 9a55ce9e5..95d6bd0b9 100644 --- a/packages/google_mobile_ads/test/mobile_ads_test.mocks.dart +++ b/packages/google_mobile_ads/test/mobile_ads_test.mocks.dart @@ -36,76 +36,41 @@ import 'package:webview_flutter_platform_interface/webview_flutter_platform_inte class _FakePlatformWebViewController_0 extends _i1.SmartFake implements _i2.PlatformWebViewController { - _FakePlatformWebViewController_0( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakePlatformWebViewController_0(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeObject_1 extends _i1.SmartFake implements Object { - _FakeObject_1( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeObject_1(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeOffset_2 extends _i1.SmartFake implements _i3.Offset { - _FakeOffset_2( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeOffset_2(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeMethodChannel_3 extends _i1.SmartFake implements _i4.MethodChannel { - _FakeMethodChannel_3( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeMethodChannel_3(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeWebViewControllerUtil_4 extends _i1.SmartFake implements _i5.WebViewControllerUtil { - _FakeWebViewControllerUtil_4( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeWebViewControllerUtil_4(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeInitializationStatus_5 extends _i1.SmartFake implements _i6.InitializationStatus { - _FakeInitializationStatus_5( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeInitializationStatus_5(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeRequestConfiguration_6 extends _i1.SmartFake implements _i7.RequestConfiguration { - _FakeRequestConfiguration_6( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeRequestConfiguration_6(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } /// A class which mocks [WebViewController]. @@ -117,48 +82,42 @@ class MockWebViewController extends _i1.Mock implements _i8.WebViewController { } @override - _i2.PlatformWebViewController get platform => (super.noSuchMethod( - Invocation.getter(#platform), - returnValue: _FakePlatformWebViewController_0( - this, - Invocation.getter(#platform), - ), - ) as _i2.PlatformWebViewController); + _i2.PlatformWebViewController get platform => + (super.noSuchMethod( + Invocation.getter(#platform), + returnValue: _FakePlatformWebViewController_0( + this, + Invocation.getter(#platform), + ), + ) + as _i2.PlatformWebViewController); @override - _i9.Future loadFile(String? absoluteFilePath) => (super.noSuchMethod( - Invocation.method( - #loadFile, - [absoluteFilePath], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); + _i9.Future loadFile(String? absoluteFilePath) => + (super.noSuchMethod( + Invocation.method(#loadFile, [absoluteFilePath]), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); @override - _i9.Future loadFlutterAsset(String? key) => (super.noSuchMethod( - Invocation.method( - #loadFlutterAsset, - [key], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); + _i9.Future loadFlutterAsset(String? key) => + (super.noSuchMethod( + Invocation.method(#loadFlutterAsset, [key]), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); @override - _i9.Future loadHtmlString( - String? html, { - String? baseUrl, - }) => + _i9.Future loadHtmlString(String? html, {String? baseUrl}) => (super.noSuchMethod( - Invocation.method( - #loadHtmlString, - [html], - {#baseUrl: baseUrl}, - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); + Invocation.method(#loadHtmlString, [html], {#baseUrl: baseUrl}), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); @override _i9.Future loadRequest( @@ -168,132 +127,115 @@ class MockWebViewController extends _i1.Mock implements _i8.WebViewController { _i10.Uint8List? body, }) => (super.noSuchMethod( - Invocation.method( - #loadRequest, - [uri], - { - #method: method, - #headers: headers, - #body: body, - }, - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); - - @override - _i9.Future currentUrl() => (super.noSuchMethod( - Invocation.method( - #currentUrl, - [], - ), - returnValue: _i9.Future.value(), - ) as _i9.Future); - - @override - _i9.Future canGoBack() => (super.noSuchMethod( - Invocation.method( - #canGoBack, - [], - ), - returnValue: _i9.Future.value(false), - ) as _i9.Future); - - @override - _i9.Future canGoForward() => (super.noSuchMethod( - Invocation.method( - #canGoForward, - [], - ), - returnValue: _i9.Future.value(false), - ) as _i9.Future); - - @override - _i9.Future goBack() => (super.noSuchMethod( - Invocation.method( - #goBack, - [], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); - - @override - _i9.Future goForward() => (super.noSuchMethod( - Invocation.method( - #goForward, - [], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); - - @override - _i9.Future reload() => (super.noSuchMethod( - Invocation.method( - #reload, - [], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); + Invocation.method( + #loadRequest, + [uri], + {#method: method, #headers: headers, #body: body}, + ), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); + + @override + _i9.Future currentUrl() => + (super.noSuchMethod( + Invocation.method(#currentUrl, []), + returnValue: _i9.Future.value(), + ) + as _i9.Future); + + @override + _i9.Future canGoBack() => + (super.noSuchMethod( + Invocation.method(#canGoBack, []), + returnValue: _i9.Future.value(false), + ) + as _i9.Future); + + @override + _i9.Future canGoForward() => + (super.noSuchMethod( + Invocation.method(#canGoForward, []), + returnValue: _i9.Future.value(false), + ) + as _i9.Future); + + @override + _i9.Future goBack() => + (super.noSuchMethod( + Invocation.method(#goBack, []), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); + + @override + _i9.Future goForward() => + (super.noSuchMethod( + Invocation.method(#goForward, []), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); + + @override + _i9.Future reload() => + (super.noSuchMethod( + Invocation.method(#reload, []), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); @override _i9.Future setNavigationDelegate(_i11.NavigationDelegate? delegate) => (super.noSuchMethod( - Invocation.method( - #setNavigationDelegate, - [delegate], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); - - @override - _i9.Future clearCache() => (super.noSuchMethod( - Invocation.method( - #clearCache, - [], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); - - @override - _i9.Future clearLocalStorage() => (super.noSuchMethod( - Invocation.method( - #clearLocalStorage, - [], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); - - @override - _i9.Future runJavaScript(String? javaScript) => (super.noSuchMethod( - Invocation.method( - #runJavaScript, - [javaScript], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); + Invocation.method(#setNavigationDelegate, [delegate]), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); + + @override + _i9.Future clearCache() => + (super.noSuchMethod( + Invocation.method(#clearCache, []), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); + + @override + _i9.Future clearLocalStorage() => + (super.noSuchMethod( + Invocation.method(#clearLocalStorage, []), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); + + @override + _i9.Future runJavaScript(String? javaScript) => + (super.noSuchMethod( + Invocation.method(#runJavaScript, [javaScript]), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); @override _i9.Future runJavaScriptReturningResult(String? javaScript) => (super.noSuchMethod( - Invocation.method( - #runJavaScriptReturningResult, - [javaScript], - ), - returnValue: _i9.Future.value(_FakeObject_1( - this, - Invocation.method( - #runJavaScriptReturningResult, - [javaScript], - ), - )), - ) as _i9.Future); + Invocation.method(#runJavaScriptReturningResult, [javaScript]), + returnValue: _i9.Future.value( + _FakeObject_1( + this, + Invocation.method(#runJavaScriptReturningResult, [javaScript]), + ), + ), + ) + as _i9.Future); @override _i9.Future addJavaScriptChannel( @@ -301,196 +243,172 @@ class MockWebViewController extends _i1.Mock implements _i8.WebViewController { required void Function(_i2.JavaScriptMessage)? onMessageReceived, }) => (super.noSuchMethod( - Invocation.method( - #addJavaScriptChannel, - [name], - {#onMessageReceived: onMessageReceived}, - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); + Invocation.method( + #addJavaScriptChannel, + [name], + {#onMessageReceived: onMessageReceived}, + ), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); @override _i9.Future removeJavaScriptChannel(String? javaScriptChannelName) => (super.noSuchMethod( - Invocation.method( - #removeJavaScriptChannel, - [javaScriptChannelName], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); + Invocation.method(#removeJavaScriptChannel, [ + javaScriptChannelName, + ]), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); @override - _i9.Future getTitle() => (super.noSuchMethod( - Invocation.method( - #getTitle, - [], - ), - returnValue: _i9.Future.value(), - ) as _i9.Future); + _i9.Future getTitle() => + (super.noSuchMethod( + Invocation.method(#getTitle, []), + returnValue: _i9.Future.value(), + ) + as _i9.Future); @override - _i9.Future scrollTo( - int? x, - int? y, - ) => + _i9.Future scrollTo(int? x, int? y) => (super.noSuchMethod( - Invocation.method( - #scrollTo, - [ - x, - y, - ], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); - - @override - _i9.Future scrollBy( - int? x, - int? y, - ) => + Invocation.method(#scrollTo, [x, y]), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); + + @override + _i9.Future scrollBy(int? x, int? y) => (super.noSuchMethod( - Invocation.method( - #scrollBy, - [ - x, - y, - ], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); - - @override - _i9.Future<_i3.Offset> getScrollPosition() => (super.noSuchMethod( - Invocation.method( - #getScrollPosition, - [], - ), - returnValue: _i9.Future<_i3.Offset>.value(_FakeOffset_2( - this, - Invocation.method( - #getScrollPosition, - [], - ), - )), - ) as _i9.Future<_i3.Offset>); - - @override - _i9.Future enableZoom(bool? enabled) => (super.noSuchMethod( - Invocation.method( - #enableZoom, - [enabled], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); - - @override - _i9.Future setBackgroundColor(_i3.Color? color) => (super.noSuchMethod( - Invocation.method( - #setBackgroundColor, - [color], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); + Invocation.method(#scrollBy, [x, y]), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); + + @override + _i9.Future<_i3.Offset> getScrollPosition() => + (super.noSuchMethod( + Invocation.method(#getScrollPosition, []), + returnValue: _i9.Future<_i3.Offset>.value( + _FakeOffset_2(this, Invocation.method(#getScrollPosition, [])), + ), + ) + as _i9.Future<_i3.Offset>); + + @override + _i9.Future enableZoom(bool? enabled) => + (super.noSuchMethod( + Invocation.method(#enableZoom, [enabled]), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); + + @override + _i9.Future setBackgroundColor(_i3.Color? color) => + (super.noSuchMethod( + Invocation.method(#setBackgroundColor, [color]), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); @override _i9.Future setJavaScriptMode(_i2.JavaScriptMode? javaScriptMode) => (super.noSuchMethod( - Invocation.method( - #setJavaScriptMode, - [javaScriptMode], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); + Invocation.method(#setJavaScriptMode, [javaScriptMode]), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); @override - _i9.Future setUserAgent(String? userAgent) => (super.noSuchMethod( - Invocation.method( - #setUserAgent, - [userAgent], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); + _i9.Future setUserAgent(String? userAgent) => + (super.noSuchMethod( + Invocation.method(#setUserAgent, [userAgent]), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); @override _i9.Future setOnConsoleMessage( - void Function(_i2.JavaScriptConsoleMessage)? onConsoleMessage) => + void Function(_i2.JavaScriptConsoleMessage)? onConsoleMessage, + ) => (super.noSuchMethod( - Invocation.method( - #setOnConsoleMessage, - [onConsoleMessage], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); + Invocation.method(#setOnConsoleMessage, [onConsoleMessage]), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); @override _i9.Future setOnJavaScriptAlertDialog( - _i9.Future Function(_i2.JavaScriptAlertDialogRequest)? - onJavaScriptAlertDialog) => + _i9.Future Function(_i2.JavaScriptAlertDialogRequest)? + onJavaScriptAlertDialog, + ) => (super.noSuchMethod( - Invocation.method( - #setOnJavaScriptAlertDialog, - [onJavaScriptAlertDialog], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); + Invocation.method(#setOnJavaScriptAlertDialog, [ + onJavaScriptAlertDialog, + ]), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); @override _i9.Future setOnJavaScriptConfirmDialog( - _i9.Future Function(_i2.JavaScriptConfirmDialogRequest)? - onJavaScriptConfirmDialog) => + _i9.Future Function(_i2.JavaScriptConfirmDialogRequest)? + onJavaScriptConfirmDialog, + ) => (super.noSuchMethod( - Invocation.method( - #setOnJavaScriptConfirmDialog, - [onJavaScriptConfirmDialog], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); + Invocation.method(#setOnJavaScriptConfirmDialog, [ + onJavaScriptConfirmDialog, + ]), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); @override _i9.Future setOnJavaScriptTextInputDialog( - _i9.Future Function(_i2.JavaScriptTextInputDialogRequest)? - onJavaScriptTextInputDialog) => + _i9.Future Function(_i2.JavaScriptTextInputDialogRequest)? + onJavaScriptTextInputDialog, + ) => (super.noSuchMethod( - Invocation.method( - #setOnJavaScriptTextInputDialog, - [onJavaScriptTextInputDialog], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); + Invocation.method(#setOnJavaScriptTextInputDialog, [ + onJavaScriptTextInputDialog, + ]), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); @override - _i9.Future getUserAgent() => (super.noSuchMethod( - Invocation.method( - #getUserAgent, - [], - ), - returnValue: _i9.Future.value(), - ) as _i9.Future); + _i9.Future getUserAgent() => + (super.noSuchMethod( + Invocation.method(#getUserAgent, []), + returnValue: _i9.Future.value(), + ) + as _i9.Future); @override _i9.Future setOnScrollPositionChange( - void Function(_i2.ScrollPositionChange)? onScrollPositionChange) => - (super.noSuchMethod( - Invocation.method( - #setOnScrollPositionChange, - [onScrollPositionChange], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); + void Function(_i2.ScrollPositionChange)? onScrollPositionChange, + ) => + (super.noSuchMethod( + Invocation.method(#setOnScrollPositionChange, [ + onScrollPositionChange, + ]), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); } /// A class which mocks [AdInstanceManager]. @@ -502,263 +420,231 @@ class MockAdInstanceManager extends _i1.Mock implements _i12.AdInstanceManager { } @override - _i4.MethodChannel get channel => (super.noSuchMethod( - Invocation.getter(#channel), - returnValue: _FakeMethodChannel_3( - this, - Invocation.getter(#channel), - ), - ) as _i4.MethodChannel); - - @override - _i5.WebViewControllerUtil get webViewControllerUtil => (super.noSuchMethod( - Invocation.getter(#webViewControllerUtil), - returnValue: _FakeWebViewControllerUtil_4( - this, - Invocation.getter(#webViewControllerUtil), - ), - ) as _i5.WebViewControllerUtil); + _i4.MethodChannel get channel => + (super.noSuchMethod( + Invocation.getter(#channel), + returnValue: _FakeMethodChannel_3( + this, + Invocation.getter(#channel), + ), + ) + as _i4.MethodChannel); @override - _i9.Future<_i6.InitializationStatus> initialize() => (super.noSuchMethod( - Invocation.method( - #initialize, - [], - ), - returnValue: _i9.Future<_i6.InitializationStatus>.value( - _FakeInitializationStatus_5( - this, - Invocation.method( - #initialize, - [], - ), - )), - ) as _i9.Future<_i6.InitializationStatus>); + _i5.WebViewControllerUtil get webViewControllerUtil => + (super.noSuchMethod( + Invocation.getter(#webViewControllerUtil), + returnValue: _FakeWebViewControllerUtil_4( + this, + Invocation.getter(#webViewControllerUtil), + ), + ) + as _i5.WebViewControllerUtil); @override - _i9.Future<_i13.AdSize?> getAdSize(_i13.Ad? ad) => (super.noSuchMethod( - Invocation.method( - #getAdSize, - [ad], - ), - returnValue: _i9.Future<_i13.AdSize?>.value(), - ) as _i9.Future<_i13.AdSize?>); + _i9.Future<_i6.InitializationStatus> initialize() => + (super.noSuchMethod( + Invocation.method(#initialize, []), + returnValue: _i9.Future<_i6.InitializationStatus>.value( + _FakeInitializationStatus_5( + this, + Invocation.method(#initialize, []), + ), + ), + ) + as _i9.Future<_i6.InitializationStatus>); + + @override + _i9.Future<_i13.AdSize?> getAdSize(_i13.Ad? ad) => + (super.noSuchMethod( + Invocation.method(#getAdSize, [ad]), + returnValue: _i9.Future<_i13.AdSize?>.value(), + ) + as _i9.Future<_i13.AdSize?>); @override - _i13.Ad? adFor(int? adId) => (super.noSuchMethod(Invocation.method( - #adFor, - [adId], - )) as _i13.Ad?); + _i13.Ad? adFor(int? adId) => + (super.noSuchMethod(Invocation.method(#adFor, [adId])) as _i13.Ad?); @override - int? adIdFor(_i13.Ad? ad) => (super.noSuchMethod(Invocation.method( - #adIdFor, - [ad], - )) as int?); + int? adIdFor(_i13.Ad? ad) => + (super.noSuchMethod(Invocation.method(#adIdFor, [ad])) as int?); @override - bool isWidgetAdIdMounted(int? adId) => (super.noSuchMethod( - Invocation.method( - #isWidgetAdIdMounted, - [adId], - ), - returnValue: false, - ) as bool); + bool isWidgetAdIdMounted(int? adId) => + (super.noSuchMethod( + Invocation.method(#isWidgetAdIdMounted, [adId]), + returnValue: false, + ) + as bool); @override void mountWidgetAdId(int? adId) => super.noSuchMethod( - Invocation.method( - #mountWidgetAdId, - [adId], - ), - returnValueForMissingStub: null, - ); + Invocation.method(#mountWidgetAdId, [adId]), + returnValueForMissingStub: null, + ); @override void unmountWidgetAdId(int? adId) => super.noSuchMethod( - Invocation.method( - #unmountWidgetAdId, - [adId], - ), - returnValueForMissingStub: null, - ); + Invocation.method(#unmountWidgetAdId, [adId]), + returnValueForMissingStub: null, + ); @override - _i9.Future loadBannerAd(_i13.BannerAd? ad) => (super.noSuchMethod( - Invocation.method( - #loadBannerAd, - [ad], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); + _i9.Future loadBannerAd(_i13.BannerAd? ad) => + (super.noSuchMethod( + Invocation.method(#loadBannerAd, [ad]), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); @override _i9.Future loadInterstitialAd(_i13.InterstitialAd? ad) => (super.noSuchMethod( - Invocation.method( - #loadInterstitialAd, - [ad], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); + Invocation.method(#loadInterstitialAd, [ad]), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); @override - _i9.Future loadNativeAd(_i13.NativeAd? ad) => (super.noSuchMethod( - Invocation.method( - #loadNativeAd, - [ad], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); + _i9.Future loadNativeAd(_i13.NativeAd? ad) => + (super.noSuchMethod( + Invocation.method(#loadNativeAd, [ad]), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); @override - _i9.Future loadRewardedAd(_i13.RewardedAd? ad) => (super.noSuchMethod( - Invocation.method( - #loadRewardedAd, - [ad], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); + _i9.Future loadRewardedAd(_i13.RewardedAd? ad) => + (super.noSuchMethod( + Invocation.method(#loadRewardedAd, [ad]), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); @override _i9.Future loadRewardedInterstitialAd( - _i13.RewardedInterstitialAd? ad) => + _i13.RewardedInterstitialAd? ad, + ) => (super.noSuchMethod( - Invocation.method( - #loadRewardedInterstitialAd, - [ad], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); + Invocation.method(#loadRewardedInterstitialAd, [ad]), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); @override - _i9.Future loadAppOpenAd(_i13.AppOpenAd? ad) => (super.noSuchMethod( - Invocation.method( - #loadAppOpenAd, - [ad], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); + _i9.Future loadAppOpenAd(_i13.AppOpenAd? ad) => + (super.noSuchMethod( + Invocation.method(#loadAppOpenAd, [ad]), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); @override _i9.Future loadAdManagerBannerAd(_i13.AdManagerBannerAd? ad) => (super.noSuchMethod( - Invocation.method( - #loadAdManagerBannerAd, - [ad], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); + Invocation.method(#loadAdManagerBannerAd, [ad]), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); @override _i9.Future loadFluidAd(_i13.FluidAdManagerBannerAd? ad) => (super.noSuchMethod( - Invocation.method( - #loadFluidAd, - [ad], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); + Invocation.method(#loadFluidAd, [ad]), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); @override _i9.Future loadAdManagerInterstitialAd( - _i13.AdManagerInterstitialAd? ad) => + _i13.AdManagerInterstitialAd? ad, + ) => (super.noSuchMethod( - Invocation.method( - #loadAdManagerInterstitialAd, - [ad], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); + Invocation.method(#loadAdManagerInterstitialAd, [ad]), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); @override - _i9.Future disposeAd(_i13.Ad? ad) => (super.noSuchMethod( - Invocation.method( - #disposeAd, - [ad], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); + _i9.Future disposeAd(_i13.Ad? ad) => + (super.noSuchMethod( + Invocation.method(#disposeAd, [ad]), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); @override _i9.Future showAdWithoutView(_i13.AdWithoutView? ad) => (super.noSuchMethod( - Invocation.method( - #showAdWithoutView, - [ad], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); + Invocation.method(#showAdWithoutView, [ad]), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); @override _i9.Future<_i7.RequestConfiguration> getRequestConfiguration() => (super.noSuchMethod( - Invocation.method( - #getRequestConfiguration, - [], - ), - returnValue: _i9.Future<_i7.RequestConfiguration>.value( - _FakeRequestConfiguration_6( - this, - Invocation.method( - #getRequestConfiguration, - [], - ), - )), - ) as _i9.Future<_i7.RequestConfiguration>); + Invocation.method(#getRequestConfiguration, []), + returnValue: _i9.Future<_i7.RequestConfiguration>.value( + _FakeRequestConfiguration_6( + this, + Invocation.method(#getRequestConfiguration, []), + ), + ), + ) + as _i9.Future<_i7.RequestConfiguration>); @override _i9.Future updateRequestConfiguration( - _i7.RequestConfiguration? requestConfiguration) => - (super.noSuchMethod( - Invocation.method( - #updateRequestConfiguration, - [requestConfiguration], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); - - @override - _i9.Future setSameAppKeyEnabled(bool? isEnabled) => (super.noSuchMethod( - Invocation.method( - #setSameAppKeyEnabled, - [isEnabled], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); - - @override - _i9.Future setAppMuted(bool? muted) => (super.noSuchMethod( - Invocation.method( - #setAppMuted, - [muted], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); - - @override - _i9.Future setAppVolume(double? volume) => (super.noSuchMethod( - Invocation.method( - #setAppVolume, - [volume], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); + _i7.RequestConfiguration? requestConfiguration, + ) => + (super.noSuchMethod( + Invocation.method(#updateRequestConfiguration, [ + requestConfiguration, + ]), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); + + @override + _i9.Future setSameAppKeyEnabled(bool? isEnabled) => + (super.noSuchMethod( + Invocation.method(#setSameAppKeyEnabled, [isEnabled]), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); + + @override + _i9.Future setAppMuted(bool? muted) => + (super.noSuchMethod( + Invocation.method(#setAppMuted, [muted]), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); + + @override + _i9.Future setAppVolume(double? volume) => + (super.noSuchMethod( + Invocation.method(#setAppVolume, [volume]), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); @override _i9.Future setImmersiveMode( @@ -766,51 +652,42 @@ class MockAdInstanceManager extends _i1.Mock implements _i12.AdInstanceManager { bool? immersiveModeEnabled, ) => (super.noSuchMethod( - Invocation.method( - #setImmersiveMode, - [ - ad, - immersiveModeEnabled, - ], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); - - @override - _i9.Future disableSDKCrashReporting() => (super.noSuchMethod( - Invocation.method( - #disableSDKCrashReporting, - [], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); - - @override - _i9.Future disableMediationInitialization() => (super.noSuchMethod( - Invocation.method( - #disableMediationInitialization, - [], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); - - @override - _i9.Future getVersionString() => (super.noSuchMethod( - Invocation.method( - #getVersionString, - [], - ), - returnValue: _i9.Future.value(_i14.dummyValue( - this, - Invocation.method( - #getVersionString, - [], - ), - )), - ) as _i9.Future); + Invocation.method(#setImmersiveMode, [ad, immersiveModeEnabled]), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); + + @override + _i9.Future disableSDKCrashReporting() => + (super.noSuchMethod( + Invocation.method(#disableSDKCrashReporting, []), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); + + @override + _i9.Future disableMediationInitialization() => + (super.noSuchMethod( + Invocation.method(#disableMediationInitialization, []), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); + + @override + _i9.Future getVersionString() => + (super.noSuchMethod( + Invocation.method(#getVersionString, []), + returnValue: _i9.Future.value( + _i14.dummyValue( + this, + Invocation.method(#getVersionString, []), + ), + ), + ) + as _i9.Future); @override _i9.Future setServerSideVerificationOptions( @@ -818,54 +695,42 @@ class MockAdInstanceManager extends _i1.Mock implements _i12.AdInstanceManager { _i13.Ad? ad, ) => (super.noSuchMethod( - Invocation.method( - #setServerSideVerificationOptions, - [ - options, - ad, - ], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); + Invocation.method(#setServerSideVerificationOptions, [options, ad]), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); @override - _i9.Future openDebugMenu(String? adUnitId) => (super.noSuchMethod( - Invocation.method( - #openDebugMenu, - [adUnitId], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); + _i9.Future openDebugMenu(String? adUnitId) => + (super.noSuchMethod( + Invocation.method(#openDebugMenu, [adUnitId]), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); @override _i9.Future registerWebView(_i8.WebViewController? controller) => (super.noSuchMethod( - Invocation.method( - #registerWebView, - [controller], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); + Invocation.method(#registerWebView, [controller]), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) + as _i9.Future); @override - int getWebViewId(_i8.WebViewController? controller) => (super.noSuchMethod( - Invocation.method( - #getWebViewId, - [controller], - ), - returnValue: 0, - ) as int); + int getWebViewId(_i8.WebViewController? controller) => + (super.noSuchMethod( + Invocation.method(#getWebViewId, [controller]), + returnValue: 0, + ) + as int); @override void openAdInspector(_i15.OnAdInspectorClosedListener? listener) => super.noSuchMethod( - Invocation.method( - #openAdInspector, - [listener], - ), + Invocation.method(#openAdInspector, [listener]), returnValueForMissingStub: null, ); } @@ -882,10 +747,8 @@ class MockWebViewControllerUtil extends _i1.Mock @override int webViewIdentifier(_i8.WebViewController? controller) => (super.noSuchMethod( - Invocation.method( - #webViewIdentifier, - [controller], - ), - returnValue: 0, - ) as int); + Invocation.method(#webViewIdentifier, [controller]), + returnValue: 0, + ) + as int); } diff --git a/packages/google_mobile_ads/test/rewarded_interstitial_ad_test.dart b/packages/google_mobile_ads/test/rewarded_interstitial_ad_test.dart index 1eb2b15f1..96bf75db1 100644 --- a/packages/google_mobile_ads/test/rewarded_interstitial_ad_test.dart +++ b/packages/google_mobile_ads/test/rewarded_interstitial_ad_test.dart @@ -30,23 +30,25 @@ void main() { setUp(() async { log.clear(); - instanceManager = - AdInstanceManager('plugins.flutter.io/google_mobile_ads'); + instanceManager = AdInstanceManager( + 'plugins.flutter.io/google_mobile_ads', + ); TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger - .setMockMethodCallHandler(instanceManager.channel, - (MethodCall methodCall) async { - log.add(methodCall); - switch (methodCall.method) { - case 'loadRewardedInterstitialAd': - case 'showAdWithoutView': - case 'disposeAd': - case 'setServerSideVerificationOptions': - return Future.value(); - default: - assert(false); - return null; - } - }); + .setMockMethodCallHandler(instanceManager.channel, ( + MethodCall methodCall, + ) async { + log.add(methodCall); + switch (methodCall.method) { + case 'loadRewardedInterstitialAd': + case 'showAdWithoutView': + case 'disposeAd': + case 'setServerSideVerificationOptions': + return Future.value(); + default: + assert(false); + return null; + } + }); }); test('load show rewarded interstitial android', () async { @@ -57,10 +59,11 @@ void main() { adUnitId: 'test-ad-unit', request: request, rewardedInterstitialAdLoadCallback: RewardedInterstitialAdLoadCallback( - onAdLoaded: (ad) { - rewardedInterstitial = ad; - }, - onAdFailedToLoad: (error) => null), + onAdLoaded: (ad) { + rewardedInterstitial = ad; + }, + onAdFailedToLoad: (error) => null, + ), ); RewardedInterstitialAd createdAd = @@ -68,24 +71,29 @@ void main() { (createdAd).rewardedInterstitialAdLoadCallback.onAdLoaded(createdAd); expect(log, [ - isMethodCall('loadRewardedInterstitialAd', arguments: { - 'adId': 0, - 'adUnitId': 'test-ad-unit', - 'request': request, - 'adManagerRequest': null, - }), + isMethodCall( + 'loadRewardedInterstitialAd', + arguments: { + 'adId': 0, + 'adUnitId': 'test-ad-unit', + 'request': request, + 'adManagerRequest': null, + }, + ), ]); expect(instanceManager.adFor(0), isNotNull); expect(rewardedInterstitial, createdAd); log.clear(); - await rewardedInterstitial! - .show(onUserEarnedReward: (ad, reward) => null); + await rewardedInterstitial!.show( + onUserEarnedReward: (ad, reward) => null, + ); expect(log, [ - isMethodCall('showAdWithoutView', arguments: { - 'adId': 0, - }) + isMethodCall( + 'showAdWithoutView', + arguments: {'adId': 0}, + ), ]); // Check that full screen events are passed correctly. @@ -102,30 +110,41 @@ void main() { rewardedInterstitial!.fullScreenContentCallback = FullScreenContentCallback( - onAdImpression: (ad) => impressionCompleter.complete(ad), - onAdShowedFullScreenContent: (ad) => showedCompleter.complete(ad), - onAdFailedToShowFullScreenContent: (ad, error) => - failedToShowCompleter.complete(ad), - onAdDismissedFullScreenContent: (ad) => dismissedCompleter.complete(ad), - onAdClicked: (ad) => clickedCompleter.complete(ad), - ); + onAdImpression: (ad) => impressionCompleter.complete(ad), + onAdShowedFullScreenContent: (ad) => showedCompleter.complete(ad), + onAdFailedToShowFullScreenContent: (ad, error) => + failedToShowCompleter.complete(ad), + onAdDismissedFullScreenContent: (ad) => + dismissedCompleter.complete(ad), + onAdClicked: (ad) => clickedCompleter.complete(ad), + ); await TestUtil.sendAdEvent(0, 'onAdImpression', instanceManager); expect(await impressionCompleter.future, rewardedInterstitial); await TestUtil.sendAdEvent( - 0, 'onAdShowedFullScreenContent', instanceManager); + 0, + 'onAdShowedFullScreenContent', + instanceManager, + ); expect(await showedCompleter.future, rewardedInterstitial); await TestUtil.sendAdEvent( - 0, 'onAdDismissedFullScreenContent', instanceManager); + 0, + 'onAdDismissedFullScreenContent', + instanceManager, + ); expect(await dismissedCompleter.future, rewardedInterstitial); await TestUtil.sendAdEvent(0, 'onAdClicked', instanceManager); expect(await clickedCompleter.future, rewardedInterstitial); - await TestUtil.sendAdEvent(0, 'onFailedToShowFullScreenContent', - instanceManager, {'error': AdError(1, 'domain', 'message')}); + await TestUtil.sendAdEvent( + 0, + 'onFailedToShowFullScreenContent', + instanceManager, + {'error': AdError(1, 'domain', 'message')}, + ); expect(await failedToShowCompleter.future, rewardedInterstitial); // Check paid event callback @@ -140,7 +159,11 @@ void main() { 'currencyCode': 'USD', }; await TestUtil.sendAdEvent( - 0, 'onPaidEvent', instanceManager, paidEventArgs); + 0, + 'onPaidEvent', + instanceManager, + paidEventArgs, + ); List paidEventCallback = await paidEventCompleter.future; expect(paidEventCallback[0], rewardedInterstitial); expect(paidEventCallback[1], 1.2345); @@ -156,10 +179,11 @@ void main() { adUnitId: 'test-ad-unit', request: request, rewardedInterstitialAdLoadCallback: RewardedInterstitialAdLoadCallback( - onAdLoaded: (ad) { - rewardedInterstitial = ad; - }, - onAdFailedToLoad: (error) => null), + onAdLoaded: (ad) { + rewardedInterstitial = ad; + }, + onAdFailedToLoad: (error) => null, + ), ); RewardedInterstitialAd createdAd = @@ -167,24 +191,29 @@ void main() { (createdAd).rewardedInterstitialAdLoadCallback.onAdLoaded(createdAd); expect(log, [ - isMethodCall('loadRewardedInterstitialAd', arguments: { - 'adId': 0, - 'adUnitId': 'test-ad-unit', - 'request': request, - 'adManagerRequest': null, - }), + isMethodCall( + 'loadRewardedInterstitialAd', + arguments: { + 'adId': 0, + 'adUnitId': 'test-ad-unit', + 'request': request, + 'adManagerRequest': null, + }, + ), ]); expect(instanceManager.adFor(0), isNotNull); expect(rewardedInterstitial, createdAd); log.clear(); - await rewardedInterstitial! - .show(onUserEarnedReward: (ad, reward) => null); + await rewardedInterstitial!.show( + onUserEarnedReward: (ad, reward) => null, + ); expect(log, [ - isMethodCall('showAdWithoutView', arguments: { - 'adId': 0, - }) + isMethodCall( + 'showAdWithoutView', + arguments: {'adId': 0}, + ), ]); // Check that full screen events are passed correctly. @@ -203,39 +232,50 @@ void main() { rewardedInterstitial!.fullScreenContentCallback = FullScreenContentCallback( - onAdImpression: (ad) => impressionCompleter.complete(ad), - onAdShowedFullScreenContent: (ad) => showedCompleter.complete(ad), - onAdFailedToShowFullScreenContent: (ad, error) => - failedToShowCompleter.complete(ad), - onAdDismissedFullScreenContent: (ad) => dismissedCompleter.complete(ad), - onAdClicked: (ad) => clickedCompleter.complete(ad), - onAdWillDismissFullScreenContent: (ad) => - willDismissCompleter.complete(ad), - ); + onAdImpression: (ad) => impressionCompleter.complete(ad), + onAdShowedFullScreenContent: (ad) => showedCompleter.complete(ad), + onAdFailedToShowFullScreenContent: (ad, error) => + failedToShowCompleter.complete(ad), + onAdDismissedFullScreenContent: (ad) => + dismissedCompleter.complete(ad), + onAdClicked: (ad) => clickedCompleter.complete(ad), + onAdWillDismissFullScreenContent: (ad) => + willDismissCompleter.complete(ad), + ); await TestUtil.sendAdEvent(0, 'adDidRecordImpression', instanceManager); expect(await impressionCompleter.future, rewardedInterstitial); await TestUtil.sendAdEvent( - 0, 'adWillPresentFullScreenContent', instanceManager); + 0, + 'adWillPresentFullScreenContent', + instanceManager, + ); expect(await showedCompleter.future, rewardedInterstitial); await TestUtil.sendAdEvent( - 0, 'adDidDismissFullScreenContent', instanceManager); + 0, + 'adDidDismissFullScreenContent', + instanceManager, + ); expect(await dismissedCompleter.future, rewardedInterstitial); await TestUtil.sendAdEvent( - 0, 'adWillDismissFullScreenContent', instanceManager); + 0, + 'adWillDismissFullScreenContent', + instanceManager, + ); expect(await dismissedCompleter.future, rewardedInterstitial); await TestUtil.sendAdEvent(0, 'adDidRecordClick', instanceManager); expect(await clickedCompleter.future, rewardedInterstitial); await TestUtil.sendAdEvent( - 0, - 'didFailToPresentFullScreenContentWithError', - instanceManager, - {'error': AdError(1, 'domain', 'message')}); + 0, + 'didFailToPresentFullScreenContentWithError', + instanceManager, + {'error': AdError(1, 'domain', 'message')}, + ); expect(await failedToShowCompleter.future, rewardedInterstitial); // Check paid event callback @@ -250,7 +290,11 @@ void main() { 'currencyCode': 'USD', }; await TestUtil.sendAdEvent( - 0, 'onPaidEvent', instanceManager, paidEventArgs); + 0, + 'onPaidEvent', + instanceManager, + paidEventArgs, + ); List paidEventCallback = await paidEventCompleter.future; expect(paidEventCallback[0], rewardedInterstitial); expect(paidEventCallback[1], 1.2345); @@ -265,10 +309,11 @@ void main() { adUnitId: 'test-ad-unit', adManagerRequest: request, rewardedInterstitialAdLoadCallback: RewardedInterstitialAdLoadCallback( - onAdLoaded: (ad) { - rewardedInterstitial = ad; - }, - onAdFailedToLoad: (error) => null), + onAdLoaded: (ad) { + rewardedInterstitial = ad; + }, + onAdFailedToLoad: (error) => null, + ), ); RewardedInterstitialAd createdAd = @@ -276,23 +321,28 @@ void main() { (createdAd).rewardedInterstitialAdLoadCallback.onAdLoaded(createdAd); expect(log, [ - isMethodCall('loadRewardedInterstitialAd', arguments: { - 'adId': 0, - 'adUnitId': 'test-ad-unit', - 'request': null, - 'adManagerRequest': request, - }), + isMethodCall( + 'loadRewardedInterstitialAd', + arguments: { + 'adId': 0, + 'adUnitId': 'test-ad-unit', + 'request': null, + 'adManagerRequest': request, + }, + ), ]); expect(instanceManager.adFor(0), isNotNull); log.clear(); - await rewardedInterstitial! - .show(onUserEarnedReward: (ad, reward) => null); + await rewardedInterstitial!.show( + onUserEarnedReward: (ad, reward) => null, + ); expect(log, [ - isMethodCall('showAdWithoutView', arguments: { - 'adId': 0, - }) + isMethodCall( + 'showAdWithoutView', + arguments: {'adId': 0}, + ), ]); }); @@ -303,17 +353,21 @@ void main() { adUnitId: 'test-ad-unit', request: request, rewardedInterstitialAdLoadCallback: RewardedInterstitialAdLoadCallback( - onAdLoaded: (ad) => null, - onAdFailedToLoad: (error) => resultsCompleter.complete(error)), + onAdLoaded: (ad) => null, + onAdFailedToLoad: (error) => resultsCompleter.complete(error), + ), ); expect(log, [ - isMethodCall('loadRewardedInterstitialAd', arguments: { - 'adId': 0, - 'adUnitId': 'test-ad-unit', - 'request': request, - 'adManagerRequest': null, - }) + isMethodCall( + 'loadRewardedInterstitialAd', + arguments: { + 'adId': 0, + 'adUnitId': 'test-ad-unit', + 'request': request, + 'adManagerRequest': null, + }, + ), ]); expect(instanceManager.adFor(0), isNotNull); @@ -346,11 +400,15 @@ void main() { 'loadAdError': LoadAdError(1, 'domain', 'message', responseInfo), }); - final ByteData data = - instanceManager.channel.codec.encodeMethodCall(methodCall); + final ByteData data = instanceManager.channel.codec.encodeMethodCall( + methodCall, + ); await TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger .handlePlatformMessage( - 'plugins.flutter.io/google_mobile_ads', data, (data) {}); + 'plugins.flutter.io/google_mobile_ads', + data, + (data) {}, + ); // The ad reference should be freed when load failure occurs. expect(instanceManager.adFor(0), isNull); @@ -361,8 +419,10 @@ void main() { expect(result.domain, 'domain'); expect(result.message, 'message'); expect(result.responseInfo!.responseId, responseInfo.responseId); - expect(result.responseInfo!.mediationAdapterClassName, - responseInfo.mediationAdapterClassName); + expect( + result.responseInfo!.mediationAdapterClassName, + responseInfo.mediationAdapterClassName, + ); expect(result.responseInfo!.responseExtras, responseInfo.responseExtras); List responses = result.responseInfo!.adapterResponses!; @@ -384,10 +444,11 @@ void main() { adUnitId: 'test-ad-unit', request: AdRequest(), rewardedInterstitialAdLoadCallback: RewardedInterstitialAdLoadCallback( - onAdLoaded: (ad) { - rewardedInterstitial = ad; - }, - onAdFailedToLoad: (error) => null), + onAdLoaded: (ad) { + rewardedInterstitial = ad; + }, + onAdFailedToLoad: (error) => null, + ), ); RewardedInterstitialAd createdAd = @@ -395,8 +456,9 @@ void main() { createdAd.rewardedInterstitialAdLoadCallback.onAdLoaded(createdAd); // Reward callback is now set when you call show. await rewardedInterstitial!.show( - onUserEarnedReward: (ad, item) => - resultCompleter.complete([ad, item])); + onUserEarnedReward: (ad, item) => + resultCompleter.complete([ad, item]), + ); final MethodCall methodCall = MethodCall('onAdEvent', { 'adId': 0, @@ -404,11 +466,15 @@ void main() { 'rewardItem': RewardItem(1, 'one'), }); - final ByteData data = - instanceManager.channel.codec.encodeMethodCall(methodCall); + final ByteData data = instanceManager.channel.codec.encodeMethodCall( + methodCall, + ); await TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger .handlePlatformMessage( - 'plugins.flutter.io/google_mobile_ads', data, (data) {}); + 'plugins.flutter.io/google_mobile_ads', + data, + (data) {}, + ); final List result = await resultCompleter.future; expect(result[0], rewardedInterstitial!); @@ -422,10 +488,11 @@ void main() { adUnitId: 'test-ad-unit', request: AdRequest(), rewardedInterstitialAdLoadCallback: RewardedInterstitialAdLoadCallback( - onAdLoaded: (ad) { - adLoadCompleter.complete(ad); - }, - onAdFailedToLoad: (_) => null), + onAdLoaded: (ad) { + adLoadCompleter.complete(ad); + }, + onAdFailedToLoad: (_) => null, + ), ); await TestUtil.sendAdEvent(0, 'onAdLoaded', instanceManager); @@ -433,15 +500,19 @@ void main() { final ad = await adLoadCompleter.future; log.clear(); - final ssv = - ServerSideVerificationOptions(userId: 'id', customData: 'data'); + final ssv = ServerSideVerificationOptions( + userId: 'id', + customData: 'data', + ); await ad.setServerSideOptions(ssv); expect(log, [ - isMethodCall('setServerSideVerificationOptions', - arguments: { - 'adId': 0, - 'serverSideVerificationOptions': ssv, - }), + isMethodCall( + 'setServerSideVerificationOptions', + arguments: { + 'adId': 0, + 'serverSideVerificationOptions': ssv, + }, + ), ]); }); }); diff --git a/packages/google_mobile_ads/test/test_util.dart b/packages/google_mobile_ads/test/test_util.dart index 79f47c3b9..cfaa6b6ed 100644 --- a/packages/google_mobile_ads/test/test_util.dart +++ b/packages/google_mobile_ads/test/test_util.dart @@ -24,19 +24,24 @@ class TestUtil { /// [additionalArgs], encodes it into [ByteData] and sends it as a platform /// message to [instanceManager]. static Future sendAdEvent( - int adId, String eventName, AdInstanceManager instanceManager, - [Map? additionalArgs]) async { - Map args = { - 'adId': adId, - 'eventName': eventName, - }; - additionalArgs?.entries - .forEach((element) => args[element.key] = element.value); + int adId, + String eventName, + AdInstanceManager instanceManager, [ + Map? additionalArgs, + ]) async { + Map args = {'adId': adId, 'eventName': eventName}; + additionalArgs?.entries.forEach( + (element) => args[element.key] = element.value, + ); final MethodCall methodCall = MethodCall('onAdEvent', args); - final ByteData data = - instanceManager.channel.codec.encodeMethodCall(methodCall); + final ByteData data = instanceManager.channel.codec.encodeMethodCall( + methodCall, + ); await TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger .handlePlatformMessage( - 'plugins.flutter.io/google_mobile_ads', data, (data) {}); + 'plugins.flutter.io/google_mobile_ads', + data, + (data) {}, + ); } } diff --git a/packages/google_mobile_ads/test/ump/consent_form_impl_test.dart b/packages/google_mobile_ads/test/ump/consent_form_impl_test.dart index 090354600..4f44551e8 100644 --- a/packages/google_mobile_ads/test/ump/consent_form_impl_test.dart +++ b/packages/google_mobile_ads/test/ump/consent_form_impl_test.dart @@ -69,8 +69,9 @@ void main() { test('dispose()', () async { ConsentFormImpl form = ConsentFormImpl(1); - when(mockChannel.disposeConsentForm(form)) - .thenAnswer((realInvocation) => Future.value()); + when( + mockChannel.disposeConsentForm(form), + ).thenAnswer((realInvocation) => Future.value()); await form.dispose(); verify(mockChannel.disposeConsentForm(form)); diff --git a/packages/google_mobile_ads/test/ump/consent_form_impl_test.mocks.dart b/packages/google_mobile_ads/test/ump/consent_form_impl_test.mocks.dart index ec4871282..72bb79f76 100644 --- a/packages/google_mobile_ads/test/ump/consent_form_impl_test.mocks.dart +++ b/packages/google_mobile_ads/test/ump/consent_form_impl_test.mocks.dart @@ -40,127 +40,101 @@ class MockUserMessagingChannel extends _i1.Mock _i3.ConsentRequestParameters? params, _i4.OnConsentInfoUpdateSuccessListener? successListener, _i4.OnConsentInfoUpdateFailureListener? failureListener, - ) => - super.noSuchMethod( - Invocation.method( - #requestConsentInfoUpdate, - [ - params, - successListener, - failureListener, - ], - ), - returnValueForMissingStub: null, - ); + ) => super.noSuchMethod( + Invocation.method(#requestConsentInfoUpdate, [ + params, + successListener, + failureListener, + ]), + returnValueForMissingStub: null, + ); @override - _i5.Future isConsentFormAvailable() => (super.noSuchMethod( - Invocation.method( - #isConsentFormAvailable, - [], - ), - returnValue: _i5.Future.value(false), - ) as _i5.Future); + _i5.Future isConsentFormAvailable() => + (super.noSuchMethod( + Invocation.method(#isConsentFormAvailable, []), + returnValue: _i5.Future.value(false), + ) + as _i5.Future); @override - _i5.Future<_i4.ConsentStatus> getConsentStatus() => (super.noSuchMethod( - Invocation.method( - #getConsentStatus, - [], - ), - returnValue: - _i5.Future<_i4.ConsentStatus>.value(_i4.ConsentStatus.notRequired), - ) as _i5.Future<_i4.ConsentStatus>); + _i5.Future<_i4.ConsentStatus> getConsentStatus() => + (super.noSuchMethod( + Invocation.method(#getConsentStatus, []), + returnValue: _i5.Future<_i4.ConsentStatus>.value( + _i4.ConsentStatus.notRequired, + ), + ) + as _i5.Future<_i4.ConsentStatus>); @override - _i5.Future reset() => (super.noSuchMethod( - Invocation.method( - #reset, - [], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + _i5.Future reset() => + (super.noSuchMethod( + Invocation.method(#reset, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); @override - _i5.Future canRequestAds() => (super.noSuchMethod( - Invocation.method( - #canRequestAds, - [], - ), - returnValue: _i5.Future.value(false), - ) as _i5.Future); + _i5.Future canRequestAds() => + (super.noSuchMethod( + Invocation.method(#canRequestAds, []), + returnValue: _i5.Future.value(false), + ) + as _i5.Future); @override _i5.Future<_i4.PrivacyOptionsRequirementStatus> - getPrivacyOptionsRequirementStatus() => (super.noSuchMethod( - Invocation.method( - #getPrivacyOptionsRequirementStatus, - [], - ), + getPrivacyOptionsRequirementStatus() => + (super.noSuchMethod( + Invocation.method(#getPrivacyOptionsRequirementStatus, []), returnValue: _i5.Future<_i4.PrivacyOptionsRequirementStatus>.value( - _i4.PrivacyOptionsRequirementStatus.notRequired), - ) as _i5.Future<_i4.PrivacyOptionsRequirementStatus>); + _i4.PrivacyOptionsRequirementStatus.notRequired, + ), + ) + as _i5.Future<_i4.PrivacyOptionsRequirementStatus>); @override void loadConsentForm( _i6.OnConsentFormLoadSuccessListener? successListener, _i6.OnConsentFormLoadFailureListener? failureListener, - ) => - super.noSuchMethod( - Invocation.method( - #loadConsentForm, - [ - successListener, - failureListener, - ], - ), - returnValueForMissingStub: null, - ); + ) => super.noSuchMethod( + Invocation.method(#loadConsentForm, [successListener, failureListener]), + returnValueForMissingStub: null, + ); @override _i5.Future<_i7.FormError?> loadAndShowConsentFormIfRequired() => (super.noSuchMethod( - Invocation.method( - #loadAndShowConsentFormIfRequired, - [], - ), - returnValue: _i5.Future<_i7.FormError?>.value(), - ) as _i5.Future<_i7.FormError?>); + Invocation.method(#loadAndShowConsentFormIfRequired, []), + returnValue: _i5.Future<_i7.FormError?>.value(), + ) + as _i5.Future<_i7.FormError?>); @override void show( _i6.ConsentForm? consentForm, _i6.OnConsentFormDismissedListener? onConsentFormDismissedListener, - ) => - super.noSuchMethod( - Invocation.method( - #show, - [ - consentForm, - onConsentFormDismissedListener, - ], - ), - returnValueForMissingStub: null, - ); + ) => super.noSuchMethod( + Invocation.method(#show, [consentForm, onConsentFormDismissedListener]), + returnValueForMissingStub: null, + ); @override - _i5.Future<_i7.FormError?> showPrivacyOptionsForm() => (super.noSuchMethod( - Invocation.method( - #showPrivacyOptionsForm, - [], - ), - returnValue: _i5.Future<_i7.FormError?>.value(), - ) as _i5.Future<_i7.FormError?>); + _i5.Future<_i7.FormError?> showPrivacyOptionsForm() => + (super.noSuchMethod( + Invocation.method(#showPrivacyOptionsForm, []), + returnValue: _i5.Future<_i7.FormError?>.value(), + ) + as _i5.Future<_i7.FormError?>); @override _i5.Future disposeConsentForm(_i6.ConsentForm? consentForm) => (super.noSuchMethod( - Invocation.method( - #disposeConsentForm, - [consentForm], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + Invocation.method(#disposeConsentForm, [consentForm]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); } diff --git a/packages/google_mobile_ads/test/ump/consent_form_test.dart b/packages/google_mobile_ads/test/ump/consent_form_test.dart index d5f1d0a80..27a510aa2 100644 --- a/packages/google_mobile_ads/test/ump/consent_form_test.dart +++ b/packages/google_mobile_ads/test/ump/consent_form_test.dart @@ -40,7 +40,8 @@ void main() { Completer formCompleter = Completer(); await ConsentForm.showPrivacyOptionsForm( - (formError) => formCompleter.complete(formError)); + (formError) => formCompleter.complete(formError), + ); FormError? formError = await formCompleter.future; expect(formError, null); @@ -48,12 +49,14 @@ void main() { test('showPrivacyOptionsForm failure', () async { FormError? testError = FormError(errorCode: 1, message: 'testErrorMsg'); - when(mockChannel.showPrivacyOptionsForm()) - .thenAnswer((realInvocation) => Future.value(testError)); + when( + mockChannel.showPrivacyOptionsForm(), + ).thenAnswer((realInvocation) => Future.value(testError)); Completer formCompleter = Completer(); await ConsentForm.showPrivacyOptionsForm( - (formError) => formCompleter.complete(formError)); + (formError) => formCompleter.complete(formError), + ); FormError? formError = await formCompleter.future; expect(formError, testError); @@ -63,14 +66,16 @@ void main() { ConsentForm form = ConsentFormImpl(2); when(mockChannel.loadConsentForm(any, any)).thenAnswer( - (realInvocation) => realInvocation.positionalArguments[0](form)); + (realInvocation) => realInvocation.positionalArguments[0](form), + ); Completer successCompleter = Completer(); Completer errorCompleter = Completer(); ConsentForm.loadConsentForm( - (consentForm) => successCompleter.complete(consentForm), - (formError) => errorCompleter.complete(formError)); + (consentForm) => successCompleter.complete(consentForm), + (formError) => errorCompleter.complete(formError), + ); ConsentForm responseForm = await successCompleter.future; expect(successCompleter.isCompleted, true); @@ -82,14 +87,16 @@ void main() { FormError formError = FormError(errorCode: 1, message: 'message'); when(mockChannel.loadConsentForm(any, any)).thenAnswer( - (realInvocation) => realInvocation.positionalArguments[1](formError)); + (realInvocation) => realInvocation.positionalArguments[1](formError), + ); Completer successCompleter = Completer(); Completer errorCompleter = Completer(); ConsentForm.loadConsentForm( - (consentForm) => successCompleter.complete(consentForm), - (formError) => errorCompleter.complete(formError)); + (consentForm) => successCompleter.complete(consentForm), + (formError) => errorCompleter.complete(formError), + ); FormError responseError = await errorCompleter.future; expect(formError, responseError); @@ -101,7 +108,8 @@ void main() { Completer formCompleter = Completer(); await ConsentForm.loadAndShowConsentFormIfRequired( - (formError) => formCompleter.complete(formError)); + (formError) => formCompleter.complete(formError), + ); FormError? formError = await formCompleter.future; expect(formError, null); @@ -109,12 +117,14 @@ void main() { test('loadAndShowConsentFormIfRequired failure', () async { FormError? testError = FormError(errorCode: 1, message: 'testErrorMsg'); - when(mockChannel.loadAndShowConsentFormIfRequired()) - .thenAnswer((realInvocation) => Future.value(testError)); + when( + mockChannel.loadAndShowConsentFormIfRequired(), + ).thenAnswer((realInvocation) => Future.value(testError)); Completer formCompleter = Completer(); await ConsentForm.loadAndShowConsentFormIfRequired( - (formError) => formCompleter.complete(formError)); + (formError) => formCompleter.complete(formError), + ); FormError? formError = await formCompleter.future; expect(formError, testError); diff --git a/packages/google_mobile_ads/test/ump/consent_form_test.mocks.dart b/packages/google_mobile_ads/test/ump/consent_form_test.mocks.dart index 141c407f2..301aee2f2 100644 --- a/packages/google_mobile_ads/test/ump/consent_form_test.mocks.dart +++ b/packages/google_mobile_ads/test/ump/consent_form_test.mocks.dart @@ -36,136 +36,112 @@ class MockUserMessagingChannel extends _i1.Mock _i3.ConsentRequestParameters? params, _i4.OnConsentInfoUpdateSuccessListener? successListener, _i4.OnConsentInfoUpdateFailureListener? failureListener, - ) => - super.noSuchMethod( - Invocation.method( - #requestConsentInfoUpdate, - [ - params, - successListener, - failureListener, - ], - ), - returnValueForMissingStub: null, - ); + ) => super.noSuchMethod( + Invocation.method(#requestConsentInfoUpdate, [ + params, + successListener, + failureListener, + ]), + returnValueForMissingStub: null, + ); @override - _i5.Future isConsentFormAvailable() => (super.noSuchMethod( - Invocation.method( - #isConsentFormAvailable, - [], - ), - returnValue: _i5.Future.value(false), - returnValueForMissingStub: _i5.Future.value(false), - ) as _i5.Future); + _i5.Future isConsentFormAvailable() => + (super.noSuchMethod( + Invocation.method(#isConsentFormAvailable, []), + returnValue: _i5.Future.value(false), + returnValueForMissingStub: _i5.Future.value(false), + ) + as _i5.Future); @override - _i5.Future<_i4.ConsentStatus> getConsentStatus() => (super.noSuchMethod( - Invocation.method( - #getConsentStatus, - [], - ), - returnValue: - _i5.Future<_i4.ConsentStatus>.value(_i4.ConsentStatus.notRequired), - returnValueForMissingStub: - _i5.Future<_i4.ConsentStatus>.value(_i4.ConsentStatus.notRequired), - ) as _i5.Future<_i4.ConsentStatus>); + _i5.Future<_i4.ConsentStatus> getConsentStatus() => + (super.noSuchMethod( + Invocation.method(#getConsentStatus, []), + returnValue: _i5.Future<_i4.ConsentStatus>.value( + _i4.ConsentStatus.notRequired, + ), + returnValueForMissingStub: _i5.Future<_i4.ConsentStatus>.value( + _i4.ConsentStatus.notRequired, + ), + ) + as _i5.Future<_i4.ConsentStatus>); @override - _i5.Future reset() => (super.noSuchMethod( - Invocation.method( - #reset, - [], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + _i5.Future reset() => + (super.noSuchMethod( + Invocation.method(#reset, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); @override - _i5.Future canRequestAds() => (super.noSuchMethod( - Invocation.method( - #canRequestAds, - [], - ), - returnValue: _i5.Future.value(false), - returnValueForMissingStub: _i5.Future.value(false), - ) as _i5.Future); + _i5.Future canRequestAds() => + (super.noSuchMethod( + Invocation.method(#canRequestAds, []), + returnValue: _i5.Future.value(false), + returnValueForMissingStub: _i5.Future.value(false), + ) + as _i5.Future); @override _i5.Future<_i4.PrivacyOptionsRequirementStatus> - getPrivacyOptionsRequirementStatus() => (super.noSuchMethod( - Invocation.method( - #getPrivacyOptionsRequirementStatus, - [], - ), + getPrivacyOptionsRequirementStatus() => + (super.noSuchMethod( + Invocation.method(#getPrivacyOptionsRequirementStatus, []), returnValue: _i5.Future<_i4.PrivacyOptionsRequirementStatus>.value( - _i4.PrivacyOptionsRequirementStatus.notRequired), + _i4.PrivacyOptionsRequirementStatus.notRequired, + ), returnValueForMissingStub: _i5.Future<_i4.PrivacyOptionsRequirementStatus>.value( - _i4.PrivacyOptionsRequirementStatus.notRequired), - ) as _i5.Future<_i4.PrivacyOptionsRequirementStatus>); + _i4.PrivacyOptionsRequirementStatus.notRequired, + ), + ) + as _i5.Future<_i4.PrivacyOptionsRequirementStatus>); @override void loadConsentForm( _i6.OnConsentFormLoadSuccessListener? successListener, _i6.OnConsentFormLoadFailureListener? failureListener, - ) => - super.noSuchMethod( - Invocation.method( - #loadConsentForm, - [ - successListener, - failureListener, - ], - ), - returnValueForMissingStub: null, - ); + ) => super.noSuchMethod( + Invocation.method(#loadConsentForm, [successListener, failureListener]), + returnValueForMissingStub: null, + ); @override _i5.Future<_i7.FormError?> loadAndShowConsentFormIfRequired() => (super.noSuchMethod( - Invocation.method( - #loadAndShowConsentFormIfRequired, - [], - ), - returnValue: _i5.Future<_i7.FormError?>.value(), - returnValueForMissingStub: _i5.Future<_i7.FormError?>.value(), - ) as _i5.Future<_i7.FormError?>); + Invocation.method(#loadAndShowConsentFormIfRequired, []), + returnValue: _i5.Future<_i7.FormError?>.value(), + returnValueForMissingStub: _i5.Future<_i7.FormError?>.value(), + ) + as _i5.Future<_i7.FormError?>); @override void show( _i6.ConsentForm? consentForm, _i6.OnConsentFormDismissedListener? onConsentFormDismissedListener, - ) => - super.noSuchMethod( - Invocation.method( - #show, - [ - consentForm, - onConsentFormDismissedListener, - ], - ), - returnValueForMissingStub: null, - ); + ) => super.noSuchMethod( + Invocation.method(#show, [consentForm, onConsentFormDismissedListener]), + returnValueForMissingStub: null, + ); @override - _i5.Future<_i7.FormError?> showPrivacyOptionsForm() => (super.noSuchMethod( - Invocation.method( - #showPrivacyOptionsForm, - [], - ), - returnValue: _i5.Future<_i7.FormError?>.value(), - returnValueForMissingStub: _i5.Future<_i7.FormError?>.value(), - ) as _i5.Future<_i7.FormError?>); + _i5.Future<_i7.FormError?> showPrivacyOptionsForm() => + (super.noSuchMethod( + Invocation.method(#showPrivacyOptionsForm, []), + returnValue: _i5.Future<_i7.FormError?>.value(), + returnValueForMissingStub: _i5.Future<_i7.FormError?>.value(), + ) + as _i5.Future<_i7.FormError?>); @override _i5.Future disposeConsentForm(_i6.ConsentForm? consentForm) => (super.noSuchMethod( - Invocation.method( - #disposeConsentForm, - [consentForm], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + Invocation.method(#disposeConsentForm, [consentForm]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); } diff --git a/packages/google_mobile_ads/test/ump/consent_information_impl_test.dart b/packages/google_mobile_ads/test/ump/consent_information_impl_test.dart index f422665df..9e8027e7f 100644 --- a/packages/google_mobile_ads/test/ump/consent_information_impl_test.dart +++ b/packages/google_mobile_ads/test/ump/consent_information_impl_test.dart @@ -47,8 +47,9 @@ void main() { test('getConsentStatus()', () async { ConsentStatus status = ConsentStatus.required; - when(mockChannel.getConsentStatus()) - .thenAnswer((_) => Future.value(status)); + when( + mockChannel.getConsentStatus(), + ).thenAnswer((_) => Future.value(status)); ConsentStatus responseStatus = await consentInfo.getConsentStatus(); @@ -57,8 +58,9 @@ void main() { }); test('isConsentFormAvailable()', () async { - when(mockChannel.isConsentFormAvailable()) - .thenAnswer((_) => Future.value(false)); + when( + mockChannel.isConsentFormAvailable(), + ).thenAnswer((_) => Future.value(false)); bool isConsentFormAvailable = await consentInfo.isConsentFormAvailable(); @@ -67,8 +69,9 @@ void main() { }); test('requestConsentInfoUpdate() success', () async { - when(mockChannel.requestConsentInfoUpdate(any, any, any)) - .thenAnswer((invocation) { + when(mockChannel.requestConsentInfoUpdate(any, any, any)).thenAnswer(( + invocation, + ) { invocation.positionalArguments[1](); }); @@ -77,9 +80,10 @@ void main() { Completer errorCompleter = Completer(); consentInfo.requestConsentInfoUpdate( - params, - () => successCompleter.complete(), - (error) => errorCompleter.complete(error)); + params, + () => successCompleter.complete(), + (error) => errorCompleter.complete(error), + ); await successCompleter.future; verify(mockChannel.requestConsentInfoUpdate(params, any, any)); @@ -89,8 +93,9 @@ void main() { test('requestConsentInfoUpdate() failure', () async { FormError formError = FormError(errorCode: 1, message: 'msg'); - when(mockChannel.requestConsentInfoUpdate(any, any, any)) - .thenAnswer((invocation) { + when(mockChannel.requestConsentInfoUpdate(any, any, any)).thenAnswer(( + invocation, + ) { invocation.positionalArguments[2](formError); }); @@ -99,9 +104,10 @@ void main() { Completer errorCompleter = Completer(); consentInfo.requestConsentInfoUpdate( - params, - () => successCompleter.complete(), - (error) => errorCompleter.complete(error)); + params, + () => successCompleter.complete(), + (error) => errorCompleter.complete(error), + ); FormError responseError = await errorCompleter.future; verify(mockChannel.requestConsentInfoUpdate(params, any, any)); @@ -121,10 +127,11 @@ void main() { test('getPrivacyOptionsRequirementStatus()', () async { when(mockChannel.getPrivacyOptionsRequirementStatus()).thenAnswer( - (_) => Future.value(PrivacyOptionsRequirementStatus.required)); + (_) => Future.value(PrivacyOptionsRequirementStatus.required), + ); - PrivacyOptionsRequirementStatus status = - await consentInfo.getPrivacyOptionsRequirementStatus(); + PrivacyOptionsRequirementStatus status = await consentInfo + .getPrivacyOptionsRequirementStatus(); verify(mockChannel.getPrivacyOptionsRequirementStatus()); expect(status, PrivacyOptionsRequirementStatus.required); diff --git a/packages/google_mobile_ads/test/ump/consent_information_impl_test.mocks.dart b/packages/google_mobile_ads/test/ump/consent_information_impl_test.mocks.dart index ce73805bf..3edbd3b17 100644 --- a/packages/google_mobile_ads/test/ump/consent_information_impl_test.mocks.dart +++ b/packages/google_mobile_ads/test/ump/consent_information_impl_test.mocks.dart @@ -40,127 +40,101 @@ class MockUserMessagingChannel extends _i1.Mock _i3.ConsentRequestParameters? params, _i4.OnConsentInfoUpdateSuccessListener? successListener, _i4.OnConsentInfoUpdateFailureListener? failureListener, - ) => - super.noSuchMethod( - Invocation.method( - #requestConsentInfoUpdate, - [ - params, - successListener, - failureListener, - ], - ), - returnValueForMissingStub: null, - ); + ) => super.noSuchMethod( + Invocation.method(#requestConsentInfoUpdate, [ + params, + successListener, + failureListener, + ]), + returnValueForMissingStub: null, + ); @override - _i5.Future isConsentFormAvailable() => (super.noSuchMethod( - Invocation.method( - #isConsentFormAvailable, - [], - ), - returnValue: _i5.Future.value(false), - ) as _i5.Future); + _i5.Future isConsentFormAvailable() => + (super.noSuchMethod( + Invocation.method(#isConsentFormAvailable, []), + returnValue: _i5.Future.value(false), + ) + as _i5.Future); @override - _i5.Future<_i4.ConsentStatus> getConsentStatus() => (super.noSuchMethod( - Invocation.method( - #getConsentStatus, - [], - ), - returnValue: - _i5.Future<_i4.ConsentStatus>.value(_i4.ConsentStatus.notRequired), - ) as _i5.Future<_i4.ConsentStatus>); + _i5.Future<_i4.ConsentStatus> getConsentStatus() => + (super.noSuchMethod( + Invocation.method(#getConsentStatus, []), + returnValue: _i5.Future<_i4.ConsentStatus>.value( + _i4.ConsentStatus.notRequired, + ), + ) + as _i5.Future<_i4.ConsentStatus>); @override - _i5.Future reset() => (super.noSuchMethod( - Invocation.method( - #reset, - [], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + _i5.Future reset() => + (super.noSuchMethod( + Invocation.method(#reset, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); @override - _i5.Future canRequestAds() => (super.noSuchMethod( - Invocation.method( - #canRequestAds, - [], - ), - returnValue: _i5.Future.value(false), - ) as _i5.Future); + _i5.Future canRequestAds() => + (super.noSuchMethod( + Invocation.method(#canRequestAds, []), + returnValue: _i5.Future.value(false), + ) + as _i5.Future); @override _i5.Future<_i4.PrivacyOptionsRequirementStatus> - getPrivacyOptionsRequirementStatus() => (super.noSuchMethod( - Invocation.method( - #getPrivacyOptionsRequirementStatus, - [], - ), + getPrivacyOptionsRequirementStatus() => + (super.noSuchMethod( + Invocation.method(#getPrivacyOptionsRequirementStatus, []), returnValue: _i5.Future<_i4.PrivacyOptionsRequirementStatus>.value( - _i4.PrivacyOptionsRequirementStatus.notRequired), - ) as _i5.Future<_i4.PrivacyOptionsRequirementStatus>); + _i4.PrivacyOptionsRequirementStatus.notRequired, + ), + ) + as _i5.Future<_i4.PrivacyOptionsRequirementStatus>); @override void loadConsentForm( _i6.OnConsentFormLoadSuccessListener? successListener, _i6.OnConsentFormLoadFailureListener? failureListener, - ) => - super.noSuchMethod( - Invocation.method( - #loadConsentForm, - [ - successListener, - failureListener, - ], - ), - returnValueForMissingStub: null, - ); + ) => super.noSuchMethod( + Invocation.method(#loadConsentForm, [successListener, failureListener]), + returnValueForMissingStub: null, + ); @override _i5.Future<_i7.FormError?> loadAndShowConsentFormIfRequired() => (super.noSuchMethod( - Invocation.method( - #loadAndShowConsentFormIfRequired, - [], - ), - returnValue: _i5.Future<_i7.FormError?>.value(), - ) as _i5.Future<_i7.FormError?>); + Invocation.method(#loadAndShowConsentFormIfRequired, []), + returnValue: _i5.Future<_i7.FormError?>.value(), + ) + as _i5.Future<_i7.FormError?>); @override void show( _i6.ConsentForm? consentForm, _i6.OnConsentFormDismissedListener? onConsentFormDismissedListener, - ) => - super.noSuchMethod( - Invocation.method( - #show, - [ - consentForm, - onConsentFormDismissedListener, - ], - ), - returnValueForMissingStub: null, - ); + ) => super.noSuchMethod( + Invocation.method(#show, [consentForm, onConsentFormDismissedListener]), + returnValueForMissingStub: null, + ); @override - _i5.Future<_i7.FormError?> showPrivacyOptionsForm() => (super.noSuchMethod( - Invocation.method( - #showPrivacyOptionsForm, - [], - ), - returnValue: _i5.Future<_i7.FormError?>.value(), - ) as _i5.Future<_i7.FormError?>); + _i5.Future<_i7.FormError?> showPrivacyOptionsForm() => + (super.noSuchMethod( + Invocation.method(#showPrivacyOptionsForm, []), + returnValue: _i5.Future<_i7.FormError?>.value(), + ) + as _i5.Future<_i7.FormError?>); @override _i5.Future disposeConsentForm(_i6.ConsentForm? consentForm) => (super.noSuchMethod( - Invocation.method( - #disposeConsentForm, - [consentForm], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + Invocation.method(#disposeConsentForm, [consentForm]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); } diff --git a/packages/google_mobile_ads/test/ump/user_messaging_channel_test.dart b/packages/google_mobile_ads/test/ump/user_messaging_channel_test.dart index 246c07e1c..0b92a19eb 100644 --- a/packages/google_mobile_ads/test/ump/user_messaging_channel_test.dart +++ b/packages/google_mobile_ads/test/ump/user_messaging_channel_test.dart @@ -29,31 +29,40 @@ void main() { late UserMessagingChannel channel; setUp(() async { methodChannel = MethodChannel( - 'test-channel', StandardMethodCodec(UserMessagingCodec())); + 'test-channel', + StandardMethodCodec(UserMessagingCodec()), + ); channel = UserMessagingChannel(methodChannel); }); test('requestConsentInfoUpdate() success', () async { ConsentRequestParameters params = ConsentRequestParameters( - tagForUnderAgeOfConsent: true, - consentDebugSettings: ConsentDebugSettings()); + tagForUnderAgeOfConsent: true, + consentDebugSettings: ConsentDebugSettings(), + ); TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger .setMockMethodCallHandler(methodChannel, (MethodCall call) async { - expect( - call.method, equals('ConsentInformation#requestConsentInfoUpdate')); - expect(call.arguments, equals({'params': params})); - return Future.value(); - }); + expect( + call.method, + equals('ConsentInformation#requestConsentInfoUpdate'), + ); + expect(call.arguments, equals({'params': params})); + return Future.value(); + }); Completer successCompleter = Completer(); Completer failureCompleter = Completer(); // Test function - channel.requestConsentInfoUpdate(params, () { - successCompleter.complete(); - }, (error) { - failureCompleter.complete(error); - }); + channel.requestConsentInfoUpdate( + params, + () { + successCompleter.complete(); + }, + (error) { + failureCompleter.complete(error); + }, + ); await successCompleter.future; expect(successCompleter.isCompleted, true); @@ -62,17 +71,25 @@ void main() { test('requestConsentInfoUpdate() failure', () async { ConsentRequestParameters params = ConsentRequestParameters( - tagForUnderAgeOfConsent: true, - consentDebugSettings: ConsentDebugSettings()); + tagForUnderAgeOfConsent: true, + consentDebugSettings: ConsentDebugSettings(), + ); TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger .setMockMethodCallHandler(methodChannel, (MethodCall call) async { - expect( - call.method, equals('ConsentInformation#requestConsentInfoUpdate')); - expect(call.arguments, equals({'params': params})); - return Future.error(PlatformException( - code: '1', message: 'message', details: 'details')); - }); + expect( + call.method, + equals('ConsentInformation#requestConsentInfoUpdate'), + ); + expect(call.arguments, equals({'params': params})); + return Future.error( + PlatformException( + code: '1', + message: 'message', + details: 'details', + ), + ); + }); Completer successCompleter = Completer(); Completer failureCompleter = Completer(); @@ -98,11 +115,13 @@ void main() { test('isConsentFormAvailable() true', () async { TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger .setMockMethodCallHandler(methodChannel, (MethodCall call) async { - expect( - call.method, equals('ConsentInformation#isConsentFormAvailable')); - expect(call.arguments, null); - return Future.value(true); - }); + expect( + call.method, + equals('ConsentInformation#isConsentFormAvailable'), + ); + expect(call.arguments, null); + return Future.value(true); + }); bool isAvailable = await channel.isConsentFormAvailable(); @@ -112,11 +131,13 @@ void main() { test('isConsentFormAvailable() false', () async { TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger .setMockMethodCallHandler(methodChannel, (MethodCall call) async { - expect( - call.method, equals('ConsentInformation#isConsentFormAvailable')); - expect(call.arguments, null); - return Future.value(false); - }); + expect( + call.method, + equals('ConsentInformation#isConsentFormAvailable'), + ); + expect(call.arguments, null); + return Future.value(false); + }); bool isAvailable = await channel.isConsentFormAvailable(); @@ -126,10 +147,10 @@ void main() { test('getConsentStatus()', () async { TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger .setMockMethodCallHandler(methodChannel, (MethodCall call) async { - expect(call.method, equals('ConsentInformation#getConsentStatus')); - expect(call.arguments, null); - return Future.value(1); - }); + expect(call.method, equals('ConsentInformation#getConsentStatus')); + expect(call.arguments, null); + return Future.value(1); + }); ConsentStatus status = await channel.getConsentStatus(); @@ -141,10 +162,10 @@ void main() { dynamic arguments; TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger .setMockMethodCallHandler(methodChannel, (MethodCall call) async { - method = call.method; - arguments = call.arguments; - return Future.value(); - }); + method = call.method; + arguments = call.arguments; + return Future.value(); + }); await channel.reset(); @@ -158,18 +179,19 @@ void main() { ConsentForm consentForm = ConsentFormImpl(1); TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger .setMockMethodCallHandler(methodChannel, (MethodCall call) async { - method = call.method; - arguments = call.arguments; - return Future.value(consentForm); - }); + method = call.method; + arguments = call.arguments; + return Future.value(consentForm); + }); Completer successCompleter = Completer(); Completer failureCompleter = Completer(); // Test function channel.loadConsentForm( - (consentForm) => successCompleter.complete(consentForm), - (formError) => failureCompleter.complete(formError)); + (consentForm) => successCompleter.complete(consentForm), + (formError) => failureCompleter.complete(formError), + ); ConsentForm response = await successCompleter.future; expect(successCompleter.isCompleted, true); @@ -184,18 +206,21 @@ void main() { dynamic arguments; TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger .setMockMethodCallHandler(methodChannel, (MethodCall call) async { - method = call.method; - arguments = call.arguments; - return Future.error(PlatformException(code: '2', message: 'message')); - }); + method = call.method; + arguments = call.arguments; + return Future.error( + PlatformException(code: '2', message: 'message'), + ); + }); Completer successCompleter = Completer(); Completer failureCompleter = Completer(); // Test function channel.loadConsentForm( - (consentForm) => successCompleter.complete(consentForm), - (formError) => failureCompleter.complete(formError)); + (consentForm) => successCompleter.complete(consentForm), + (formError) => failureCompleter.complete(formError), + ); FormError error = await failureCompleter.future; expect(successCompleter.isCompleted, false); @@ -211,10 +236,10 @@ void main() { ConsentFormImpl consentForm = ConsentFormImpl(1); TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger .setMockMethodCallHandler(methodChannel, (MethodCall call) async { - method = call.method; - arguments = call.arguments; - return Future.value(); - }); + method = call.method; + arguments = call.arguments; + return Future.value(); + }); Completer successCompleter = Completer(); @@ -234,10 +259,10 @@ void main() { ConsentFormImpl consentForm = ConsentFormImpl(1); TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger .setMockMethodCallHandler(methodChannel, (MethodCall call) async { - method = call.method; - arguments = call.arguments; - return Future.error(PlatformException(code: '55', message: 'msg')); - }); + method = call.method; + arguments = call.arguments; + return Future.error(PlatformException(code: '55', message: 'msg')); + }); Completer successCompleter = Completer(); @@ -256,10 +281,10 @@ void main() { dynamic arguments; TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger .setMockMethodCallHandler(methodChannel, (MethodCall call) async { - method = call.method; - arguments = call.arguments; - return Future.value(); - }); + method = call.method; + arguments = call.arguments; + return Future.value(); + }); ConsentForm consentForm = ConsentFormImpl(1); await channel.disposeConsentForm(consentForm); @@ -271,10 +296,10 @@ void main() { test('canRequestAds()', () async { TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger .setMockMethodCallHandler(methodChannel, (call) async { - expect(call.method, equals('ConsentInformation#canRequestAds')); - expect(call.arguments, null); - return Future.value(true); - }); + expect(call.method, equals('ConsentInformation#canRequestAds')); + expect(call.arguments, null); + return Future.value(true); + }); bool canRequestAds = await channel.canRequestAds(); @@ -284,42 +309,50 @@ void main() { test('getPrivacyOptionsRequirementStatus() maps 1 to required', () async { TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger .setMockMethodCallHandler(methodChannel, (call) async { - expect(call.method, - equals('ConsentInformation#getPrivacyOptionsRequirementStatus')); - expect(call.arguments, null); - return Future.value(1); - }); + expect( + call.method, + equals('ConsentInformation#getPrivacyOptionsRequirementStatus'), + ); + expect(call.arguments, null); + return Future.value(1); + }); - PrivacyOptionsRequirementStatus privacyStatus = - await channel.getPrivacyOptionsRequirementStatus(); + PrivacyOptionsRequirementStatus privacyStatus = await channel + .getPrivacyOptionsRequirementStatus(); expect(privacyStatus, PrivacyOptionsRequirementStatus.required); }); - test('getPrivacyOptionsRequirementStatus() maps 0 to notRequired', - () async { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger - .setMockMethodCallHandler(methodChannel, (call) async { - expect(call.method, - equals('ConsentInformation#getPrivacyOptionsRequirementStatus')); - expect(call.arguments, null); - return Future.value(0); - }); - - PrivacyOptionsRequirementStatus privacyStatus = - await channel.getPrivacyOptionsRequirementStatus(); - - expect(privacyStatus, PrivacyOptionsRequirementStatus.notRequired); - }); + test( + 'getPrivacyOptionsRequirementStatus() maps 0 to notRequired', + () async { + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(methodChannel, (call) async { + expect( + call.method, + equals('ConsentInformation#getPrivacyOptionsRequirementStatus'), + ); + expect(call.arguments, null); + return Future.value(0); + }); + + PrivacyOptionsRequirementStatus privacyStatus = await channel + .getPrivacyOptionsRequirementStatus(); + + expect(privacyStatus, PrivacyOptionsRequirementStatus.notRequired); + }, + ); test('loadAndShowConsentFormIfRequired() success', () async { TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger .setMockMethodCallHandler(methodChannel, (call) async { - expect(call.method, - equals('UserMessagingPlatform#loadAndShowConsentFormIfRequired')); - expect(call.arguments, null); - return Future.value(); - }); + expect( + call.method, + equals('UserMessagingPlatform#loadAndShowConsentFormIfRequired'), + ); + expect(call.arguments, null); + return Future.value(); + }); Completer successCompleter = Completer(); successCompleter.complete(channel.loadAndShowConsentFormIfRequired()); @@ -332,11 +365,13 @@ void main() { FormError? testError = FormError(errorCode: 55, message: 'msg'); TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger .setMockMethodCallHandler(methodChannel, (call) async { - expect(call.method, - equals('UserMessagingPlatform#loadAndShowConsentFormIfRequired')); - expect(call.arguments, null); - return Future.value(testError); - }); + expect( + call.method, + equals('UserMessagingPlatform#loadAndShowConsentFormIfRequired'), + ); + expect(call.arguments, null); + return Future.value(testError); + }); Completer failureCompleter = Completer(); failureCompleter.complete(channel.loadAndShowConsentFormIfRequired()); @@ -349,11 +384,13 @@ void main() { test('loadAndShowConsentFormIfRequired() error', () async { TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger .setMockMethodCallHandler(methodChannel, (call) async { - expect(call.method, - equals('UserMessagingPlatform#loadAndShowConsentFormIfRequired')); - expect(call.arguments, null); - return Future.error(PlatformException(code: '55', message: 'msg')); - }); + expect( + call.method, + equals('UserMessagingPlatform#loadAndShowConsentFormIfRequired'), + ); + expect(call.arguments, null); + return Future.error(PlatformException(code: '55', message: 'msg')); + }); Completer errorCompleter = Completer(); errorCompleter.complete(channel.loadAndShowConsentFormIfRequired()); @@ -366,11 +403,13 @@ void main() { test('showPrivacyOptionsForm() success', () async { TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger .setMockMethodCallHandler(methodChannel, (call) async { - expect(call.method, - equals('UserMessagingPlatform#showPrivacyOptionsForm')); - expect(call.arguments, null); - return Future.value(); - }); + expect( + call.method, + equals('UserMessagingPlatform#showPrivacyOptionsForm'), + ); + expect(call.arguments, null); + return Future.value(); + }); Completer successCompleter = Completer(); successCompleter.complete(channel.showPrivacyOptionsForm()); @@ -383,11 +422,13 @@ void main() { FormError? testError = FormError(errorCode: 55, message: 'msg'); TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger .setMockMethodCallHandler(methodChannel, (call) async { - expect(call.method, - equals('UserMessagingPlatform#showPrivacyOptionsForm')); - expect(call.arguments, null); - return Future.value(testError); - }); + expect( + call.method, + equals('UserMessagingPlatform#showPrivacyOptionsForm'), + ); + expect(call.arguments, null); + return Future.value(testError); + }); Completer failureCompleter = Completer(); failureCompleter.complete(channel.showPrivacyOptionsForm()); @@ -400,11 +441,13 @@ void main() { test('showPrivacyOptionsForm() error', () async { TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger .setMockMethodCallHandler(methodChannel, (call) async { - expect(call.method, - equals('UserMessagingPlatform#showPrivacyOptionsForm')); - expect(call.arguments, null); - return Future.error(PlatformException(code: '55', message: 'msg')); - }); + expect( + call.method, + equals('UserMessagingPlatform#showPrivacyOptionsForm'), + ); + expect(call.arguments, null); + return Future.error(PlatformException(code: '55', message: 'msg')); + }); Completer errorCompleter = Completer(); errorCompleter.complete(channel.showPrivacyOptionsForm()); diff --git a/packages/google_mobile_ads/test/ump/user_messaging_codec_test.dart b/packages/google_mobile_ads/test/ump/user_messaging_codec_test.dart index d13ea1d07..6f89bc14b 100644 --- a/packages/google_mobile_ads/test/ump/user_messaging_codec_test.dart +++ b/packages/google_mobile_ads/test/ump/user_messaging_codec_test.dart @@ -41,7 +41,8 @@ void main() { test('encode and decode ConsentDebugSettings only geography', () async { ConsentDebugSettings debugSettings = ConsentDebugSettings( - debugGeography: DebugGeography.debugGeographyDisabled); + debugGeography: DebugGeography.debugGeographyDisabled, + ); ByteData? byteData = codec.encodeMessage(debugSettings); ConsentDebugSettings decodedDebugSettings = codec.decodeMessage(byteData); expect(debugSettings, decodedDebugSettings); @@ -49,7 +50,8 @@ void main() { test('encode and decode ConsentDebugSettings only testIds', () async { ConsentDebugSettings debugSettings = ConsentDebugSettings( - testIdentifiers: ['test-identifier1', 'test-identifier2']); + testIdentifiers: ['test-identifier1', 'test-identifier2'], + ); ByteData? byteData = codec.encodeMessage(debugSettings); ConsentDebugSettings decodedDebugSettings = codec.decodeMessage(byteData); expect(debugSettings, equals(decodedDebugSettings)); @@ -57,8 +59,9 @@ void main() { test('encode and decode ConsentDebugSettings testIds and geo', () async { ConsentDebugSettings debugSettings = ConsentDebugSettings( - debugGeography: DebugGeography.debugGeographyEea, - testIdentifiers: ['test-identifier1', 'test-identifier2']); + debugGeography: DebugGeography.debugGeographyEea, + testIdentifiers: ['test-identifier1', 'test-identifier2'], + ); ByteData? byteData = codec.encodeMessage(debugSettings); ConsentDebugSettings decodedDebugSettings = codec.decodeMessage(byteData); expect(debugSettings, equals(decodedDebugSettings)); From aa38ac0540da790ed116a96c25161c4fe84ca206 Mon Sep 17 00:00:00 2001 From: Justin Malandruccolo Date: Sat, 3 Jan 2026 11:48:20 -0500 Subject: [PATCH 003/251] Update samples to major version 7.0.0 (#1373) * Update samples to major version 7.0.0 * Updated app open * Updating app delegate * Added interstitial * Added native platform * Updated native tempalte * Updated rewarded * Updated rewarded interstitial --- .../app_open_example/android/app/build.gradle | 8 +- .../xcshareddata/xcschemes/Runner.xcscheme | 93 ++++++++++++++++++ .../ios/Runner/AppDelegate.swift | 2 +- samples/admob/app_open_example/pubspec.yaml | 2 +- .../banner_example/android/app/build.gradle | 6 +- .../banner_example/android/settings.gradle | 2 +- .../xcshareddata/xcschemes/Runner.xcscheme | 94 +++++++++++++++++++ samples/admob/banner_example/pubspec.yaml | 2 +- .../android/app/build.gradle | 8 +- .../xcshareddata/xcschemes/Runner.xcscheme | 94 +++++++++++++++++++ .../ios/Runner/AppDelegate.swift | 2 +- .../admob/interstitial_example/pubspec.yaml | 2 +- .../android/app/build.gradle | 8 +- .../xcshareddata/xcschemes/Runner.xcscheme | 80 ++++++++++++++++ .../ios/Runner/AppDelegate.swift | 2 +- .../native_platform_example/pubspec.yaml | 2 +- .../android/app/build.gradle | 8 +- .../xcshareddata/xcschemes/Runner.xcscheme | 80 ++++++++++++++++ .../ios/Runner/AppDelegate.swift | 2 +- .../native_template_example/pubspec.yaml | 2 +- .../android/app/build.gradle.kts | 6 +- .../xcshareddata/xcschemes/Runner.xcscheme | 93 ++++++++++++++++++ .../ios/Runner/AppDelegate.swift | 2 +- .../rewarded_example/lib/consent_manager.dart | 2 +- samples/admob/rewarded_example/pubspec.yaml | 2 +- .../android/app/build.gradle | 8 +- .../xcshareddata/xcschemes/Runner.xcscheme | 93 ++++++++++++++++++ .../ios/Runner/AppDelegate.swift | 2 +- .../pubspec.yaml | 2 +- 29 files changed, 668 insertions(+), 41 deletions(-) create mode 100644 samples/admob/app_open_example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 samples/admob/banner_example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 samples/admob/interstitial_example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 samples/admob/native_platform_example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 samples/admob/native_template_example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 samples/admob/rewarded_example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 samples/admob/rewarded_interstitial_example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme diff --git a/samples/admob/app_open_example/android/app/build.gradle b/samples/admob/app_open_example/android/app/build.gradle index 0cd412804..75b9f97c9 100644 --- a/samples/admob/app_open_example/android/app/build.gradle +++ b/samples/admob/app_open_example/android/app/build.gradle @@ -28,12 +28,12 @@ android { ndkVersion = flutter.ndkVersion compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 + sourceCompatibility JavaVersion.VERSION_17 + targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { - jvmTarget = '1.8' + jvmTarget = '17' } sourceSets { @@ -45,7 +45,7 @@ android { applicationId "com.example.app_open_example" // You can update the following values to match your application needs. // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. - minSdkVersion 23 + minSdkVersion flutter.minSdkVersion targetSdkVersion flutter.targetSdkVersion versionCode flutterVersionCode.toInteger() versionName flutterVersionName diff --git a/samples/admob/app_open_example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/samples/admob/app_open_example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 000000000..8d0da4ca5 --- /dev/null +++ b/samples/admob/app_open_example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/admob/app_open_example/ios/Runner/AppDelegate.swift b/samples/admob/app_open_example/ios/Runner/AppDelegate.swift index 77126010b..d3fd5e617 100644 --- a/samples/admob/app_open_example/ios/Runner/AppDelegate.swift +++ b/samples/admob/app_open_example/ios/Runner/AppDelegate.swift @@ -15,7 +15,7 @@ import UIKit import Flutter -@UIApplicationMain +@main @objc class AppDelegate: FlutterAppDelegate { override func application( _ application: UIApplication, diff --git a/samples/admob/app_open_example/pubspec.yaml b/samples/admob/app_open_example/pubspec.yaml index 826f8251d..ba61abe59 100644 --- a/samples/admob/app_open_example/pubspec.yaml +++ b/samples/admob/app_open_example/pubspec.yaml @@ -9,7 +9,7 @@ environment: dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 dev_dependencies: flutter_test: diff --git a/samples/admob/banner_example/android/app/build.gradle b/samples/admob/banner_example/android/app/build.gradle index e62eed0f9..ebb9d7603 100644 --- a/samples/admob/banner_example/android/app/build.gradle +++ b/samples/admob/banner_example/android/app/build.gradle @@ -28,8 +28,8 @@ android { ndkVersion = flutter.ndkVersion compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 + sourceCompatibility JavaVersion.VERSION_17 + targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { @@ -45,7 +45,7 @@ android { applicationId "com.example.banner_example" // You can update the following values to match your application needs. // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. - minSdkVersion 23 + minSdkVersion flutter.minSdkVersion targetSdkVersion flutter.targetSdkVersion versionCode flutterVersionCode.toInteger() versionName flutterVersionName diff --git a/samples/admob/banner_example/android/settings.gradle b/samples/admob/banner_example/android/settings.gradle index c7b131ad9..f4e0879bf 100644 --- a/samples/admob/banner_example/android/settings.gradle +++ b/samples/admob/banner_example/android/settings.gradle @@ -19,7 +19,7 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" id "com.android.application" version "8.6.0" apply false - id "org.jetbrains.kotlin.android" version "1.9.0" apply false + id "org.jetbrains.kotlin.android" version "2.1.0" apply false } include ":app" \ No newline at end of file diff --git a/samples/admob/banner_example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/samples/admob/banner_example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 000000000..cbd2918fe --- /dev/null +++ b/samples/admob/banner_example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/admob/banner_example/pubspec.yaml b/samples/admob/banner_example/pubspec.yaml index 969e1ecf3..0beccf26b 100644 --- a/samples/admob/banner_example/pubspec.yaml +++ b/samples/admob/banner_example/pubspec.yaml @@ -9,7 +9,7 @@ environment: dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 dev_dependencies: flutter_test: diff --git a/samples/admob/interstitial_example/android/app/build.gradle b/samples/admob/interstitial_example/android/app/build.gradle index 296a06d99..381fbca91 100644 --- a/samples/admob/interstitial_example/android/app/build.gradle +++ b/samples/admob/interstitial_example/android/app/build.gradle @@ -28,12 +28,12 @@ android { ndkVersion = flutter.ndkVersion compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 + sourceCompatibility JavaVersion.VERSION_17 + targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { - jvmTarget = '1.8' + jvmTarget = '17' } sourceSets { @@ -45,7 +45,7 @@ android { applicationId "com.example.interstitial_example" // You can update the following values to match your application needs. // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. - minSdkVersion 23 + minSdkVersion flutter.minSdkVersion targetSdkVersion flutter.targetSdkVersion versionCode flutterVersionCode.toInteger() versionName flutterVersionName diff --git a/samples/admob/interstitial_example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/samples/admob/interstitial_example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 000000000..cbd2918fe --- /dev/null +++ b/samples/admob/interstitial_example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/admob/interstitial_example/ios/Runner/AppDelegate.swift b/samples/admob/interstitial_example/ios/Runner/AppDelegate.swift index 70693e4a8..b63630348 100644 --- a/samples/admob/interstitial_example/ios/Runner/AppDelegate.swift +++ b/samples/admob/interstitial_example/ios/Runner/AppDelegate.swift @@ -1,7 +1,7 @@ import UIKit import Flutter -@UIApplicationMain +@main @objc class AppDelegate: FlutterAppDelegate { override func application( _ application: UIApplication, diff --git a/samples/admob/interstitial_example/pubspec.yaml b/samples/admob/interstitial_example/pubspec.yaml index f8f11bff6..2561b8f61 100644 --- a/samples/admob/interstitial_example/pubspec.yaml +++ b/samples/admob/interstitial_example/pubspec.yaml @@ -9,7 +9,7 @@ environment: dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 dev_dependencies: flutter_test: diff --git a/samples/admob/native_platform_example/android/app/build.gradle b/samples/admob/native_platform_example/android/app/build.gradle index 32822e4ec..6b2411a2e 100644 --- a/samples/admob/native_platform_example/android/app/build.gradle +++ b/samples/admob/native_platform_example/android/app/build.gradle @@ -28,12 +28,12 @@ android { ndkVersion = flutter.ndkVersion compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 + sourceCompatibility JavaVersion.VERSION_17 + targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { - jvmTarget = '1.8' + jvmTarget = '17' } sourceSets { @@ -45,7 +45,7 @@ android { applicationId "com.example.native_platform_example" // You can update the following values to match your application needs. // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. - minSdkVersion 23 + minSdkVersion flutter.minSdkVersion multiDexEnabled true targetSdkVersion flutter.targetSdkVersion versionCode flutterVersionCode.toInteger() diff --git a/samples/admob/native_platform_example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/samples/admob/native_platform_example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 000000000..a748bf5cd --- /dev/null +++ b/samples/admob/native_platform_example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/admob/native_platform_example/ios/Runner/AppDelegate.swift b/samples/admob/native_platform_example/ios/Runner/AppDelegate.swift index d72317d57..4e33a3010 100644 --- a/samples/admob/native_platform_example/ios/Runner/AppDelegate.swift +++ b/samples/admob/native_platform_example/ios/Runner/AppDelegate.swift @@ -60,7 +60,7 @@ import Flutter } } -@UIApplicationMain +@main @objc class AppDelegate: FlutterAppDelegate { override func application( _ application: UIApplication, diff --git a/samples/admob/native_platform_example/pubspec.yaml b/samples/admob/native_platform_example/pubspec.yaml index c22a41d7b..2d7575c55 100644 --- a/samples/admob/native_platform_example/pubspec.yaml +++ b/samples/admob/native_platform_example/pubspec.yaml @@ -30,7 +30,7 @@ environment: dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. diff --git a/samples/admob/native_template_example/android/app/build.gradle b/samples/admob/native_template_example/android/app/build.gradle index dea893a00..20d9f5d50 100644 --- a/samples/admob/native_template_example/android/app/build.gradle +++ b/samples/admob/native_template_example/android/app/build.gradle @@ -28,12 +28,12 @@ android { ndkVersion = flutter.ndkVersion compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 + sourceCompatibility JavaVersion.VERSION_17 + targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { - jvmTarget = '1.8' + jvmTarget = '17' } sourceSets { @@ -45,7 +45,7 @@ android { applicationId "com.example.native_template_example" // You can update the following values to match your application needs. // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. - minSdkVersion 23 + minSdkVersion flutter.minSdkVersion multiDexEnabled true targetSdkVersion flutter.targetSdkVersion versionCode flutterVersionCode.toInteger() diff --git a/samples/admob/native_template_example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/samples/admob/native_template_example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 000000000..a748bf5cd --- /dev/null +++ b/samples/admob/native_template_example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/admob/native_template_example/ios/Runner/AppDelegate.swift b/samples/admob/native_template_example/ios/Runner/AppDelegate.swift index 70693e4a8..b63630348 100644 --- a/samples/admob/native_template_example/ios/Runner/AppDelegate.swift +++ b/samples/admob/native_template_example/ios/Runner/AppDelegate.swift @@ -1,7 +1,7 @@ import UIKit import Flutter -@UIApplicationMain +@main @objc class AppDelegate: FlutterAppDelegate { override func application( _ application: UIApplication, diff --git a/samples/admob/native_template_example/pubspec.yaml b/samples/admob/native_template_example/pubspec.yaml index 659884bd5..7f09e8c3e 100644 --- a/samples/admob/native_template_example/pubspec.yaml +++ b/samples/admob/native_template_example/pubspec.yaml @@ -30,7 +30,7 @@ environment: dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. diff --git a/samples/admob/rewarded_example/android/app/build.gradle.kts b/samples/admob/rewarded_example/android/app/build.gradle.kts index 51e2ee1ef..8b1671c31 100644 --- a/samples/admob/rewarded_example/android/app/build.gradle.kts +++ b/samples/admob/rewarded_example/android/app/build.gradle.kts @@ -11,12 +11,12 @@ android { ndkVersion = flutter.ndkVersion compileOptions { - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } kotlinOptions { - jvmTarget = JavaVersion.VERSION_11.toString() + jvmTarget = JavaVersion.VERSION_17.toString() } defaultConfig { diff --git a/samples/admob/rewarded_example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/samples/admob/rewarded_example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 000000000..8d0da4ca5 --- /dev/null +++ b/samples/admob/rewarded_example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/admob/rewarded_example/ios/Runner/AppDelegate.swift b/samples/admob/rewarded_example/ios/Runner/AppDelegate.swift index 70693e4a8..b63630348 100644 --- a/samples/admob/rewarded_example/ios/Runner/AppDelegate.swift +++ b/samples/admob/rewarded_example/ios/Runner/AppDelegate.swift @@ -1,7 +1,7 @@ import UIKit import Flutter -@UIApplicationMain +@main @objc class AppDelegate: FlutterAppDelegate { override func application( _ application: UIApplication, diff --git a/samples/admob/rewarded_example/lib/consent_manager.dart b/samples/admob/rewarded_example/lib/consent_manager.dart index e80f19e86..60db83b8c 100644 --- a/samples/admob/rewarded_example/lib/consent_manager.dart +++ b/samples/admob/rewarded_example/lib/consent_manager.dart @@ -28,7 +28,7 @@ class ConsentManager { ) { // For testing purposes, you can force a DebugGeography of Eea or NotEea. ConsentDebugSettings debugSettings = ConsentDebugSettings( - debugGeography: DebugGeography.debugGeographyEea, + // debugGeography: DebugGeography.debugGeographyEea, ); ConsentRequestParameters params = ConsentRequestParameters( consentDebugSettings: debugSettings, diff --git a/samples/admob/rewarded_example/pubspec.yaml b/samples/admob/rewarded_example/pubspec.yaml index 1e8813fc3..ae5fb37a5 100644 --- a/samples/admob/rewarded_example/pubspec.yaml +++ b/samples/admob/rewarded_example/pubspec.yaml @@ -9,7 +9,7 @@ environment: dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 dev_dependencies: flutter_test: diff --git a/samples/admob/rewarded_interstitial_example/android/app/build.gradle b/samples/admob/rewarded_interstitial_example/android/app/build.gradle index 1a369ff8a..4cdea2fcf 100644 --- a/samples/admob/rewarded_interstitial_example/android/app/build.gradle +++ b/samples/admob/rewarded_interstitial_example/android/app/build.gradle @@ -28,12 +28,12 @@ android { ndkVersion = flutter.ndkVersion compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 + sourceCompatibility JavaVersion.VERSION_17 + targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { - jvmTarget = '1.8' + jvmTarget = '17' } sourceSets { @@ -45,7 +45,7 @@ android { applicationId "com.example.rewarded_interstitial_example" // You can update the following values to match your application needs. // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. - minSdkVersion 23 + minSdkVersion flutter.minSdkVersion multiDexEnabled true targetSdkVersion flutter.targetSdkVersion versionCode flutterVersionCode.toInteger() diff --git a/samples/admob/rewarded_interstitial_example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/samples/admob/rewarded_interstitial_example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 000000000..8d0da4ca5 --- /dev/null +++ b/samples/admob/rewarded_interstitial_example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/admob/rewarded_interstitial_example/ios/Runner/AppDelegate.swift b/samples/admob/rewarded_interstitial_example/ios/Runner/AppDelegate.swift index 70693e4a8..b63630348 100644 --- a/samples/admob/rewarded_interstitial_example/ios/Runner/AppDelegate.swift +++ b/samples/admob/rewarded_interstitial_example/ios/Runner/AppDelegate.swift @@ -1,7 +1,7 @@ import UIKit import Flutter -@UIApplicationMain +@main @objc class AppDelegate: FlutterAppDelegate { override func application( _ application: UIApplication, diff --git a/samples/admob/rewarded_interstitial_example/pubspec.yaml b/samples/admob/rewarded_interstitial_example/pubspec.yaml index 38048e124..42b81bf83 100644 --- a/samples/admob/rewarded_interstitial_example/pubspec.yaml +++ b/samples/admob/rewarded_interstitial_example/pubspec.yaml @@ -9,7 +9,7 @@ environment: dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 dev_dependencies: flutter_test: From 30f04ff9bc6d15d38b1500df0ecbc9a6db1175ec Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Thu, 16 Oct 2025 12:32:29 -0700 Subject: [PATCH 004/251] Downgrade lint dev dependency to 2.4.0 for PubMatic adapter PiperOrigin-RevId: 820351090 --- packages/mediation/gma_mediation_pubmatic/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_pubmatic/pubspec.yaml b/packages/mediation/gma_mediation_pubmatic/pubspec.yaml index 41bc6b94d..e444dde99 100644 --- a/packages/mediation/gma_mediation_pubmatic/pubspec.yaml +++ b/packages/mediation/gma_mediation_pubmatic/pubspec.yaml @@ -14,7 +14,7 @@ dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^5.0.0 - lint: ^2.8.0 + lint: ^2.4.0 flutter: plugin: platforms: From 37171d46627cb50a583a45638471b8e726b0d548 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Tue, 21 Oct 2025 01:57:51 -0700 Subject: [PATCH 005/251] Updating PubMatic Flutter mediation plugin to support the latest adapters (4.9.1.0, 4.9.0.0) PiperOrigin-RevId: 822010253 --- packages/mediation/gma_mediation_pubmatic/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_pubmatic/android/build.gradle | 2 +- .../gma_mediation_pubmatic/ios/gma_mediation_pubmatic.podspec | 4 ++-- packages/mediation/gma_mediation_pubmatic/pubspec.yaml | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md b/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md index c0f9e908c..8f23bdb22 100644 --- a/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md +++ b/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md @@ -1,5 +1,7 @@ ## Pubmatic Flutter Mediation Adapter Changelog +#### Version 1.3.0 (In progress) + #### Version 1.2.0 - Supports [PubMatic Android adapter version 4.9.1.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/pubmatic/CHANGELOG.md#version-4910). - Supports [PubMatic iOS adapter version 4.8.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/PubMatic/CHANGELOG.md#version-4800). diff --git a/packages/mediation/gma_mediation_pubmatic/android/build.gradle b/packages/mediation/gma_mediation_pubmatic/android/build.gradle index fa3fc1fd7..75eeb1ce1 100644 --- a/packages/mediation/gma_mediation_pubmatic/android/build.gradle +++ b/packages/mediation/gma_mediation_pubmatic/android/build.gradle @@ -1,5 +1,5 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_pubmatic" -version = "1.2.0" +version = "1.3.0" buildscript { ext.kotlin_version = "2.1.0" diff --git a/packages/mediation/gma_mediation_pubmatic/ios/gma_mediation_pubmatic.podspec b/packages/mediation/gma_mediation_pubmatic/ios/gma_mediation_pubmatic.podspec index 3208c8042..943efb016 100644 --- a/packages/mediation/gma_mediation_pubmatic/ios/gma_mediation_pubmatic.podspec +++ b/packages/mediation/gma_mediation_pubmatic/ios/gma_mediation_pubmatic.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_pubmatic' - s.version = '1.2.0' + s.version = '1.3.0' s.summary = 'Google Mobile Ads Mediation of Pubmatic.' s.description = <<-DESC Mediation Adapter for Pubmatic to use with Google Mobile Ads. @@ -11,7 +11,7 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationPubMatic', '~> 4.8.1.0' + s.dependency 'GoogleMobileAdsMediationPubMatic', '~> 4.9.0.0' s.platform = :ios, '12.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_pubmatic/pubspec.yaml b/packages/mediation/gma_mediation_pubmatic/pubspec.yaml index e444dde99..6044a1af7 100644 --- a/packages/mediation/gma_mediation_pubmatic/pubspec.yaml +++ b/packages/mediation/gma_mediation_pubmatic/pubspec.yaml @@ -1,7 +1,7 @@ name: gma_mediation_pubmatic description: 'Mediation Adapter that enables sending ad requests to the Pubmatic ad network using the google_mobile_ads plugin.' -version: 1.2.0 +version: 1.3.0 environment: sdk: '>=3.6.0 <4.0.0' flutter: '>=3.27.0' From c3aab8debe742e1e44419c8a376069333d65aafe Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Tue, 21 Oct 2025 02:08:31 -0700 Subject: [PATCH 006/251] Updating Liftoff Flutter mediation plugin to support the latest adapters (7.5.1.1, 7.6.0.0) PiperOrigin-RevId: 822013908 --- packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md | 2 ++ .../gma_mediation_liftoffmonetize/android/build.gradle | 4 ++-- .../ios/gma_mediation_liftoffmonetize.podspec | 4 ++-- packages/mediation/gma_mediation_liftoffmonetize/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md b/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md index 07810386a..e4838b994 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md +++ b/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md @@ -1,5 +1,7 @@ ## Liftoff Monetize Flutter Mediation Adapter Changelog +#### Version 1.3.0 (In progress) + #### Version 1.2.3 * Supports [Liftoff Monetize Android adapter version 7.5.1.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/liftoffmonetize/CHANGELOG.md#version-7510). * Supports [Liftoff Monetize iOS adapter version 7.5.3.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/LiftoffMonetize/CHANGELOG.md#version-7530). diff --git a/packages/mediation/gma_mediation_liftoffmonetize/android/build.gradle b/packages/mediation/gma_mediation_liftoffmonetize/android/build.gradle index 75ff4e5ed..5b6df0ac1 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/android/build.gradle +++ b/packages/mediation/gma_mediation_liftoffmonetize/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_liftoffmonetize' -version = "1.2.3" +version = "1.3.0" buildscript { ext.kotlin_version = '2.0.21' @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "7.5.1.0" + stringVersion = "7.5.1.1" } android { diff --git a/packages/mediation/gma_mediation_liftoffmonetize/ios/gma_mediation_liftoffmonetize.podspec b/packages/mediation/gma_mediation_liftoffmonetize/ios/gma_mediation_liftoffmonetize.podspec index 36f081744..c267b000e 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/ios/gma_mediation_liftoffmonetize.podspec +++ b/packages/mediation/gma_mediation_liftoffmonetize/ios/gma_mediation_liftoffmonetize.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_liftoffmonetize' - s.version = '1.2.3' + s.version = '1.3.0' s.summary = 'Google Mobile Ads Mediation of Liftoff Monetize.' s.description = <<-DESC Mediation Adapter for Liftoff Monetize to use with Google Mobile Ads. @@ -15,7 +15,7 @@ Mediation Adapter for Liftoff Monetize to use with Google Mobile Ads. s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.public_header_files = 'Public/**/*.h' - s.dependency 'GoogleMobileAdsMediationVungle', '~>7.5.3.0' + s.dependency 'GoogleMobileAdsMediationVungle', '~>7.6.0.0' s.dependency 'Flutter' s.platform = :ios, '12.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_liftoffmonetize/pubspec.yaml b/packages/mediation/gma_mediation_liftoffmonetize/pubspec.yaml index 068588aaa..eab19ef65 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/pubspec.yaml +++ b/packages/mediation/gma_mediation_liftoffmonetize/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_liftoffmonetize description: "Mediation Adapter that enables sending ad requests to the LiftoffMonetize ad network using the google_mobile_ads plugin." -version: 1.2.3 +version: 1.3.0 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_liftoffmonetize environment: From 4177cbfb0fd30e83701ced6516b87785c780c427 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Tue, 21 Oct 2025 02:08:31 -0700 Subject: [PATCH 007/251] Updating UnityAds Flutter mediation plugin to support the latest adapters (4.16.3.0, 4.16.2.0) PiperOrigin-RevId: 822013909 --- packages/mediation/gma_mediation_unity/CHANGELOG.md | 2 ++ packages/mediation/gma_mediation_unity/android/build.gradle | 4 ++-- .../gma_mediation_unity/ios/gma_mediation_unity.podspec | 4 ++-- packages/mediation/gma_mediation_unity/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_unity/CHANGELOG.md b/packages/mediation/gma_mediation_unity/CHANGELOG.md index 5ef4b74f3..6ce671b24 100644 --- a/packages/mediation/gma_mediation_unity/CHANGELOG.md +++ b/packages/mediation/gma_mediation_unity/CHANGELOG.md @@ -1,5 +1,7 @@ ## Unity Ads Flutter Mediation Adapter Changelog +#### Version 1.6.2 (In progress) + #### Version 1.6.1 - Supports [Unity Android adapter version 4.16.1.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/unity/CHANGELOG.md#version-41610). - Supports [Unity iOS adapter version 4.16.1.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Unity/CHANGELOG.md#version-41610). diff --git a/packages/mediation/gma_mediation_unity/android/build.gradle b/packages/mediation/gma_mediation_unity/android/build.gradle index 38cadc305..00bbd4ada 100644 --- a/packages/mediation/gma_mediation_unity/android/build.gradle +++ b/packages/mediation/gma_mediation_unity/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_unity' -version = "1.6.1" +version = "1.6.2" buildscript { ext.kotlin_version = '2.0.21' @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "4.16.1.0" + stringVersion = "4.16.3.0" } android { diff --git a/packages/mediation/gma_mediation_unity/ios/gma_mediation_unity.podspec b/packages/mediation/gma_mediation_unity/ios/gma_mediation_unity.podspec index 5e54d916f..28c620a2f 100644 --- a/packages/mediation/gma_mediation_unity/ios/gma_mediation_unity.podspec +++ b/packages/mediation/gma_mediation_unity/ios/gma_mediation_unity.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_unity' - s.version = '1.6.1' + s.version = '1.6.2' s.summary = 'Google Mobile Ads Mediation of Unity Ads.' s.description = <<-DESC Mediation Adapter for Unity Ads to use with Google Mobile Ads. @@ -16,7 +16,7 @@ Mediation Adapter for Unity Ads to use with Google Mobile Ads. s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationUnity', '~>4.16.1.0' + s.dependency 'GoogleMobileAdsMediationUnity', '~>4.16.2.0' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_unity/pubspec.yaml b/packages/mediation/gma_mediation_unity/pubspec.yaml index cb1080cab..415823b22 100644 --- a/packages/mediation/gma_mediation_unity/pubspec.yaml +++ b/packages/mediation/gma_mediation_unity/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_unity description: "Mediation Adapter that enables sending ad requests to the Unity ad network using the google_mobile_ads plugin." -version: 1.6.1 +version: 1.6.2 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_unity environment: From c221890bdbf68329d4d8cbdef58a6c67bb4e500a Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Tue, 21 Oct 2025 02:09:34 -0700 Subject: [PATCH 008/251] Updating DTExchange Flutter mediation plugin to support the latest adapters (8.4.0.0, 8.3.8.0) PiperOrigin-RevId: 822014257 --- packages/mediation/gma_mediation_dtexchange/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_dtexchange/android/build.gradle | 4 ++-- .../ios/gma_mediation_dtexchange.podspec | 2 +- packages/mediation/gma_mediation_dtexchange/pubspec.yaml | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md b/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md index b0f4d079d..9bbdf8787 100644 --- a/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md +++ b/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md @@ -1,5 +1,7 @@ ## DT Exchange Flutter Mediation Adapter Changelog +#### Version 1.2.0 (In progress) + #### Version 1.1.5 * Supports [DT Exchange Android adapter version 8.3.8.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/dtexchange/CHANGELOG.md#version-8380). * Supports [DT Exchange iOS adapter version 8.3.8.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/DTExchange/CHANGELOG.md#version-8380). diff --git a/packages/mediation/gma_mediation_dtexchange/android/build.gradle b/packages/mediation/gma_mediation_dtexchange/android/build.gradle index d140ab64b..c0a15bec6 100644 --- a/packages/mediation/gma_mediation_dtexchange/android/build.gradle +++ b/packages/mediation/gma_mediation_dtexchange/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_dtexchange' -version = "1.1.5" +version = "1.2.0" buildscript { ext.kotlin_version = '2.0.21' @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "8.3.8.0" + stringVersion = "8.4.0.0" } android { diff --git a/packages/mediation/gma_mediation_dtexchange/ios/gma_mediation_dtexchange.podspec b/packages/mediation/gma_mediation_dtexchange/ios/gma_mediation_dtexchange.podspec index 4073f1296..b8190a5c7 100644 --- a/packages/mediation/gma_mediation_dtexchange/ios/gma_mediation_dtexchange.podspec +++ b/packages/mediation/gma_mediation_dtexchange/ios/gma_mediation_dtexchange.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_dtexchange' - s.version = '1.1.5' + s.version = '1.2.0' s.summary = 'Google Mobile Ads Mediation of DT Exchange.' s.description = <<-DESC Mediation Adapter for DT Exchange to use with Google Mobile Ads. diff --git a/packages/mediation/gma_mediation_dtexchange/pubspec.yaml b/packages/mediation/gma_mediation_dtexchange/pubspec.yaml index c4576d0e6..1f9f54946 100644 --- a/packages/mediation/gma_mediation_dtexchange/pubspec.yaml +++ b/packages/mediation/gma_mediation_dtexchange/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_dtexchange description: "Mediation Adapter that enables sending ad requests to the DT Exchange ad network using the google_mobile_ads plugin." -version: 1.1.5 +version: 1.2.0 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_dtexchange environment: From 432c3582b024df5c71ea48ed0f0edc2176d9b134 Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Tue, 21 Oct 2025 09:31:29 -0700 Subject: [PATCH 009/251] Updating MyTarget Flutter mediation plugin to support the latest adapters (5.27.3.0, 5.36.0.0) PiperOrigin-RevId: 822152579 --- packages/mediation/gma_mediation_mytarget/android/build.gradle | 2 +- .../gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec | 2 +- packages/mediation/gma_mediation_mytarget/pubspec.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/mediation/gma_mediation_mytarget/android/build.gradle b/packages/mediation/gma_mediation_mytarget/android/build.gradle index 6454ac4b4..99c6bad9e 100644 --- a/packages/mediation/gma_mediation_mytarget/android/build.gradle +++ b/packages/mediation/gma_mediation_mytarget/android/build.gradle @@ -25,7 +25,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "5.27.2.0" + stringVersion = "5.27.3.0" } android { diff --git a/packages/mediation/gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec b/packages/mediation/gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec index 9a36aeadd..c0446fbde 100644 --- a/packages/mediation/gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec +++ b/packages/mediation/gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec @@ -11,7 +11,7 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationMyTarget', '~>5.35.0.0' + s.dependency 'GoogleMobileAdsMediationMyTarget', '~>5.36.0.0' s.platform = :ios, '12.4' s.static_framework = true diff --git a/packages/mediation/gma_mediation_mytarget/pubspec.yaml b/packages/mediation/gma_mediation_mytarget/pubspec.yaml index 05f7e2af1..b802caad2 100644 --- a/packages/mediation/gma_mediation_mytarget/pubspec.yaml +++ b/packages/mediation/gma_mediation_mytarget/pubspec.yaml @@ -3,7 +3,7 @@ description: 'Mediation Adapter that enables sending ad requests to the mytarget ad network using the google_mobile_ads plugin.' version: 1.5.0 environment: - sdk: ^3.7.0 + sdk: ^3.6.0 flutter: '>=3.27.0' dependencies: flutter: From ed07bdcb78b5fe34d53d51f2ac6b1825854d743c Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Tue, 21 Oct 2025 09:32:08 -0700 Subject: [PATCH 010/251] Updating BidMachine Flutter mediation plugin to support the latest adapters (3.4.0.0, 3.4.0.1) PiperOrigin-RevId: 822152836 --- packages/mediation/gma_mediation_bidmachine/CHANGELOG.md | 2 +- .../mediation/gma_mediation_bidmachine/android/build.gradle | 4 ++-- .../ios/gma_mediation_bidmachine.podspec | 2 +- packages/mediation/gma_mediation_bidmachine/pubspec.yaml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md b/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md index ec6c1e6f7..37b19ef3c 100644 --- a/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md +++ b/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md @@ -1,6 +1,6 @@ ## BidMachine Flutter Mediation Adapter Changelog -#### Version 1.0.1 (In progress) +#### Version 1.1.0 (In progress) #### 1.0.0 - Initial release. diff --git a/packages/mediation/gma_mediation_bidmachine/android/build.gradle b/packages/mediation/gma_mediation_bidmachine/android/build.gradle index 06136fc08..bdf2c2c21 100644 --- a/packages/mediation/gma_mediation_bidmachine/android/build.gradle +++ b/packages/mediation/gma_mediation_bidmachine/android/build.gradle @@ -1,5 +1,5 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_bidmachine" -version = "1.0.1" +version = "1.1.0" buildscript { ext.kotlin_version = "2.1.0" @@ -25,7 +25,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "3.3.0.0" + stringVersion = "3.4.0.0" } android { diff --git a/packages/mediation/gma_mediation_bidmachine/ios/gma_mediation_bidmachine.podspec b/packages/mediation/gma_mediation_bidmachine/ios/gma_mediation_bidmachine.podspec index c0faf0471..ddcf3a018 100644 --- a/packages/mediation/gma_mediation_bidmachine/ios/gma_mediation_bidmachine.podspec +++ b/packages/mediation/gma_mediation_bidmachine/ios/gma_mediation_bidmachine.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_bidmachine' - s.version = '1.0.1' + s.version = '1.1.0' s.summary = 'Google Mobile Ads Mediation of BidMachine.' s.description = <<-DESC Mediation Adapter for BidMachine to use with Google Mobile Ads. diff --git a/packages/mediation/gma_mediation_bidmachine/pubspec.yaml b/packages/mediation/gma_mediation_bidmachine/pubspec.yaml index ed756ca68..dbf59c833 100644 --- a/packages/mediation/gma_mediation_bidmachine/pubspec.yaml +++ b/packages/mediation/gma_mediation_bidmachine/pubspec.yaml @@ -1,7 +1,7 @@ name: gma_mediation_bidmachine description: 'Mediation Adapter that enables sending ad requests to the BidMachine ad network using the google_mobile_ads plugin.' -version: 1.0.1 +version: 1.1.0 environment: sdk: ^3.8.1 flutter: '>=3.3.0' From 6409ae3bcd194acbf8c3cbf12a87f4d88c965796 Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Tue, 21 Oct 2025 09:33:56 -0700 Subject: [PATCH 011/251] Updating Maio Flutter mediation plugin to support the latest adapters (2.0.6.0, 2.2.0.0) PiperOrigin-RevId: 822153725 --- packages/mediation/gma_mediation_maio/android/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_maio/android/build.gradle b/packages/mediation/gma_mediation_maio/android/build.gradle index 5321fd38e..f008c6460 100644 --- a/packages/mediation/gma_mediation_maio/android/build.gradle +++ b/packages/mediation/gma_mediation_maio/android/build.gradle @@ -25,7 +25,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "2.0.5.0" + stringVersion = "2.0.6.0" } android { From 54a4a5573b52fea569e5f2ba48c09da941873d0f Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Tue, 21 Oct 2025 09:39:27 -0700 Subject: [PATCH 012/251] Updating Line Flutter mediation plugin to support the latest adapters (2.9.20250924.1, 2.9.20250930.0) PiperOrigin-RevId: 822156015 --- packages/mediation/gma_mediation_line/android/build.gradle | 2 +- .../mediation/gma_mediation_line/ios/gma_mediation_line.podspec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/mediation/gma_mediation_line/android/build.gradle b/packages/mediation/gma_mediation_line/android/build.gradle index 696ab19a4..e4ad86188 100644 --- a/packages/mediation/gma_mediation_line/android/build.gradle +++ b/packages/mediation/gma_mediation_line/android/build.gradle @@ -25,7 +25,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "2.9.20250924.0" + stringVersion = "2.9.20250924.1" } android { diff --git a/packages/mediation/gma_mediation_line/ios/gma_mediation_line.podspec b/packages/mediation/gma_mediation_line/ios/gma_mediation_line.podspec index f44771815..7cfa40f92 100644 --- a/packages/mediation/gma_mediation_line/ios/gma_mediation_line.podspec +++ b/packages/mediation/gma_mediation_line/ios/gma_mediation_line.podspec @@ -11,7 +11,7 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationLine', '~>2.9.20250912.0' + s.dependency 'GoogleMobileAdsMediationLine', '~>2.9.20250930.0' s.platform = :ios, '12.0' s.static_framework = true From 073bf7f3dd31ef6caf18330d387751004562671a Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Tue, 21 Oct 2025 13:14:00 -0700 Subject: [PATCH 013/251] Lower minimum Dart SDK and lint versions in BidMachine adapter PiperOrigin-RevId: 822248148 --- packages/mediation/gma_mediation_bidmachine/pubspec.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/mediation/gma_mediation_bidmachine/pubspec.yaml b/packages/mediation/gma_mediation_bidmachine/pubspec.yaml index dbf59c833..0e31b7079 100644 --- a/packages/mediation/gma_mediation_bidmachine/pubspec.yaml +++ b/packages/mediation/gma_mediation_bidmachine/pubspec.yaml @@ -3,8 +3,8 @@ description: 'Mediation Adapter that enables sending ad requests to the BidMachi ad network using the google_mobile_ads plugin.' version: 1.1.0 environment: - sdk: ^3.8.1 - flutter: '>=3.3.0' + sdk: '>=3.6.0 <4.0.0' + flutter: '>=3.27.0' dependencies: flutter: sdk: flutter @@ -14,7 +14,7 @@ dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^5.0.0 - lint: ^2.8.0 + lint: ^2.4.0 flutter: plugin: platforms: From 9700e6fcf6ed836e1950dc6fd2f38aab50e8e07e Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Tue, 28 Oct 2025 09:50:03 -0700 Subject: [PATCH 014/251] Update Moloco Flutter Adapter to version 2.0.0 PiperOrigin-RevId: 825083832 --- packages/mediation/gma_mediation_moloco/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_moloco/CHANGELOG.md b/packages/mediation/gma_mediation_moloco/CHANGELOG.md index 3821e74c5..88d4434ff 100644 --- a/packages/mediation/gma_mediation_moloco/CHANGELOG.md +++ b/packages/mediation/gma_mediation_moloco/CHANGELOG.md @@ -1,6 +1,9 @@ ## Moloco Flutter Mediation Adapter Changelog -#### Version 2.0.0 (In progress) +#### Version 2.0.0 +- Supports [Moloco Android adapter version 4.0.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/moloco/CHANGELOG.md#version-4000). +- Supports [Moloco iOS adapter version 3.13.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Moloco/CHANGELOG.md#version-31300). +- Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 1.6.0 - Supports [Moloco Android adapter version 3.12.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/moloco/CHANGELOG.md#version-31200). From 44a41e96e04a9aaf3bf10841c860a28066bee090 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Tue, 28 Oct 2025 10:18:24 -0700 Subject: [PATCH 015/251] Update Inmobi Flutter Adapter version to 1.1.5 PiperOrigin-RevId: 825097314 --- packages/mediation/gma_mediation_inmobi/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_inmobi/CHANGELOG.md b/packages/mediation/gma_mediation_inmobi/CHANGELOG.md index d1fb9ee47..b7ec35831 100644 --- a/packages/mediation/gma_mediation_inmobi/CHANGELOG.md +++ b/packages/mediation/gma_mediation_inmobi/CHANGELOG.md @@ -1,6 +1,9 @@ ## InMobi Flutter Mediation Adapter Changelog -#### Version 1.1.5 (In progress) +#### Version 1.1.5 +* Supports [inMobi Android adapter version 10.8.8.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/inmobi/CHANGELOG.md#version-10880). +* Supports [inMobi iOS adapter version 10.8.8.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/InMobi/CHANGELOG.md#version-10880). +* Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 1.1.4 * Supports [inMobi Android adapter version 10.8.7.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/inmobi/CHANGELOG.md#version-10870). From 20ba467fc35ab1a7a4b947b98d75704b757b55f5 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Tue, 28 Oct 2025 10:21:16 -0700 Subject: [PATCH 016/251] Updating Mintegral Flutter Adapter to version 1.2.6. PiperOrigin-RevId: 825098632 --- packages/mediation/gma_mediation_mintegral/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_mintegral/CHANGELOG.md b/packages/mediation/gma_mediation_mintegral/CHANGELOG.md index 9416ee74e..caa74e7d1 100644 --- a/packages/mediation/gma_mediation_mintegral/CHANGELOG.md +++ b/packages/mediation/gma_mediation_mintegral/CHANGELOG.md @@ -1,6 +1,9 @@ ## Mintegral Flutter Mediation Adapter Changelog -#### Version 1.2.6 (In progress) +#### Version 1.2.6 +- Supports [Mintegral Android adapter version 16.9.91.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/mintegral/CHANGELOG.md#version-169911). +- Supports [Mintegral iOS adapter version 7.7.9.1](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Mintegral/CHANGELOG.md#version-7791). +- Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 1.2.5 - Supports [Mintegral Android adapter version 16.9.91.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/mintegral/CHANGELOG.md#version-169911). From da8a69f41e1f9dcee67a16a1f975f6f365cadac6 Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Tue, 28 Oct 2025 12:02:39 -0700 Subject: [PATCH 017/251] Update ironSource Flutter Mediation Adapter to version 2.0.1 PiperOrigin-RevId: 825146159 --- packages/mediation/gma_mediation_ironsource/CHANGELOG.md | 3 +++ .../mediation/gma_mediation_ironsource/android/build.gradle | 2 +- .../ios/Classes/GmaMediationIronsourcePlugin.swift | 2 +- .../ios/gma_mediation_ironsource.podspec | 2 +- packages/mediation/gma_mediation_ironsource/pubspec.yaml | 2 +- 5 files changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/mediation/gma_mediation_ironsource/CHANGELOG.md b/packages/mediation/gma_mediation_ironsource/CHANGELOG.md index b9c9d17c5..3ef5d1d3e 100644 --- a/packages/mediation/gma_mediation_ironsource/CHANGELOG.md +++ b/packages/mediation/gma_mediation_ironsource/CHANGELOG.md @@ -1,5 +1,8 @@ ## ironSource Flutter Mediation Adapter Changelog +#### Version 2.0.1 (In progress) +- Fixed iOS build with new API + #### Version 2.0.0 - Supports [ironSource Android adapter version 9.0.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/ironsource/CHANGELOG.md#version-9000). - Supports [ironSource iOS adapter version 9.0.0.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/IronSource/CHANGELOG.md#version-90000). diff --git a/packages/mediation/gma_mediation_ironsource/android/build.gradle b/packages/mediation/gma_mediation_ironsource/android/build.gradle index 40b572579..44ebbe2dc 100644 --- a/packages/mediation/gma_mediation_ironsource/android/build.gradle +++ b/packages/mediation/gma_mediation_ironsource/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_ironsource' -version = "2.0.0" +version = "2.0.1" buildscript { ext.kotlin_version = '2.0.21' diff --git a/packages/mediation/gma_mediation_ironsource/ios/Classes/GmaMediationIronsourcePlugin.swift b/packages/mediation/gma_mediation_ironsource/ios/Classes/GmaMediationIronsourcePlugin.swift index af7965140..3c2b5140a 100644 --- a/packages/mediation/gma_mediation_ironsource/ios/Classes/GmaMediationIronsourcePlugin.swift +++ b/packages/mediation/gma_mediation_ironsource/ios/Classes/GmaMediationIronsourcePlugin.swift @@ -13,7 +13,7 @@ // limitations under the License. import Flutter -import LevelPlay +import IronSource import UIKit /// Manages IronSourcePrivacyApi and implements the needed methods. diff --git a/packages/mediation/gma_mediation_ironsource/ios/gma_mediation_ironsource.podspec b/packages/mediation/gma_mediation_ironsource/ios/gma_mediation_ironsource.podspec index 420a94ca9..dec3b0b49 100644 --- a/packages/mediation/gma_mediation_ironsource/ios/gma_mediation_ironsource.podspec +++ b/packages/mediation/gma_mediation_ironsource/ios/gma_mediation_ironsource.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_ironsource' - s.version = '2.0.0' + s.version = '2.0.1' s.summary = 'Google Mobile Ads Mediation of ironSource.' s.description = <<-DESC Mediation Adapter for ironSource to use with Google Mobile Ads. diff --git a/packages/mediation/gma_mediation_ironsource/pubspec.yaml b/packages/mediation/gma_mediation_ironsource/pubspec.yaml index 5a895e2f4..3231318fa 100644 --- a/packages/mediation/gma_mediation_ironsource/pubspec.yaml +++ b/packages/mediation/gma_mediation_ironsource/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_ironsource description: "Mediation Adapter that enables sending ad requests to the ironSource ad network using the google_mobile_ads plugin." -version: 2.0.0 +version: 2.0.1 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_ironsource environment: From ca25f0fad04479a4ebfa9329537252faf93435ef Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Tue, 28 Oct 2025 21:35:53 -0700 Subject: [PATCH 018/251] Updating DT Exchange Flutter Adapter to version 1.2.0 PiperOrigin-RevId: 825354416 --- packages/mediation/gma_mediation_dtexchange/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md b/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md index 9bbdf8787..1a0f496b6 100644 --- a/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md +++ b/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md @@ -1,6 +1,9 @@ ## DT Exchange Flutter Mediation Adapter Changelog -#### Version 1.2.0 (In progress) +#### Version 1.2.0 +* Supports [DT Exchange Android adapter version 8.4.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/dtexchange/CHANGELOG.md#version-8400). +* Supports [DT Exchange iOS adapter version 8.3.8.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/DTExchange/CHANGELOG.md#version-8380). +* Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 1.1.5 * Supports [DT Exchange Android adapter version 8.3.8.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/dtexchange/CHANGELOG.md#version-8380). From ea00874864ce5dafa3993a22f6005fb4ddea80b7 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Fri, 31 Oct 2025 11:48:01 -0700 Subject: [PATCH 019/251] Update IronSource Flutter Adapter version to 2.0.1. PiperOrigin-RevId: 826572126 --- packages/mediation/gma_mediation_ironsource/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_ironsource/CHANGELOG.md b/packages/mediation/gma_mediation_ironsource/CHANGELOG.md index 3ef5d1d3e..219f71831 100644 --- a/packages/mediation/gma_mediation_ironsource/CHANGELOG.md +++ b/packages/mediation/gma_mediation_ironsource/CHANGELOG.md @@ -1,7 +1,10 @@ ## ironSource Flutter Mediation Adapter Changelog -#### Version 2.0.1 (In progress) +#### Version 2.0.1 - Fixed iOS build with new API +- Supports [ironSource Android adapter version 9.0.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/ironsource/CHANGELOG.md#version-9000). +- Supports [ironSource iOS adapter version 9.0.0.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/IronSource/CHANGELOG.md#version-90000). +- Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 2.0.0 - Supports [ironSource Android adapter version 9.0.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/ironsource/CHANGELOG.md#version-9000). From f9f1aea7c8b4cf64186c70e4e93169be7bd46866 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Fri, 31 Oct 2025 12:20:46 -0700 Subject: [PATCH 020/251] Updating Liftoff Monetize Flutter Adapter version to 1.3.0 PiperOrigin-RevId: 826584328 --- .../mediation/gma_mediation_liftoffmonetize/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md b/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md index e4838b994..933ace4a2 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md +++ b/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md @@ -1,6 +1,9 @@ ## Liftoff Monetize Flutter Mediation Adapter Changelog -#### Version 1.3.0 (In progress) +#### Version 1.3.0 +* Supports [Liftoff Monetize Android adapter version 7.5.1.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/liftoffmonetize/CHANGELOG.md#version-7511). +* Supports [Liftoff Monetize iOS adapter version 7.6.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/LiftoffMonetize/CHANGELOG.md#version-7600). +* Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 1.2.3 * Supports [Liftoff Monetize Android adapter version 7.5.1.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/liftoffmonetize/CHANGELOG.md#version-7510). From 072577edb125bbcdc69423b93eeb94820ed1dcf4 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Fri, 31 Oct 2025 12:24:38 -0700 Subject: [PATCH 021/251] Update maio Flutter Adapter version to 1.1.0 PiperOrigin-RevId: 826585819 --- packages/mediation/gma_mediation_maio/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_maio/CHANGELOG.md b/packages/mediation/gma_mediation_maio/CHANGELOG.md index 19606067f..634435cd2 100644 --- a/packages/mediation/gma_mediation_maio/CHANGELOG.md +++ b/packages/mediation/gma_mediation_maio/CHANGELOG.md @@ -1,6 +1,9 @@ ## maio Flutter Mediation Adapter Changelog -#### Version 1.1.0 (In progress) +#### Version 1.1.0 +- Supports [maio Android adapter version 2.0.6.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/maio/CHANGELOG.md#version-2060). +- Supports [maio iOS adapter version 2.2.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Maio/CHANGELOG.md#version-2200). +- Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 1.0.3 - Supports [maio Android adapter version 2.0.5.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/maio/CHANGELOG.md#version-2050). From b749903db7948329f21ab725efab5d138e917293 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 3 Nov 2025 11:44:57 -0800 Subject: [PATCH 022/251] Updating IronSource Flutter mediation plugin to support the latest adapters (9.0.0.1, 9.0.0.0.0) PiperOrigin-RevId: 827588126 --- packages/mediation/gma_mediation_ironsource/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_ironsource/android/build.gradle | 4 ++-- .../ios/gma_mediation_ironsource.podspec | 2 +- packages/mediation/gma_mediation_ironsource/pubspec.yaml | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/mediation/gma_mediation_ironsource/CHANGELOG.md b/packages/mediation/gma_mediation_ironsource/CHANGELOG.md index 219f71831..9c59d9a16 100644 --- a/packages/mediation/gma_mediation_ironsource/CHANGELOG.md +++ b/packages/mediation/gma_mediation_ironsource/CHANGELOG.md @@ -1,5 +1,7 @@ ## ironSource Flutter Mediation Adapter Changelog +#### Version 2.0.2 (In progress) + #### Version 2.0.1 - Fixed iOS build with new API - Supports [ironSource Android adapter version 9.0.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/ironsource/CHANGELOG.md#version-9000). diff --git a/packages/mediation/gma_mediation_ironsource/android/build.gradle b/packages/mediation/gma_mediation_ironsource/android/build.gradle index 44ebbe2dc..bf9353c50 100644 --- a/packages/mediation/gma_mediation_ironsource/android/build.gradle +++ b/packages/mediation/gma_mediation_ironsource/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_ironsource' -version = "2.0.1" +version = "2.0.2" buildscript { ext.kotlin_version = '2.0.21' @@ -28,7 +28,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "9.0.0.0" + stringVersion = "9.0.0.1" } android { diff --git a/packages/mediation/gma_mediation_ironsource/ios/gma_mediation_ironsource.podspec b/packages/mediation/gma_mediation_ironsource/ios/gma_mediation_ironsource.podspec index dec3b0b49..6abf74986 100644 --- a/packages/mediation/gma_mediation_ironsource/ios/gma_mediation_ironsource.podspec +++ b/packages/mediation/gma_mediation_ironsource/ios/gma_mediation_ironsource.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_ironsource' - s.version = '2.0.1' + s.version = '2.0.2' s.summary = 'Google Mobile Ads Mediation of ironSource.' s.description = <<-DESC Mediation Adapter for ironSource to use with Google Mobile Ads. diff --git a/packages/mediation/gma_mediation_ironsource/pubspec.yaml b/packages/mediation/gma_mediation_ironsource/pubspec.yaml index 3231318fa..bd42d9127 100644 --- a/packages/mediation/gma_mediation_ironsource/pubspec.yaml +++ b/packages/mediation/gma_mediation_ironsource/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_ironsource description: "Mediation Adapter that enables sending ad requests to the ironSource ad network using the google_mobile_ads plugin." -version: 2.0.1 +version: 2.0.2 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_ironsource environment: From 5d96cc17325924f7a15c270146f01670ffc574e1 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 3 Nov 2025 11:46:24 -0800 Subject: [PATCH 023/251] Updating InMobi Flutter mediation plugin to support the latest adapters (10.8.8.1, 10.8.8.0) PiperOrigin-RevId: 827588661 --- packages/mediation/gma_mediation_inmobi/CHANGELOG.md | 2 ++ packages/mediation/gma_mediation_inmobi/android/build.gradle | 4 ++-- .../gma_mediation_inmobi/ios/gma_mediation_inmobi.podspec | 2 +- packages/mediation/gma_mediation_inmobi/pubspec.yaml | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/mediation/gma_mediation_inmobi/CHANGELOG.md b/packages/mediation/gma_mediation_inmobi/CHANGELOG.md index b7ec35831..7c208a56b 100644 --- a/packages/mediation/gma_mediation_inmobi/CHANGELOG.md +++ b/packages/mediation/gma_mediation_inmobi/CHANGELOG.md @@ -1,5 +1,7 @@ ## InMobi Flutter Mediation Adapter Changelog +#### Version 1.1.6 (In progress) + #### Version 1.1.5 * Supports [inMobi Android adapter version 10.8.8.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/inmobi/CHANGELOG.md#version-10880). * Supports [inMobi iOS adapter version 10.8.8.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/InMobi/CHANGELOG.md#version-10880). diff --git a/packages/mediation/gma_mediation_inmobi/android/build.gradle b/packages/mediation/gma_mediation_inmobi/android/build.gradle index 213e4f85e..fb4cd6e5a 100644 --- a/packages/mediation/gma_mediation_inmobi/android/build.gradle +++ b/packages/mediation/gma_mediation_inmobi/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_inmobi' -version = "1.1.5" +version = "1.1.6" buildscript { ext.kotlin_version = '2.0.21' @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "10.8.8.0" + stringVersion = "10.8.8.1" } android { diff --git a/packages/mediation/gma_mediation_inmobi/ios/gma_mediation_inmobi.podspec b/packages/mediation/gma_mediation_inmobi/ios/gma_mediation_inmobi.podspec index 734a7beba..490fad6bd 100644 --- a/packages/mediation/gma_mediation_inmobi/ios/gma_mediation_inmobi.podspec +++ b/packages/mediation/gma_mediation_inmobi/ios/gma_mediation_inmobi.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_inmobi' - s.version = '1.1.5' + s.version = '1.1.6' s.summary = 'Google Mobile Ads Mediation of InMobi.' s.description = <<-DESC Mediation Adapter for InMobi to use with Google Mobile Ads. diff --git a/packages/mediation/gma_mediation_inmobi/pubspec.yaml b/packages/mediation/gma_mediation_inmobi/pubspec.yaml index e275f2304..acd2f8d40 100644 --- a/packages/mediation/gma_mediation_inmobi/pubspec.yaml +++ b/packages/mediation/gma_mediation_inmobi/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_inmobi description: "Mediation Adapter that enables sending ad requests to the InMobi ad network using the google_mobile_ads plugin." -version: 1.1.5 +version: 1.1.6 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_inmobi environment: From 8b468c2ca56ebac324c5bf809d070323cbf75471 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 3 Nov 2025 11:46:27 -0800 Subject: [PATCH 024/251] Updating Liftoff Flutter mediation plugin to support the latest adapters (7.6.0.0, 7.6.1.0) PiperOrigin-RevId: 827588687 --- packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md | 2 ++ .../gma_mediation_liftoffmonetize/android/build.gradle | 4 ++-- .../ios/gma_mediation_liftoffmonetize.podspec | 4 ++-- packages/mediation/gma_mediation_liftoffmonetize/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md b/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md index 933ace4a2..11c199237 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md +++ b/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md @@ -1,5 +1,7 @@ ## Liftoff Monetize Flutter Mediation Adapter Changelog +#### Version 1.4.0 (In progress) + #### Version 1.3.0 * Supports [Liftoff Monetize Android adapter version 7.5.1.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/liftoffmonetize/CHANGELOG.md#version-7511). * Supports [Liftoff Monetize iOS adapter version 7.6.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/LiftoffMonetize/CHANGELOG.md#version-7600). diff --git a/packages/mediation/gma_mediation_liftoffmonetize/android/build.gradle b/packages/mediation/gma_mediation_liftoffmonetize/android/build.gradle index 5b6df0ac1..4f537f351 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/android/build.gradle +++ b/packages/mediation/gma_mediation_liftoffmonetize/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_liftoffmonetize' -version = "1.3.0" +version = "1.4.0" buildscript { ext.kotlin_version = '2.0.21' @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "7.5.1.1" + stringVersion = "7.6.0.0" } android { diff --git a/packages/mediation/gma_mediation_liftoffmonetize/ios/gma_mediation_liftoffmonetize.podspec b/packages/mediation/gma_mediation_liftoffmonetize/ios/gma_mediation_liftoffmonetize.podspec index c267b000e..d658f3d7a 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/ios/gma_mediation_liftoffmonetize.podspec +++ b/packages/mediation/gma_mediation_liftoffmonetize/ios/gma_mediation_liftoffmonetize.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_liftoffmonetize' - s.version = '1.3.0' + s.version = '1.4.0' s.summary = 'Google Mobile Ads Mediation of Liftoff Monetize.' s.description = <<-DESC Mediation Adapter for Liftoff Monetize to use with Google Mobile Ads. @@ -15,7 +15,7 @@ Mediation Adapter for Liftoff Monetize to use with Google Mobile Ads. s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.public_header_files = 'Public/**/*.h' - s.dependency 'GoogleMobileAdsMediationVungle', '~>7.6.0.0' + s.dependency 'GoogleMobileAdsMediationVungle', '~>7.6.1.0' s.dependency 'Flutter' s.platform = :ios, '12.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_liftoffmonetize/pubspec.yaml b/packages/mediation/gma_mediation_liftoffmonetize/pubspec.yaml index eab19ef65..52b16d709 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/pubspec.yaml +++ b/packages/mediation/gma_mediation_liftoffmonetize/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_liftoffmonetize description: "Mediation Adapter that enables sending ad requests to the LiftoffMonetize ad network using the google_mobile_ads plugin." -version: 1.3.0 +version: 1.4.0 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_liftoffmonetize environment: From 99fad6a136a3fe9998067c79aee45fd3d739a51b Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 3 Nov 2025 11:46:35 -0800 Subject: [PATCH 025/251] Updating Chartboost Flutter mediation plugin to support the latest adapters (9.10.0.1, 9.10.0.0) PiperOrigin-RevId: 827588734 --- packages/mediation/gma_mediation_chartboost/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_chartboost/android/build.gradle | 4 ++-- .../ios/gma_mediation_chartboost.podspec | 2 +- packages/mediation/gma_mediation_chartboost/pubspec.yaml | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/mediation/gma_mediation_chartboost/CHANGELOG.md b/packages/mediation/gma_mediation_chartboost/CHANGELOG.md index 7e1374178..cb24bc2b2 100644 --- a/packages/mediation/gma_mediation_chartboost/CHANGELOG.md +++ b/packages/mediation/gma_mediation_chartboost/CHANGELOG.md @@ -1,5 +1,7 @@ ## Chartboost Flutter Mediation Adapter Changelog +#### Version 1.3.1 (In progress) + #### Version 1.3.0 - Supports [Chartboost Android adapter version 9.10.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/chartboost/CHANGELOG.md#version-91000). - Supports [Charboost iOS adapter version 9.10.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Chartboost/CHANGELOG.md#version-91000). diff --git a/packages/mediation/gma_mediation_chartboost/android/build.gradle b/packages/mediation/gma_mediation_chartboost/android/build.gradle index 136068b5b..992e45504 100644 --- a/packages/mediation/gma_mediation_chartboost/android/build.gradle +++ b/packages/mediation/gma_mediation_chartboost/android/build.gradle @@ -1,5 +1,5 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_chartboost" -version = "1.3.0" +version = "1.3.1" buildscript { ext.kotlin_version = "1.8.22" @@ -28,7 +28,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "9.10.0.0" + stringVersion = "9.10.0.1" } android { diff --git a/packages/mediation/gma_mediation_chartboost/ios/gma_mediation_chartboost.podspec b/packages/mediation/gma_mediation_chartboost/ios/gma_mediation_chartboost.podspec index 0ba059126..536f7be9e 100644 --- a/packages/mediation/gma_mediation_chartboost/ios/gma_mediation_chartboost.podspec +++ b/packages/mediation/gma_mediation_chartboost/ios/gma_mediation_chartboost.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_chartboost' - s.version = '1.3.0' + s.version = '1.3.1' s.summary = 'Google Mobile Ads Mediation of Chartboost.' s.description = <<-DESC Mediation Adapter for Chartboost to use with Google Mobile Ads. diff --git a/packages/mediation/gma_mediation_chartboost/pubspec.yaml b/packages/mediation/gma_mediation_chartboost/pubspec.yaml index 1a58e1767..34355b6a1 100644 --- a/packages/mediation/gma_mediation_chartboost/pubspec.yaml +++ b/packages/mediation/gma_mediation_chartboost/pubspec.yaml @@ -1,7 +1,7 @@ name: gma_mediation_chartboost description: 'Mediation Adapter that enables sending ad requests to the Chartboost ad network using the google_mobile_ads plugin.' -version: 1.3.0 +version: 1.3.1 environment: sdk: '>=3.6.0 <4.0.0' flutter: '>=3.27.0' From 23e72efa89811ee1316c6761141e75e841527d70 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 10 Nov 2025 11:55:23 -0800 Subject: [PATCH 026/251] Updating BidMachine Flutter Adapter to version 1.1.0 PiperOrigin-RevId: 830540915 --- packages/mediation/gma_mediation_bidmachine/CHANGELOG.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md b/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md index 37b19ef3c..290e5c510 100644 --- a/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md +++ b/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md @@ -1,8 +1,11 @@ ## BidMachine Flutter Mediation Adapter Changelog -#### Version 1.1.0 (In progress) +#### Version 1.1.0 +- Supports [BidMachine Android adapter version 3.4.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/bidmachine/CHANGELOG.md#version-3400). +- Supports [BidMachine iOS adapter version 3.4.0.1](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/BidMachine/CHANGELOG.md#version-3401). +- Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. -#### 1.0.0 +#### Version 1.0.0 - Initial release. - Supports [BidMachine Android adapter version 3.3.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/bidmachine/CHANGELOG.md#version-3300). - Supports [BidMachine iOS adapter version 3.4.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/BidMachine/CHANGELOG.md#version-3400). From 397961b6c2a31cf498dabecb26181854a6aabbe8 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 10 Nov 2025 14:38:17 -0800 Subject: [PATCH 027/251] Updating Meta Audience Network Flutter Adapter to version 1.4.2 PiperOrigin-RevId: 830603811 --- packages/mediation/gma_mediation_meta/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_meta/CHANGELOG.md b/packages/mediation/gma_mediation_meta/CHANGELOG.md index ab5e8f545..ddfb7ac58 100644 --- a/packages/mediation/gma_mediation_meta/CHANGELOG.md +++ b/packages/mediation/gma_mediation_meta/CHANGELOG.md @@ -1,6 +1,9 @@ ## Meta Audience Network Flutter Mediation Adapter Changelog -#### Version 1.4.2 (In progress) +#### Version 1.4.2 +* Supports [Meta Audience Network Android adapter version 6.20.0.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/meta/CHANGELOG.md#version-62001). +* Supports [Meta Audience Network iOS adapter version 6.20.1.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Meta/CHANGELOG.md#version-62010). +* Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 1.4.1 * Supports [Meta Audience Network Android adapter version 6.20.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/meta/CHANGELOG.md#version-62000). From bf8c87e4da605cfdcd44dea4df6bff4021a3112f Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 10 Nov 2025 14:55:35 -0800 Subject: [PATCH 028/251] Updating AppLovin Flutter Adapter to version 2.4.0 PiperOrigin-RevId: 830611593 --- packages/mediation/gma_mediation_applovin/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_applovin/CHANGELOG.md b/packages/mediation/gma_mediation_applovin/CHANGELOG.md index 43f2fd1b4..21f14cf83 100644 --- a/packages/mediation/gma_mediation_applovin/CHANGELOG.md +++ b/packages/mediation/gma_mediation_applovin/CHANGELOG.md @@ -1,6 +1,9 @@ ## AppLovin Flutter Mediation Adapter Changelog -#### Version 2.4.0 (In progress) +#### Version 2.4.0 +- Supports [AppLovin Android adapter version 13.4.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/applovin/CHANGELOG.md#version-13400). +- Supports [AppLovin iOS adapter version 13.4.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/AppLovin/CHANGELOG.md#version-13400). +* Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 2.3.2 - Supports [AppLovin Android adapter version 13.3.1.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/applovin/CHANGELOG.md#version-13311). From bfdb722b7c2422fa70bdc580c392da0d3ab715fe Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 10 Nov 2025 15:18:25 -0800 Subject: [PATCH 029/251] Updating myTarget Flutter Adapter to version 1.5.0 PiperOrigin-RevId: 830619505 --- packages/mediation/gma_mediation_mytarget/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_mytarget/CHANGELOG.md b/packages/mediation/gma_mediation_mytarget/CHANGELOG.md index fb57b0a5f..d91356827 100644 --- a/packages/mediation/gma_mediation_mytarget/CHANGELOG.md +++ b/packages/mediation/gma_mediation_mytarget/CHANGELOG.md @@ -1,6 +1,9 @@ ## myTarget Flutter Mediation Adapter Changelog -#### Version 1.5.0 (In progress) +#### Version 1.5.0 +* Supports [myTarget Android adapter version 5.27.3.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/mytarget/CHANGELOG.md#version-52730). +* Supports [myTarget iOS adapter version 5.36.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/MyTarget/CHANGELOG.md#version-53600). +* Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 1.4.0 * Supports [myTarget Android adapter version 5.27.2.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/mytarget/CHANGELOG.md#version-52720). From 36178c6d187a87ac7cdc0ec5d138d7525d852890 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 10 Nov 2025 15:22:22 -0800 Subject: [PATCH 030/251] Updating Line Flutter Adapter to version 1.0.5 PiperOrigin-RevId: 830620818 --- packages/mediation/gma_mediation_line/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_line/CHANGELOG.md b/packages/mediation/gma_mediation_line/CHANGELOG.md index 66b3c4685..6c698cc6f 100644 --- a/packages/mediation/gma_mediation_line/CHANGELOG.md +++ b/packages/mediation/gma_mediation_line/CHANGELOG.md @@ -1,6 +1,9 @@ ## Line Flutter Mediation Adapter Changelog -#### Version 1.0.5 (In progress) +#### Version 1.0.5 +- Supports [Line Android adapter version 2.9.20250924.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/line/CHANGELOG.md#version-29202509241). +- Supports [Line iOS adapter version 2.9.20250930.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Line/CHANGELOG.md#version-29202509300). +- Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0 #### Version 1.0.4 - Supports [Line Android adapter version 2.9.20250718.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/line/CHANGELOG.md#version-29202507180). From ac26519f9153ee0137dccda54b3eb359db3ce834 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 10 Nov 2025 15:23:14 -0800 Subject: [PATCH 031/251] Updating PubMatic Flutter Adapter to version 1.3.0 PiperOrigin-RevId: 830621089 --- packages/mediation/gma_mediation_pubmatic/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md b/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md index 8f23bdb22..ceb353157 100644 --- a/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md +++ b/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md @@ -1,6 +1,9 @@ ## Pubmatic Flutter Mediation Adapter Changelog -#### Version 1.3.0 (In progress) +#### Version 1.3.0 +- Supports [PubMatic Android adapter version 4.9.1.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/pubmatic/CHANGELOG.md#version-4910). +- Supports [PubMatic iOS adapter version 4.9.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/PubMatic/CHANGELOG.md#version-4900). +- Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 1.2.0 - Supports [PubMatic Android adapter version 4.9.1.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/pubmatic/CHANGELOG.md#version-4910). From 6d1c82b15f6d07425a4f49b0caa9c41cf3386649 Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Thu, 13 Nov 2025 09:04:05 -0800 Subject: [PATCH 032/251] Updated Unity Ads Android SDK PiperOrigin-RevId: 831883123 --- packages/mediation/gma_mediation_unity/android/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_unity/android/build.gradle b/packages/mediation/gma_mediation_unity/android/build.gradle index 00bbd4ada..a0850af4a 100644 --- a/packages/mediation/gma_mediation_unity/android/build.gradle +++ b/packages/mediation/gma_mediation_unity/android/build.gradle @@ -55,7 +55,7 @@ android { } dependencies { - implementation 'com.unity3d.ads:unity-ads:4.13.0' + implementation 'com.unity3d.ads:unity-ads:4.16.3' implementation "com.google.ads.mediation:unity:$stringVersion" testImplementation 'junit:junit:4.13.2' testImplementation 'androidx.test:core:1.5.0' From 3abe3d0c78ca9b340b0275bd7a8697558a4e7cf5 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Thu, 13 Nov 2025 10:56:34 -0800 Subject: [PATCH 033/251] Updating BidMachine Flutter mediation plugin to support the latest adapters (3.5.0.0, 3.4.0.2) PiperOrigin-RevId: 831926217 --- packages/mediation/gma_mediation_bidmachine/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_bidmachine/android/build.gradle | 4 ++-- .../ios/gma_mediation_bidmachine.podspec | 4 ++-- packages/mediation/gma_mediation_bidmachine/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md b/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md index 290e5c510..e7252d1c3 100644 --- a/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md +++ b/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md @@ -1,5 +1,7 @@ ## BidMachine Flutter Mediation Adapter Changelog +#### Version 1.2.0 (In progress) + #### Version 1.1.0 - Supports [BidMachine Android adapter version 3.4.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/bidmachine/CHANGELOG.md#version-3400). - Supports [BidMachine iOS adapter version 3.4.0.1](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/BidMachine/CHANGELOG.md#version-3401). diff --git a/packages/mediation/gma_mediation_bidmachine/android/build.gradle b/packages/mediation/gma_mediation_bidmachine/android/build.gradle index bdf2c2c21..ca2919fed 100644 --- a/packages/mediation/gma_mediation_bidmachine/android/build.gradle +++ b/packages/mediation/gma_mediation_bidmachine/android/build.gradle @@ -1,5 +1,5 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_bidmachine" -version = "1.1.0" +version = "1.2.0" buildscript { ext.kotlin_version = "2.1.0" @@ -25,7 +25,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "3.4.0.0" + stringVersion = "3.5.0.0" } android { diff --git a/packages/mediation/gma_mediation_bidmachine/ios/gma_mediation_bidmachine.podspec b/packages/mediation/gma_mediation_bidmachine/ios/gma_mediation_bidmachine.podspec index ddcf3a018..36a738573 100644 --- a/packages/mediation/gma_mediation_bidmachine/ios/gma_mediation_bidmachine.podspec +++ b/packages/mediation/gma_mediation_bidmachine/ios/gma_mediation_bidmachine.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_bidmachine' - s.version = '1.1.0' + s.version = '1.2.0' s.summary = 'Google Mobile Ads Mediation of BidMachine.' s.description = <<-DESC Mediation Adapter for BidMachine to use with Google Mobile Ads. @@ -11,7 +11,7 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationBidMachine', '~> 3.4.0.1' + s.dependency 'GoogleMobileAdsMediationBidMachine', '~> 3.4.0.2' s.platform = :ios, '12.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_bidmachine/pubspec.yaml b/packages/mediation/gma_mediation_bidmachine/pubspec.yaml index 0e31b7079..2de34f084 100644 --- a/packages/mediation/gma_mediation_bidmachine/pubspec.yaml +++ b/packages/mediation/gma_mediation_bidmachine/pubspec.yaml @@ -1,7 +1,7 @@ name: gma_mediation_bidmachine description: 'Mediation Adapter that enables sending ad requests to the BidMachine ad network using the google_mobile_ads plugin.' -version: 1.1.0 +version: 1.2.0 environment: sdk: '>=3.6.0 <4.0.0' flutter: '>=3.27.0' From 1a431a6da430217ff50771cc3363dedb4c0ee112 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Thu, 13 Nov 2025 10:58:00 -0800 Subject: [PATCH 034/251] Updating Meta Flutter mediation plugin to support the latest adapters (6.20.0.2, 6.20.1.0) PiperOrigin-RevId: 831926720 --- packages/mediation/gma_mediation_meta/CHANGELOG.md | 2 ++ packages/mediation/gma_mediation_meta/android/build.gradle | 4 ++-- .../gma_mediation_meta/ios/gma_mediation_meta.podspec | 2 +- packages/mediation/gma_mediation_meta/pubspec.yaml | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/mediation/gma_mediation_meta/CHANGELOG.md b/packages/mediation/gma_mediation_meta/CHANGELOG.md index ddfb7ac58..844b072cb 100644 --- a/packages/mediation/gma_mediation_meta/CHANGELOG.md +++ b/packages/mediation/gma_mediation_meta/CHANGELOG.md @@ -1,5 +1,7 @@ ## Meta Audience Network Flutter Mediation Adapter Changelog +#### Version 1.4.3 (In progress) + #### Version 1.4.2 * Supports [Meta Audience Network Android adapter version 6.20.0.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/meta/CHANGELOG.md#version-62001). * Supports [Meta Audience Network iOS adapter version 6.20.1.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Meta/CHANGELOG.md#version-62010). diff --git a/packages/mediation/gma_mediation_meta/android/build.gradle b/packages/mediation/gma_mediation_meta/android/build.gradle index c291deb96..7a300d083 100644 --- a/packages/mediation/gma_mediation_meta/android/build.gradle +++ b/packages/mediation/gma_mediation_meta/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_meta' -version = "1.4.2" +version = "1.4.3" buildscript { ext.kotlin_version = '2.0.21' @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "6.20.0.1" + stringVersion = "6.20.0.2" } android { diff --git a/packages/mediation/gma_mediation_meta/ios/gma_mediation_meta.podspec b/packages/mediation/gma_mediation_meta/ios/gma_mediation_meta.podspec index 2c51ce2ac..0ca280ed6 100644 --- a/packages/mediation/gma_mediation_meta/ios/gma_mediation_meta.podspec +++ b/packages/mediation/gma_mediation_meta/ios/gma_mediation_meta.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_meta' - s.version = '1.4.2' + s.version = '1.4.3' s.summary = 'Google Mobile Ads Mediation of Meta Audience Network.' s.description = <<-DESC Mediation Adapter for Meta Audience Network to use with Google Mobile Ads. diff --git a/packages/mediation/gma_mediation_meta/pubspec.yaml b/packages/mediation/gma_mediation_meta/pubspec.yaml index c053f5e19..4b1ade597 100644 --- a/packages/mediation/gma_mediation_meta/pubspec.yaml +++ b/packages/mediation/gma_mediation_meta/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_meta description: "Mediation Adapter that enables sending ad requests to the Meta Audience Network ad network using the google_mobile_ads plugin." -version: 1.4.2 +version: 1.4.3 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_meta environment: From 395d14e99f1554be9f625bb5d5cbb308f7c5ec4d Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Thu, 13 Nov 2025 10:58:37 -0800 Subject: [PATCH 035/251] Updating Pangle Flutter mediation plugin to support the latest adapters (7.7.0.2.0, 7.7.0.5.0) PiperOrigin-RevId: 831926952 --- packages/mediation/gma_mediation_pangle/CHANGELOG.md | 2 ++ packages/mediation/gma_mediation_pangle/android/build.gradle | 4 ++-- .../gma_mediation_pangle/ios/gma_mediation_pangle.podspec | 4 ++-- packages/mediation/gma_mediation_pangle/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_pangle/CHANGELOG.md b/packages/mediation/gma_mediation_pangle/CHANGELOG.md index 8a42ac39f..2c9fd6c46 100644 --- a/packages/mediation/gma_mediation_pangle/CHANGELOG.md +++ b/packages/mediation/gma_mediation_pangle/CHANGELOG.md @@ -1,5 +1,7 @@ ## Pangle Flutter Mediation Adapter Changelog +#### Version 3.4.0 (In progress) + #### Version 3.3.0 - Supports [Pangle Android adapter version 7.6.0.4.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/pangle/CHANGELOG.md#version-76040). - Supports [Pangle iOS adapter version 7.6.0.5.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Pangle/CHANGELOG.md#version-76050). diff --git a/packages/mediation/gma_mediation_pangle/android/build.gradle b/packages/mediation/gma_mediation_pangle/android/build.gradle index a6e637534..e4116f796 100644 --- a/packages/mediation/gma_mediation_pangle/android/build.gradle +++ b/packages/mediation/gma_mediation_pangle/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_pangle' -version = "3.3.0" +version = "3.4.0" buildscript { ext.kotlin_version = '2.0.21' @@ -28,7 +28,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "7.6.0.4.0" + stringVersion = "7.7.0.2.0" } android { diff --git a/packages/mediation/gma_mediation_pangle/ios/gma_mediation_pangle.podspec b/packages/mediation/gma_mediation_pangle/ios/gma_mediation_pangle.podspec index 165755bd4..b071f6a87 100644 --- a/packages/mediation/gma_mediation_pangle/ios/gma_mediation_pangle.podspec +++ b/packages/mediation/gma_mediation_pangle/ios/gma_mediation_pangle.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_pangle' - s.version = '3.3.0' + s.version = '3.4.0' s.summary = 'Google Mobile Ads Mediation of Pangle.' s.description = <<-DESC Mediation Adapter for Pangle to use with Google Mobile Ads. @@ -16,7 +16,7 @@ Pod::Spec.new do |s| s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationPangle', '~> 7.6.0.6.0' + s.dependency 'GoogleMobileAdsMediationPangle', '~> 7.7.0.5.0' s.platform = :ios, '12.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_pangle/pubspec.yaml b/packages/mediation/gma_mediation_pangle/pubspec.yaml index 51bec97fe..9bf8ccee0 100644 --- a/packages/mediation/gma_mediation_pangle/pubspec.yaml +++ b/packages/mediation/gma_mediation_pangle/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_pangle description: "Mediation Adapter that enables sending ad requests to the Pangle ad network using the google_mobile_ads plugin." -version: 3.3.0 +version: 3.4.0 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_pangle environment: From 8ceddddde64328c58a843bbbec6c071f70f20420 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Thu, 13 Nov 2025 11:02:41 -0800 Subject: [PATCH 036/251] Updating MyTarget Flutter mediation plugin to support the latest adapters (5.27.4.0, 5.37.0.0) PiperOrigin-RevId: 831928888 --- packages/mediation/gma_mediation_mytarget/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_mytarget/android/build.gradle | 4 ++-- .../gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec | 4 ++-- packages/mediation/gma_mediation_mytarget/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_mytarget/CHANGELOG.md b/packages/mediation/gma_mediation_mytarget/CHANGELOG.md index d91356827..0b86e4b01 100644 --- a/packages/mediation/gma_mediation_mytarget/CHANGELOG.md +++ b/packages/mediation/gma_mediation_mytarget/CHANGELOG.md @@ -1,5 +1,7 @@ ## myTarget Flutter Mediation Adapter Changelog +#### Version 1.6.0 (In progress) + #### Version 1.5.0 * Supports [myTarget Android adapter version 5.27.3.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/mytarget/CHANGELOG.md#version-52730). * Supports [myTarget iOS adapter version 5.36.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/MyTarget/CHANGELOG.md#version-53600). diff --git a/packages/mediation/gma_mediation_mytarget/android/build.gradle b/packages/mediation/gma_mediation_mytarget/android/build.gradle index 99c6bad9e..84455d704 100644 --- a/packages/mediation/gma_mediation_mytarget/android/build.gradle +++ b/packages/mediation/gma_mediation_mytarget/android/build.gradle @@ -1,5 +1,5 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_mytarget" -version = "1.5.0" +version = "1.6.0" buildscript { ext.kotlin_version = "1.8.22" @@ -25,7 +25,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "5.27.3.0" + stringVersion = "5.27.4.0" } android { diff --git a/packages/mediation/gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec b/packages/mediation/gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec index c0446fbde..8353c3066 100644 --- a/packages/mediation/gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec +++ b/packages/mediation/gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_mytarget' - s.version = '1.5.0' + s.version = '1.6.0' s.summary = 'Google Mobile Ads Mediation of mytarget.' s.description = <<-DESC Mediation Adapter for mytarget to use with Google Mobile Ads. @@ -11,7 +11,7 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationMyTarget', '~>5.36.0.0' + s.dependency 'GoogleMobileAdsMediationMyTarget', '~>5.37.0.0' s.platform = :ios, '12.4' s.static_framework = true diff --git a/packages/mediation/gma_mediation_mytarget/pubspec.yaml b/packages/mediation/gma_mediation_mytarget/pubspec.yaml index b802caad2..40cb667fc 100644 --- a/packages/mediation/gma_mediation_mytarget/pubspec.yaml +++ b/packages/mediation/gma_mediation_mytarget/pubspec.yaml @@ -1,7 +1,7 @@ name: gma_mediation_mytarget description: 'Mediation Adapter that enables sending ad requests to the mytarget ad network using the google_mobile_ads plugin.' -version: 1.5.0 +version: 1.6.0 environment: sdk: ^3.6.0 flutter: '>=3.27.0' From 282dcce38833d17bd553eee6a7d5eebd05a634f6 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Thu, 13 Nov 2025 11:03:11 -0800 Subject: [PATCH 037/251] Updating PubMatic Flutter mediation plugin to support the latest adapters (4.10.0.0, 4.10.0.0) PiperOrigin-RevId: 831929154 --- packages/mediation/gma_mediation_pubmatic/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_pubmatic/android/build.gradle | 4 ++-- .../gma_mediation_pubmatic/ios/gma_mediation_pubmatic.podspec | 4 ++-- packages/mediation/gma_mediation_pubmatic/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md b/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md index ceb353157..c33437a7f 100644 --- a/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md +++ b/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md @@ -1,5 +1,7 @@ ## Pubmatic Flutter Mediation Adapter Changelog +#### Version 1.4.0 (In progress) + #### Version 1.3.0 - Supports [PubMatic Android adapter version 4.9.1.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/pubmatic/CHANGELOG.md#version-4910). - Supports [PubMatic iOS adapter version 4.9.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/PubMatic/CHANGELOG.md#version-4900). diff --git a/packages/mediation/gma_mediation_pubmatic/android/build.gradle b/packages/mediation/gma_mediation_pubmatic/android/build.gradle index 75eeb1ce1..cae597b0a 100644 --- a/packages/mediation/gma_mediation_pubmatic/android/build.gradle +++ b/packages/mediation/gma_mediation_pubmatic/android/build.gradle @@ -1,5 +1,5 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_pubmatic" -version = "1.3.0" +version = "1.4.0" buildscript { ext.kotlin_version = "2.1.0" @@ -25,7 +25,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "4.9.1.0" + stringVersion = "4.10.0.0" } android { diff --git a/packages/mediation/gma_mediation_pubmatic/ios/gma_mediation_pubmatic.podspec b/packages/mediation/gma_mediation_pubmatic/ios/gma_mediation_pubmatic.podspec index 943efb016..e11ea1dee 100644 --- a/packages/mediation/gma_mediation_pubmatic/ios/gma_mediation_pubmatic.podspec +++ b/packages/mediation/gma_mediation_pubmatic/ios/gma_mediation_pubmatic.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_pubmatic' - s.version = '1.3.0' + s.version = '1.4.0' s.summary = 'Google Mobile Ads Mediation of Pubmatic.' s.description = <<-DESC Mediation Adapter for Pubmatic to use with Google Mobile Ads. @@ -11,7 +11,7 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationPubMatic', '~> 4.9.0.0' + s.dependency 'GoogleMobileAdsMediationPubMatic', '~> 4.10.0.0' s.platform = :ios, '12.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_pubmatic/pubspec.yaml b/packages/mediation/gma_mediation_pubmatic/pubspec.yaml index 6044a1af7..8b0dec7e7 100644 --- a/packages/mediation/gma_mediation_pubmatic/pubspec.yaml +++ b/packages/mediation/gma_mediation_pubmatic/pubspec.yaml @@ -1,7 +1,7 @@ name: gma_mediation_pubmatic description: 'Mediation Adapter that enables sending ad requests to the Pubmatic ad network using the google_mobile_ads plugin.' -version: 1.3.0 +version: 1.4.0 environment: sdk: '>=3.6.0 <4.0.0' flutter: '>=3.27.0' From a2ad1690b465d50925aa7b5f2bdd5f677488bba1 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Thu, 13 Nov 2025 11:10:47 -0800 Subject: [PATCH 038/251] Updating Moloco Flutter mediation plugin to support the latest adapters (4.2.0.0, 3.13.0.0) PiperOrigin-RevId: 831932680 --- packages/mediation/gma_mediation_moloco/CHANGELOG.md | 2 ++ packages/mediation/gma_mediation_moloco/android/build.gradle | 4 ++-- .../gma_mediation_moloco/ios/gma_mediation_moloco.podspec | 2 +- packages/mediation/gma_mediation_moloco/pubspec.yaml | 4 ++-- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_moloco/CHANGELOG.md b/packages/mediation/gma_mediation_moloco/CHANGELOG.md index 88d4434ff..ea47274b9 100644 --- a/packages/mediation/gma_mediation_moloco/CHANGELOG.md +++ b/packages/mediation/gma_mediation_moloco/CHANGELOG.md @@ -1,5 +1,7 @@ ## Moloco Flutter Mediation Adapter Changelog +#### Version 2.1.0 (In progress) + #### Version 2.0.0 - Supports [Moloco Android adapter version 4.0.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/moloco/CHANGELOG.md#version-4000). - Supports [Moloco iOS adapter version 3.13.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Moloco/CHANGELOG.md#version-31300). diff --git a/packages/mediation/gma_mediation_moloco/android/build.gradle b/packages/mediation/gma_mediation_moloco/android/build.gradle index a8c5933f7..4ae114110 100644 --- a/packages/mediation/gma_mediation_moloco/android/build.gradle +++ b/packages/mediation/gma_mediation_moloco/android/build.gradle @@ -1,5 +1,5 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_moloco" -version = "2.0.0" +version = "2.1.0" buildscript { ext.kotlin_version = "1.8.22" @@ -25,7 +25,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "4.0.0.0" + stringVersion = "4.2.0.0" } android { diff --git a/packages/mediation/gma_mediation_moloco/ios/gma_mediation_moloco.podspec b/packages/mediation/gma_mediation_moloco/ios/gma_mediation_moloco.podspec index 60e73a2dc..f6f33dc0b 100644 --- a/packages/mediation/gma_mediation_moloco/ios/gma_mediation_moloco.podspec +++ b/packages/mediation/gma_mediation_moloco/ios/gma_mediation_moloco.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_moloco' - s.version = '2.0.0' + s.version = '2.1.0' s.summary = 'Google Mobile Ads Mediation of Moloco.' s.description = <<-DESC Mediation Adapter for Moloco to use with Google Mobile Ads. diff --git a/packages/mediation/gma_mediation_moloco/pubspec.yaml b/packages/mediation/gma_mediation_moloco/pubspec.yaml index d54d3c86c..38b75e7d5 100644 --- a/packages/mediation/gma_mediation_moloco/pubspec.yaml +++ b/packages/mediation/gma_mediation_moloco/pubspec.yaml @@ -1,9 +1,9 @@ name: gma_mediation_moloco description: 'Mediation Adapter that enables sending ad requests to the Moloco ad network using the google_mobile_ads plugin.' -version: 2.0.0 +version: 2.1.0 environment: - sdk: ^3.6.2 + sdk: '>=3.6.0 <4.0.0' flutter: '>=3.27.0' dependencies: flutter: From 55783b8e0faf1f69ffe61b892d3d8e97af94df67 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Thu, 13 Nov 2025 11:23:03 -0800 Subject: [PATCH 039/251] Updating AppLovin Flutter mediation plugin to support the latest adapters (13.5.0.0, 13.5.0.0) PiperOrigin-RevId: 831937781 --- packages/mediation/gma_mediation_applovin/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_applovin/android/build.gradle | 4 ++-- .../gma_mediation_applovin/ios/gma_mediation_applovin.podspec | 4 ++-- packages/mediation/gma_mediation_applovin/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_applovin/CHANGELOG.md b/packages/mediation/gma_mediation_applovin/CHANGELOG.md index 21f14cf83..ca3b5efa2 100644 --- a/packages/mediation/gma_mediation_applovin/CHANGELOG.md +++ b/packages/mediation/gma_mediation_applovin/CHANGELOG.md @@ -1,5 +1,7 @@ ## AppLovin Flutter Mediation Adapter Changelog +#### Version 2.5.0 (In progress) + #### Version 2.4.0 - Supports [AppLovin Android adapter version 13.4.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/applovin/CHANGELOG.md#version-13400). - Supports [AppLovin iOS adapter version 13.4.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/AppLovin/CHANGELOG.md#version-13400). diff --git a/packages/mediation/gma_mediation_applovin/android/build.gradle b/packages/mediation/gma_mediation_applovin/android/build.gradle index c33988199..80d275d9b 100644 --- a/packages/mediation/gma_mediation_applovin/android/build.gradle +++ b/packages/mediation/gma_mediation_applovin/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_applovin' -version = "2.4.0" +version = "2.5.0" buildscript { ext.kotlin_version = '2.0.21' @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "13.4.0.0" + stringVersion = "13.5.0.0" } android { diff --git a/packages/mediation/gma_mediation_applovin/ios/gma_mediation_applovin.podspec b/packages/mediation/gma_mediation_applovin/ios/gma_mediation_applovin.podspec index 90fb3fd72..9f694cec1 100644 --- a/packages/mediation/gma_mediation_applovin/ios/gma_mediation_applovin.podspec +++ b/packages/mediation/gma_mediation_applovin/ios/gma_mediation_applovin.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_applovin' - s.version = '2.4.0' + s.version = '2.5.0' s.summary = 'Google Mobile Ads Mediation of AppLovin.' s.description = <<-DESC Mediation Adapter for AppLovin to use with Google Mobile Ads. @@ -16,7 +16,7 @@ Mediation Adapter for AppLovin to use with Google Mobile Ads. s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationAppLovin', '~> 13.4.0.0' + s.dependency 'GoogleMobileAdsMediationAppLovin', '~> 13.5.0.0' s.platform = :ios, '12.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_applovin/pubspec.yaml b/packages/mediation/gma_mediation_applovin/pubspec.yaml index bf72b88ca..bd37ded55 100644 --- a/packages/mediation/gma_mediation_applovin/pubspec.yaml +++ b/packages/mediation/gma_mediation_applovin/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_applovin description: "Mediation Adapter that enables sending ad requests to the AppLovin ad network using the google_mobile_ads plugin." -version: 2.4.0 +version: 2.5.0 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_applovin environment: From f34893c24f3c51af660bf2eab928efcd7ff648cd Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 17 Nov 2025 09:14:26 -0800 Subject: [PATCH 040/251] Updating Mintegral Flutter mediation plugin to support the latest adapters (17.0.21.0, 8.0.2.0) PiperOrigin-RevId: 833368503 --- packages/mediation/gma_mediation_mintegral/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_mintegral/android/build.gradle | 4 ++-- .../ios/gma_mediation_mintegral.podspec | 4 ++-- packages/mediation/gma_mediation_mintegral/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_mintegral/CHANGELOG.md b/packages/mediation/gma_mediation_mintegral/CHANGELOG.md index caa74e7d1..e7f6a73e8 100644 --- a/packages/mediation/gma_mediation_mintegral/CHANGELOG.md +++ b/packages/mediation/gma_mediation_mintegral/CHANGELOG.md @@ -1,5 +1,7 @@ ## Mintegral Flutter Mediation Adapter Changelog +#### Version 2.0.0 (In progress) + #### Version 1.2.6 - Supports [Mintegral Android adapter version 16.9.91.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/mintegral/CHANGELOG.md#version-169911). - Supports [Mintegral iOS adapter version 7.7.9.1](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Mintegral/CHANGELOG.md#version-7791). diff --git a/packages/mediation/gma_mediation_mintegral/android/build.gradle b/packages/mediation/gma_mediation_mintegral/android/build.gradle index e5fbd23c6..97001a735 100644 --- a/packages/mediation/gma_mediation_mintegral/android/build.gradle +++ b/packages/mediation/gma_mediation_mintegral/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_mintegral' -version = "1.2.6" +version = "2.0.0" buildscript { ext.kotlin_version = '2.0.21' @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "16.9.91.1" + stringVersion = "17.0.21.0" } android { diff --git a/packages/mediation/gma_mediation_mintegral/ios/gma_mediation_mintegral.podspec b/packages/mediation/gma_mediation_mintegral/ios/gma_mediation_mintegral.podspec index 5839741a2..fcb2fe781 100644 --- a/packages/mediation/gma_mediation_mintegral/ios/gma_mediation_mintegral.podspec +++ b/packages/mediation/gma_mediation_mintegral/ios/gma_mediation_mintegral.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_mintegral' - s.version = '1.2.6' + s.version = '2.0.0' s.summary = 'Google Mobile Ads Mediation of Mintegral.' s.description = <<-DESC Mediation Adapter for Mintegral to use with Google Mobile Ads. @@ -16,7 +16,7 @@ Mediation Adapter for Mintegral to use with Google Mobile Ads. s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationMintegral', '~>7.7.9.1' + s.dependency 'GoogleMobileAdsMediationMintegral', '~>8.0.2.0' s.platform = :ios, '12.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_mintegral/pubspec.yaml b/packages/mediation/gma_mediation_mintegral/pubspec.yaml index b3e4f4578..8f1765ba7 100644 --- a/packages/mediation/gma_mediation_mintegral/pubspec.yaml +++ b/packages/mediation/gma_mediation_mintegral/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_mintegral description: "Mediation Adapter that enables sending ad requests to the Mintegral ad network using the google_mobile_ads plugin." -version: 1.2.6 +version: 2.0.0 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_mintegral environment: From f311ede829078a52a853637186ec93d653421e57 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 17 Nov 2025 09:17:41 -0800 Subject: [PATCH 041/251] Updating DTExchange Flutter mediation plugin to support the latest adapters (8.4.0.0, 8.4.1.0) PiperOrigin-RevId: 833369556 --- packages/mediation/gma_mediation_dtexchange/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_dtexchange/android/build.gradle | 2 +- .../ios/gma_mediation_dtexchange.podspec | 4 ++-- packages/mediation/gma_mediation_dtexchange/pubspec.yaml | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md b/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md index 1a0f496b6..f7b56c484 100644 --- a/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md +++ b/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md @@ -1,5 +1,7 @@ ## DT Exchange Flutter Mediation Adapter Changelog +#### Version 1.3.0 (In progress) + #### Version 1.2.0 * Supports [DT Exchange Android adapter version 8.4.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/dtexchange/CHANGELOG.md#version-8400). * Supports [DT Exchange iOS adapter version 8.3.8.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/DTExchange/CHANGELOG.md#version-8380). diff --git a/packages/mediation/gma_mediation_dtexchange/android/build.gradle b/packages/mediation/gma_mediation_dtexchange/android/build.gradle index c0a15bec6..0c76de5c9 100644 --- a/packages/mediation/gma_mediation_dtexchange/android/build.gradle +++ b/packages/mediation/gma_mediation_dtexchange/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_dtexchange' -version = "1.2.0" +version = "1.3.0" buildscript { ext.kotlin_version = '2.0.21' diff --git a/packages/mediation/gma_mediation_dtexchange/ios/gma_mediation_dtexchange.podspec b/packages/mediation/gma_mediation_dtexchange/ios/gma_mediation_dtexchange.podspec index b8190a5c7..e071d05c3 100644 --- a/packages/mediation/gma_mediation_dtexchange/ios/gma_mediation_dtexchange.podspec +++ b/packages/mediation/gma_mediation_dtexchange/ios/gma_mediation_dtexchange.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_dtexchange' - s.version = '1.2.0' + s.version = '1.3.0' s.summary = 'Google Mobile Ads Mediation of DT Exchange.' s.description = <<-DESC Mediation Adapter for DT Exchange to use with Google Mobile Ads. @@ -16,7 +16,7 @@ Mediation Adapter for DT Exchange to use with Google Mobile Ads. s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationFyber', '~> 8.3.8.0' + s.dependency 'GoogleMobileAdsMediationFyber', '~> 8.4.1.0' s.platform = :ios, '13.0' s.static_framework = true # Flutter.framework does not contain a i386 slice. diff --git a/packages/mediation/gma_mediation_dtexchange/pubspec.yaml b/packages/mediation/gma_mediation_dtexchange/pubspec.yaml index 1f9f54946..6a9a4f6ab 100644 --- a/packages/mediation/gma_mediation_dtexchange/pubspec.yaml +++ b/packages/mediation/gma_mediation_dtexchange/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_dtexchange description: "Mediation Adapter that enables sending ad requests to the DT Exchange ad network using the google_mobile_ads plugin." -version: 1.2.0 +version: 1.3.0 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_dtexchange environment: From 7e1cd67485f306fb699cf5d52b26bf3b9e452f77 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 17 Nov 2025 09:27:02 -0800 Subject: [PATCH 042/251] Updating Maio Flutter mediation plugin to support the latest adapters (2.0.7.0, 2.2.0.1) PiperOrigin-RevId: 833372677 --- packages/mediation/gma_mediation_maio/CHANGELOG.md | 2 ++ packages/mediation/gma_mediation_maio/android/build.gradle | 4 ++-- .../gma_mediation_maio/ios/gma_mediation_maio.podspec | 4 ++-- packages/mediation/gma_mediation_maio/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_maio/CHANGELOG.md b/packages/mediation/gma_mediation_maio/CHANGELOG.md index 634435cd2..41bfc822f 100644 --- a/packages/mediation/gma_mediation_maio/CHANGELOG.md +++ b/packages/mediation/gma_mediation_maio/CHANGELOG.md @@ -1,5 +1,7 @@ ## maio Flutter Mediation Adapter Changelog +#### Version 1.1.1 (In progress) + #### Version 1.1.0 - Supports [maio Android adapter version 2.0.6.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/maio/CHANGELOG.md#version-2060). - Supports [maio iOS adapter version 2.2.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Maio/CHANGELOG.md#version-2200). diff --git a/packages/mediation/gma_mediation_maio/android/build.gradle b/packages/mediation/gma_mediation_maio/android/build.gradle index f008c6460..a8769f6d5 100644 --- a/packages/mediation/gma_mediation_maio/android/build.gradle +++ b/packages/mediation/gma_mediation_maio/android/build.gradle @@ -1,5 +1,5 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_maio" -version = "1.1.0" +version = "1.1.1" buildscript { ext.kotlin_version = "1.8.22" @@ -25,7 +25,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "2.0.6.0" + stringVersion = "2.0.7.0" } android { diff --git a/packages/mediation/gma_mediation_maio/ios/gma_mediation_maio.podspec b/packages/mediation/gma_mediation_maio/ios/gma_mediation_maio.podspec index 2adf3c1a8..2ed117083 100644 --- a/packages/mediation/gma_mediation_maio/ios/gma_mediation_maio.podspec +++ b/packages/mediation/gma_mediation_maio/ios/gma_mediation_maio.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_maio' - s.version = '1.1.0' + s.version = '1.1.1' s.summary = 'Google Mobile Ads Mediation of maio.' s.description = <<-DESC Mediation Adapter for maio to use with Google Mobile Ads. @@ -11,7 +11,7 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationMaio', '~>2.2.0.0' + s.dependency 'GoogleMobileAdsMediationMaio', '~>2.2.0.1' s.platform = :ios, '12.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_maio/pubspec.yaml b/packages/mediation/gma_mediation_maio/pubspec.yaml index 4a81f5a57..912d3ad91 100644 --- a/packages/mediation/gma_mediation_maio/pubspec.yaml +++ b/packages/mediation/gma_mediation_maio/pubspec.yaml @@ -1,7 +1,7 @@ name: gma_mediation_maio description: 'Mediation Adapter that enables sending ad requests to the maio ad network using the google_mobile_ads plugin.' -version: 1.1.0 +version: 1.1.1 environment: sdk: '>=3.6.0 <4.0.0' flutter: '>=3.27.0' From 9ecc69e02a908f53bd7302b589ee080a686083f9 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 17 Nov 2025 17:07:04 -0800 Subject: [PATCH 043/251] Updating iMobile Flutter mediation plugin to support the latest adapters (2.3.2.1, 2.3.4.3) PiperOrigin-RevId: 833556124 --- packages/mediation/gma_mediation_imobile/CHANGELOG.md | 2 ++ packages/mediation/gma_mediation_imobile/android/build.gradle | 2 +- .../gma_mediation_imobile/ios/gma_mediation_imobile.podspec | 4 ++-- packages/mediation/gma_mediation_imobile/pubspec.yaml | 4 ++-- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_imobile/CHANGELOG.md b/packages/mediation/gma_mediation_imobile/CHANGELOG.md index e2a1a544c..8453cd74b 100644 --- a/packages/mediation/gma_mediation_imobile/CHANGELOG.md +++ b/packages/mediation/gma_mediation_imobile/CHANGELOG.md @@ -1,5 +1,7 @@ ## i-mobile Flutter Mediation Adapter Changelog +#### Version 1.0.2 (In progress) + #### Version 1.0.1 * Supports [i-mobile Android adapter version 2.3.2.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/imobile/CHANGELOG.md#version-2321). * Supports [i-mobile iOS adapter version 2.3.4.2](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/I-Mobile/CHANGELOG.md#version-2342). diff --git a/packages/mediation/gma_mediation_imobile/android/build.gradle b/packages/mediation/gma_mediation_imobile/android/build.gradle index 809a2a781..0d0996ae2 100644 --- a/packages/mediation/gma_mediation_imobile/android/build.gradle +++ b/packages/mediation/gma_mediation_imobile/android/build.gradle @@ -1,5 +1,5 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_imobile" -version = "1.0.1" +version = "1.0.2" buildscript { ext.kotlin_version = "1.8.22" diff --git a/packages/mediation/gma_mediation_imobile/ios/gma_mediation_imobile.podspec b/packages/mediation/gma_mediation_imobile/ios/gma_mediation_imobile.podspec index 91fb6b737..b660472cd 100644 --- a/packages/mediation/gma_mediation_imobile/ios/gma_mediation_imobile.podspec +++ b/packages/mediation/gma_mediation_imobile/ios/gma_mediation_imobile.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_imobile' - s.version = '1.0.1' + s.version = '1.0.2' s.summary = 'Google Mobile Ads Mediation of imobile.' s.description = <<-DESC Mediation Adapter for imobile to use with Google Mobile Ads. @@ -11,7 +11,7 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationIMobile', '~> 2.3.4.2' + s.dependency 'GoogleMobileAdsMediationIMobile', '~> 2.3.4.3' s.platform = :ios, '12.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_imobile/pubspec.yaml b/packages/mediation/gma_mediation_imobile/pubspec.yaml index e5b6077e6..2f43f6596 100644 --- a/packages/mediation/gma_mediation_imobile/pubspec.yaml +++ b/packages/mediation/gma_mediation_imobile/pubspec.yaml @@ -1,9 +1,9 @@ name: gma_mediation_imobile description: 'Mediation Adapter that enables sending ad requests to the imobile ad network using the google_mobile_ads plugin.' -version: 1.0.1 +version: 1.0.2 environment: - sdk: ^3.7.0 + sdk: '>=3.6.0 <4.0.0' flutter: '>=3.27.0' dependencies: flutter: From 3e0420c207f358f0994c601f886e5e2a0978379e Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Wed, 19 Nov 2025 12:48:42 -0800 Subject: [PATCH 044/251] Updating Chartboost Flutter Adapter to version 1.3.1 PiperOrigin-RevId: 834406029 --- packages/mediation/gma_mediation_chartboost/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_chartboost/CHANGELOG.md b/packages/mediation/gma_mediation_chartboost/CHANGELOG.md index cb24bc2b2..f9c804821 100644 --- a/packages/mediation/gma_mediation_chartboost/CHANGELOG.md +++ b/packages/mediation/gma_mediation_chartboost/CHANGELOG.md @@ -1,6 +1,9 @@ ## Chartboost Flutter Mediation Adapter Changelog -#### Version 1.3.1 (In progress) +#### Version 1.3.1 +- Supports [Chartboost Android adapter version 9.10.0.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/chartboost/CHANGELOG.md#version-91001). +- Supports [Charboost iOS adapter version 9.10.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Chartboost/CHANGELOG.md#version-91000). +- Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 1.3.0 - Supports [Chartboost Android adapter version 9.10.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/chartboost/CHANGELOG.md#version-91000). From ffa028c4e60550a906104d523fab49175122b9fe Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Thu, 20 Nov 2025 12:18:16 -0800 Subject: [PATCH 045/251] Updating Liftoff Monetize Flutter Adapter to version 1.4.0 PiperOrigin-RevId: 834861223 --- .../mediation/gma_mediation_liftoffmonetize/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md b/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md index 11c199237..2760ccb8b 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md +++ b/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md @@ -1,6 +1,9 @@ ## Liftoff Monetize Flutter Mediation Adapter Changelog -#### Version 1.4.0 (In progress) +#### Version 1.4.0 +* Supports [Liftoff Monetize Android adapter version 7.6.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/liftoffmonetize/CHANGELOG.md#version-7600). +* Supports [Liftoff Monetize iOS adapter version 7.6.1.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/LiftoffMonetize/CHANGELOG.md#version-7610). +* Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 1.3.0 * Supports [Liftoff Monetize Android adapter version 7.5.1.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/liftoffmonetize/CHANGELOG.md#version-7511). From e67e5c2743f6c6420c278b8401f9ea5d65a5a602 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Thu, 20 Nov 2025 12:42:53 -0800 Subject: [PATCH 046/251] Updating Meta Audience Network Flutter Adapter to version 1.4.3 PiperOrigin-RevId: 834871117 --- packages/mediation/gma_mediation_meta/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_meta/CHANGELOG.md b/packages/mediation/gma_mediation_meta/CHANGELOG.md index 844b072cb..a818e4ce5 100644 --- a/packages/mediation/gma_mediation_meta/CHANGELOG.md +++ b/packages/mediation/gma_mediation_meta/CHANGELOG.md @@ -1,6 +1,9 @@ ## Meta Audience Network Flutter Mediation Adapter Changelog -#### Version 1.4.3 (In progress) +#### Version 1.4.3 +* Supports [Meta Audience Network Android adapter version 6.20.0.2](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/meta/CHANGELOG.md#version-62002). +* Supports [Meta Audience Network iOS adapter version 6.20.1.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Meta/CHANGELOG.md#version-62010). +* Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 1.4.2 * Supports [Meta Audience Network Android adapter version 6.20.0.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/meta/CHANGELOG.md#version-62001). From da54e7098aba0340e8c3d3a667a883470f125e23 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Thu, 20 Nov 2025 14:33:19 -0800 Subject: [PATCH 047/251] Updating PubMatic Flutter Adapter to version 1.4.0 PiperOrigin-RevId: 834915312 --- packages/mediation/gma_mediation_pubmatic/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md b/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md index c33437a7f..ead684281 100644 --- a/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md +++ b/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md @@ -1,6 +1,9 @@ ## Pubmatic Flutter Mediation Adapter Changelog -#### Version 1.4.0 (In progress) +#### Version 1.4.0 +- Supports [PubMatic Android adapter version 4.10.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/pubmatic/CHANGELOG.md#version-41000). +- Supports [PubMatic iOS adapter version 4.10.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/PubMatic/CHANGELOG.md#version-41000). +- Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 1.3.0 - Supports [PubMatic Android adapter version 4.9.1.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/pubmatic/CHANGELOG.md#version-4910). From e3f30be9f9af9d0dbff4924017aedb3f767693ca Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Thu, 20 Nov 2025 14:59:53 -0800 Subject: [PATCH 048/251] Updating Moloco Flutter Adapter to version 2.1.0 PiperOrigin-RevId: 834925226 --- packages/mediation/gma_mediation_moloco/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_moloco/CHANGELOG.md b/packages/mediation/gma_mediation_moloco/CHANGELOG.md index ea47274b9..fe7ed8262 100644 --- a/packages/mediation/gma_mediation_moloco/CHANGELOG.md +++ b/packages/mediation/gma_mediation_moloco/CHANGELOG.md @@ -1,6 +1,9 @@ ## Moloco Flutter Mediation Adapter Changelog -#### Version 2.1.0 (In progress) +#### Version 2.1.0 +- Supports [Moloco Android adapter version 4.2.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/moloco/CHANGELOG.md#version-4200). +- Supports [Moloco iOS adapter version 3.13.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Moloco/CHANGELOG.md#version-31300). +- Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 2.0.0 - Supports [Moloco Android adapter version 4.0.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/moloco/CHANGELOG.md#version-4000). From a363e56295bd637c5ad300054ae977ea2c100c32 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Fri, 21 Nov 2025 12:05:04 -0800 Subject: [PATCH 049/251] Updating Pangle Flutter Adapter to version 3.4.0 PiperOrigin-RevId: 835310897 --- packages/mediation/gma_mediation_pangle/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_pangle/CHANGELOG.md b/packages/mediation/gma_mediation_pangle/CHANGELOG.md index 2c9fd6c46..1e7befb94 100644 --- a/packages/mediation/gma_mediation_pangle/CHANGELOG.md +++ b/packages/mediation/gma_mediation_pangle/CHANGELOG.md @@ -1,6 +1,9 @@ ## Pangle Flutter Mediation Adapter Changelog -#### Version 3.4.0 (In progress) +#### Version 3.4.0 +- Supports [Pangle Android adapter version 7.7.0.2.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/pangle/CHANGELOG.md#version-77020). +- Supports [Pangle iOS adapter version 7.7.0.5.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Pangle/CHANGELOG.md#version-77050). +- Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 3.3.0 - Supports [Pangle Android adapter version 7.6.0.4.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/pangle/CHANGELOG.md#version-76040). From 8f716a5a14a9950c21ed43221324b317327a4281 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Fri, 21 Nov 2025 12:30:47 -0800 Subject: [PATCH 050/251] Updating Chartboost Flutter plugin version to 1.3.1 in the mediation developer docs. PiperOrigin-RevId: 835319805 --- .../gma_mediation_chartboost/CHANGELOG.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/mediation/gma_mediation_chartboost/CHANGELOG.md b/packages/mediation/gma_mediation_chartboost/CHANGELOG.md index f9c804821..b3090b897 100644 --- a/packages/mediation/gma_mediation_chartboost/CHANGELOG.md +++ b/packages/mediation/gma_mediation_chartboost/CHANGELOG.md @@ -2,41 +2,41 @@ #### Version 1.3.1 - Supports [Chartboost Android adapter version 9.10.0.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/chartboost/CHANGELOG.md#version-91001). -- Supports [Charboost iOS adapter version 9.10.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Chartboost/CHANGELOG.md#version-91000). +- Supports [Chartboost iOS adapter version 9.10.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Chartboost/CHANGELOG.md#version-91000). - Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 1.3.0 - Supports [Chartboost Android adapter version 9.10.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/chartboost/CHANGELOG.md#version-91000). -- Supports [Charboost iOS adapter version 9.10.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Chartboost/CHANGELOG.md#version-91000). +- Supports [Chartboost iOS adapter version 9.10.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Chartboost/CHANGELOG.md#version-91000). - Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 1.2.1 - Supports [Chartboost Android adapter version 9.9.2.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/chartboost/CHANGELOG.md#version-9920). -- Supports [Charboost iOS adapter version 9.9.2.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Chartboost/CHANGELOG.md#version-9920). +- Supports [Chartboost iOS adapter version 9.9.2.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Chartboost/CHANGELOG.md#version-9920). - Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 1.2.0 - Supports [Chartboost Android adapter version 9.9.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/chartboost/CHANGELOG.md#version-9900). -- Supports [Charboost iOS adapter version 9.9.1.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Chartboost/CHANGELOG.md#version-9910). +- Supports [Chartboost iOS adapter version 9.9.1.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Chartboost/CHANGELOG.md#version-9910). - Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 1.1.0 - Supports [Chartboost Android adapter version 9.8.3.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/chartboost/CHANGELOG.md#version-9831). -- Supports [Charboost iOS adapter version 9.9.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Chartboost/CHANGELOG.md#version-9900). +- Supports [Chartboost iOS adapter version 9.9.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Chartboost/CHANGELOG.md#version-9900). - Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 1.0.2 - Supports [Chartboost Android adapter version 9.8.3.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/chartboost/CHANGELOG.md#version-9831). -- Supports [Charboost iOS adapter version 9.8.1.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Chartboost/CHANGELOG.md#version-9810). +- Supports [Chartboost iOS adapter version 9.8.1.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Chartboost/CHANGELOG.md#version-9810). - Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 1.0.1 - Supports [Chartboost Android adapter version 9.8.3.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/chartboost/CHANGELOG.md#version-9830). -- Supports [Charboost iOS adapter version 9.8.1.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Chartboost/CHANGELOG.md#version-9810). +- Supports [Chartboost iOS adapter version 9.8.1.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Chartboost/CHANGELOG.md#version-9810). - Built and tested with the Google Mobile Ads Flutter Plugin version 5.3.1. #### Version 1.0.0 - Initial release. - Supports [Chartboost Android adapter version 9.8.1.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/chartboost/CHANGELOG.md#version-9810). -- Supports [Charboost iOS adapter version 9.8.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Chartboost/CHANGELOG.md#version-9800). +- Supports [Chartboost iOS adapter version 9.8.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Chartboost/CHANGELOG.md#version-9800). - Built and tested with the Google Mobile Ads Flutter Plugin version 5.2.0. \ No newline at end of file From 7513bc700d9a22861284623aaec12f76bf5ab3a8 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Fri, 21 Nov 2025 20:31:52 -0800 Subject: [PATCH 051/251] Update bidmachine Flutter Adapter version to 1.2.0 PiperOrigin-RevId: 835460938 --- packages/mediation/gma_mediation_bidmachine/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md b/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md index e7252d1c3..d20c37ab2 100644 --- a/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md +++ b/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md @@ -1,6 +1,9 @@ ## BidMachine Flutter Mediation Adapter Changelog -#### Version 1.2.0 (In progress) +#### Version 1.2.0 +- Supports [BidMachine Android adapter version 3.5.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/bidmachine/CHANGELOG.md#version-3500). +- Supports [BidMachine iOS adapter version 3.4.0.2](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/BidMachine/CHANGELOG.md#version-3402). +- Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 1.1.0 - Supports [BidMachine Android adapter version 3.4.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/bidmachine/CHANGELOG.md#version-3400). From 22ccb239b3db4425560a35f79fa8a7f23ee52acc Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Fri, 21 Nov 2025 21:31:15 -0800 Subject: [PATCH 052/251] Update Applovin Flutter Adapter version to 2.5.0 PiperOrigin-RevId: 835474055 --- packages/mediation/gma_mediation_applovin/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_applovin/CHANGELOG.md b/packages/mediation/gma_mediation_applovin/CHANGELOG.md index ca3b5efa2..adce9eaf5 100644 --- a/packages/mediation/gma_mediation_applovin/CHANGELOG.md +++ b/packages/mediation/gma_mediation_applovin/CHANGELOG.md @@ -1,6 +1,9 @@ ## AppLovin Flutter Mediation Adapter Changelog -#### Version 2.5.0 (In progress) +#### Version 2.5.0 +- Supports [AppLovin Android adapter version 13.5.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/applovin/CHANGELOG.md#version-13500). +- Supports [AppLovin iOS adapter version 13.5.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/AppLovin/CHANGELOG.md#version-13500). +* Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 2.4.0 - Supports [AppLovin Android adapter version 13.4.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/applovin/CHANGELOG.md#version-13400). From 78a706d4491d5c1eaa513a726747fbc88677ecff Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 24 Nov 2025 11:15:40 -0800 Subject: [PATCH 053/251] Updating BidMachine Flutter mediation plugin to support the latest adapters (3.5.0.0, 3.5.0.0) PiperOrigin-RevId: 836296772 --- packages/mediation/gma_mediation_bidmachine/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_bidmachine/android/build.gradle | 2 +- .../ios/gma_mediation_bidmachine.podspec | 4 ++-- packages/mediation/gma_mediation_bidmachine/pubspec.yaml | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md b/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md index d20c37ab2..39d5e12a7 100644 --- a/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md +++ b/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md @@ -1,5 +1,7 @@ ## BidMachine Flutter Mediation Adapter Changelog +#### Version 1.3.0 (In progress) + #### Version 1.2.0 - Supports [BidMachine Android adapter version 3.5.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/bidmachine/CHANGELOG.md#version-3500). - Supports [BidMachine iOS adapter version 3.4.0.2](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/BidMachine/CHANGELOG.md#version-3402). diff --git a/packages/mediation/gma_mediation_bidmachine/android/build.gradle b/packages/mediation/gma_mediation_bidmachine/android/build.gradle index ca2919fed..fd1dc5e41 100644 --- a/packages/mediation/gma_mediation_bidmachine/android/build.gradle +++ b/packages/mediation/gma_mediation_bidmachine/android/build.gradle @@ -1,5 +1,5 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_bidmachine" -version = "1.2.0" +version = "1.3.0" buildscript { ext.kotlin_version = "2.1.0" diff --git a/packages/mediation/gma_mediation_bidmachine/ios/gma_mediation_bidmachine.podspec b/packages/mediation/gma_mediation_bidmachine/ios/gma_mediation_bidmachine.podspec index 36a738573..bfc23a124 100644 --- a/packages/mediation/gma_mediation_bidmachine/ios/gma_mediation_bidmachine.podspec +++ b/packages/mediation/gma_mediation_bidmachine/ios/gma_mediation_bidmachine.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_bidmachine' - s.version = '1.2.0' + s.version = '1.3.0' s.summary = 'Google Mobile Ads Mediation of BidMachine.' s.description = <<-DESC Mediation Adapter for BidMachine to use with Google Mobile Ads. @@ -11,7 +11,7 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationBidMachine', '~> 3.4.0.2' + s.dependency 'GoogleMobileAdsMediationBidMachine', '~> 3.5.0.0' s.platform = :ios, '12.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_bidmachine/pubspec.yaml b/packages/mediation/gma_mediation_bidmachine/pubspec.yaml index 2de34f084..c249de1d0 100644 --- a/packages/mediation/gma_mediation_bidmachine/pubspec.yaml +++ b/packages/mediation/gma_mediation_bidmachine/pubspec.yaml @@ -1,7 +1,7 @@ name: gma_mediation_bidmachine description: 'Mediation Adapter that enables sending ad requests to the BidMachine ad network using the google_mobile_ads plugin.' -version: 1.2.0 +version: 1.3.0 environment: sdk: '>=3.6.0 <4.0.0' flutter: '>=3.27.0' From 2e68f49836b87eca321275aa20466b0178ca6b22 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 24 Nov 2025 11:32:13 -0800 Subject: [PATCH 054/251] Updating Chartboost Flutter mediation plugin to support the latest adapters (9.10.1.0, 9.10.1.0) PiperOrigin-RevId: 836303650 --- packages/mediation/gma_mediation_chartboost/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_chartboost/android/build.gradle | 4 ++-- .../ios/gma_mediation_chartboost.podspec | 4 ++-- packages/mediation/gma_mediation_chartboost/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_chartboost/CHANGELOG.md b/packages/mediation/gma_mediation_chartboost/CHANGELOG.md index b3090b897..20b976e9d 100644 --- a/packages/mediation/gma_mediation_chartboost/CHANGELOG.md +++ b/packages/mediation/gma_mediation_chartboost/CHANGELOG.md @@ -1,5 +1,7 @@ ## Chartboost Flutter Mediation Adapter Changelog +#### Version 1.3.2 (In progress) + #### Version 1.3.1 - Supports [Chartboost Android adapter version 9.10.0.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/chartboost/CHANGELOG.md#version-91001). - Supports [Chartboost iOS adapter version 9.10.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Chartboost/CHANGELOG.md#version-91000). diff --git a/packages/mediation/gma_mediation_chartboost/android/build.gradle b/packages/mediation/gma_mediation_chartboost/android/build.gradle index 992e45504..8d026c25f 100644 --- a/packages/mediation/gma_mediation_chartboost/android/build.gradle +++ b/packages/mediation/gma_mediation_chartboost/android/build.gradle @@ -1,5 +1,5 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_chartboost" -version = "1.3.1" +version = "1.3.2" buildscript { ext.kotlin_version = "1.8.22" @@ -28,7 +28,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "9.10.0.1" + stringVersion = "9.10.1.0" } android { diff --git a/packages/mediation/gma_mediation_chartboost/ios/gma_mediation_chartboost.podspec b/packages/mediation/gma_mediation_chartboost/ios/gma_mediation_chartboost.podspec index 536f7be9e..bbfaf41bc 100644 --- a/packages/mediation/gma_mediation_chartboost/ios/gma_mediation_chartboost.podspec +++ b/packages/mediation/gma_mediation_chartboost/ios/gma_mediation_chartboost.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_chartboost' - s.version = '1.3.1' + s.version = '1.3.2' s.summary = 'Google Mobile Ads Mediation of Chartboost.' s.description = <<-DESC Mediation Adapter for Chartboost to use with Google Mobile Ads. @@ -11,7 +11,7 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationChartboost', '~>9.10.0.0' + s.dependency 'GoogleMobileAdsMediationChartboost', '~>9.10.1.0' s.platform = :ios, '12.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_chartboost/pubspec.yaml b/packages/mediation/gma_mediation_chartboost/pubspec.yaml index 34355b6a1..cd1230aa3 100644 --- a/packages/mediation/gma_mediation_chartboost/pubspec.yaml +++ b/packages/mediation/gma_mediation_chartboost/pubspec.yaml @@ -1,7 +1,7 @@ name: gma_mediation_chartboost description: 'Mediation Adapter that enables sending ad requests to the Chartboost ad network using the google_mobile_ads plugin.' -version: 1.3.1 +version: 1.3.2 environment: sdk: '>=3.6.0 <4.0.0' flutter: '>=3.27.0' From 7dc21fe402a68f5db6c414917f9de4979f5cc7df Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 24 Nov 2025 11:34:50 -0800 Subject: [PATCH 055/251] Updating Meta Flutter mediation plugin to support the latest adapters (6.21.0.0, 6.21.0.0) PiperOrigin-RevId: 836304611 --- packages/mediation/gma_mediation_meta/CHANGELOG.md | 2 ++ packages/mediation/gma_mediation_meta/android/build.gradle | 4 ++-- .../gma_mediation_meta/ios/gma_mediation_meta.podspec | 4 ++-- packages/mediation/gma_mediation_meta/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_meta/CHANGELOG.md b/packages/mediation/gma_mediation_meta/CHANGELOG.md index a818e4ce5..edf274c23 100644 --- a/packages/mediation/gma_mediation_meta/CHANGELOG.md +++ b/packages/mediation/gma_mediation_meta/CHANGELOG.md @@ -1,5 +1,7 @@ ## Meta Audience Network Flutter Mediation Adapter Changelog +#### Version 1.5.0 (In progress) + #### Version 1.4.3 * Supports [Meta Audience Network Android adapter version 6.20.0.2](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/meta/CHANGELOG.md#version-62002). * Supports [Meta Audience Network iOS adapter version 6.20.1.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Meta/CHANGELOG.md#version-62010). diff --git a/packages/mediation/gma_mediation_meta/android/build.gradle b/packages/mediation/gma_mediation_meta/android/build.gradle index 7a300d083..fb7d49a50 100644 --- a/packages/mediation/gma_mediation_meta/android/build.gradle +++ b/packages/mediation/gma_mediation_meta/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_meta' -version = "1.4.3" +version = "1.5.0" buildscript { ext.kotlin_version = '2.0.21' @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "6.20.0.2" + stringVersion = "6.21.0.0" } android { diff --git a/packages/mediation/gma_mediation_meta/ios/gma_mediation_meta.podspec b/packages/mediation/gma_mediation_meta/ios/gma_mediation_meta.podspec index 0ca280ed6..8f5ac0c70 100644 --- a/packages/mediation/gma_mediation_meta/ios/gma_mediation_meta.podspec +++ b/packages/mediation/gma_mediation_meta/ios/gma_mediation_meta.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_meta' - s.version = '1.4.3' + s.version = '1.5.0' s.summary = 'Google Mobile Ads Mediation of Meta Audience Network.' s.description = <<-DESC Mediation Adapter for Meta Audience Network to use with Google Mobile Ads. @@ -16,7 +16,7 @@ Mediation Adapter for Meta Audience Network to use with Google Mobile Ads. s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationFacebook', '~> 6.20.1.0' + s.dependency 'GoogleMobileAdsMediationFacebook', '~> 6.21.0.0' s.platform = :ios, '12.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_meta/pubspec.yaml b/packages/mediation/gma_mediation_meta/pubspec.yaml index 4b1ade597..90b07b92d 100644 --- a/packages/mediation/gma_mediation_meta/pubspec.yaml +++ b/packages/mediation/gma_mediation_meta/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_meta description: "Mediation Adapter that enables sending ad requests to the Meta Audience Network ad network using the google_mobile_ads plugin." -version: 1.4.3 +version: 1.5.0 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_meta environment: From 075231dee0b8b319be85a5ee31e8fc5a224bda94 Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Mon, 24 Nov 2025 13:00:23 -0800 Subject: [PATCH 056/251] Updating MyTarget Flutter mediation plugin to support the latest adapters (5.27.4.0, 5.37.1.0) PiperOrigin-RevId: 836334675 --- .../gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec b/packages/mediation/gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec index 8353c3066..cdfe8ed92 100644 --- a/packages/mediation/gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec +++ b/packages/mediation/gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec @@ -11,7 +11,7 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationMyTarget', '~>5.37.0.0' + s.dependency 'GoogleMobileAdsMediationMyTarget', '~>5.37.1.0' s.platform = :ios, '12.4' s.static_framework = true From bbf0f35b08ebe33221996af27f71817d908354c7 Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Mon, 24 Nov 2025 13:09:51 -0800 Subject: [PATCH 057/251] Updating IronSource Flutter mediation plugin to support the latest adapters (9.1.0.0, 9.1.0.0.0) PiperOrigin-RevId: 836338091 --- packages/mediation/gma_mediation_ironsource/CHANGELOG.md | 2 +- .../mediation/gma_mediation_ironsource/android/build.gradle | 4 ++-- .../ios/gma_mediation_ironsource.podspec | 4 ++-- packages/mediation/gma_mediation_ironsource/pubspec.yaml | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/mediation/gma_mediation_ironsource/CHANGELOG.md b/packages/mediation/gma_mediation_ironsource/CHANGELOG.md index 9c59d9a16..b12962c93 100644 --- a/packages/mediation/gma_mediation_ironsource/CHANGELOG.md +++ b/packages/mediation/gma_mediation_ironsource/CHANGELOG.md @@ -1,6 +1,6 @@ ## ironSource Flutter Mediation Adapter Changelog -#### Version 2.0.2 (In progress) +#### Version 2.1.0 (In progress) #### Version 2.0.1 - Fixed iOS build with new API diff --git a/packages/mediation/gma_mediation_ironsource/android/build.gradle b/packages/mediation/gma_mediation_ironsource/android/build.gradle index bf9353c50..a0d5e64dd 100644 --- a/packages/mediation/gma_mediation_ironsource/android/build.gradle +++ b/packages/mediation/gma_mediation_ironsource/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_ironsource' -version = "2.0.2" +version = "2.1.0" buildscript { ext.kotlin_version = '2.0.21' @@ -28,7 +28,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "9.0.0.1" + stringVersion = "9.1.0.0" } android { diff --git a/packages/mediation/gma_mediation_ironsource/ios/gma_mediation_ironsource.podspec b/packages/mediation/gma_mediation_ironsource/ios/gma_mediation_ironsource.podspec index 6abf74986..b855fcec9 100644 --- a/packages/mediation/gma_mediation_ironsource/ios/gma_mediation_ironsource.podspec +++ b/packages/mediation/gma_mediation_ironsource/ios/gma_mediation_ironsource.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_ironsource' - s.version = '2.0.2' + s.version = '2.1.0' s.summary = 'Google Mobile Ads Mediation of ironSource.' s.description = <<-DESC Mediation Adapter for ironSource to use with Google Mobile Ads. @@ -16,7 +16,7 @@ Mediation Adapter for ironSource to use with Google Mobile Ads. s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationIronSource', '~>9.0.0.0.0' + s.dependency 'GoogleMobileAdsMediationIronSource', '~>9.1.0.0.0' s.platform = :ios, '12.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_ironsource/pubspec.yaml b/packages/mediation/gma_mediation_ironsource/pubspec.yaml index bd42d9127..34144a669 100644 --- a/packages/mediation/gma_mediation_ironsource/pubspec.yaml +++ b/packages/mediation/gma_mediation_ironsource/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_ironsource description: "Mediation Adapter that enables sending ad requests to the ironSource ad network using the google_mobile_ads plugin." -version: 2.0.2 +version: 2.1.0 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_ironsource environment: From eb998140812681ebcb359c438584664ab5b7a965 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 1 Dec 2025 08:15:26 -0800 Subject: [PATCH 058/251] Update myTarget Flutter Adapter version to 1.6.0 PiperOrigin-RevId: 838781386 --- packages/mediation/gma_mediation_mytarget/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_mytarget/CHANGELOG.md b/packages/mediation/gma_mediation_mytarget/CHANGELOG.md index 0b86e4b01..7515ba0c2 100644 --- a/packages/mediation/gma_mediation_mytarget/CHANGELOG.md +++ b/packages/mediation/gma_mediation_mytarget/CHANGELOG.md @@ -1,6 +1,9 @@ ## myTarget Flutter Mediation Adapter Changelog -#### Version 1.6.0 (In progress) +#### Version 1.6.0 +* Supports [myTarget Android adapter version 5.27.4.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/mytarget/CHANGELOG.md#version-52740). +* Supports [myTarget iOS adapter version 5.37.1.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/MyTarget/CHANGELOG.md#version-53710). +* Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 1.5.0 * Supports [myTarget Android adapter version 5.27.3.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/mytarget/CHANGELOG.md#version-52730). From cce26395e4f1767ad77607db0ab9de61e92655ec Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 1 Dec 2025 09:10:02 -0800 Subject: [PATCH 059/251] Updating Line Flutter mediation plugin to support the latest adapters (2.9.20251028.0, 2.9.20251119.0) PiperOrigin-RevId: 838801230 --- packages/mediation/gma_mediation_line/CHANGELOG.md | 2 ++ packages/mediation/gma_mediation_line/android/build.gradle | 4 ++-- .../gma_mediation_line/ios/gma_mediation_line.podspec | 4 ++-- packages/mediation/gma_mediation_line/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_line/CHANGELOG.md b/packages/mediation/gma_mediation_line/CHANGELOG.md index 6c698cc6f..cdf1bcbf0 100644 --- a/packages/mediation/gma_mediation_line/CHANGELOG.md +++ b/packages/mediation/gma_mediation_line/CHANGELOG.md @@ -1,5 +1,7 @@ ## Line Flutter Mediation Adapter Changelog +#### Version 1.0.6 (In progress) + #### Version 1.0.5 - Supports [Line Android adapter version 2.9.20250924.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/line/CHANGELOG.md#version-29202509241). - Supports [Line iOS adapter version 2.9.20250930.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Line/CHANGELOG.md#version-29202509300). diff --git a/packages/mediation/gma_mediation_line/android/build.gradle b/packages/mediation/gma_mediation_line/android/build.gradle index e4ad86188..c2db0d04b 100644 --- a/packages/mediation/gma_mediation_line/android/build.gradle +++ b/packages/mediation/gma_mediation_line/android/build.gradle @@ -1,5 +1,5 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_line" -version = "1.0.5" +version = "1.0.6" buildscript { ext.kotlin_version = "1.8.22" @@ -25,7 +25,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "2.9.20250924.1" + stringVersion = "2.9.20251028.0" } android { diff --git a/packages/mediation/gma_mediation_line/ios/gma_mediation_line.podspec b/packages/mediation/gma_mediation_line/ios/gma_mediation_line.podspec index 7cfa40f92..31de55bf8 100644 --- a/packages/mediation/gma_mediation_line/ios/gma_mediation_line.podspec +++ b/packages/mediation/gma_mediation_line/ios/gma_mediation_line.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_line' - s.version = '1.0.5' + s.version = '1.0.6' s.summary = 'Google Mobile Ads Mediation of Line.' s.description = <<-DESC Mediation Adapter for Line to use with Google Mobile Ads. @@ -11,7 +11,7 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationLine', '~>2.9.20250930.0' + s.dependency 'GoogleMobileAdsMediationLine', '~>2.9.20251119.0' s.platform = :ios, '12.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_line/pubspec.yaml b/packages/mediation/gma_mediation_line/pubspec.yaml index 5973aa808..f97e4ef5d 100644 --- a/packages/mediation/gma_mediation_line/pubspec.yaml +++ b/packages/mediation/gma_mediation_line/pubspec.yaml @@ -1,7 +1,7 @@ name: gma_mediation_line description: 'Mediation Adapter that enables sending ad requests to the Line ad network using the google_mobile_ads plugin.' -version: 1.0.5 +version: 1.0.6 environment: sdk: '>=3.6.0 <4.0.0' flutter: '>=3.27.0' From 1b04c5dd907e3f7dd11cf18912420e7275123dad Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 1 Dec 2025 09:11:31 -0800 Subject: [PATCH 060/251] Updating PubMatic Flutter mediation plugin to support the latest adapters (4.10.0.1, 4.10.0.0) PiperOrigin-RevId: 838801851 --- packages/mediation/gma_mediation_pubmatic/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_pubmatic/android/build.gradle | 4 ++-- .../gma_mediation_pubmatic/ios/gma_mediation_pubmatic.podspec | 2 +- packages/mediation/gma_mediation_pubmatic/pubspec.yaml | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md b/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md index ead684281..39215f5da 100644 --- a/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md +++ b/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md @@ -1,5 +1,7 @@ ## Pubmatic Flutter Mediation Adapter Changelog +#### Version 1.4.1 (In progress) + #### Version 1.4.0 - Supports [PubMatic Android adapter version 4.10.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/pubmatic/CHANGELOG.md#version-41000). - Supports [PubMatic iOS adapter version 4.10.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/PubMatic/CHANGELOG.md#version-41000). diff --git a/packages/mediation/gma_mediation_pubmatic/android/build.gradle b/packages/mediation/gma_mediation_pubmatic/android/build.gradle index cae597b0a..446452ca0 100644 --- a/packages/mediation/gma_mediation_pubmatic/android/build.gradle +++ b/packages/mediation/gma_mediation_pubmatic/android/build.gradle @@ -1,5 +1,5 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_pubmatic" -version = "1.4.0" +version = "1.4.1" buildscript { ext.kotlin_version = "2.1.0" @@ -25,7 +25,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "4.10.0.0" + stringVersion = "4.10.0.1" } android { diff --git a/packages/mediation/gma_mediation_pubmatic/ios/gma_mediation_pubmatic.podspec b/packages/mediation/gma_mediation_pubmatic/ios/gma_mediation_pubmatic.podspec index e11ea1dee..0b57a1d12 100644 --- a/packages/mediation/gma_mediation_pubmatic/ios/gma_mediation_pubmatic.podspec +++ b/packages/mediation/gma_mediation_pubmatic/ios/gma_mediation_pubmatic.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_pubmatic' - s.version = '1.4.0' + s.version = '1.4.1' s.summary = 'Google Mobile Ads Mediation of Pubmatic.' s.description = <<-DESC Mediation Adapter for Pubmatic to use with Google Mobile Ads. diff --git a/packages/mediation/gma_mediation_pubmatic/pubspec.yaml b/packages/mediation/gma_mediation_pubmatic/pubspec.yaml index 8b0dec7e7..d26db6319 100644 --- a/packages/mediation/gma_mediation_pubmatic/pubspec.yaml +++ b/packages/mediation/gma_mediation_pubmatic/pubspec.yaml @@ -1,7 +1,7 @@ name: gma_mediation_pubmatic description: 'Mediation Adapter that enables sending ad requests to the Pubmatic ad network using the google_mobile_ads plugin.' -version: 1.4.0 +version: 1.4.1 environment: sdk: '>=3.6.0 <4.0.0' flutter: '>=3.27.0' From 3d655f285a69ff944a6ef4e0f1e10a17062bfcde Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 1 Dec 2025 09:11:59 -0800 Subject: [PATCH 061/251] Updating Moloco Flutter mediation plugin to support the latest adapters (4.3.1.0, 4.1.0.0) PiperOrigin-RevId: 838802041 --- packages/mediation/gma_mediation_moloco/CHANGELOG.md | 2 ++ packages/mediation/gma_mediation_moloco/android/build.gradle | 4 ++-- .../gma_mediation_moloco/ios/gma_mediation_moloco.podspec | 4 ++-- packages/mediation/gma_mediation_moloco/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_moloco/CHANGELOG.md b/packages/mediation/gma_mediation_moloco/CHANGELOG.md index fe7ed8262..50e5c665c 100644 --- a/packages/mediation/gma_mediation_moloco/CHANGELOG.md +++ b/packages/mediation/gma_mediation_moloco/CHANGELOG.md @@ -1,5 +1,7 @@ ## Moloco Flutter Mediation Adapter Changelog +#### Version 3.0.0 (In progress) + #### Version 2.1.0 - Supports [Moloco Android adapter version 4.2.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/moloco/CHANGELOG.md#version-4200). - Supports [Moloco iOS adapter version 3.13.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Moloco/CHANGELOG.md#version-31300). diff --git a/packages/mediation/gma_mediation_moloco/android/build.gradle b/packages/mediation/gma_mediation_moloco/android/build.gradle index 4ae114110..7579df02d 100644 --- a/packages/mediation/gma_mediation_moloco/android/build.gradle +++ b/packages/mediation/gma_mediation_moloco/android/build.gradle @@ -1,5 +1,5 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_moloco" -version = "2.1.0" +version = "3.0.0" buildscript { ext.kotlin_version = "1.8.22" @@ -25,7 +25,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "4.2.0.0" + stringVersion = "4.3.1.0" } android { diff --git a/packages/mediation/gma_mediation_moloco/ios/gma_mediation_moloco.podspec b/packages/mediation/gma_mediation_moloco/ios/gma_mediation_moloco.podspec index f6f33dc0b..ef9c9966e 100644 --- a/packages/mediation/gma_mediation_moloco/ios/gma_mediation_moloco.podspec +++ b/packages/mediation/gma_mediation_moloco/ios/gma_mediation_moloco.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_moloco' - s.version = '2.1.0' + s.version = '3.0.0' s.summary = 'Google Mobile Ads Mediation of Moloco.' s.description = <<-DESC Mediation Adapter for Moloco to use with Google Mobile Ads. @@ -11,7 +11,7 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationMoloco', '~> 3.13.0.0' + s.dependency 'GoogleMobileAdsMediationMoloco', '~> 4.1.0.0' s.platform = :ios, '12.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_moloco/pubspec.yaml b/packages/mediation/gma_mediation_moloco/pubspec.yaml index 38b75e7d5..69f91ee43 100644 --- a/packages/mediation/gma_mediation_moloco/pubspec.yaml +++ b/packages/mediation/gma_mediation_moloco/pubspec.yaml @@ -1,7 +1,7 @@ name: gma_mediation_moloco description: 'Mediation Adapter that enables sending ad requests to the Moloco ad network using the google_mobile_ads plugin.' -version: 2.1.0 +version: 3.0.0 environment: sdk: '>=3.6.0 <4.0.0' flutter: '>=3.27.0' From bdb520395e072184906fc9dcd2a0c949b590817a Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 1 Dec 2025 09:13:05 -0800 Subject: [PATCH 062/251] Updating Pangle Flutter mediation plugin to support the latest adapters (7.8.0.7.0, 7.8.0.3.0) PiperOrigin-RevId: 838802485 --- packages/mediation/gma_mediation_pangle/CHANGELOG.md | 2 ++ packages/mediation/gma_mediation_pangle/android/build.gradle | 4 ++-- .../gma_mediation_pangle/ios/gma_mediation_pangle.podspec | 4 ++-- packages/mediation/gma_mediation_pangle/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_pangle/CHANGELOG.md b/packages/mediation/gma_mediation_pangle/CHANGELOG.md index 1e7befb94..2ba6bdd39 100644 --- a/packages/mediation/gma_mediation_pangle/CHANGELOG.md +++ b/packages/mediation/gma_mediation_pangle/CHANGELOG.md @@ -1,5 +1,7 @@ ## Pangle Flutter Mediation Adapter Changelog +#### Version 3.5.0 (In progress) + #### Version 3.4.0 - Supports [Pangle Android adapter version 7.7.0.2.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/pangle/CHANGELOG.md#version-77020). - Supports [Pangle iOS adapter version 7.7.0.5.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Pangle/CHANGELOG.md#version-77050). diff --git a/packages/mediation/gma_mediation_pangle/android/build.gradle b/packages/mediation/gma_mediation_pangle/android/build.gradle index e4116f796..dd17515e9 100644 --- a/packages/mediation/gma_mediation_pangle/android/build.gradle +++ b/packages/mediation/gma_mediation_pangle/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_pangle' -version = "3.4.0" +version = "3.5.0" buildscript { ext.kotlin_version = '2.0.21' @@ -28,7 +28,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "7.7.0.2.0" + stringVersion = "7.8.0.7.0" } android { diff --git a/packages/mediation/gma_mediation_pangle/ios/gma_mediation_pangle.podspec b/packages/mediation/gma_mediation_pangle/ios/gma_mediation_pangle.podspec index b071f6a87..ab17c7e60 100644 --- a/packages/mediation/gma_mediation_pangle/ios/gma_mediation_pangle.podspec +++ b/packages/mediation/gma_mediation_pangle/ios/gma_mediation_pangle.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_pangle' - s.version = '3.4.0' + s.version = '3.5.0' s.summary = 'Google Mobile Ads Mediation of Pangle.' s.description = <<-DESC Mediation Adapter for Pangle to use with Google Mobile Ads. @@ -16,7 +16,7 @@ Pod::Spec.new do |s| s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationPangle', '~> 7.7.0.5.0' + s.dependency 'GoogleMobileAdsMediationPangle', '~> 7.8.0.3.0' s.platform = :ios, '12.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_pangle/pubspec.yaml b/packages/mediation/gma_mediation_pangle/pubspec.yaml index 9bf8ccee0..af508ea68 100644 --- a/packages/mediation/gma_mediation_pangle/pubspec.yaml +++ b/packages/mediation/gma_mediation_pangle/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_pangle description: "Mediation Adapter that enables sending ad requests to the Pangle ad network using the google_mobile_ads plugin." -version: 3.4.0 +version: 3.5.0 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_pangle environment: From feb72905c40a52e143513890986305569f45ad8a Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 1 Dec 2025 09:22:47 -0800 Subject: [PATCH 063/251] Updating Liftoff Flutter mediation plugin to support the latest adapters (7.6.1.0, 7.6.2.0) PiperOrigin-RevId: 838806508 --- packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md | 2 ++ .../gma_mediation_liftoffmonetize/android/build.gradle | 4 ++-- .../ios/gma_mediation_liftoffmonetize.podspec | 4 ++-- packages/mediation/gma_mediation_liftoffmonetize/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md b/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md index 2760ccb8b..dbbc23d13 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md +++ b/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md @@ -1,5 +1,7 @@ ## Liftoff Monetize Flutter Mediation Adapter Changelog +#### Version 1.4.1 (In progress) + #### Version 1.4.0 * Supports [Liftoff Monetize Android adapter version 7.6.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/liftoffmonetize/CHANGELOG.md#version-7600). * Supports [Liftoff Monetize iOS adapter version 7.6.1.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/LiftoffMonetize/CHANGELOG.md#version-7610). diff --git a/packages/mediation/gma_mediation_liftoffmonetize/android/build.gradle b/packages/mediation/gma_mediation_liftoffmonetize/android/build.gradle index 4f537f351..c607ab0c0 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/android/build.gradle +++ b/packages/mediation/gma_mediation_liftoffmonetize/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_liftoffmonetize' -version = "1.4.0" +version = "1.4.1" buildscript { ext.kotlin_version = '2.0.21' @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "7.6.0.0" + stringVersion = "7.6.1.0" } android { diff --git a/packages/mediation/gma_mediation_liftoffmonetize/ios/gma_mediation_liftoffmonetize.podspec b/packages/mediation/gma_mediation_liftoffmonetize/ios/gma_mediation_liftoffmonetize.podspec index d658f3d7a..0b1c25832 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/ios/gma_mediation_liftoffmonetize.podspec +++ b/packages/mediation/gma_mediation_liftoffmonetize/ios/gma_mediation_liftoffmonetize.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_liftoffmonetize' - s.version = '1.4.0' + s.version = '1.4.1' s.summary = 'Google Mobile Ads Mediation of Liftoff Monetize.' s.description = <<-DESC Mediation Adapter for Liftoff Monetize to use with Google Mobile Ads. @@ -15,7 +15,7 @@ Mediation Adapter for Liftoff Monetize to use with Google Mobile Ads. s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.public_header_files = 'Public/**/*.h' - s.dependency 'GoogleMobileAdsMediationVungle', '~>7.6.1.0' + s.dependency 'GoogleMobileAdsMediationVungle', '~>7.6.2.0' s.dependency 'Flutter' s.platform = :ios, '12.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_liftoffmonetize/pubspec.yaml b/packages/mediation/gma_mediation_liftoffmonetize/pubspec.yaml index 52b16d709..e996d498c 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/pubspec.yaml +++ b/packages/mediation/gma_mediation_liftoffmonetize/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_liftoffmonetize description: "Mediation Adapter that enables sending ad requests to the LiftoffMonetize ad network using the google_mobile_ads plugin." -version: 1.4.0 +version: 1.4.1 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_liftoffmonetize environment: From e45e8baf178296b79fa80f727aaf4eb5f6040f2d Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 1 Dec 2025 10:11:00 -0800 Subject: [PATCH 064/251] Updating Chartboost Flutter Adapter to version 1.3.2 PiperOrigin-RevId: 838827076 --- packages/mediation/gma_mediation_chartboost/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_chartboost/CHANGELOG.md b/packages/mediation/gma_mediation_chartboost/CHANGELOG.md index 20b976e9d..f8c44a463 100644 --- a/packages/mediation/gma_mediation_chartboost/CHANGELOG.md +++ b/packages/mediation/gma_mediation_chartboost/CHANGELOG.md @@ -1,6 +1,9 @@ ## Chartboost Flutter Mediation Adapter Changelog -#### Version 1.3.2 (In progress) +#### Version 1.3.2 +- Supports [Chartboost Android adapter version 9.10.1.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/chartboost/CHANGELOG.md#version-91010). +- Supports [Chartboost iOS adapter version 9.10.1.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Chartboost/CHANGELOG.md#version-91010). +- Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 1.3.1 - Supports [Chartboost Android adapter version 9.10.0.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/chartboost/CHANGELOG.md#version-91001). From 1c87fed77503c68f62e3ee85413d835dd8a43aa9 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 1 Dec 2025 10:15:36 -0800 Subject: [PATCH 065/251] Update bidmachine Flutter Adapter version to 1.3.0 PiperOrigin-RevId: 838829277 --- packages/mediation/gma_mediation_bidmachine/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md b/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md index 39d5e12a7..5247bec06 100644 --- a/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md +++ b/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md @@ -1,6 +1,9 @@ ## BidMachine Flutter Mediation Adapter Changelog -#### Version 1.3.0 (In progress) +#### Version 1.3.0 +- Supports [BidMachine Android adapter version 3.5.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/bidmachine/CHANGELOG.md#version-3500). +- Supports [BidMachine iOS adapter version 3.5.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/BidMachine/CHANGELOG.md#version-3500). +- Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 1.2.0 - Supports [BidMachine Android adapter version 3.5.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/bidmachine/CHANGELOG.md#version-3500). From d845601e37d0b21208d29bb8d0952c6ddfcf7a9a Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 1 Dec 2025 10:16:48 -0800 Subject: [PATCH 066/251] Update Inmobi Flutter Adapter version to 1.1.6 PiperOrigin-RevId: 838829793 --- packages/mediation/gma_mediation_inmobi/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_inmobi/CHANGELOG.md b/packages/mediation/gma_mediation_inmobi/CHANGELOG.md index 7c208a56b..ba91dd174 100644 --- a/packages/mediation/gma_mediation_inmobi/CHANGELOG.md +++ b/packages/mediation/gma_mediation_inmobi/CHANGELOG.md @@ -1,6 +1,9 @@ ## InMobi Flutter Mediation Adapter Changelog -#### Version 1.1.6 (In progress) +#### Version 1.1.6 +* Supports [inMobi Android adapter version 10.8.8.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/inmobi/CHANGELOG.md#version-10881). +* Supports [inMobi iOS adapter version 10.8.8.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/InMobi/CHANGELOG.md#version-10880). +* Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 1.1.5 * Supports [inMobi Android adapter version 10.8.8.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/inmobi/CHANGELOG.md#version-10880). From 2b9928f38b1b66e5d1d2920cfc747840af3d18ea Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 1 Dec 2025 10:17:17 -0800 Subject: [PATCH 067/251] Updating AppLovin Flutter mediation plugin to support the latest adapters (13.5.1.0, 13.5.0.0) PiperOrigin-RevId: 838829987 --- packages/mediation/gma_mediation_applovin/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_applovin/android/build.gradle | 4 ++-- .../gma_mediation_applovin/ios/gma_mediation_applovin.podspec | 2 +- packages/mediation/gma_mediation_applovin/pubspec.yaml | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/mediation/gma_mediation_applovin/CHANGELOG.md b/packages/mediation/gma_mediation_applovin/CHANGELOG.md index adce9eaf5..9a27c1921 100644 --- a/packages/mediation/gma_mediation_applovin/CHANGELOG.md +++ b/packages/mediation/gma_mediation_applovin/CHANGELOG.md @@ -1,5 +1,7 @@ ## AppLovin Flutter Mediation Adapter Changelog +#### Version 2.5.1 (In progress) + #### Version 2.5.0 - Supports [AppLovin Android adapter version 13.5.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/applovin/CHANGELOG.md#version-13500). - Supports [AppLovin iOS adapter version 13.5.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/AppLovin/CHANGELOG.md#version-13500). diff --git a/packages/mediation/gma_mediation_applovin/android/build.gradle b/packages/mediation/gma_mediation_applovin/android/build.gradle index 80d275d9b..5c58a90a3 100644 --- a/packages/mediation/gma_mediation_applovin/android/build.gradle +++ b/packages/mediation/gma_mediation_applovin/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_applovin' -version = "2.5.0" +version = "2.5.1" buildscript { ext.kotlin_version = '2.0.21' @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "13.5.0.0" + stringVersion = "13.5.1.0" } android { diff --git a/packages/mediation/gma_mediation_applovin/ios/gma_mediation_applovin.podspec b/packages/mediation/gma_mediation_applovin/ios/gma_mediation_applovin.podspec index 9f694cec1..6f2f59442 100644 --- a/packages/mediation/gma_mediation_applovin/ios/gma_mediation_applovin.podspec +++ b/packages/mediation/gma_mediation_applovin/ios/gma_mediation_applovin.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_applovin' - s.version = '2.5.0' + s.version = '2.5.1' s.summary = 'Google Mobile Ads Mediation of AppLovin.' s.description = <<-DESC Mediation Adapter for AppLovin to use with Google Mobile Ads. diff --git a/packages/mediation/gma_mediation_applovin/pubspec.yaml b/packages/mediation/gma_mediation_applovin/pubspec.yaml index bd37ded55..d0c6f94b4 100644 --- a/packages/mediation/gma_mediation_applovin/pubspec.yaml +++ b/packages/mediation/gma_mediation_applovin/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_applovin description: "Mediation Adapter that enables sending ad requests to the AppLovin ad network using the google_mobile_ads plugin." -version: 2.5.0 +version: 2.5.1 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_applovin environment: From 582b8251adead72f45ed30bba8c7b22d121ea443 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 1 Dec 2025 13:14:18 -0800 Subject: [PATCH 068/251] Updating Meta Audience Network Flutter Adapter to version 1.5.0 PiperOrigin-RevId: 838903542 --- packages/mediation/gma_mediation_meta/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_meta/CHANGELOG.md b/packages/mediation/gma_mediation_meta/CHANGELOG.md index edf274c23..e07ff8727 100644 --- a/packages/mediation/gma_mediation_meta/CHANGELOG.md +++ b/packages/mediation/gma_mediation_meta/CHANGELOG.md @@ -1,6 +1,9 @@ ## Meta Audience Network Flutter Mediation Adapter Changelog -#### Version 1.5.0 (In progress) +#### Version 1.5.0 +* Supports [Meta Audience Network Android adapter version 6.21.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/meta/CHANGELOG.md#version-62100). +* Supports [Meta Audience Network iOS adapter version 6.21.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Meta/CHANGELOG.md#version-62100). +* Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 1.4.3 * Supports [Meta Audience Network Android adapter version 6.20.0.2](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/meta/CHANGELOG.md#version-62002). From d67bafe0b5151a2e7766a669a8df6d40fbe52257 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 1 Dec 2025 14:52:27 -0800 Subject: [PATCH 069/251] Updating IronSource Flutter Adapter to version 2.1.0 PiperOrigin-RevId: 838943102 --- packages/mediation/gma_mediation_ironsource/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_ironsource/CHANGELOG.md b/packages/mediation/gma_mediation_ironsource/CHANGELOG.md index b12962c93..317529ec8 100644 --- a/packages/mediation/gma_mediation_ironsource/CHANGELOG.md +++ b/packages/mediation/gma_mediation_ironsource/CHANGELOG.md @@ -1,6 +1,9 @@ ## ironSource Flutter Mediation Adapter Changelog -#### Version 2.1.0 (In progress) +#### Version 2.1.0 +- Supports [ironSource Android adapter version 9.1.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/ironsource/CHANGELOG.md#version-9100). +- Supports [ironSource iOS adapter version 9.1.0.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/IronSource/CHANGELOG.md#version-91000). +- Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 2.0.1 - Fixed iOS build with new API From 00508fbdd11ba2178d66c0225838e6ecd63eed58 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 1 Dec 2025 15:28:05 -0800 Subject: [PATCH 070/251] Updating maio Flutter Adapter to version 1.1.1 PiperOrigin-RevId: 838955651 --- packages/mediation/gma_mediation_maio/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_maio/CHANGELOG.md b/packages/mediation/gma_mediation_maio/CHANGELOG.md index 41bfc822f..6f78bcc94 100644 --- a/packages/mediation/gma_mediation_maio/CHANGELOG.md +++ b/packages/mediation/gma_mediation_maio/CHANGELOG.md @@ -1,6 +1,9 @@ ## maio Flutter Mediation Adapter Changelog -#### Version 1.1.1 (In progress) +#### Version 1.1.1 +- Supports [maio Android adapter version 2.0.7.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/maio/CHANGELOG.md#version-2070). +- Supports [maio iOS adapter version 2.2.0.1](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Maio/CHANGELOG.md#version-2201). +- Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 1.1.0 - Supports [maio Android adapter version 2.0.6.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/maio/CHANGELOG.md#version-2060). From 1fcaf649ab6c37d1c7e4eb5f34132c124fe3ac44 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 1 Dec 2025 15:28:30 -0800 Subject: [PATCH 071/251] Updating i-mobile Flutter Adapter to version 1.0.2 PiperOrigin-RevId: 838955804 --- packages/mediation/gma_mediation_imobile/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_imobile/CHANGELOG.md b/packages/mediation/gma_mediation_imobile/CHANGELOG.md index 8453cd74b..343b2c414 100644 --- a/packages/mediation/gma_mediation_imobile/CHANGELOG.md +++ b/packages/mediation/gma_mediation_imobile/CHANGELOG.md @@ -1,6 +1,9 @@ ## i-mobile Flutter Mediation Adapter Changelog -#### Version 1.0.2 (In progress) +#### Version 1.0.2 +* Supports [i-mobile Android adapter version 2.3.2.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/imobile/CHANGELOG.md#version-2321). +* Supports [i-mobile iOS adapter version 2.3.4.3](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/I-Mobile/CHANGELOG.md#version-2343). +* Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 1.0.1 * Supports [i-mobile Android adapter version 2.3.2.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/imobile/CHANGELOG.md#version-2321). From f9317575afa05245e4265b5e7768e3f5aa461b97 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 1 Dec 2025 15:41:18 -0800 Subject: [PATCH 072/251] Updating Unity Ads Flutter Adapter to version 1.6.2 PiperOrigin-RevId: 838961318 --- packages/mediation/gma_mediation_unity/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_unity/CHANGELOG.md b/packages/mediation/gma_mediation_unity/CHANGELOG.md index 6ce671b24..9a6651d57 100644 --- a/packages/mediation/gma_mediation_unity/CHANGELOG.md +++ b/packages/mediation/gma_mediation_unity/CHANGELOG.md @@ -1,6 +1,9 @@ ## Unity Ads Flutter Mediation Adapter Changelog -#### Version 1.6.2 (In progress) +#### Version 1.6.2 +- Supports [Unity Android adapter version 4.16.3.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/unity/CHANGELOG.md#version-41630). +- Supports [Unity iOS adapter version 4.16.2.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Unity/CHANGELOG.md#version-41620). +* Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 1.6.1 - Supports [Unity Android adapter version 4.16.1.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/unity/CHANGELOG.md#version-41610). From 53c6d9f407fd3afac92b4ec67e0fea9cc46c0ffa Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Wed, 3 Dec 2025 10:56:16 -0800 Subject: [PATCH 073/251] Updating UnityAds Flutter mediation plugin to support the latest adapters (4.16.3.0, 4.16.3.0) PiperOrigin-RevId: 839826030 --- packages/mediation/gma_mediation_unity/CHANGELOG.md | 2 ++ packages/mediation/gma_mediation_unity/android/build.gradle | 2 +- .../gma_mediation_unity/ios/gma_mediation_unity.podspec | 4 ++-- packages/mediation/gma_mediation_unity/pubspec.yaml | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/mediation/gma_mediation_unity/CHANGELOG.md b/packages/mediation/gma_mediation_unity/CHANGELOG.md index 9a6651d57..8044c69f7 100644 --- a/packages/mediation/gma_mediation_unity/CHANGELOG.md +++ b/packages/mediation/gma_mediation_unity/CHANGELOG.md @@ -1,5 +1,7 @@ ## Unity Ads Flutter Mediation Adapter Changelog +#### Version 1.6.3 (In progress) + #### Version 1.6.2 - Supports [Unity Android adapter version 4.16.3.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/unity/CHANGELOG.md#version-41630). - Supports [Unity iOS adapter version 4.16.2.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Unity/CHANGELOG.md#version-41620). diff --git a/packages/mediation/gma_mediation_unity/android/build.gradle b/packages/mediation/gma_mediation_unity/android/build.gradle index a0850af4a..0026cf847 100644 --- a/packages/mediation/gma_mediation_unity/android/build.gradle +++ b/packages/mediation/gma_mediation_unity/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_unity' -version = "1.6.2" +version = "1.6.3" buildscript { ext.kotlin_version = '2.0.21' diff --git a/packages/mediation/gma_mediation_unity/ios/gma_mediation_unity.podspec b/packages/mediation/gma_mediation_unity/ios/gma_mediation_unity.podspec index 28c620a2f..6828b1625 100644 --- a/packages/mediation/gma_mediation_unity/ios/gma_mediation_unity.podspec +++ b/packages/mediation/gma_mediation_unity/ios/gma_mediation_unity.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_unity' - s.version = '1.6.2' + s.version = '1.6.3' s.summary = 'Google Mobile Ads Mediation of Unity Ads.' s.description = <<-DESC Mediation Adapter for Unity Ads to use with Google Mobile Ads. @@ -16,7 +16,7 @@ Mediation Adapter for Unity Ads to use with Google Mobile Ads. s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationUnity', '~>4.16.2.0' + s.dependency 'GoogleMobileAdsMediationUnity', '~>4.16.3.0' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_unity/pubspec.yaml b/packages/mediation/gma_mediation_unity/pubspec.yaml index 415823b22..b536f64b9 100644 --- a/packages/mediation/gma_mediation_unity/pubspec.yaml +++ b/packages/mediation/gma_mediation_unity/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_unity description: "Mediation Adapter that enables sending ad requests to the Unity ad network using the google_mobile_ads plugin." -version: 1.6.2 +version: 1.6.3 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_unity environment: From cffebb5da02e391266de88659260b03672971bef Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Wed, 3 Dec 2025 12:49:38 -0800 Subject: [PATCH 074/251] Updating InMobi Flutter mediation plugin to support the latest adapters (11.1.0.0, 11.1.0.0) PiperOrigin-RevId: 839874600 --- packages/mediation/gma_mediation_inmobi/CHANGELOG.md | 2 ++ packages/mediation/gma_mediation_inmobi/android/build.gradle | 4 ++-- .../gma_mediation_inmobi/ios/gma_mediation_inmobi.podspec | 4 ++-- packages/mediation/gma_mediation_inmobi/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_inmobi/CHANGELOG.md b/packages/mediation/gma_mediation_inmobi/CHANGELOG.md index ba91dd174..2a4d57470 100644 --- a/packages/mediation/gma_mediation_inmobi/CHANGELOG.md +++ b/packages/mediation/gma_mediation_inmobi/CHANGELOG.md @@ -1,5 +1,7 @@ ## InMobi Flutter Mediation Adapter Changelog +#### Version 2.0.0 (In progress) + #### Version 1.1.6 * Supports [inMobi Android adapter version 10.8.8.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/inmobi/CHANGELOG.md#version-10881). * Supports [inMobi iOS adapter version 10.8.8.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/InMobi/CHANGELOG.md#version-10880). diff --git a/packages/mediation/gma_mediation_inmobi/android/build.gradle b/packages/mediation/gma_mediation_inmobi/android/build.gradle index fb4cd6e5a..75100bdfe 100644 --- a/packages/mediation/gma_mediation_inmobi/android/build.gradle +++ b/packages/mediation/gma_mediation_inmobi/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_inmobi' -version = "1.1.6" +version = "2.0.0" buildscript { ext.kotlin_version = '2.0.21' @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "10.8.8.1" + stringVersion = "11.1.0.0" } android { diff --git a/packages/mediation/gma_mediation_inmobi/ios/gma_mediation_inmobi.podspec b/packages/mediation/gma_mediation_inmobi/ios/gma_mediation_inmobi.podspec index 490fad6bd..cd37177c4 100644 --- a/packages/mediation/gma_mediation_inmobi/ios/gma_mediation_inmobi.podspec +++ b/packages/mediation/gma_mediation_inmobi/ios/gma_mediation_inmobi.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_inmobi' - s.version = '1.1.6' + s.version = '2.0.0' s.summary = 'Google Mobile Ads Mediation of InMobi.' s.description = <<-DESC Mediation Adapter for InMobi to use with Google Mobile Ads. @@ -16,7 +16,7 @@ Mediation Adapter for InMobi to use with Google Mobile Ads. s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationInMobi', '~> 10.8.8.0' + s.dependency 'GoogleMobileAdsMediationInMobi', '~> 11.1.0.0' s.platform = :ios, '12.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_inmobi/pubspec.yaml b/packages/mediation/gma_mediation_inmobi/pubspec.yaml index acd2f8d40..a030ad91b 100644 --- a/packages/mediation/gma_mediation_inmobi/pubspec.yaml +++ b/packages/mediation/gma_mediation_inmobi/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_inmobi description: "Mediation Adapter that enables sending ad requests to the InMobi ad network using the google_mobile_ads plugin." -version: 1.1.6 +version: 2.0.0 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_inmobi environment: From f0ee4f24ffc8cfe05e4bb4c771621fe4dcb3a8b7 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Wed, 3 Dec 2025 12:50:18 -0800 Subject: [PATCH 075/251] Updating Chartboost Flutter mediation plugin to support the latest adapters (9.10.2.0, 9.10.1.0) PiperOrigin-RevId: 839874886 --- packages/mediation/gma_mediation_chartboost/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_chartboost/android/build.gradle | 4 ++-- .../ios/gma_mediation_chartboost.podspec | 2 +- packages/mediation/gma_mediation_chartboost/pubspec.yaml | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/mediation/gma_mediation_chartboost/CHANGELOG.md b/packages/mediation/gma_mediation_chartboost/CHANGELOG.md index f8c44a463..59e67ded6 100644 --- a/packages/mediation/gma_mediation_chartboost/CHANGELOG.md +++ b/packages/mediation/gma_mediation_chartboost/CHANGELOG.md @@ -1,5 +1,7 @@ ## Chartboost Flutter Mediation Adapter Changelog +#### Version 1.3.3 (In progress) + #### Version 1.3.2 - Supports [Chartboost Android adapter version 9.10.1.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/chartboost/CHANGELOG.md#version-91010). - Supports [Chartboost iOS adapter version 9.10.1.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Chartboost/CHANGELOG.md#version-91010). diff --git a/packages/mediation/gma_mediation_chartboost/android/build.gradle b/packages/mediation/gma_mediation_chartboost/android/build.gradle index 8d026c25f..4e414de21 100644 --- a/packages/mediation/gma_mediation_chartboost/android/build.gradle +++ b/packages/mediation/gma_mediation_chartboost/android/build.gradle @@ -1,5 +1,5 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_chartboost" -version = "1.3.2" +version = "1.3.3" buildscript { ext.kotlin_version = "1.8.22" @@ -28,7 +28,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "9.10.1.0" + stringVersion = "9.10.2.0" } android { diff --git a/packages/mediation/gma_mediation_chartboost/ios/gma_mediation_chartboost.podspec b/packages/mediation/gma_mediation_chartboost/ios/gma_mediation_chartboost.podspec index bbfaf41bc..4391b41c1 100644 --- a/packages/mediation/gma_mediation_chartboost/ios/gma_mediation_chartboost.podspec +++ b/packages/mediation/gma_mediation_chartboost/ios/gma_mediation_chartboost.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_chartboost' - s.version = '1.3.2' + s.version = '1.3.3' s.summary = 'Google Mobile Ads Mediation of Chartboost.' s.description = <<-DESC Mediation Adapter for Chartboost to use with Google Mobile Ads. diff --git a/packages/mediation/gma_mediation_chartboost/pubspec.yaml b/packages/mediation/gma_mediation_chartboost/pubspec.yaml index cd1230aa3..568b4c81a 100644 --- a/packages/mediation/gma_mediation_chartboost/pubspec.yaml +++ b/packages/mediation/gma_mediation_chartboost/pubspec.yaml @@ -1,7 +1,7 @@ name: gma_mediation_chartboost description: 'Mediation Adapter that enables sending ad requests to the Chartboost ad network using the google_mobile_ads plugin.' -version: 1.3.2 +version: 1.3.3 environment: sdk: '>=3.6.0 <4.0.0' flutter: '>=3.27.0' From 73fb83ee96aeba038b9053fc7ab043ae22b7cd99 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Wed, 3 Dec 2025 12:56:40 -0800 Subject: [PATCH 076/251] Updating DTExchange Flutter mediation plugin to support the latest adapters (8.4.0.1, 8.4.2.0) PiperOrigin-RevId: 839877392 --- packages/mediation/gma_mediation_dtexchange/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_dtexchange/android/build.gradle | 4 ++-- .../ios/gma_mediation_dtexchange.podspec | 4 ++-- packages/mediation/gma_mediation_dtexchange/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md b/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md index f7b56c484..f5fe27310 100644 --- a/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md +++ b/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md @@ -1,5 +1,7 @@ ## DT Exchange Flutter Mediation Adapter Changelog +#### Version 1.3.1 (In progress) + #### Version 1.3.0 (In progress) #### Version 1.2.0 diff --git a/packages/mediation/gma_mediation_dtexchange/android/build.gradle b/packages/mediation/gma_mediation_dtexchange/android/build.gradle index 0c76de5c9..fdc987f0c 100644 --- a/packages/mediation/gma_mediation_dtexchange/android/build.gradle +++ b/packages/mediation/gma_mediation_dtexchange/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_dtexchange' -version = "1.3.0" +version = "1.3.1" buildscript { ext.kotlin_version = '2.0.21' @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "8.4.0.0" + stringVersion = "8.4.0.1" } android { diff --git a/packages/mediation/gma_mediation_dtexchange/ios/gma_mediation_dtexchange.podspec b/packages/mediation/gma_mediation_dtexchange/ios/gma_mediation_dtexchange.podspec index e071d05c3..04dcc9c16 100644 --- a/packages/mediation/gma_mediation_dtexchange/ios/gma_mediation_dtexchange.podspec +++ b/packages/mediation/gma_mediation_dtexchange/ios/gma_mediation_dtexchange.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_dtexchange' - s.version = '1.3.0' + s.version = '1.3.1' s.summary = 'Google Mobile Ads Mediation of DT Exchange.' s.description = <<-DESC Mediation Adapter for DT Exchange to use with Google Mobile Ads. @@ -16,7 +16,7 @@ Mediation Adapter for DT Exchange to use with Google Mobile Ads. s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationFyber', '~> 8.4.1.0' + s.dependency 'GoogleMobileAdsMediationFyber', '~> 8.4.2.0' s.platform = :ios, '13.0' s.static_framework = true # Flutter.framework does not contain a i386 slice. diff --git a/packages/mediation/gma_mediation_dtexchange/pubspec.yaml b/packages/mediation/gma_mediation_dtexchange/pubspec.yaml index 6a9a4f6ab..5a63bfce9 100644 --- a/packages/mediation/gma_mediation_dtexchange/pubspec.yaml +++ b/packages/mediation/gma_mediation_dtexchange/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_dtexchange description: "Mediation Adapter that enables sending ad requests to the DT Exchange ad network using the google_mobile_ads plugin." -version: 1.3.0 +version: 1.3.1 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_dtexchange environment: From 3caaf924a04e383ed63cfd90155dd3ecc39288c0 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 8 Dec 2025 16:43:02 -0800 Subject: [PATCH 077/251] Updating Liftoff Monetize Flutter Adapter to version 1.4.1 PiperOrigin-RevId: 841963341 --- .../mediation/gma_mediation_liftoffmonetize/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md b/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md index dbbc23d13..6ab312b54 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md +++ b/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md @@ -1,6 +1,9 @@ ## Liftoff Monetize Flutter Mediation Adapter Changelog -#### Version 1.4.1 (In progress) +#### Version 1.4.1 +* Supports [Liftoff Monetize Android adapter version 7.6.1.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/liftoffmonetize/CHANGELOG.md#version-7610). +* Supports [Liftoff Monetize iOS adapter version 7.6.2.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/LiftoffMonetize/CHANGELOG.md#version-7620). +* Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 1.4.0 * Supports [Liftoff Monetize Android adapter version 7.6.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/liftoffmonetize/CHANGELOG.md#version-7600). From 4ac403b200fdae858063cb5320cbd31eb41e2934 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 8 Dec 2025 19:58:33 -0800 Subject: [PATCH 078/251] Update Applovin Flutter Adapter version to 2.5.1 PiperOrigin-RevId: 842021465 --- packages/mediation/gma_mediation_applovin/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_applovin/CHANGELOG.md b/packages/mediation/gma_mediation_applovin/CHANGELOG.md index 9a27c1921..89c91f4c4 100644 --- a/packages/mediation/gma_mediation_applovin/CHANGELOG.md +++ b/packages/mediation/gma_mediation_applovin/CHANGELOG.md @@ -1,6 +1,9 @@ ## AppLovin Flutter Mediation Adapter Changelog -#### Version 2.5.1 (In progress) +#### Version 2.5.1 +- Supports [AppLovin Android adapter version 13.5.1.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/applovin/CHANGELOG.md#version-13510). +- Supports [AppLovin iOS adapter version 13.5.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/AppLovin/CHANGELOG.md#version-13500). +* Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 2.5.0 - Supports [AppLovin Android adapter version 13.5.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/applovin/CHANGELOG.md#version-13500). From 833ba4040608d10e4ce16901db39252111538c1a Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 8 Dec 2025 20:04:46 -0800 Subject: [PATCH 079/251] Update Inmobi Flutter Adapter version to 2.0.0 PiperOrigin-RevId: 842024965 --- packages/mediation/gma_mediation_inmobi/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_inmobi/CHANGELOG.md b/packages/mediation/gma_mediation_inmobi/CHANGELOG.md index 2a4d57470..d5624c4e3 100644 --- a/packages/mediation/gma_mediation_inmobi/CHANGELOG.md +++ b/packages/mediation/gma_mediation_inmobi/CHANGELOG.md @@ -1,6 +1,9 @@ ## InMobi Flutter Mediation Adapter Changelog -#### Version 2.0.0 (In progress) +#### Version 2.0.0 +* Supports [inMobi Android adapter version 11.1.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/inmobi/CHANGELOG.md#version-11100). +* Supports [inMobi iOS adapter version 11.1.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/InMobi/CHANGELOG.md#version-11100). +* Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 1.1.6 * Supports [inMobi Android adapter version 10.8.8.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/inmobi/CHANGELOG.md#version-10881). From f1e2bb73ec16e86d1355fbabfddd7b12ccda979f Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 8 Dec 2025 20:11:13 -0800 Subject: [PATCH 080/251] Update Line Flutter Adapter version to 1.0.6 PiperOrigin-RevId: 842026845 --- packages/mediation/gma_mediation_line/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_line/CHANGELOG.md b/packages/mediation/gma_mediation_line/CHANGELOG.md index cdf1bcbf0..626ba1035 100644 --- a/packages/mediation/gma_mediation_line/CHANGELOG.md +++ b/packages/mediation/gma_mediation_line/CHANGELOG.md @@ -1,6 +1,9 @@ ## Line Flutter Mediation Adapter Changelog -#### Version 1.0.6 (In progress) +#### Version 1.0.6 +- Supports [Line Android adapter version 2.9.20251028.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/line/CHANGELOG.md#version-29202510280). +- Supports [Line iOS adapter version 2.9.20251119.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Line/CHANGELOG.md#version-29202511190). +- Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0 #### Version 1.0.5 - Supports [Line Android adapter version 2.9.20250924.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/line/CHANGELOG.md#version-29202509241). From 2af4ea9a88a2ccf7ee8415ae9f9c6094ea49fd3d Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 8 Dec 2025 20:30:29 -0800 Subject: [PATCH 081/251] Updating DTExchange Flutter mediation plugin version to 1.3.1 in the mediation developer docs PiperOrigin-RevId: 842032665 --- packages/mediation/gma_mediation_dtexchange/CHANGELOG.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md b/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md index f5fe27310..8462f6e42 100644 --- a/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md +++ b/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md @@ -1,8 +1,9 @@ ## DT Exchange Flutter Mediation Adapter Changelog -#### Version 1.3.1 (In progress) - -#### Version 1.3.0 (In progress) +#### Version 1.3.1 +* Supports [DT Exchange Android adapter version 8.4.0.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/dtexchange/CHANGELOG.md#version-8401). +* Supports [DT Exchange iOS adapter version 8.4.2.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/DTExchange/CHANGELOG.md#version-8420). +* Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 1.2.0 * Supports [DT Exchange Android adapter version 8.4.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/dtexchange/CHANGELOG.md#version-8400). From 168f88d1e8688346b111ec47b6ade6056848137c Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 8 Dec 2025 20:34:12 -0800 Subject: [PATCH 082/251] Updating Pangle Flutter adapter to version 3.5.0 PiperOrigin-RevId: 842033858 --- packages/mediation/gma_mediation_pangle/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_pangle/CHANGELOG.md b/packages/mediation/gma_mediation_pangle/CHANGELOG.md index 2ba6bdd39..0768c9afa 100644 --- a/packages/mediation/gma_mediation_pangle/CHANGELOG.md +++ b/packages/mediation/gma_mediation_pangle/CHANGELOG.md @@ -1,6 +1,9 @@ ## Pangle Flutter Mediation Adapter Changelog -#### Version 3.5.0 (In progress) +#### Version 3.5.0 +- Supports [Pangle Android adapter version 7.8.0.7.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/pangle/CHANGELOG.md#version-78070). +- Supports [Pangle iOS adapter version 7.8.0.3.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Pangle/CHANGELOG.md#version-78030). +- Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 3.4.0 - Supports [Pangle Android adapter version 7.7.0.2.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/pangle/CHANGELOG.md#version-77020). From d7d287acdd3e999132362b852787f6bacf84155f Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 8 Dec 2025 20:35:35 -0800 Subject: [PATCH 083/251] Updating Mintegral Flutter Adapter to version 2.0.0. PiperOrigin-RevId: 842034358 --- packages/mediation/gma_mediation_mintegral/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_mintegral/CHANGELOG.md b/packages/mediation/gma_mediation_mintegral/CHANGELOG.md index e7f6a73e8..134d8897a 100644 --- a/packages/mediation/gma_mediation_mintegral/CHANGELOG.md +++ b/packages/mediation/gma_mediation_mintegral/CHANGELOG.md @@ -1,6 +1,9 @@ ## Mintegral Flutter Mediation Adapter Changelog -#### Version 2.0.0 (In progress) +#### Version 2.0.0 +- Supports [Mintegral Android adapter version 17.0.21.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/mintegral/CHANGELOG.md#version-170210). +- Supports [Mintegral iOS adapter version 8.0.2.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Mintegral/CHANGELOG.md#version-8020). +- Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 1.2.6 - Supports [Mintegral Android adapter version 16.9.91.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/mintegral/CHANGELOG.md#version-169911). From 866536daede08e7c72c79733e72edc77b5d17b82 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Tue, 9 Dec 2025 14:37:20 -0800 Subject: [PATCH 084/251] Updating Moloco Flutter Adapter to version 3.0.0 PiperOrigin-RevId: 842402025 --- packages/mediation/gma_mediation_moloco/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_moloco/CHANGELOG.md b/packages/mediation/gma_mediation_moloco/CHANGELOG.md index 50e5c665c..0c64fe1f6 100644 --- a/packages/mediation/gma_mediation_moloco/CHANGELOG.md +++ b/packages/mediation/gma_mediation_moloco/CHANGELOG.md @@ -1,6 +1,9 @@ ## Moloco Flutter Mediation Adapter Changelog -#### Version 3.0.0 (In progress) +#### Version 3.0.0 +- Supports [Moloco Android adapter version 4.3.1.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/moloco/CHANGELOG.md#version-4310). +- Supports [Moloco iOS adapter version 4.1.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Moloco/CHANGELOG.md#version-4100). +- Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 2.1.0 - Supports [Moloco Android adapter version 4.2.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/moloco/CHANGELOG.md#version-4200). From bf86c74ee625fa38957360e529ad6d90acdc20e5 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Tue, 9 Dec 2025 15:14:19 -0800 Subject: [PATCH 085/251] Updating PubMatic Flutter Adapter to version 1.4.1 PiperOrigin-RevId: 842416563 --- packages/mediation/gma_mediation_pubmatic/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md b/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md index 39215f5da..9c9fb5ebb 100644 --- a/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md +++ b/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md @@ -1,6 +1,9 @@ ## Pubmatic Flutter Mediation Adapter Changelog -#### Version 1.4.1 (In progress) +#### Version 1.4.1 +- Supports [PubMatic Android adapter version 4.10.0.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/pubmatic/CHANGELOG.md#version-41001). +- Supports [PubMatic iOS adapter version 4.10.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/PubMatic/CHANGELOG.md#version-41000). +- Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 1.4.0 - Supports [PubMatic Android adapter version 4.10.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/pubmatic/CHANGELOG.md#version-41000). From ec71e73a82d8c999359fddcc2b68bc77d977d3e1 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Tue, 9 Dec 2025 15:14:48 -0800 Subject: [PATCH 086/251] Updating Chartboost Flutter Adapter to version 1.3.3 PiperOrigin-RevId: 842416693 --- packages/mediation/gma_mediation_chartboost/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_chartboost/CHANGELOG.md b/packages/mediation/gma_mediation_chartboost/CHANGELOG.md index 59e67ded6..be5027225 100644 --- a/packages/mediation/gma_mediation_chartboost/CHANGELOG.md +++ b/packages/mediation/gma_mediation_chartboost/CHANGELOG.md @@ -1,6 +1,9 @@ ## Chartboost Flutter Mediation Adapter Changelog -#### Version 1.3.3 (In progress) +#### Version 1.3.3 +- Supports [Chartboost Android adapter version 9.10.2.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/chartboost/CHANGELOG.md#version-91020). +- Supports [Chartboost iOS adapter version 9.10.1.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Chartboost/CHANGELOG.md#version-91010). +- Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 1.3.2 - Supports [Chartboost Android adapter version 9.10.1.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/chartboost/CHANGELOG.md#version-91010). From 81165272c0b21065f09eb18a47fa52d9ccde437c Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Thu, 11 Dec 2025 13:42:22 -0800 Subject: [PATCH 087/251] Updating Mintegral Flutter mediation plugin to support the latest adapters (17.0.31.0, 8.0.3.0) PiperOrigin-RevId: 843357039 --- packages/mediation/gma_mediation_mintegral/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_mintegral/android/build.gradle | 4 ++-- .../ios/gma_mediation_mintegral.podspec | 4 ++-- packages/mediation/gma_mediation_mintegral/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_mintegral/CHANGELOG.md b/packages/mediation/gma_mediation_mintegral/CHANGELOG.md index 134d8897a..8ff4aae78 100644 --- a/packages/mediation/gma_mediation_mintegral/CHANGELOG.md +++ b/packages/mediation/gma_mediation_mintegral/CHANGELOG.md @@ -1,5 +1,7 @@ ## Mintegral Flutter Mediation Adapter Changelog +#### Version 2.0.1 (In progress) + #### Version 2.0.0 - Supports [Mintegral Android adapter version 17.0.21.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/mintegral/CHANGELOG.md#version-170210). - Supports [Mintegral iOS adapter version 8.0.2.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Mintegral/CHANGELOG.md#version-8020). diff --git a/packages/mediation/gma_mediation_mintegral/android/build.gradle b/packages/mediation/gma_mediation_mintegral/android/build.gradle index 97001a735..de46e5b1c 100644 --- a/packages/mediation/gma_mediation_mintegral/android/build.gradle +++ b/packages/mediation/gma_mediation_mintegral/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_mintegral' -version = "2.0.0" +version = "2.0.1" buildscript { ext.kotlin_version = '2.0.21' @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "17.0.21.0" + stringVersion = "17.0.31.0" } android { diff --git a/packages/mediation/gma_mediation_mintegral/ios/gma_mediation_mintegral.podspec b/packages/mediation/gma_mediation_mintegral/ios/gma_mediation_mintegral.podspec index fcb2fe781..5cc64d960 100644 --- a/packages/mediation/gma_mediation_mintegral/ios/gma_mediation_mintegral.podspec +++ b/packages/mediation/gma_mediation_mintegral/ios/gma_mediation_mintegral.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_mintegral' - s.version = '2.0.0' + s.version = '2.0.1' s.summary = 'Google Mobile Ads Mediation of Mintegral.' s.description = <<-DESC Mediation Adapter for Mintegral to use with Google Mobile Ads. @@ -16,7 +16,7 @@ Mediation Adapter for Mintegral to use with Google Mobile Ads. s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationMintegral', '~>8.0.2.0' + s.dependency 'GoogleMobileAdsMediationMintegral', '~>8.0.3.0' s.platform = :ios, '12.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_mintegral/pubspec.yaml b/packages/mediation/gma_mediation_mintegral/pubspec.yaml index 8f1765ba7..f51f82b95 100644 --- a/packages/mediation/gma_mediation_mintegral/pubspec.yaml +++ b/packages/mediation/gma_mediation_mintegral/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_mintegral description: "Mediation Adapter that enables sending ad requests to the Mintegral ad network using the google_mobile_ads plugin." -version: 2.0.0 +version: 2.0.1 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_mintegral environment: From bf96ff7a03c66b09a8527ff372c1eff391de667f Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 15 Dec 2025 05:46:12 -0800 Subject: [PATCH 088/251] Updating Mintegral Flutter Adapter to version 2.0.1. PiperOrigin-RevId: 844732471 --- packages/mediation/gma_mediation_mintegral/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_mintegral/CHANGELOG.md b/packages/mediation/gma_mediation_mintegral/CHANGELOG.md index 8ff4aae78..a6938d04e 100644 --- a/packages/mediation/gma_mediation_mintegral/CHANGELOG.md +++ b/packages/mediation/gma_mediation_mintegral/CHANGELOG.md @@ -1,6 +1,9 @@ ## Mintegral Flutter Mediation Adapter Changelog -#### Version 2.0.1 (In progress) +#### Version 2.0.1 +- Supports [Mintegral Android adapter version 17.0.31.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/mintegral/CHANGELOG.md#version-170310). +- Supports [Mintegral iOS adapter version 8.0.3.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Mintegral/CHANGELOG.md#version-8030). +- Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 2.0.0 - Supports [Mintegral Android adapter version 17.0.21.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/mintegral/CHANGELOG.md#version-170210). From d240d573d31f28333b0d97e9269fdf06ff2f0354 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 15 Dec 2025 11:18:20 -0800 Subject: [PATCH 089/251] Updating MyTarget Flutter mediation plugin to support the latest adapters (5.27.4.0, 5.38.0.0) PiperOrigin-RevId: 844849965 --- packages/mediation/gma_mediation_mytarget/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_mytarget/android/build.gradle | 2 +- .../gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec | 4 ++-- packages/mediation/gma_mediation_mytarget/pubspec.yaml | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/mediation/gma_mediation_mytarget/CHANGELOG.md b/packages/mediation/gma_mediation_mytarget/CHANGELOG.md index 7515ba0c2..b77be43be 100644 --- a/packages/mediation/gma_mediation_mytarget/CHANGELOG.md +++ b/packages/mediation/gma_mediation_mytarget/CHANGELOG.md @@ -1,5 +1,7 @@ ## myTarget Flutter Mediation Adapter Changelog +#### Version 1.7.0 (In progress) + #### Version 1.6.0 * Supports [myTarget Android adapter version 5.27.4.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/mytarget/CHANGELOG.md#version-52740). * Supports [myTarget iOS adapter version 5.37.1.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/MyTarget/CHANGELOG.md#version-53710). diff --git a/packages/mediation/gma_mediation_mytarget/android/build.gradle b/packages/mediation/gma_mediation_mytarget/android/build.gradle index 84455d704..618ec456e 100644 --- a/packages/mediation/gma_mediation_mytarget/android/build.gradle +++ b/packages/mediation/gma_mediation_mytarget/android/build.gradle @@ -1,5 +1,5 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_mytarget" -version = "1.6.0" +version = "1.7.0" buildscript { ext.kotlin_version = "1.8.22" diff --git a/packages/mediation/gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec b/packages/mediation/gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec index cdfe8ed92..c82ef0a04 100644 --- a/packages/mediation/gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec +++ b/packages/mediation/gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_mytarget' - s.version = '1.6.0' + s.version = '1.7.0' s.summary = 'Google Mobile Ads Mediation of mytarget.' s.description = <<-DESC Mediation Adapter for mytarget to use with Google Mobile Ads. @@ -11,7 +11,7 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationMyTarget', '~>5.37.1.0' + s.dependency 'GoogleMobileAdsMediationMyTarget', '~>5.38.0.0' s.platform = :ios, '12.4' s.static_framework = true diff --git a/packages/mediation/gma_mediation_mytarget/pubspec.yaml b/packages/mediation/gma_mediation_mytarget/pubspec.yaml index 40cb667fc..4fc3d0bd4 100644 --- a/packages/mediation/gma_mediation_mytarget/pubspec.yaml +++ b/packages/mediation/gma_mediation_mytarget/pubspec.yaml @@ -1,7 +1,7 @@ name: gma_mediation_mytarget description: 'Mediation Adapter that enables sending ad requests to the mytarget ad network using the google_mobile_ads plugin.' -version: 1.6.0 +version: 1.7.0 environment: sdk: ^3.6.0 flutter: '>=3.27.0' From 72d5ae6effdb0868c91d519312ea6acf02c4f909 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 15 Dec 2025 11:19:05 -0800 Subject: [PATCH 090/251] Updating Pangle Flutter mediation plugin to support the latest adapters (7.8.0.8.0, 7.8.0.5.0) PiperOrigin-RevId: 844850256 --- packages/mediation/gma_mediation_pangle/CHANGELOG.md | 2 ++ packages/mediation/gma_mediation_pangle/android/build.gradle | 4 ++-- .../gma_mediation_pangle/ios/gma_mediation_pangle.podspec | 4 ++-- packages/mediation/gma_mediation_pangle/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_pangle/CHANGELOG.md b/packages/mediation/gma_mediation_pangle/CHANGELOG.md index 0768c9afa..09e7df655 100644 --- a/packages/mediation/gma_mediation_pangle/CHANGELOG.md +++ b/packages/mediation/gma_mediation_pangle/CHANGELOG.md @@ -1,5 +1,7 @@ ## Pangle Flutter Mediation Adapter Changelog +#### Version 3.5.1 (In progress) + #### Version 3.5.0 - Supports [Pangle Android adapter version 7.8.0.7.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/pangle/CHANGELOG.md#version-78070). - Supports [Pangle iOS adapter version 7.8.0.3.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Pangle/CHANGELOG.md#version-78030). diff --git a/packages/mediation/gma_mediation_pangle/android/build.gradle b/packages/mediation/gma_mediation_pangle/android/build.gradle index dd17515e9..0ed442af0 100644 --- a/packages/mediation/gma_mediation_pangle/android/build.gradle +++ b/packages/mediation/gma_mediation_pangle/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_pangle' -version = "3.5.0" +version = "3.5.1" buildscript { ext.kotlin_version = '2.0.21' @@ -28,7 +28,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "7.8.0.7.0" + stringVersion = "7.8.0.8.0" } android { diff --git a/packages/mediation/gma_mediation_pangle/ios/gma_mediation_pangle.podspec b/packages/mediation/gma_mediation_pangle/ios/gma_mediation_pangle.podspec index ab17c7e60..356d87ca8 100644 --- a/packages/mediation/gma_mediation_pangle/ios/gma_mediation_pangle.podspec +++ b/packages/mediation/gma_mediation_pangle/ios/gma_mediation_pangle.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_pangle' - s.version = '3.5.0' + s.version = '3.5.1' s.summary = 'Google Mobile Ads Mediation of Pangle.' s.description = <<-DESC Mediation Adapter for Pangle to use with Google Mobile Ads. @@ -16,7 +16,7 @@ Pod::Spec.new do |s| s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationPangle', '~> 7.8.0.3.0' + s.dependency 'GoogleMobileAdsMediationPangle', '~> 7.8.0.5.0' s.platform = :ios, '12.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_pangle/pubspec.yaml b/packages/mediation/gma_mediation_pangle/pubspec.yaml index af508ea68..c52c21e12 100644 --- a/packages/mediation/gma_mediation_pangle/pubspec.yaml +++ b/packages/mediation/gma_mediation_pangle/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_pangle description: "Mediation Adapter that enables sending ad requests to the Pangle ad network using the google_mobile_ads plugin." -version: 3.5.0 +version: 3.5.1 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_pangle environment: From d95340245f64d7116246dc3cef92db340abfd142 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 22 Dec 2025 06:51:42 -0800 Subject: [PATCH 091/251] Update myTarget Flutter Adapter version to 1.7.0 PiperOrigin-RevId: 847747148 --- packages/mediation/gma_mediation_mytarget/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_mytarget/CHANGELOG.md b/packages/mediation/gma_mediation_mytarget/CHANGELOG.md index b77be43be..d00724a41 100644 --- a/packages/mediation/gma_mediation_mytarget/CHANGELOG.md +++ b/packages/mediation/gma_mediation_mytarget/CHANGELOG.md @@ -1,6 +1,9 @@ ## myTarget Flutter Mediation Adapter Changelog -#### Version 1.7.0 (In progress) +#### Version 1.7.0 +* Supports [myTarget Android adapter version 5.27.4.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/mytarget/CHANGELOG.md#version-52740). +* Supports [myTarget iOS adapter version 5.38.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/MyTarget/CHANGELOG.md#version-53800). +* Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 1.6.0 * Supports [myTarget Android adapter version 5.27.4.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/mytarget/CHANGELOG.md#version-52740). From ee384544f6f6586e5419604c49df6f61c2ca6a69 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 22 Dec 2025 12:25:35 -0800 Subject: [PATCH 092/251] Updating Pangle Flutter Adapter to version 3.5.1 PiperOrigin-RevId: 847848289 --- packages/mediation/gma_mediation_pangle/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_pangle/CHANGELOG.md b/packages/mediation/gma_mediation_pangle/CHANGELOG.md index 09e7df655..b27f64c86 100644 --- a/packages/mediation/gma_mediation_pangle/CHANGELOG.md +++ b/packages/mediation/gma_mediation_pangle/CHANGELOG.md @@ -1,6 +1,9 @@ ## Pangle Flutter Mediation Adapter Changelog -#### Version 3.5.1 (In progress) +#### Version 3.5.1 +- Supports [Pangle Android adapter version 7.8.0.8.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/pangle/CHANGELOG.md#version-78080). +- Supports [Pangle iOS adapter version 7.8.0.5.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Pangle/CHANGELOG.md#version-78050). +- Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 3.5.0 - Supports [Pangle Android adapter version 7.8.0.7.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/pangle/CHANGELOG.md#version-78070). From 1f6d818247692035ec9f4e7753cc253ca733470f Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Tue, 30 Dec 2025 10:22:21 -0800 Subject: [PATCH 093/251] Updating Pangle Flutter mediation plugin to support the latest adapters (7.8.0.8.0, 7.8.0.6.0) PiperOrigin-RevId: 850450381 --- packages/mediation/gma_mediation_pangle/CHANGELOG.md | 4 ++++ .../gma_mediation_pangle/android/build.gradle | 12 ++++++------ .../android/gradle/wrapper/gradle-wrapper.properties | 2 +- .../example/android/build.gradle | 2 +- .../android/gradle/wrapper/gradle-wrapper.properties | 2 +- .../example/android/settings.gradle | 2 +- .../gma_mediation_pangle/example/ios/Podfile | 2 +- .../gma_mediation_pangle/example/pubspec.yaml | 6 +++--- .../ios/gma_mediation_pangle.podspec | 6 +++--- packages/mediation/gma_mediation_pangle/pubspec.yaml | 10 +++++----- 10 files changed, 26 insertions(+), 22 deletions(-) diff --git a/packages/mediation/gma_mediation_pangle/CHANGELOG.md b/packages/mediation/gma_mediation_pangle/CHANGELOG.md index b27f64c86..670f38799 100644 --- a/packages/mediation/gma_mediation_pangle/CHANGELOG.md +++ b/packages/mediation/gma_mediation_pangle/CHANGELOG.md @@ -1,5 +1,9 @@ ## Pangle Flutter Mediation Adapter Changelog +#### Version 3.5.2 (In progress) +- Updated minimum Flutter version to 3.35.1 +- Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 + #### Version 3.5.1 - Supports [Pangle Android adapter version 7.8.0.8.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/pangle/CHANGELOG.md#version-78080). - Supports [Pangle iOS adapter version 7.8.0.5.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Pangle/CHANGELOG.md#version-78050). diff --git a/packages/mediation/gma_mediation_pangle/android/build.gradle b/packages/mediation/gma_mediation_pangle/android/build.gradle index 0ed442af0..ccf29c2c0 100644 --- a/packages/mediation/gma_mediation_pangle/android/build.gradle +++ b/packages/mediation/gma_mediation_pangle/android/build.gradle @@ -1,15 +1,15 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_pangle' -version = "3.5.1" +version = "3.5.2" buildscript { - ext.kotlin_version = '2.0.21' + ext.kotlin_version = '2.2.21' repositories { google() mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:7.3.0' + classpath 'com.android.tools.build:gradle:8.13.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } @@ -36,7 +36,7 @@ android { namespace 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_pangle' } - compileSdk 33 + compileSdk 36 compileOptions { sourceCompatibility JavaVersion.VERSION_11 @@ -53,13 +53,13 @@ android { } defaultConfig { - minSdkVersion 23 + minSdk 24 } dependencies { implementation "com.google.ads.mediation:pangle:$stringVersion" testImplementation 'org.jetbrains.kotlin:kotlin-test' - testImplementation 'org.mockito:mockito-core:5.0.0' + testImplementation 'org.mockito:mockito-core:5.20.0' } testOptions { diff --git a/packages/mediation/gma_mediation_pangle/android/gradle/wrapper/gradle-wrapper.properties b/packages/mediation/gma_mediation_pangle/android/gradle/wrapper/gradle-wrapper.properties index 42defcc94..cd4b7aa89 100644 --- a/packages/mediation/gma_mediation_pangle/android/gradle/wrapper/gradle-wrapper.properties +++ b/packages/mediation/gma_mediation_pangle/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/packages/mediation/gma_mediation_pangle/example/android/build.gradle b/packages/mediation/gma_mediation_pangle/example/android/build.gradle index b9b7153a3..b7339833b 100644 --- a/packages/mediation/gma_mediation_pangle/example/android/build.gradle +++ b/packages/mediation/gma_mediation_pangle/example/android/build.gradle @@ -1,5 +1,5 @@ buildscript { - ext.kotlin_version = '2.0.21' + ext.kotlin_version = '2.2.21' repositories { google() mavenCentral() diff --git a/packages/mediation/gma_mediation_pangle/example/android/gradle/wrapper/gradle-wrapper.properties b/packages/mediation/gma_mediation_pangle/example/android/gradle/wrapper/gradle-wrapper.properties index 3c472b99c..f004c34c0 100644 --- a/packages/mediation/gma_mediation_pangle/example/android/gradle/wrapper/gradle-wrapper.properties +++ b/packages/mediation/gma_mediation_pangle/example/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip diff --git a/packages/mediation/gma_mediation_pangle/example/android/settings.gradle b/packages/mediation/gma_mediation_pangle/example/android/settings.gradle index 7cd712855..23a851931 100644 --- a/packages/mediation/gma_mediation_pangle/example/android/settings.gradle +++ b/packages/mediation/gma_mediation_pangle/example/android/settings.gradle @@ -23,7 +23,7 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "7.3.0" apply false + id "com.android.application" version "8.13.1" apply false } include ":app" diff --git a/packages/mediation/gma_mediation_pangle/example/ios/Podfile b/packages/mediation/gma_mediation_pangle/example/ios/Podfile index 38b28ff0d..6a8ce2dd1 100644 --- a/packages/mediation/gma_mediation_pangle/example/ios/Podfile +++ b/packages/mediation/gma_mediation_pangle/example/ios/Podfile @@ -1,5 +1,5 @@ # Uncomment this line to define a global platform for your project -# platform :ios, '12.0' +platform :ios, '13.0' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' diff --git a/packages/mediation/gma_mediation_pangle/example/pubspec.yaml b/packages/mediation/gma_mediation_pangle/example/pubspec.yaml index aa47ab8f8..e85b0b699 100644 --- a/packages/mediation/gma_mediation_pangle/example/pubspec.yaml +++ b/packages/mediation/gma_mediation_pangle/example/pubspec.yaml @@ -5,7 +5,7 @@ description: "Demonstrates how to use the gma_mediation_pangle plugin." publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: '>=3.6.0 <4.0.0' + sdk: '>=3.9.0 <4.0.0' # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions @@ -17,7 +17,7 @@ dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 gma_mediation_pangle: # When depending on this package from a real application you should use: # gma_mediation_pangle: ^x.y.z @@ -41,7 +41,7 @@ dev_dependencies: # activated in the `analysis_options.yaml` file located at the root of your # package. See that file for information about deactivating specific lint # rules and activating additional ones. - flutter_lints: ^2.0.0 + flutter_lints: ^6.0.0 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/packages/mediation/gma_mediation_pangle/ios/gma_mediation_pangle.podspec b/packages/mediation/gma_mediation_pangle/ios/gma_mediation_pangle.podspec index 356d87ca8..0810c45a5 100644 --- a/packages/mediation/gma_mediation_pangle/ios/gma_mediation_pangle.podspec +++ b/packages/mediation/gma_mediation_pangle/ios/gma_mediation_pangle.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_pangle' - s.version = '3.5.1' + s.version = '3.5.2' s.summary = 'Google Mobile Ads Mediation of Pangle.' s.description = <<-DESC Mediation Adapter for Pangle to use with Google Mobile Ads. @@ -16,8 +16,8 @@ Pod::Spec.new do |s| s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationPangle', '~> 7.8.0.5.0' - s.platform = :ios, '12.0' + s.dependency 'GoogleMobileAdsMediationPangle', '~> 7.8.0.6.0' + s.platform = :ios, '13.0' s.static_framework = true # Flutter.framework does not contain a i386 slice. diff --git a/packages/mediation/gma_mediation_pangle/pubspec.yaml b/packages/mediation/gma_mediation_pangle/pubspec.yaml index c52c21e12..76806b30e 100644 --- a/packages/mediation/gma_mediation_pangle/pubspec.yaml +++ b/packages/mediation/gma_mediation_pangle/pubspec.yaml @@ -1,20 +1,20 @@ name: gma_mediation_pangle description: "Mediation Adapter that enables sending ad requests to the Pangle ad network using the google_mobile_ads plugin." -version: 3.5.1 +version: 3.5.2 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_pangle environment: - sdk: '>=3.6.0 <4.0.0' - flutter: '>=3.27.0' + sdk: '>=3.9.0 <4.0.0' + flutter: '>=3.35.1' dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 plugin_platform_interface: ^2.0.2 dev_dependencies: - flutter_lints: ^3.0.0 + flutter_lints: ^6.0.0 flutter_test: sdk: flutter lint: ^2.3.0 From 011397cd0943990bb6b73f024f021a90354859cd Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Wed, 7 Jan 2026 14:42:29 -0800 Subject: [PATCH 094/251] Updating UnityAds Flutter mediation plugin to support the latest adapters (4.16.5.0, 4.16.4.0) PiperOrigin-RevId: 853419556 --- packages/mediation/gma_mediation_unity/CHANGELOG.md | 2 ++ packages/mediation/gma_mediation_unity/android/build.gradle | 6 +++--- .../gma_mediation_unity/ios/gma_mediation_unity.podspec | 4 ++-- packages/mediation/gma_mediation_unity/pubspec.yaml | 2 +- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/packages/mediation/gma_mediation_unity/CHANGELOG.md b/packages/mediation/gma_mediation_unity/CHANGELOG.md index 8044c69f7..861abef25 100644 --- a/packages/mediation/gma_mediation_unity/CHANGELOG.md +++ b/packages/mediation/gma_mediation_unity/CHANGELOG.md @@ -1,5 +1,7 @@ ## Unity Ads Flutter Mediation Adapter Changelog +#### Version 1.6.4 (In progress) + #### Version 1.6.3 (In progress) #### Version 1.6.2 diff --git a/packages/mediation/gma_mediation_unity/android/build.gradle b/packages/mediation/gma_mediation_unity/android/build.gradle index 0026cf847..b31d7227a 100644 --- a/packages/mediation/gma_mediation_unity/android/build.gradle +++ b/packages/mediation/gma_mediation_unity/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_unity' -version = "1.6.3" +version = "1.6.4" buildscript { ext.kotlin_version = '2.0.21' @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "4.16.3.0" + stringVersion = "4.16.5.0" } android { @@ -50,7 +50,7 @@ android { } defaultConfig { - minSdkVersion 23 + minSdkVersion 24 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/packages/mediation/gma_mediation_unity/ios/gma_mediation_unity.podspec b/packages/mediation/gma_mediation_unity/ios/gma_mediation_unity.podspec index 6828b1625..704e852e9 100644 --- a/packages/mediation/gma_mediation_unity/ios/gma_mediation_unity.podspec +++ b/packages/mediation/gma_mediation_unity/ios/gma_mediation_unity.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_unity' - s.version = '1.6.3' + s.version = '1.6.4' s.summary = 'Google Mobile Ads Mediation of Unity Ads.' s.description = <<-DESC Mediation Adapter for Unity Ads to use with Google Mobile Ads. @@ -16,7 +16,7 @@ Mediation Adapter for Unity Ads to use with Google Mobile Ads. s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationUnity', '~>4.16.3.0' + s.dependency 'GoogleMobileAdsMediationUnity', '~>4.16.4.0' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_unity/pubspec.yaml b/packages/mediation/gma_mediation_unity/pubspec.yaml index b536f64b9..b6f22d4e0 100644 --- a/packages/mediation/gma_mediation_unity/pubspec.yaml +++ b/packages/mediation/gma_mediation_unity/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_unity description: "Mediation Adapter that enables sending ad requests to the Unity ad network using the google_mobile_ads plugin." -version: 1.6.3 +version: 1.6.4 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_unity environment: From 551ce49286bb42277339fb8212975e99ab3affc6 Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Wed, 7 Jan 2026 15:31:38 -0800 Subject: [PATCH 095/251] Updating BidMachine Flutter mediation plugin to support the latest adapters (3.5.1.0, 3.5.1.0) PiperOrigin-RevId: 853437438 --- .../gma_mediation_bidmachine/CHANGELOG.md | 2 ++ .../android/build.gradle | 16 ++++++++-------- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../example/android/settings.gradle.kts | 4 ++-- .../example/pubspec.yaml | 5 +++-- .../ios/gma_mediation_bidmachine.podspec | 6 +++--- .../gma_mediation_bidmachine/pubspec.yaml | 10 +++++----- 7 files changed, 24 insertions(+), 21 deletions(-) diff --git a/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md b/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md index 5247bec06..a64ddcbf2 100644 --- a/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md +++ b/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md @@ -1,5 +1,7 @@ ## BidMachine Flutter Mediation Adapter Changelog +#### Version 1.3.1 (In progress) + #### Version 1.3.0 - Supports [BidMachine Android adapter version 3.5.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/bidmachine/CHANGELOG.md#version-3500). - Supports [BidMachine iOS adapter version 3.5.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/BidMachine/CHANGELOG.md#version-3500). diff --git a/packages/mediation/gma_mediation_bidmachine/android/build.gradle b/packages/mediation/gma_mediation_bidmachine/android/build.gradle index fd1dc5e41..b11bc53ad 100644 --- a/packages/mediation/gma_mediation_bidmachine/android/build.gradle +++ b/packages/mediation/gma_mediation_bidmachine/android/build.gradle @@ -1,15 +1,15 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_bidmachine" -version = "1.3.0" +version = "1.3.1" buildscript { - ext.kotlin_version = "2.1.0" + ext.kotlin_version = "2.2.21" repositories { google() mavenCentral() } dependencies { - classpath("com.android.tools.build:gradle:8.7.3") + classpath("com.android.tools.build:gradle:8.13.1") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version") } } @@ -25,13 +25,13 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "3.5.0.0" + stringVersion = "3.5.1.0" } android { namespace = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_bidmachine" - compileSdk = 35 + compileSdk = 36 compileOptions { sourceCompatibility = JavaVersion.VERSION_11 @@ -48,14 +48,14 @@ android { } defaultConfig { - minSdk = 21 + minSdk = 24 } dependencies { implementation "com.google.ads.mediation:bidmachine:$stringVersion" - implementation 'com.google.android.gms:play-services-ads:24.4.0' + implementation 'com.google.android.gms:play-services-ads:24.9.0' testImplementation("org.jetbrains.kotlin:kotlin-test") - testImplementation("org.mockito:mockito-core:5.0.0") + testImplementation("org.mockito:mockito-core:5.20.0") } testOptions { diff --git a/packages/mediation/gma_mediation_bidmachine/example/android/gradle/wrapper/gradle-wrapper.properties b/packages/mediation/gma_mediation_bidmachine/example/android/gradle/wrapper/gradle-wrapper.properties index ac3b47926..f004c34c0 100644 --- a/packages/mediation/gma_mediation_bidmachine/example/android/gradle/wrapper/gradle-wrapper.properties +++ b/packages/mediation/gma_mediation_bidmachine/example/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip diff --git a/packages/mediation/gma_mediation_bidmachine/example/android/settings.gradle.kts b/packages/mediation/gma_mediation_bidmachine/example/android/settings.gradle.kts index 1a6884017..4eac8be0d 100644 --- a/packages/mediation/gma_mediation_bidmachine/example/android/settings.gradle.kts +++ b/packages/mediation/gma_mediation_bidmachine/example/android/settings.gradle.kts @@ -18,8 +18,8 @@ pluginManagement { plugins { id("dev.flutter.flutter-plugin-loader") version "1.0.0" - id("com.android.application") version "8.7.3" apply false - id("org.jetbrains.kotlin.android") version "2.1.0" apply false + id("com.android.application") version "8.13.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.21" apply false } include(":app") diff --git a/packages/mediation/gma_mediation_bidmachine/example/pubspec.yaml b/packages/mediation/gma_mediation_bidmachine/example/pubspec.yaml index c8b44b180..536551a04 100644 --- a/packages/mediation/gma_mediation_bidmachine/example/pubspec.yaml +++ b/packages/mediation/gma_mediation_bidmachine/example/pubspec.yaml @@ -5,7 +5,7 @@ description: "Demonstrates how to use the gma_mediation_bidmachine plugin." publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: ^3.8.1 + sdk: ^3.9.0 # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions @@ -17,6 +17,7 @@ dependencies: flutter: sdk: flutter + google_mobile_ads: ^7.0.0 gma_mediation_bidmachine: # When depending on this package from a real application you should use: # gma_mediation_bidmachine: ^x.y.z @@ -40,7 +41,7 @@ dev_dependencies: # activated in the `analysis_options.yaml` file located at the root of your # package. See that file for information about deactivating specific lint # rules and activating additional ones. - flutter_lints: ^5.0.0 + flutter_lints: ^6.0.0 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/packages/mediation/gma_mediation_bidmachine/ios/gma_mediation_bidmachine.podspec b/packages/mediation/gma_mediation_bidmachine/ios/gma_mediation_bidmachine.podspec index bfc23a124..7abc81a93 100644 --- a/packages/mediation/gma_mediation_bidmachine/ios/gma_mediation_bidmachine.podspec +++ b/packages/mediation/gma_mediation_bidmachine/ios/gma_mediation_bidmachine.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_bidmachine' - s.version = '1.3.0' + s.version = '1.3.1' s.summary = 'Google Mobile Ads Mediation of BidMachine.' s.description = <<-DESC Mediation Adapter for BidMachine to use with Google Mobile Ads. @@ -11,8 +11,8 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationBidMachine', '~> 3.5.0.0' - s.platform = :ios, '12.0' + s.dependency 'GoogleMobileAdsMediationBidMachine', '~> 3.5.1.0' + s.platform = :ios, '13.0' s.static_framework = true s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } diff --git a/packages/mediation/gma_mediation_bidmachine/pubspec.yaml b/packages/mediation/gma_mediation_bidmachine/pubspec.yaml index c249de1d0..954ebc265 100644 --- a/packages/mediation/gma_mediation_bidmachine/pubspec.yaml +++ b/packages/mediation/gma_mediation_bidmachine/pubspec.yaml @@ -1,19 +1,19 @@ name: gma_mediation_bidmachine description: 'Mediation Adapter that enables sending ad requests to the BidMachine ad network using the google_mobile_ads plugin.' -version: 1.3.0 +version: 1.3.1 environment: - sdk: '>=3.6.0 <4.0.0' - flutter: '>=3.27.0' + sdk: '>=3.9.0 <4.0.0' + flutter: '>=3.35.1' dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 plugin_platform_interface: ^2.0.2 dev_dependencies: flutter_test: sdk: flutter - flutter_lints: ^5.0.0 + flutter_lints: ^6.0.0 lint: ^2.4.0 flutter: plugin: From 9e070c49375e5d1a9e6972df71f68e77b20c6e80 Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Wed, 7 Jan 2026 15:56:32 -0800 Subject: [PATCH 096/251] Updating IronSource Flutter mediation plugin to support the latest adapters (9.2.0.0, 9.2.0.0.0) PiperOrigin-RevId: 853445675 --- .../gma_mediation_ironsource/CHANGELOG.md | 2 ++ .../gma_mediation_ironsource/android/build.gradle | 14 +++++++------- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../example/android/settings.gradle | 4 ++-- .../gma_mediation_ironsource/example/ios/Podfile | 2 +- .../example/ios/Runner.xcodeproj/project.pbxproj | 6 +++--- .../gma_mediation_ironsource/example/pubspec.yaml | 6 +++--- .../ios/gma_mediation_ironsource.podspec | 6 +++--- .../gma_mediation_ironsource/pubspec.yaml | 10 +++++----- 10 files changed, 28 insertions(+), 26 deletions(-) diff --git a/packages/mediation/gma_mediation_ironsource/CHANGELOG.md b/packages/mediation/gma_mediation_ironsource/CHANGELOG.md index 317529ec8..a8e032251 100644 --- a/packages/mediation/gma_mediation_ironsource/CHANGELOG.md +++ b/packages/mediation/gma_mediation_ironsource/CHANGELOG.md @@ -1,5 +1,7 @@ ## ironSource Flutter Mediation Adapter Changelog +#### Version 2.2.0 (In progress) + #### Version 2.1.0 - Supports [ironSource Android adapter version 9.1.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/ironsource/CHANGELOG.md#version-9100). - Supports [ironSource iOS adapter version 9.1.0.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/IronSource/CHANGELOG.md#version-91000). diff --git a/packages/mediation/gma_mediation_ironsource/android/build.gradle b/packages/mediation/gma_mediation_ironsource/android/build.gradle index a0d5e64dd..1ba536545 100644 --- a/packages/mediation/gma_mediation_ironsource/android/build.gradle +++ b/packages/mediation/gma_mediation_ironsource/android/build.gradle @@ -1,15 +1,15 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_ironsource' -version = "2.1.0" +version = "2.2.0" buildscript { - ext.kotlin_version = '2.0.21' + ext.kotlin_version = '2.2.21' repositories { google() mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:8.0.2' + classpath 'com.android.tools.build:gradle:8.13.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } @@ -28,7 +28,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "9.1.0.0" + stringVersion = "9.2.0.0" } android { @@ -36,7 +36,7 @@ android { namespace 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_ironsource' } - compileSdk 34 + compileSdk 36 compileOptions { sourceCompatibility JavaVersion.VERSION_11 @@ -53,7 +53,7 @@ android { } defaultConfig { - minSdkVersion 23 + minSdkVersion 24 } dependencies { @@ -65,7 +65,7 @@ android { testImplementation 'org.jetbrains.kotlin:kotlin-stdlib:1.8.20' testImplementation 'org.mockito:mockito-core:5.5.0' testImplementation 'org.mockito.kotlin:mockito-kotlin:5.1.0' - testImplementation 'org.robolectric:robolectric:4.10.3' + testImplementation 'org.robolectric:robolectric:4.16' } testOptions { diff --git a/packages/mediation/gma_mediation_ironsource/android/gradle/wrapper/gradle-wrapper.properties b/packages/mediation/gma_mediation_ironsource/android/gradle/wrapper/gradle-wrapper.properties index 42defcc94..cd4b7aa89 100644 --- a/packages/mediation/gma_mediation_ironsource/android/gradle/wrapper/gradle-wrapper.properties +++ b/packages/mediation/gma_mediation_ironsource/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/packages/mediation/gma_mediation_ironsource/example/android/gradle/wrapper/gradle-wrapper.properties b/packages/mediation/gma_mediation_ironsource/example/android/gradle/wrapper/gradle-wrapper.properties index afa1e8eb0..f004c34c0 100644 --- a/packages/mediation/gma_mediation_ironsource/example/android/gradle/wrapper/gradle-wrapper.properties +++ b/packages/mediation/gma_mediation_ironsource/example/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip diff --git a/packages/mediation/gma_mediation_ironsource/example/android/settings.gradle b/packages/mediation/gma_mediation_ironsource/example/android/settings.gradle index a8c03d6b0..a512319b9 100644 --- a/packages/mediation/gma_mediation_ironsource/example/android/settings.gradle +++ b/packages/mediation/gma_mediation_ironsource/example/android/settings.gradle @@ -19,8 +19,8 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.7.0" apply false - id "org.jetbrains.kotlin.android" version "2.0.21" apply false + id "com.android.application" version "8.13.1" apply false + id "org.jetbrains.kotlin.android" version "2.2.21" apply false } include ":app" diff --git a/packages/mediation/gma_mediation_ironsource/example/ios/Podfile b/packages/mediation/gma_mediation_ironsource/example/ios/Podfile index 612c3b8e0..b2d735017 100644 --- a/packages/mediation/gma_mediation_ironsource/example/ios/Podfile +++ b/packages/mediation/gma_mediation_ironsource/example/ios/Podfile @@ -1,4 +1,4 @@ -platform :ios, '12.0' +platform :ios, '13.0' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' diff --git a/packages/mediation/gma_mediation_ironsource/example/ios/Runner.xcodeproj/project.pbxproj b/packages/mediation/gma_mediation_ironsource/example/ios/Runner.xcodeproj/project.pbxproj index ec226693b..11e0fb54b 100644 --- a/packages/mediation/gma_mediation_ironsource/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/mediation/gma_mediation_ironsource/example/ios/Runner.xcodeproj/project.pbxproj @@ -362,7 +362,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -488,7 +488,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -539,7 +539,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; diff --git a/packages/mediation/gma_mediation_ironsource/example/pubspec.yaml b/packages/mediation/gma_mediation_ironsource/example/pubspec.yaml index 37fd6ab76..f97975851 100644 --- a/packages/mediation/gma_mediation_ironsource/example/pubspec.yaml +++ b/packages/mediation/gma_mediation_ironsource/example/pubspec.yaml @@ -5,7 +5,7 @@ description: "Demonstrates how to use the gma_mediation_ironsource plugin." publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: '>=3.6.0 <4.0.0' + sdk: '>=3.9.0 <4.0.0' # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions @@ -17,7 +17,7 @@ dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 gma_mediation_ironsource: # When depending on this package from a real application you should use: # gma_mediation_ironsource: ^x.y.z @@ -41,7 +41,7 @@ dev_dependencies: # activated in the `analysis_options.yaml` file located at the root of your # package. See that file for information about deactivating specific lint # rules and activating additional ones. - flutter_lints: ^3.0.0 + flutter_lints: ^6.0.0 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/packages/mediation/gma_mediation_ironsource/ios/gma_mediation_ironsource.podspec b/packages/mediation/gma_mediation_ironsource/ios/gma_mediation_ironsource.podspec index b855fcec9..bd0aa04d2 100644 --- a/packages/mediation/gma_mediation_ironsource/ios/gma_mediation_ironsource.podspec +++ b/packages/mediation/gma_mediation_ironsource/ios/gma_mediation_ironsource.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_ironsource' - s.version = '2.1.0' + s.version = '2.2.0' s.summary = 'Google Mobile Ads Mediation of ironSource.' s.description = <<-DESC Mediation Adapter for ironSource to use with Google Mobile Ads. @@ -16,8 +16,8 @@ Mediation Adapter for ironSource to use with Google Mobile Ads. s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationIronSource', '~>9.1.0.0.0' - s.platform = :ios, '12.0' + s.dependency 'GoogleMobileAdsMediationIronSource', '~>9.2.0.0.0' + s.platform = :ios, '13.0' s.static_framework = true # Flutter.framework does not contain a i386 slice. diff --git a/packages/mediation/gma_mediation_ironsource/pubspec.yaml b/packages/mediation/gma_mediation_ironsource/pubspec.yaml index 34144a669..fd28ccd85 100644 --- a/packages/mediation/gma_mediation_ironsource/pubspec.yaml +++ b/packages/mediation/gma_mediation_ironsource/pubspec.yaml @@ -1,20 +1,20 @@ name: gma_mediation_ironsource description: "Mediation Adapter that enables sending ad requests to the ironSource ad network using the google_mobile_ads plugin." -version: 2.1.0 +version: 2.2.0 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_ironsource environment: - sdk: '>=3.6.0 <4.0.0' - flutter: '>=3.27.0' + sdk: '>=3.9.0 <4.0.0' + flutter: '>=3.35.1' dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 plugin_platform_interface: ^2.0.2 dev_dependencies: - flutter_lints: ^3.0.0 + flutter_lints: ^6.0.0 flutter_test: sdk: flutter lint: ^2.3.0 From ab49129ce2c624b1ad1b459a30243272cc52bbc2 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Wed, 7 Jan 2026 15:58:56 -0800 Subject: [PATCH 097/251] Updating DTExchange Flutter mediation plugin to support the latest adapters (8.4.1.0, 8.4.2.1) PiperOrigin-RevId: 853446474 --- packages/mediation/gma_mediation_dtexchange/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_dtexchange/android/build.gradle | 6 +++--- .../ios/gma_mediation_dtexchange.podspec | 4 ++-- packages/mediation/gma_mediation_dtexchange/pubspec.yaml | 2 +- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md b/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md index 8462f6e42..78e646666 100644 --- a/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md +++ b/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md @@ -1,5 +1,7 @@ ## DT Exchange Flutter Mediation Adapter Changelog +#### Version 1.3.2 (In progress) + #### Version 1.3.1 * Supports [DT Exchange Android adapter version 8.4.0.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/dtexchange/CHANGELOG.md#version-8401). * Supports [DT Exchange iOS adapter version 8.4.2.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/DTExchange/CHANGELOG.md#version-8420). diff --git a/packages/mediation/gma_mediation_dtexchange/android/build.gradle b/packages/mediation/gma_mediation_dtexchange/android/build.gradle index fdc987f0c..69c2eb178 100644 --- a/packages/mediation/gma_mediation_dtexchange/android/build.gradle +++ b/packages/mediation/gma_mediation_dtexchange/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_dtexchange' -version = "1.3.1" +version = "1.3.2" buildscript { ext.kotlin_version = '2.0.21' @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "8.4.0.1" + stringVersion = "8.4.1.0" } android { @@ -50,7 +50,7 @@ android { } defaultConfig { - minSdkVersion 23 + minSdkVersion 24 } dependencies { diff --git a/packages/mediation/gma_mediation_dtexchange/ios/gma_mediation_dtexchange.podspec b/packages/mediation/gma_mediation_dtexchange/ios/gma_mediation_dtexchange.podspec index 04dcc9c16..b761daf55 100644 --- a/packages/mediation/gma_mediation_dtexchange/ios/gma_mediation_dtexchange.podspec +++ b/packages/mediation/gma_mediation_dtexchange/ios/gma_mediation_dtexchange.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_dtexchange' - s.version = '1.3.1' + s.version = '1.3.2' s.summary = 'Google Mobile Ads Mediation of DT Exchange.' s.description = <<-DESC Mediation Adapter for DT Exchange to use with Google Mobile Ads. @@ -16,7 +16,7 @@ Mediation Adapter for DT Exchange to use with Google Mobile Ads. s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationFyber', '~> 8.4.2.0' + s.dependency 'GoogleMobileAdsMediationFyber', '~> 8.4.2.1' s.platform = :ios, '13.0' s.static_framework = true # Flutter.framework does not contain a i386 slice. diff --git a/packages/mediation/gma_mediation_dtexchange/pubspec.yaml b/packages/mediation/gma_mediation_dtexchange/pubspec.yaml index 5a63bfce9..1a960b1bb 100644 --- a/packages/mediation/gma_mediation_dtexchange/pubspec.yaml +++ b/packages/mediation/gma_mediation_dtexchange/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_dtexchange description: "Mediation Adapter that enables sending ad requests to the DT Exchange ad network using the google_mobile_ads plugin." -version: 1.3.1 +version: 1.3.2 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_dtexchange environment: From c37586a144d5b8346a584c2428f01c22c74960ed Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Wed, 7 Jan 2026 15:59:24 -0800 Subject: [PATCH 098/251] Updating Moloco Flutter mediation plugin to support the latest adapters (4.4.0.0, 4.1.2.0) PiperOrigin-RevId: 853446613 --- .../mediation/gma_mediation_moloco/CHANGELOG.md | 2 ++ .../gma_mediation_moloco/android/build.gradle | 16 ++++++++-------- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../example/android/settings.gradle | 4 ++-- .../gma_mediation_moloco/example/pubspec.yaml | 6 +++--- .../ios/gma_mediation_moloco.podspec | 6 +++--- .../mediation/gma_mediation_moloco/pubspec.yaml | 10 +++++----- 7 files changed, 24 insertions(+), 22 deletions(-) diff --git a/packages/mediation/gma_mediation_moloco/CHANGELOG.md b/packages/mediation/gma_mediation_moloco/CHANGELOG.md index 0c64fe1f6..fcc9f380a 100644 --- a/packages/mediation/gma_mediation_moloco/CHANGELOG.md +++ b/packages/mediation/gma_mediation_moloco/CHANGELOG.md @@ -1,5 +1,7 @@ ## Moloco Flutter Mediation Adapter Changelog +#### Version 3.1.0 (In progress) + #### Version 3.0.0 - Supports [Moloco Android adapter version 4.3.1.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/moloco/CHANGELOG.md#version-4310). - Supports [Moloco iOS adapter version 4.1.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Moloco/CHANGELOG.md#version-4100). diff --git a/packages/mediation/gma_mediation_moloco/android/build.gradle b/packages/mediation/gma_mediation_moloco/android/build.gradle index 7579df02d..1af5f3b9b 100644 --- a/packages/mediation/gma_mediation_moloco/android/build.gradle +++ b/packages/mediation/gma_mediation_moloco/android/build.gradle @@ -1,15 +1,15 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_moloco" -version = "3.0.0" +version = "3.1.0" buildscript { - ext.kotlin_version = "1.8.22" + ext.kotlin_version = "2.2.21" repositories { google() mavenCentral() } dependencies { - classpath("com.android.tools.build:gradle:8.1.0") + classpath("com.android.tools.build:gradle:8.13.1") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version") } } @@ -25,13 +25,13 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "4.3.1.0" + stringVersion = "4.4.0.0" } android { namespace = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_moloco" - compileSdk = 35 + compileSdk = 36 compileOptions { sourceCompatibility = JavaVersion.VERSION_11 @@ -48,7 +48,7 @@ android { } defaultConfig { - minSdk = 23 + minSdk = 24 } dependencies { @@ -59,8 +59,8 @@ android { testImplementation 'androidx.test.ext:junit:1.2.1' testImplementation 'org.jetbrains.kotlin:kotlin-stdlib:2.0.21' testImplementation 'org.mockito:mockito-core:5.5.0' - testImplementation 'org.mockito.kotlin:mockito-kotlin:5.1.0' - testImplementation 'org.robolectric:robolectric:4.10.3' + testImplementation 'org.mockito.kotlin:mockito-kotlin:5.20.0' + testImplementation 'org.robolectric:robolectric:4.16' } testOptions { diff --git a/packages/mediation/gma_mediation_moloco/example/android/gradle/wrapper/gradle-wrapper.properties b/packages/mediation/gma_mediation_moloco/example/android/gradle/wrapper/gradle-wrapper.properties index 7bb2df6ba..f004c34c0 100644 --- a/packages/mediation/gma_mediation_moloco/example/android/gradle/wrapper/gradle-wrapper.properties +++ b/packages/mediation/gma_mediation_moloco/example/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip diff --git a/packages/mediation/gma_mediation_moloco/example/android/settings.gradle b/packages/mediation/gma_mediation_moloco/example/android/settings.gradle index b9e43bd37..d7f1a0449 100644 --- a/packages/mediation/gma_mediation_moloco/example/android/settings.gradle +++ b/packages/mediation/gma_mediation_moloco/example/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.1.0" apply false - id "org.jetbrains.kotlin.android" version "1.8.22" apply false + id "com.android.application" version "8.13.1" apply false + id "org.jetbrains.kotlin.android" version "2.2.21" apply false } include ":app" diff --git a/packages/mediation/gma_mediation_moloco/example/pubspec.yaml b/packages/mediation/gma_mediation_moloco/example/pubspec.yaml index c7b4f2b93..e9434ca32 100644 --- a/packages/mediation/gma_mediation_moloco/example/pubspec.yaml +++ b/packages/mediation/gma_mediation_moloco/example/pubspec.yaml @@ -5,7 +5,7 @@ description: "Demonstrates how to use the gma_mediation_moloco plugin." publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: ^3.6.2 + sdk: ^3.9.0 # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions @@ -17,7 +17,7 @@ dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 gma_mediation_moloco: # When depending on this package from a real application you should use: # gma_mediation_moloco: ^x.y.z @@ -41,7 +41,7 @@ dev_dependencies: # activated in the `analysis_options.yaml` file located at the root of your # package. See that file for information about deactivating specific lint # rules and activating additional ones. - flutter_lints: ^5.0.0 + flutter_lints: ^6.0.0 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/packages/mediation/gma_mediation_moloco/ios/gma_mediation_moloco.podspec b/packages/mediation/gma_mediation_moloco/ios/gma_mediation_moloco.podspec index ef9c9966e..34c3d29c8 100644 --- a/packages/mediation/gma_mediation_moloco/ios/gma_mediation_moloco.podspec +++ b/packages/mediation/gma_mediation_moloco/ios/gma_mediation_moloco.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_moloco' - s.version = '3.0.0' + s.version = '3.1.0' s.summary = 'Google Mobile Ads Mediation of Moloco.' s.description = <<-DESC Mediation Adapter for Moloco to use with Google Mobile Ads. @@ -11,8 +11,8 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationMoloco', '~> 4.1.0.0' - s.platform = :ios, '12.0' + s.dependency 'GoogleMobileAdsMediationMoloco', '~> 4.1.2.0' + s.platform = :ios, '13.0' s.static_framework = true s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } diff --git a/packages/mediation/gma_mediation_moloco/pubspec.yaml b/packages/mediation/gma_mediation_moloco/pubspec.yaml index 69f91ee43..0c8ddc151 100644 --- a/packages/mediation/gma_mediation_moloco/pubspec.yaml +++ b/packages/mediation/gma_mediation_moloco/pubspec.yaml @@ -1,19 +1,19 @@ name: gma_mediation_moloco description: 'Mediation Adapter that enables sending ad requests to the Moloco ad network using the google_mobile_ads plugin.' -version: 3.0.0 +version: 3.1.0 environment: - sdk: '>=3.6.0 <4.0.0' - flutter: '>=3.27.0' + sdk: '>=3.9.0 <4.0.0' + flutter: '>=3.35.1' dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 plugin_platform_interface: ^2.0.2 dev_dependencies: flutter_test: sdk: flutter - flutter_lints: ^5.0.0 + flutter_lints: ^6.0.0 lint: ^2.4.0 pigeon: ^24.1.1 flutter: From f400aa497b8e849ef6cf135abf63de7405124c09 Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Wed, 7 Jan 2026 16:51:20 -0800 Subject: [PATCH 099/251] Updating Mintegral Flutter mediation plugin to support the latest adapters (17.0.41.0, 8.0.4.0) PiperOrigin-RevId: 853464677 --- .../mediation/gma_mediation_mintegral/CHANGELOG.md | 4 ++++ .../gma_mediation_mintegral/android/build.gradle | 14 +++++++------- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../example/android/app/build.gradle | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../example/android/settings.gradle | 4 ++-- .../gma_mediation_mintegral/example/ios/Podfile | 3 +-- .../gma_mediation_mintegral/example/pubspec.yaml | 6 +++--- .../ios/gma_mediation_mintegral.podspec | 6 +++--- .../mediation/gma_mediation_mintegral/pubspec.yaml | 10 +++++----- 10 files changed, 28 insertions(+), 25 deletions(-) diff --git a/packages/mediation/gma_mediation_mintegral/CHANGELOG.md b/packages/mediation/gma_mediation_mintegral/CHANGELOG.md index a6938d04e..944e4873b 100644 --- a/packages/mediation/gma_mediation_mintegral/CHANGELOG.md +++ b/packages/mediation/gma_mediation_mintegral/CHANGELOG.md @@ -1,5 +1,9 @@ ## Mintegral Flutter Mediation Adapter Changelog +#### Version 2.0.2 (In progress) +- Updated minimum Flutter version to 3.35.1 +- Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 + #### Version 2.0.1 - Supports [Mintegral Android adapter version 17.0.31.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/mintegral/CHANGELOG.md#version-170310). - Supports [Mintegral iOS adapter version 8.0.3.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Mintegral/CHANGELOG.md#version-8030). diff --git a/packages/mediation/gma_mediation_mintegral/android/build.gradle b/packages/mediation/gma_mediation_mintegral/android/build.gradle index de46e5b1c..473a0feb1 100644 --- a/packages/mediation/gma_mediation_mintegral/android/build.gradle +++ b/packages/mediation/gma_mediation_mintegral/android/build.gradle @@ -1,15 +1,15 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_mintegral' -version = "2.0.1" +version = "2.0.2" buildscript { - ext.kotlin_version = '2.0.21' + ext.kotlin_version = '2.2.21' repositories { google() mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:7.3.0' + classpath 'com.android.tools.build:gradle:8.13.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "17.0.31.0" + stringVersion = "17.0.41.0" } android { @@ -33,7 +33,7 @@ android { namespace 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_mintegral' } - compileSdk 34 + compileSdk 36 compileOptions { sourceCompatibility JavaVersion.VERSION_11 @@ -50,13 +50,13 @@ android { } defaultConfig { - minSdkVersion 23 + minSdkVersion 24 } dependencies { implementation "com.google.ads.mediation:mintegral:$stringVersion" testImplementation 'org.jetbrains.kotlin:kotlin-test' - testImplementation 'org.mockito:mockito-core:5.0.0' + testImplementation 'org.mockito:mockito-core:5.5.0' } testOptions { diff --git a/packages/mediation/gma_mediation_mintegral/android/gradle/wrapper/gradle-wrapper.properties b/packages/mediation/gma_mediation_mintegral/android/gradle/wrapper/gradle-wrapper.properties index 3fa8f862f..23449a2b5 100644 --- a/packages/mediation/gma_mediation_mintegral/android/gradle/wrapper/gradle-wrapper.properties +++ b/packages/mediation/gma_mediation_mintegral/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/packages/mediation/gma_mediation_mintegral/example/android/app/build.gradle b/packages/mediation/gma_mediation_mintegral/example/android/app/build.gradle index 8553f1326..f9168aec6 100644 --- a/packages/mediation/gma_mediation_mintegral/example/android/app/build.gradle +++ b/packages/mediation/gma_mediation_mintegral/example/android/app/build.gradle @@ -45,7 +45,7 @@ android { applicationId "io.flutter.plugins.googlemobileads.mediation.gma_mediation_mintegral_example" // You can update the following values to match your application needs. // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion flutter.targetSdkVersion versionCode flutterVersionCode.toInteger() versionName flutterVersionName diff --git a/packages/mediation/gma_mediation_mintegral/example/android/gradle/wrapper/gradle-wrapper.properties b/packages/mediation/gma_mediation_mintegral/example/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef..f004c34c0 100644 --- a/packages/mediation/gma_mediation_mintegral/example/android/gradle/wrapper/gradle-wrapper.properties +++ b/packages/mediation/gma_mediation_mintegral/example/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip diff --git a/packages/mediation/gma_mediation_mintegral/example/android/settings.gradle b/packages/mediation/gma_mediation_mintegral/example/android/settings.gradle index 1d6d19b7f..a512319b9 100644 --- a/packages/mediation/gma_mediation_mintegral/example/android/settings.gradle +++ b/packages/mediation/gma_mediation_mintegral/example/android/settings.gradle @@ -19,8 +19,8 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "7.3.0" apply false - id "org.jetbrains.kotlin.android" version "1.7.10" apply false + id "com.android.application" version "8.13.1" apply false + id "org.jetbrains.kotlin.android" version "2.2.21" apply false } include ":app" diff --git a/packages/mediation/gma_mediation_mintegral/example/ios/Podfile b/packages/mediation/gma_mediation_mintegral/example/ios/Podfile index 38b28ff0d..b2d735017 100644 --- a/packages/mediation/gma_mediation_mintegral/example/ios/Podfile +++ b/packages/mediation/gma_mediation_mintegral/example/ios/Podfile @@ -1,5 +1,4 @@ -# Uncomment this line to define a global platform for your project -# platform :ios, '12.0' +platform :ios, '13.0' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' diff --git a/packages/mediation/gma_mediation_mintegral/example/pubspec.yaml b/packages/mediation/gma_mediation_mintegral/example/pubspec.yaml index 2a8191c4f..fa2dfb7fc 100644 --- a/packages/mediation/gma_mediation_mintegral/example/pubspec.yaml +++ b/packages/mediation/gma_mediation_mintegral/example/pubspec.yaml @@ -5,7 +5,7 @@ description: "Demonstrates how to use the gma_mediation_mintegral plugin." publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: '>=3.6.0 <4.0.0' + sdk: '>=3.9.0 <4.0.0' # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions @@ -17,7 +17,7 @@ dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 gma_mediation_mintegral: # When depending on this package from a real application you should use: # gma_mediation_mintegral: ^x.y.z @@ -41,7 +41,7 @@ dev_dependencies: # activated in the `analysis_options.yaml` file located at the root of your # package. See that file for information about deactivating specific lint # rules and activating additional ones. - flutter_lints: ^3.0.0 + flutter_lints: ^6.0.0 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/packages/mediation/gma_mediation_mintegral/ios/gma_mediation_mintegral.podspec b/packages/mediation/gma_mediation_mintegral/ios/gma_mediation_mintegral.podspec index 5cc64d960..c12c1e426 100644 --- a/packages/mediation/gma_mediation_mintegral/ios/gma_mediation_mintegral.podspec +++ b/packages/mediation/gma_mediation_mintegral/ios/gma_mediation_mintegral.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_mintegral' - s.version = '2.0.1' + s.version = '2.0.2' s.summary = 'Google Mobile Ads Mediation of Mintegral.' s.description = <<-DESC Mediation Adapter for Mintegral to use with Google Mobile Ads. @@ -16,8 +16,8 @@ Mediation Adapter for Mintegral to use with Google Mobile Ads. s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationMintegral', '~>8.0.3.0' - s.platform = :ios, '12.0' + s.dependency 'GoogleMobileAdsMediationMintegral', '~>8.0.4.0' + s.platform = :ios, '13.0' s.static_framework = true # Flutter.framework does not contain a i386 slice. diff --git a/packages/mediation/gma_mediation_mintegral/pubspec.yaml b/packages/mediation/gma_mediation_mintegral/pubspec.yaml index f51f82b95..516e3b028 100644 --- a/packages/mediation/gma_mediation_mintegral/pubspec.yaml +++ b/packages/mediation/gma_mediation_mintegral/pubspec.yaml @@ -1,20 +1,20 @@ name: gma_mediation_mintegral description: "Mediation Adapter that enables sending ad requests to the Mintegral ad network using the google_mobile_ads plugin." -version: 2.0.1 +version: 2.0.2 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_mintegral environment: - sdk: '>=3.6.0 <4.0.0' - flutter: '>=3.27.0' + sdk: '>=3.9.0 <4.0.0' + flutter: '>=3.35.1' dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 plugin_platform_interface: ^2.0.2 dev_dependencies: - flutter_lints: ^3.0.0 + flutter_lints: ^6.0.0 flutter_test: sdk: flutter lint: ^2.3.0 From 13eb16371059f081650947b49d060c5a7c7b400a Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Thu, 8 Jan 2026 10:02:29 -0800 Subject: [PATCH 100/251] Updating Unity Ads Flutter Adapter to version 1.6.3 PiperOrigin-RevId: 853786869 --- packages/mediation/gma_mediation_unity/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_unity/CHANGELOG.md b/packages/mediation/gma_mediation_unity/CHANGELOG.md index 861abef25..d1522f025 100644 --- a/packages/mediation/gma_mediation_unity/CHANGELOG.md +++ b/packages/mediation/gma_mediation_unity/CHANGELOG.md @@ -2,7 +2,10 @@ #### Version 1.6.4 (In progress) -#### Version 1.6.3 (In progress) +#### Version 1.6.3 +- Supports [Unity Android adapter version 4.16.3.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/unity/CHANGELOG.md#version-41630). +- Supports [Unity iOS adapter version 4.16.3.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Unity/CHANGELOG.md#version-41630). +* Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 1.6.2 - Supports [Unity Android adapter version 4.16.3.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/unity/CHANGELOG.md#version-41630). From db9725302e062f596cc2b523a02da968c06b3eac Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Thu, 8 Jan 2026 11:24:10 -0800 Subject: [PATCH 101/251] Updating Liftoff Flutter mediation plugin to support the latest adapters (7.6.2.0, 7.6.3.0) PiperOrigin-RevId: 853819636 --- .../gma_mediation_liftoffmonetize/CHANGELOG.md | 4 ++++ .../android/build.gradle | 14 +++++++------- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../example/android/build.gradle | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../example/android/settings.gradle | 4 ++-- .../example/ios/Podfile | 2 +- .../example/ios/Runner.xcodeproj/project.pbxproj | 6 +++--- .../example/pubspec.yaml | 6 +++--- .../ios/gma_mediation_liftoffmonetize.podspec | 6 +++--- .../gma_mediation_liftoffmonetize/pubspec.yaml | 10 +++++----- 11 files changed, 31 insertions(+), 27 deletions(-) diff --git a/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md b/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md index 6ab312b54..c2e14725a 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md +++ b/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md @@ -1,5 +1,9 @@ ## Liftoff Monetize Flutter Mediation Adapter Changelog +#### Version 1.4.2 (In progress) +- Updated minimum Flutter version to 3.35.1 +- Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 + #### Version 1.4.1 * Supports [Liftoff Monetize Android adapter version 7.6.1.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/liftoffmonetize/CHANGELOG.md#version-7610). * Supports [Liftoff Monetize iOS adapter version 7.6.2.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/LiftoffMonetize/CHANGELOG.md#version-7620). diff --git a/packages/mediation/gma_mediation_liftoffmonetize/android/build.gradle b/packages/mediation/gma_mediation_liftoffmonetize/android/build.gradle index c607ab0c0..c197cdfc1 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/android/build.gradle +++ b/packages/mediation/gma_mediation_liftoffmonetize/android/build.gradle @@ -1,15 +1,15 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_liftoffmonetize' -version = "1.4.1" +version = "1.4.2" buildscript { - ext.kotlin_version = '2.0.21' + ext.kotlin_version = '2.2.21' repositories { google() mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:7.3.0' + classpath 'com.android.tools.build:gradle:8.13.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "7.6.1.0" + stringVersion = "7.6.2.0" } android { @@ -33,7 +33,7 @@ android { namespace 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_liftoffmonetize' } - compileSdkVersion 34 + compileSdkVersion 36 compileOptions { sourceCompatibility JavaVersion.VERSION_11 @@ -50,7 +50,7 @@ android { } defaultConfig { - minSdkVersion 23 + minSdkVersion 24 } dependencies { @@ -62,7 +62,7 @@ android { testImplementation 'org.jetbrains.kotlin:kotlin-stdlib:1.8.20' testImplementation 'org.mockito:mockito-core:5.5.0' testImplementation 'org.mockito.kotlin:mockito-kotlin:5.1.0' - testImplementation 'org.robolectric:robolectric:4.10.3' + testImplementation 'org.robolectric:robolectric:4.16' } testOptions { diff --git a/packages/mediation/gma_mediation_liftoffmonetize/android/gradle/wrapper/gradle-wrapper.properties b/packages/mediation/gma_mediation_liftoffmonetize/android/gradle/wrapper/gradle-wrapper.properties index 62f495dfe..23449a2b5 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/android/gradle/wrapper/gradle-wrapper.properties +++ b/packages/mediation/gma_mediation_liftoffmonetize/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/packages/mediation/gma_mediation_liftoffmonetize/example/android/build.gradle b/packages/mediation/gma_mediation_liftoffmonetize/example/android/build.gradle index cff218755..7bdfd2321 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/example/android/build.gradle +++ b/packages/mediation/gma_mediation_liftoffmonetize/example/android/build.gradle @@ -1,5 +1,5 @@ buildscript { - ext.kotlin_version = '2.0.21' + ext.kotlin_version = '2.2.21' repositories { google() mavenCentral() diff --git a/packages/mediation/gma_mediation_liftoffmonetize/example/android/gradle/wrapper/gradle-wrapper.properties b/packages/mediation/gma_mediation_liftoffmonetize/example/android/gradle/wrapper/gradle-wrapper.properties index afa1e8eb0..f004c34c0 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/example/android/gradle/wrapper/gradle-wrapper.properties +++ b/packages/mediation/gma_mediation_liftoffmonetize/example/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip diff --git a/packages/mediation/gma_mediation_liftoffmonetize/example/android/settings.gradle b/packages/mediation/gma_mediation_liftoffmonetize/example/android/settings.gradle index a33ee2203..ca273881f 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/example/android/settings.gradle +++ b/packages/mediation/gma_mediation_liftoffmonetize/example/android/settings.gradle @@ -23,8 +23,8 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.7.0" apply false - id 'org.jetbrains.kotlin.android' version '2.0.21' apply false + id "com.android.application" version "8.13.1" apply false + id 'org.jetbrains.kotlin.android' version '2.2.21' apply false } include ":app" diff --git a/packages/mediation/gma_mediation_liftoffmonetize/example/ios/Podfile b/packages/mediation/gma_mediation_liftoffmonetize/example/ios/Podfile index 38b28ff0d..6a8ce2dd1 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/example/ios/Podfile +++ b/packages/mediation/gma_mediation_liftoffmonetize/example/ios/Podfile @@ -1,5 +1,5 @@ # Uncomment this line to define a global platform for your project -# platform :ios, '12.0' +platform :ios, '13.0' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' diff --git a/packages/mediation/gma_mediation_liftoffmonetize/example/ios/Runner.xcodeproj/project.pbxproj b/packages/mediation/gma_mediation_liftoffmonetize/example/ios/Runner.xcodeproj/project.pbxproj index c493a4f4d..b58ce918e 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/mediation/gma_mediation_liftoffmonetize/example/ios/Runner.xcodeproj/project.pbxproj @@ -370,7 +370,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -493,7 +493,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -542,7 +542,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; diff --git a/packages/mediation/gma_mediation_liftoffmonetize/example/pubspec.yaml b/packages/mediation/gma_mediation_liftoffmonetize/example/pubspec.yaml index b4cef4018..5124354c4 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/example/pubspec.yaml +++ b/packages/mediation/gma_mediation_liftoffmonetize/example/pubspec.yaml @@ -5,7 +5,7 @@ description: "Demonstrates how to use the gma_mediation_liftoffmonetize plugin." publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: '>=3.6.0 <4.0.0' + sdk: '>=3.9.0 <4.0.0' # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions @@ -17,7 +17,7 @@ dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 gma_mediation_liftoffmonetize: # When depending on this package from a real application you should use: # gma_mediation_liftoffmonetize: ^x.y.z @@ -41,7 +41,7 @@ dev_dependencies: # activated in the `analysis_options.yaml` file located at the root of your # package. See that file for information about deactivating specific lint # rules and activating additional ones. - flutter_lints: ^2.0.0 + flutter_lints: ^6.0.0 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/packages/mediation/gma_mediation_liftoffmonetize/ios/gma_mediation_liftoffmonetize.podspec b/packages/mediation/gma_mediation_liftoffmonetize/ios/gma_mediation_liftoffmonetize.podspec index 0b1c25832..792c3cfa9 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/ios/gma_mediation_liftoffmonetize.podspec +++ b/packages/mediation/gma_mediation_liftoffmonetize/ios/gma_mediation_liftoffmonetize.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_liftoffmonetize' - s.version = '1.4.1' + s.version = '1.4.2' s.summary = 'Google Mobile Ads Mediation of Liftoff Monetize.' s.description = <<-DESC Mediation Adapter for Liftoff Monetize to use with Google Mobile Ads. @@ -15,9 +15,9 @@ Mediation Adapter for Liftoff Monetize to use with Google Mobile Ads. s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.public_header_files = 'Public/**/*.h' - s.dependency 'GoogleMobileAdsMediationVungle', '~>7.6.2.0' + s.dependency 'GoogleMobileAdsMediationVungle', '~>7.6.3.0' s.dependency 'Flutter' - s.platform = :ios, '12.0' + s.platform = :ios, '13.0' s.static_framework = true # Flutter.framework does not contain a i386 slice. diff --git a/packages/mediation/gma_mediation_liftoffmonetize/pubspec.yaml b/packages/mediation/gma_mediation_liftoffmonetize/pubspec.yaml index e996d498c..38359b429 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/pubspec.yaml +++ b/packages/mediation/gma_mediation_liftoffmonetize/pubspec.yaml @@ -1,20 +1,20 @@ name: gma_mediation_liftoffmonetize description: "Mediation Adapter that enables sending ad requests to the LiftoffMonetize ad network using the google_mobile_ads plugin." -version: 1.4.1 +version: 1.4.2 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_liftoffmonetize environment: - sdk: '>=3.6.0 <4.0.0' - flutter: '>=3.27.0' + sdk: '>=3.9.0 <4.0.0' + flutter: '>=3.35.1' dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 plugin_platform_interface: ^2.0.2 dev_dependencies: - flutter_lints: ^2.0.0 + flutter_lints: ^6.0.0 flutter_test: sdk: flutter lint: ^2.3.0 From cf935911c6d8ced8ad6ca91bce938ce19bf3fd89 Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Thu, 8 Jan 2026 13:28:43 -0800 Subject: [PATCH 102/251] Updating UnityAds Flutter mediation plugin to support the latest adapters (4.16.5.0, 4.16.5.0) PiperOrigin-RevId: 853864398 --- packages/mediation/gma_mediation_unity/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_unity/android/build.gradle | 8 ++++---- .../android/gradle/wrapper/gradle-wrapper.properties | 2 +- .../gma_mediation_unity/example/android/build.gradle | 2 +- .../android/gradle/wrapper/gradle-wrapper.properties | 2 +- .../gma_mediation_unity/example/android/settings.gradle | 4 ++-- .../mediation/gma_mediation_unity/example/ios/Podfile | 1 - .../mediation/gma_mediation_unity/example/pubspec.yaml | 6 +++--- .../gma_mediation_unity/ios/gma_mediation_unity.podspec | 2 +- packages/mediation/gma_mediation_unity/pubspec.yaml | 6 +++--- 10 files changed, 18 insertions(+), 17 deletions(-) diff --git a/packages/mediation/gma_mediation_unity/CHANGELOG.md b/packages/mediation/gma_mediation_unity/CHANGELOG.md index d1522f025..9ad71977e 100644 --- a/packages/mediation/gma_mediation_unity/CHANGELOG.md +++ b/packages/mediation/gma_mediation_unity/CHANGELOG.md @@ -1,6 +1,8 @@ ## Unity Ads Flutter Mediation Adapter Changelog #### Version 1.6.4 (In progress) +- Updated minimum Flutter version to 3.35.1 +- Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 #### Version 1.6.3 - Supports [Unity Android adapter version 4.16.3.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/unity/CHANGELOG.md#version-41630). diff --git a/packages/mediation/gma_mediation_unity/android/build.gradle b/packages/mediation/gma_mediation_unity/android/build.gradle index b31d7227a..b6f4e72d9 100644 --- a/packages/mediation/gma_mediation_unity/android/build.gradle +++ b/packages/mediation/gma_mediation_unity/android/build.gradle @@ -2,14 +2,14 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_unity' version = "1.6.4" buildscript { - ext.kotlin_version = '2.0.21' + ext.kotlin_version = '2.2.21' repositories { google() mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:8.0.2' + classpath 'com.android.tools.build:gradle:8.13.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } @@ -33,7 +33,7 @@ android { namespace 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_unity' } - compileSdkVersion 34 + compileSdkVersion 36 compileOptions { sourceCompatibility JavaVersion.VERSION_11 @@ -64,7 +64,7 @@ android { testImplementation 'org.jetbrains.kotlin:kotlin-stdlib:1.8.20' testImplementation 'org.mockito:mockito-core:5.5.0' testImplementation 'org.mockito.kotlin:mockito-kotlin:5.1.0' - testImplementation 'org.robolectric:robolectric:4.10.3' + testImplementation 'org.robolectric:robolectric:4.16' } testOptions { diff --git a/packages/mediation/gma_mediation_unity/android/gradle/wrapper/gradle-wrapper.properties b/packages/mediation/gma_mediation_unity/android/gradle/wrapper/gradle-wrapper.properties index 42defcc94..cd4b7aa89 100644 --- a/packages/mediation/gma_mediation_unity/android/gradle/wrapper/gradle-wrapper.properties +++ b/packages/mediation/gma_mediation_unity/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/packages/mediation/gma_mediation_unity/example/android/build.gradle b/packages/mediation/gma_mediation_unity/example/android/build.gradle index cff218755..7bdfd2321 100644 --- a/packages/mediation/gma_mediation_unity/example/android/build.gradle +++ b/packages/mediation/gma_mediation_unity/example/android/build.gradle @@ -1,5 +1,5 @@ buildscript { - ext.kotlin_version = '2.0.21' + ext.kotlin_version = '2.2.21' repositories { google() mavenCentral() diff --git a/packages/mediation/gma_mediation_unity/example/android/gradle/wrapper/gradle-wrapper.properties b/packages/mediation/gma_mediation_unity/example/android/gradle/wrapper/gradle-wrapper.properties index afa1e8eb0..f004c34c0 100644 --- a/packages/mediation/gma_mediation_unity/example/android/gradle/wrapper/gradle-wrapper.properties +++ b/packages/mediation/gma_mediation_unity/example/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip diff --git a/packages/mediation/gma_mediation_unity/example/android/settings.gradle b/packages/mediation/gma_mediation_unity/example/android/settings.gradle index a33ee2203..ca273881f 100644 --- a/packages/mediation/gma_mediation_unity/example/android/settings.gradle +++ b/packages/mediation/gma_mediation_unity/example/android/settings.gradle @@ -23,8 +23,8 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.7.0" apply false - id 'org.jetbrains.kotlin.android' version '2.0.21' apply false + id "com.android.application" version "8.13.1" apply false + id 'org.jetbrains.kotlin.android' version '2.2.21' apply false } include ":app" diff --git a/packages/mediation/gma_mediation_unity/example/ios/Podfile b/packages/mediation/gma_mediation_unity/example/ios/Podfile index 6a8ce2dd1..b2d735017 100644 --- a/packages/mediation/gma_mediation_unity/example/ios/Podfile +++ b/packages/mediation/gma_mediation_unity/example/ios/Podfile @@ -1,4 +1,3 @@ -# Uncomment this line to define a global platform for your project platform :ios, '13.0' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. diff --git a/packages/mediation/gma_mediation_unity/example/pubspec.yaml b/packages/mediation/gma_mediation_unity/example/pubspec.yaml index a8028c220..46b1141d5 100644 --- a/packages/mediation/gma_mediation_unity/example/pubspec.yaml +++ b/packages/mediation/gma_mediation_unity/example/pubspec.yaml @@ -5,13 +5,13 @@ description: "Demonstrates how to use the gma_mediation_unity plugin." publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: '>=3.6.0 <4.0.0' + sdk: '>=3.9.0 <4.0.0' dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 gma_mediation_unity: path: ../ @@ -22,7 +22,7 @@ dev_dependencies: sdk: flutter flutter_test: sdk: flutter - flutter_lints: ^2.0.0 + flutter_lints: ^6.0.0 flutter: uses-material-design: true \ No newline at end of file diff --git a/packages/mediation/gma_mediation_unity/ios/gma_mediation_unity.podspec b/packages/mediation/gma_mediation_unity/ios/gma_mediation_unity.podspec index 704e852e9..9390a2750 100644 --- a/packages/mediation/gma_mediation_unity/ios/gma_mediation_unity.podspec +++ b/packages/mediation/gma_mediation_unity/ios/gma_mediation_unity.podspec @@ -16,7 +16,7 @@ Mediation Adapter for Unity Ads to use with Google Mobile Ads. s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationUnity', '~>4.16.4.0' + s.dependency 'GoogleMobileAdsMediationUnity', '~>4.16.5.0' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_unity/pubspec.yaml b/packages/mediation/gma_mediation_unity/pubspec.yaml index b6f22d4e0..fbd84bda9 100644 --- a/packages/mediation/gma_mediation_unity/pubspec.yaml +++ b/packages/mediation/gma_mediation_unity/pubspec.yaml @@ -4,17 +4,17 @@ version: 1.6.4 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_unity environment: - sdk: '>=3.6.0 <4.0.0' + sdk: '>=3.9.0 <4.0.0' flutter: '>=3.27.0' dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 plugin_platform_interface: ^2.0.2 dev_dependencies: - flutter_lints: ^3.0.0 + flutter_lints: ^6.0.0 flutter_test: sdk: flutter lint: ^2.3.0 From 29305c3a25e317170a5fbe1022c36c9feff7ef7b Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Thu, 8 Jan 2026 14:07:46 -0800 Subject: [PATCH 103/251] Updating DTExchange Flutter mediation plugin to support the latest adapters (8.4.1.0, 8.4.2.1) PiperOrigin-RevId: 853878125 --- packages/mediation/gma_mediation_dtexchange/CHANGELOG.md | 2 ++ .../gma_mediation_dtexchange/android/build.gradle | 8 ++++---- .../example/android/app/build.gradle | 2 +- .../android/gradle/wrapper/gradle-wrapper.properties | 2 +- .../example/android/settings.gradle | 4 ++-- .../gma_mediation_dtexchange/example/ios/Podfile | 1 - .../gma_mediation_dtexchange/example/pubspec.yaml | 6 +++--- packages/mediation/gma_mediation_dtexchange/pubspec.yaml | 8 ++++---- 8 files changed, 17 insertions(+), 16 deletions(-) diff --git a/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md b/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md index 78e646666..4e1609152 100644 --- a/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md +++ b/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md @@ -1,6 +1,8 @@ ## DT Exchange Flutter Mediation Adapter Changelog #### Version 1.3.2 (In progress) +- Updated minimum Flutter version to 3.35.1 +- Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 #### Version 1.3.1 * Supports [DT Exchange Android adapter version 8.4.0.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/dtexchange/CHANGELOG.md#version-8401). diff --git a/packages/mediation/gma_mediation_dtexchange/android/build.gradle b/packages/mediation/gma_mediation_dtexchange/android/build.gradle index 69c2eb178..113c63d42 100644 --- a/packages/mediation/gma_mediation_dtexchange/android/build.gradle +++ b/packages/mediation/gma_mediation_dtexchange/android/build.gradle @@ -2,14 +2,14 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_dtexchange' version = "1.3.2" buildscript { - ext.kotlin_version = '2.0.21' + ext.kotlin_version = '2.2.21' repositories { google() mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:8.0.2' + classpath 'com.android.tools.build:gradle:8.13.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } @@ -33,7 +33,7 @@ android { namespace 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_dtexchange' } - compileSdk 34 + compileSdk 36 compileOptions { sourceCompatibility JavaVersion.VERSION_11 @@ -62,7 +62,7 @@ android { testImplementation 'org.jetbrains.kotlin:kotlin-stdlib:1.8.20' testImplementation 'org.mockito:mockito-core:5.5.0' testImplementation 'org.mockito.kotlin:mockito-kotlin:5.1.0' - testImplementation 'org.robolectric:robolectric:4.10.3' + testImplementation 'org.robolectric:robolectric:4.16' } testOptions { diff --git a/packages/mediation/gma_mediation_dtexchange/example/android/app/build.gradle b/packages/mediation/gma_mediation_dtexchange/example/android/app/build.gradle index e7bd134e4..e465a5369 100644 --- a/packages/mediation/gma_mediation_dtexchange/example/android/app/build.gradle +++ b/packages/mediation/gma_mediation_dtexchange/example/android/app/build.gradle @@ -45,7 +45,7 @@ android { applicationId "io.flutter.plugins.googlemobileads.mediation.gma_mediation_dtexchange_example" // You can update the following values to match your application needs. // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion flutter.targetSdkVersion versionCode flutterVersionCode.toInteger() versionName flutterVersionName diff --git a/packages/mediation/gma_mediation_dtexchange/example/android/gradle/wrapper/gradle-wrapper.properties b/packages/mediation/gma_mediation_dtexchange/example/android/gradle/wrapper/gradle-wrapper.properties index afa1e8eb0..f004c34c0 100644 --- a/packages/mediation/gma_mediation_dtexchange/example/android/gradle/wrapper/gradle-wrapper.properties +++ b/packages/mediation/gma_mediation_dtexchange/example/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip diff --git a/packages/mediation/gma_mediation_dtexchange/example/android/settings.gradle b/packages/mediation/gma_mediation_dtexchange/example/android/settings.gradle index a8c03d6b0..a512319b9 100644 --- a/packages/mediation/gma_mediation_dtexchange/example/android/settings.gradle +++ b/packages/mediation/gma_mediation_dtexchange/example/android/settings.gradle @@ -19,8 +19,8 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.7.0" apply false - id "org.jetbrains.kotlin.android" version "2.0.21" apply false + id "com.android.application" version "8.13.1" apply false + id "org.jetbrains.kotlin.android" version "2.2.21" apply false } include ":app" diff --git a/packages/mediation/gma_mediation_dtexchange/example/ios/Podfile b/packages/mediation/gma_mediation_dtexchange/example/ios/Podfile index 6a8ce2dd1..b2d735017 100644 --- a/packages/mediation/gma_mediation_dtexchange/example/ios/Podfile +++ b/packages/mediation/gma_mediation_dtexchange/example/ios/Podfile @@ -1,4 +1,3 @@ -# Uncomment this line to define a global platform for your project platform :ios, '13.0' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. diff --git a/packages/mediation/gma_mediation_dtexchange/example/pubspec.yaml b/packages/mediation/gma_mediation_dtexchange/example/pubspec.yaml index 5348d91bd..e3087e7ff 100644 --- a/packages/mediation/gma_mediation_dtexchange/example/pubspec.yaml +++ b/packages/mediation/gma_mediation_dtexchange/example/pubspec.yaml @@ -5,7 +5,7 @@ description: "Demonstrates how to use the gma_mediation_dtexchange plugin." publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: '>=3.6.0 <4.0.0' + sdk: '>=3.9.0 <4.0.0' # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions @@ -17,7 +17,7 @@ dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 gma_mediation_dtexchange: # When depending on this package from a real application you should use: # gma_mediation_dtexchange: ^x.y.z @@ -41,7 +41,7 @@ dev_dependencies: # activated in the `analysis_options.yaml` file located at the root of your # package. See that file for information about deactivating specific lint # rules and activating additional ones. - flutter_lints: ^3.0.0 + flutter_lints: ^6.0.0 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/packages/mediation/gma_mediation_dtexchange/pubspec.yaml b/packages/mediation/gma_mediation_dtexchange/pubspec.yaml index 1a960b1bb..8fa897800 100644 --- a/packages/mediation/gma_mediation_dtexchange/pubspec.yaml +++ b/packages/mediation/gma_mediation_dtexchange/pubspec.yaml @@ -4,17 +4,17 @@ version: 1.3.2 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_dtexchange environment: - sdk: '>=3.6.0 <4.0.0' - flutter: '>=3.27.0' + sdk: '>=3.9.0 <4.0.0' + flutter: '>=3.35.1' dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 plugin_platform_interface: ^2.0.2 dev_dependencies: - flutter_lints: ^4.0.0 + flutter_lints: ^6.0.0 flutter_test: sdk: flutter lint: ^2.3.0 From 224b9ebcbddfcd806a7b0df6d3d91d7c66bcacfa Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Thu, 8 Jan 2026 15:04:18 -0800 Subject: [PATCH 104/251] Updating Maio Flutter mediation plugin to support the latest adapters (2.0.8.0, 2.2.0.1) PiperOrigin-RevId: 853898439 --- packages/mediation/gma_mediation_maio/CHANGELOG.md | 4 ++++ .../gma_mediation_maio/android/build.gradle | 14 +++++++------- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../example/android/settings.gradle.kts | 4 ++-- .../example/ios/Runner.xcodeproj/project.pbxproj | 6 +++--- .../gma_mediation_maio/example/pubspec.yaml | 6 +++--- .../ios/gma_mediation_maio.podspec | 4 ++-- packages/mediation/gma_mediation_maio/pubspec.yaml | 10 +++++----- 8 files changed, 27 insertions(+), 23 deletions(-) diff --git a/packages/mediation/gma_mediation_maio/CHANGELOG.md b/packages/mediation/gma_mediation_maio/CHANGELOG.md index 6f78bcc94..64235bcfc 100644 --- a/packages/mediation/gma_mediation_maio/CHANGELOG.md +++ b/packages/mediation/gma_mediation_maio/CHANGELOG.md @@ -1,5 +1,9 @@ ## maio Flutter Mediation Adapter Changelog +#### Version 1.1.2 (In progress) +- Updated minimum Flutter version to 3.35.1 +- Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 + #### Version 1.1.1 - Supports [maio Android adapter version 2.0.7.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/maio/CHANGELOG.md#version-2070). - Supports [maio iOS adapter version 2.2.0.1](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Maio/CHANGELOG.md#version-2201). diff --git a/packages/mediation/gma_mediation_maio/android/build.gradle b/packages/mediation/gma_mediation_maio/android/build.gradle index a8769f6d5..60b73a019 100644 --- a/packages/mediation/gma_mediation_maio/android/build.gradle +++ b/packages/mediation/gma_mediation_maio/android/build.gradle @@ -1,15 +1,15 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_maio" -version = "1.1.1" +version = "1.1.2" buildscript { - ext.kotlin_version = "1.8.22" + ext.kotlin_version = "2.2.21" repositories { google() mavenCentral() } dependencies { - classpath("com.android.tools.build:gradle:8.7.0") + classpath("com.android.tools.build:gradle:8.13.1") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version") } } @@ -25,13 +25,13 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "2.0.7.0" + stringVersion = "2.0.8.0" } android { namespace = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_maio" - compileSdk = 35 + compileSdk = 36 compileOptions { sourceCompatibility = JavaVersion.VERSION_11 @@ -48,13 +48,13 @@ android { } defaultConfig { - minSdk = 23 + minSdk = 24 } dependencies { implementation("com.google.ads.mediation:maio:$stringVersion") testImplementation("org.jetbrains.kotlin:kotlin-test") - testImplementation("org.mockito:mockito-core:5.0.0") + testImplementation("org.mockito:mockito-core:5.5.0") } testOptions { diff --git a/packages/mediation/gma_mediation_maio/example/android/gradle/wrapper/gradle-wrapper.properties b/packages/mediation/gma_mediation_maio/example/android/gradle/wrapper/gradle-wrapper.properties index afa1e8eb0..f004c34c0 100644 --- a/packages/mediation/gma_mediation_maio/example/android/gradle/wrapper/gradle-wrapper.properties +++ b/packages/mediation/gma_mediation_maio/example/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip diff --git a/packages/mediation/gma_mediation_maio/example/android/settings.gradle.kts b/packages/mediation/gma_mediation_maio/example/android/settings.gradle.kts index b58f94546..4eac8be0d 100644 --- a/packages/mediation/gma_mediation_maio/example/android/settings.gradle.kts +++ b/packages/mediation/gma_mediation_maio/example/android/settings.gradle.kts @@ -18,8 +18,8 @@ pluginManagement { plugins { id("dev.flutter.flutter-plugin-loader") version "1.0.0" - id("com.android.application") version "8.7.0" apply false - id("org.jetbrains.kotlin.android") version "1.8.22" apply false + id("com.android.application") version "8.13.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.21" apply false } include(":app") diff --git a/packages/mediation/gma_mediation_maio/example/ios/Runner.xcodeproj/project.pbxproj b/packages/mediation/gma_mediation_maio/example/ios/Runner.xcodeproj/project.pbxproj index acb7a3ed1..6ddbb5610 100644 --- a/packages/mediation/gma_mediation_maio/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/mediation/gma_mediation_maio/example/ios/Runner.xcodeproj/project.pbxproj @@ -346,7 +346,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -472,7 +472,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -523,7 +523,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; diff --git a/packages/mediation/gma_mediation_maio/example/pubspec.yaml b/packages/mediation/gma_mediation_maio/example/pubspec.yaml index ca87f21a2..b98ecb352 100644 --- a/packages/mediation/gma_mediation_maio/example/pubspec.yaml +++ b/packages/mediation/gma_mediation_maio/example/pubspec.yaml @@ -5,7 +5,7 @@ description: "Demonstrates how to use the gma_mediation_maio plugin." publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: ^3.7.0 + sdk: ^3.9.0 # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions @@ -17,7 +17,7 @@ dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 gma_mediation_maio: # When depending on this package from a real application you should use: # gma_mediation_maio: ^x.y.z @@ -41,7 +41,7 @@ dev_dependencies: # activated in the `analysis_options.yaml` file located at the root of your # package. See that file for information about deactivating specific lint # rules and activating additional ones. - flutter_lints: ^5.0.0 + flutter_lints: ^6.0.0 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/packages/mediation/gma_mediation_maio/ios/gma_mediation_maio.podspec b/packages/mediation/gma_mediation_maio/ios/gma_mediation_maio.podspec index 2ed117083..37109114a 100644 --- a/packages/mediation/gma_mediation_maio/ios/gma_mediation_maio.podspec +++ b/packages/mediation/gma_mediation_maio/ios/gma_mediation_maio.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_maio' - s.version = '1.1.1' + s.version = '1.1.2' s.summary = 'Google Mobile Ads Mediation of maio.' s.description = <<-DESC Mediation Adapter for maio to use with Google Mobile Ads. @@ -12,7 +12,7 @@ Pod::Spec.new do |s| s.source_files = 'Classes/**/*' s.dependency 'Flutter' s.dependency 'GoogleMobileAdsMediationMaio', '~>2.2.0.1' - s.platform = :ios, '12.0' + s.platform = :ios, '13.0' s.static_framework = true s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } diff --git a/packages/mediation/gma_mediation_maio/pubspec.yaml b/packages/mediation/gma_mediation_maio/pubspec.yaml index 912d3ad91..31e473be6 100644 --- a/packages/mediation/gma_mediation_maio/pubspec.yaml +++ b/packages/mediation/gma_mediation_maio/pubspec.yaml @@ -1,19 +1,19 @@ name: gma_mediation_maio description: 'Mediation Adapter that enables sending ad requests to the maio ad network using the google_mobile_ads plugin.' -version: 1.1.1 +version: 1.1.2 environment: - sdk: '>=3.6.0 <4.0.0' - flutter: '>=3.27.0' + sdk: '>=3.9.0 <4.0.0' + flutter: '>=3.35.1' dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 plugin_platform_interface: ^2.0.2 dev_dependencies: flutter_test: sdk: flutter - flutter_lints: ^5.0.0 + flutter_lints: ^6.0.0 lint: ^2.6.1 flutter: plugin: From 43d6dee529ef6573490389b888f3059b556eb1d4 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Thu, 8 Jan 2026 20:32:23 -0800 Subject: [PATCH 105/251] Updating Mintegral Flutter Adapter to version 2.0.2. PiperOrigin-RevId: 853994710 --- packages/mediation/gma_mediation_mintegral/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_mintegral/CHANGELOG.md b/packages/mediation/gma_mediation_mintegral/CHANGELOG.md index 944e4873b..48024dbc0 100644 --- a/packages/mediation/gma_mediation_mintegral/CHANGELOG.md +++ b/packages/mediation/gma_mediation_mintegral/CHANGELOG.md @@ -1,8 +1,11 @@ ## Mintegral Flutter Mediation Adapter Changelog -#### Version 2.0.2 (In progress) +#### Version 2.0.2 - Updated minimum Flutter version to 3.35.1 - Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 +- Supports [Mintegral Android adapter version 17.0.41.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/mintegral/CHANGELOG.md#version-170410). +- Supports [Mintegral iOS adapter version 8.0.4.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Mintegral/CHANGELOG.md#version-8040). +- Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 2.0.1 - Supports [Mintegral Android adapter version 17.0.31.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/mintegral/CHANGELOG.md#version-170310). From 9ddcfe2531969697c4e48e8e6b1070609da782b1 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 12 Jan 2026 09:21:33 -0800 Subject: [PATCH 106/251] Updating Pangle Flutter adapter to version 3.5.2 PiperOrigin-RevId: 855258729 --- packages/mediation/gma_mediation_pangle/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_pangle/CHANGELOG.md b/packages/mediation/gma_mediation_pangle/CHANGELOG.md index 670f38799..518f4c6ed 100644 --- a/packages/mediation/gma_mediation_pangle/CHANGELOG.md +++ b/packages/mediation/gma_mediation_pangle/CHANGELOG.md @@ -1,8 +1,11 @@ ## Pangle Flutter Mediation Adapter Changelog -#### Version 3.5.2 (In progress) +#### Version 3.5.2 - Updated minimum Flutter version to 3.35.1 - Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 +- Supports [Pangle Android adapter version 7.8.0.8.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/pangle/CHANGELOG.md#version-78080). +- Supports [Pangle iOS adapter version 7.8.0.6.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Pangle/CHANGELOG.md#version-78060). +- Built and tested with the Google Mobile Ads Flutter Plugin version 7.0.0. #### Version 3.5.1 - Supports [Pangle Android adapter version 7.8.0.8.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/pangle/CHANGELOG.md#version-78080). From 6c853bb471a5d25dc95632227e5d4c198b4b2fec Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 12 Jan 2026 09:23:34 -0800 Subject: [PATCH 107/251] Update Moloco Flutter Adapter to version 3.1.0 PiperOrigin-RevId: 855259503 --- packages/mediation/gma_mediation_moloco/CHANGELOG.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_moloco/CHANGELOG.md b/packages/mediation/gma_mediation_moloco/CHANGELOG.md index fcc9f380a..a0a91ff54 100644 --- a/packages/mediation/gma_mediation_moloco/CHANGELOG.md +++ b/packages/mediation/gma_mediation_moloco/CHANGELOG.md @@ -1,6 +1,10 @@ ## Moloco Flutter Mediation Adapter Changelog -#### Version 3.1.0 (In progress) +#### Version 3.1.0 +- Updated minimum Flutter version to 3.35.1 +- Supports [Moloco Android adapter version 4.4.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/moloco/CHANGELOG.md#version-4400). +- Supports [Moloco iOS adapter version 4.1.2.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Moloco/CHANGELOG.md#version-4120). +- Built and tested with the Google Mobile Ads Flutter Plugin version 7.0.0. #### Version 3.0.0 - Supports [Moloco Android adapter version 4.3.1.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/moloco/CHANGELOG.md#version-4310). From dfd166d0610492ed3b93c0079d4facdee65c9fa7 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 12 Jan 2026 21:59:24 -0800 Subject: [PATCH 108/251] Updating Liftoff Monetize Flutter Adapter version to 1.4.2 PiperOrigin-RevId: 855522912 --- .../mediation/gma_mediation_liftoffmonetize/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md b/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md index c2e14725a..a32993e2a 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md +++ b/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md @@ -1,8 +1,11 @@ ## Liftoff Monetize Flutter Mediation Adapter Changelog -#### Version 1.4.2 (In progress) +#### Version 1.4.2 - Updated minimum Flutter version to 3.35.1 - Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 +* Supports [Liftoff Monetize Android adapter version 7.6.2.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/liftoffmonetize/CHANGELOG.md#version-7620). +* Supports [Liftoff Monetize iOS adapter version 7.6.3.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/LiftoffMonetize/CHANGELOG.md#version-7630). +* Built and tested with the Google Mobile Ads Flutter Plugin version 7.0.0. #### Version 1.4.1 * Supports [Liftoff Monetize Android adapter version 7.6.1.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/liftoffmonetize/CHANGELOG.md#version-7610). From 3c17b8eb959d8f1f4397d993a54bbe2521078521 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 19 Jan 2026 06:27:07 -0800 Subject: [PATCH 109/251] Updating maio Flutter Adapter version to 1.1.2 PiperOrigin-RevId: 858165468 --- packages/mediation/gma_mediation_maio/CHANGELOG.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_maio/CHANGELOG.md b/packages/mediation/gma_mediation_maio/CHANGELOG.md index 64235bcfc..8463f29df 100644 --- a/packages/mediation/gma_mediation_maio/CHANGELOG.md +++ b/packages/mediation/gma_mediation_maio/CHANGELOG.md @@ -1,8 +1,10 @@ ## maio Flutter Mediation Adapter Changelog -#### Version 1.1.2 (In progress) +#### Version 1.1.2 - Updated minimum Flutter version to 3.35.1 - Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 +- Supports [maio Android adapter version 2.0.8.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/maio/CHANGELOG.md#version-2080). +- Supports [maio iOS adapter version 2.2.0.1](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Maio/CHANGELOG.md#version-2201). #### Version 1.1.1 - Supports [maio Android adapter version 2.0.7.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/maio/CHANGELOG.md#version-2070). From 47c2d1032b91281fb6d735109067c552461b20f4 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 19 Jan 2026 08:41:26 -0800 Subject: [PATCH 110/251] Updating Unity Ads Flutter Adapter version to 1.6.4 PiperOrigin-RevId: 858205460 --- packages/mediation/gma_mediation_unity/CHANGELOG.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_unity/CHANGELOG.md b/packages/mediation/gma_mediation_unity/CHANGELOG.md index 9ad71977e..469bbbc4b 100644 --- a/packages/mediation/gma_mediation_unity/CHANGELOG.md +++ b/packages/mediation/gma_mediation_unity/CHANGELOG.md @@ -1,8 +1,10 @@ ## Unity Ads Flutter Mediation Adapter Changelog -#### Version 1.6.4 (In progress) +#### Version 1.6.4 - Updated minimum Flutter version to 3.35.1 - Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 +- Supports [Unity Android adapter version 4.16.5.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/unity/CHANGELOG.md#version-41650). +- Supports [Unity iOS adapter version 4.16.5.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Unity/CHANGELOG.md#version-41650). #### Version 1.6.3 - Supports [Unity Android adapter version 4.16.3.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/unity/CHANGELOG.md#version-41630). From cf5c62e1cb59d5099d1a4ad173310c917260328b Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Thu, 22 Jan 2026 12:29:06 -0800 Subject: [PATCH 111/251] Updating Moloco Flutter mediation plugin to support the latest adapters (4.4.0.0, 4.2.0.0) PiperOrigin-RevId: 859725912 --- packages/mediation/gma_mediation_moloco/CHANGELOG.md | 2 ++ packages/mediation/gma_mediation_moloco/android/build.gradle | 2 +- .../gma_mediation_moloco/ios/gma_mediation_moloco.podspec | 4 ++-- packages/mediation/gma_mediation_moloco/pubspec.yaml | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/mediation/gma_mediation_moloco/CHANGELOG.md b/packages/mediation/gma_mediation_moloco/CHANGELOG.md index a0a91ff54..5a263cee8 100644 --- a/packages/mediation/gma_mediation_moloco/CHANGELOG.md +++ b/packages/mediation/gma_mediation_moloco/CHANGELOG.md @@ -1,5 +1,7 @@ ## Moloco Flutter Mediation Adapter Changelog +#### Version 3.2.0 (In progress) + #### Version 3.1.0 - Updated minimum Flutter version to 3.35.1 - Supports [Moloco Android adapter version 4.4.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/moloco/CHANGELOG.md#version-4400). diff --git a/packages/mediation/gma_mediation_moloco/android/build.gradle b/packages/mediation/gma_mediation_moloco/android/build.gradle index 1af5f3b9b..b596485e6 100644 --- a/packages/mediation/gma_mediation_moloco/android/build.gradle +++ b/packages/mediation/gma_mediation_moloco/android/build.gradle @@ -1,5 +1,5 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_moloco" -version = "3.1.0" +version = "3.2.0" buildscript { ext.kotlin_version = "2.2.21" diff --git a/packages/mediation/gma_mediation_moloco/ios/gma_mediation_moloco.podspec b/packages/mediation/gma_mediation_moloco/ios/gma_mediation_moloco.podspec index 34c3d29c8..f9134d5e3 100644 --- a/packages/mediation/gma_mediation_moloco/ios/gma_mediation_moloco.podspec +++ b/packages/mediation/gma_mediation_moloco/ios/gma_mediation_moloco.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_moloco' - s.version = '3.1.0' + s.version = '3.2.0' s.summary = 'Google Mobile Ads Mediation of Moloco.' s.description = <<-DESC Mediation Adapter for Moloco to use with Google Mobile Ads. @@ -11,7 +11,7 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationMoloco', '~> 4.1.2.0' + s.dependency 'GoogleMobileAdsMediationMoloco', '~> 4.2.0.0' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_moloco/pubspec.yaml b/packages/mediation/gma_mediation_moloco/pubspec.yaml index 0c8ddc151..3c335d453 100644 --- a/packages/mediation/gma_mediation_moloco/pubspec.yaml +++ b/packages/mediation/gma_mediation_moloco/pubspec.yaml @@ -1,7 +1,7 @@ name: gma_mediation_moloco description: 'Mediation Adapter that enables sending ad requests to the Moloco ad network using the google_mobile_ads plugin.' -version: 3.1.0 +version: 3.2.0 environment: sdk: '>=3.9.0 <4.0.0' flutter: '>=3.35.1' From 37e195c78bae9cc7f0fef504f3990aa5738b4ab6 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Thu, 22 Jan 2026 12:34:32 -0800 Subject: [PATCH 112/251] Updating Pangle Flutter mediation plugin to support the latest adapters (7.8.5.2.0, 7.8.5.6.0) PiperOrigin-RevId: 859728025 --- packages/mediation/gma_mediation_pangle/CHANGELOG.md | 2 ++ packages/mediation/gma_mediation_pangle/android/build.gradle | 4 ++-- .../gma_mediation_pangle/ios/gma_mediation_pangle.podspec | 4 ++-- packages/mediation/gma_mediation_pangle/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_pangle/CHANGELOG.md b/packages/mediation/gma_mediation_pangle/CHANGELOG.md index 518f4c6ed..49f60c190 100644 --- a/packages/mediation/gma_mediation_pangle/CHANGELOG.md +++ b/packages/mediation/gma_mediation_pangle/CHANGELOG.md @@ -1,5 +1,7 @@ ## Pangle Flutter Mediation Adapter Changelog +#### Version 3.5.3 (In progress) + #### Version 3.5.2 - Updated minimum Flutter version to 3.35.1 - Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 diff --git a/packages/mediation/gma_mediation_pangle/android/build.gradle b/packages/mediation/gma_mediation_pangle/android/build.gradle index ccf29c2c0..70cf96d9d 100644 --- a/packages/mediation/gma_mediation_pangle/android/build.gradle +++ b/packages/mediation/gma_mediation_pangle/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_pangle' -version = "3.5.2" +version = "3.5.3" buildscript { ext.kotlin_version = '2.2.21' @@ -28,7 +28,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "7.8.0.8.0" + stringVersion = "7.8.5.2.0" } android { diff --git a/packages/mediation/gma_mediation_pangle/ios/gma_mediation_pangle.podspec b/packages/mediation/gma_mediation_pangle/ios/gma_mediation_pangle.podspec index 0810c45a5..d693a1c0e 100644 --- a/packages/mediation/gma_mediation_pangle/ios/gma_mediation_pangle.podspec +++ b/packages/mediation/gma_mediation_pangle/ios/gma_mediation_pangle.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_pangle' - s.version = '3.5.2' + s.version = '3.5.3' s.summary = 'Google Mobile Ads Mediation of Pangle.' s.description = <<-DESC Mediation Adapter for Pangle to use with Google Mobile Ads. @@ -16,7 +16,7 @@ Pod::Spec.new do |s| s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationPangle', '~> 7.8.0.6.0' + s.dependency 'GoogleMobileAdsMediationPangle', '~> 7.8.5.6.0' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_pangle/pubspec.yaml b/packages/mediation/gma_mediation_pangle/pubspec.yaml index 76806b30e..a4ab8b825 100644 --- a/packages/mediation/gma_mediation_pangle/pubspec.yaml +++ b/packages/mediation/gma_mediation_pangle/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_pangle description: "Mediation Adapter that enables sending ad requests to the Pangle ad network using the google_mobile_ads plugin." -version: 3.5.2 +version: 3.5.3 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_pangle environment: From ec308770996c89228106d86acdc734079cde6fc6 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Thu, 22 Jan 2026 12:35:42 -0800 Subject: [PATCH 113/251] Updating Mintegral Flutter mediation plugin to support the latest adapters (17.0.61.0, 8.0.5.1) PiperOrigin-RevId: 859728454 --- packages/mediation/gma_mediation_mintegral/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_mintegral/android/build.gradle | 4 ++-- .../ios/gma_mediation_mintegral.podspec | 4 ++-- packages/mediation/gma_mediation_mintegral/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_mintegral/CHANGELOG.md b/packages/mediation/gma_mediation_mintegral/CHANGELOG.md index 48024dbc0..2b86fff30 100644 --- a/packages/mediation/gma_mediation_mintegral/CHANGELOG.md +++ b/packages/mediation/gma_mediation_mintegral/CHANGELOG.md @@ -1,5 +1,7 @@ ## Mintegral Flutter Mediation Adapter Changelog +#### Version 2.0.3 (In progress) + #### Version 2.0.2 - Updated minimum Flutter version to 3.35.1 - Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 diff --git a/packages/mediation/gma_mediation_mintegral/android/build.gradle b/packages/mediation/gma_mediation_mintegral/android/build.gradle index 473a0feb1..eb48dc60c 100644 --- a/packages/mediation/gma_mediation_mintegral/android/build.gradle +++ b/packages/mediation/gma_mediation_mintegral/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_mintegral' -version = "2.0.2" +version = "2.0.3" buildscript { ext.kotlin_version = '2.2.21' @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "17.0.41.0" + stringVersion = "17.0.61.0" } android { diff --git a/packages/mediation/gma_mediation_mintegral/ios/gma_mediation_mintegral.podspec b/packages/mediation/gma_mediation_mintegral/ios/gma_mediation_mintegral.podspec index c12c1e426..796440836 100644 --- a/packages/mediation/gma_mediation_mintegral/ios/gma_mediation_mintegral.podspec +++ b/packages/mediation/gma_mediation_mintegral/ios/gma_mediation_mintegral.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_mintegral' - s.version = '2.0.2' + s.version = '2.0.3' s.summary = 'Google Mobile Ads Mediation of Mintegral.' s.description = <<-DESC Mediation Adapter for Mintegral to use with Google Mobile Ads. @@ -16,7 +16,7 @@ Mediation Adapter for Mintegral to use with Google Mobile Ads. s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationMintegral', '~>8.0.4.0' + s.dependency 'GoogleMobileAdsMediationMintegral', '~>8.0.5.1' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_mintegral/pubspec.yaml b/packages/mediation/gma_mediation_mintegral/pubspec.yaml index 516e3b028..91084b10c 100644 --- a/packages/mediation/gma_mediation_mintegral/pubspec.yaml +++ b/packages/mediation/gma_mediation_mintegral/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_mintegral description: "Mediation Adapter that enables sending ad requests to the Mintegral ad network using the google_mobile_ads plugin." -version: 2.0.2 +version: 2.0.3 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_mintegral environment: From 4a468efb1c2390c0eaa4ad040c7842e7e40c48cd Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Thu, 5 Feb 2026 14:45:48 -0800 Subject: [PATCH 114/251] Updating PubMatic Flutter mediation plugin to support the latest adapters (4.11.0.1, 4.11.0.0) PiperOrigin-RevId: 866121252 --- .../mediation/gma_mediation_pubmatic/CHANGELOG.md | 4 ++++ .../gma_mediation_pubmatic/android/build.gradle | 12 ++++++------ .../example/android/app/build.gradle.kts | 2 +- .../android/gradle/wrapper/gradle-wrapper.properties | 2 +- .../example/android/settings.gradle.kts | 4 ++-- .../example/ios/Runner.xcodeproj/project.pbxproj | 6 +++--- .../gma_mediation_pubmatic/example/pubspec.yaml | 5 +++-- .../ios/gma_mediation_pubmatic.podspec | 6 +++--- .../mediation/gma_mediation_pubmatic/pubspec.yaml | 10 +++++----- 9 files changed, 28 insertions(+), 23 deletions(-) diff --git a/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md b/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md index 9c9fb5ebb..9d1b27e8f 100644 --- a/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md +++ b/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md @@ -1,5 +1,9 @@ ## Pubmatic Flutter Mediation Adapter Changelog +#### Version 1.5.0 (In progress) +- Updated minimum Flutter version to 3.35.1 +- Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 + #### Version 1.4.1 - Supports [PubMatic Android adapter version 4.10.0.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/pubmatic/CHANGELOG.md#version-41001). - Supports [PubMatic iOS adapter version 4.10.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/PubMatic/CHANGELOG.md#version-41000). diff --git a/packages/mediation/gma_mediation_pubmatic/android/build.gradle b/packages/mediation/gma_mediation_pubmatic/android/build.gradle index 446452ca0..191cecea9 100644 --- a/packages/mediation/gma_mediation_pubmatic/android/build.gradle +++ b/packages/mediation/gma_mediation_pubmatic/android/build.gradle @@ -1,15 +1,15 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_pubmatic" -version = "1.4.1" +version = "1.5.0" buildscript { - ext.kotlin_version = "2.1.0" + ext.kotlin_version = "2.2.21" repositories { google() mavenCentral() } dependencies { - classpath("com.android.tools.build:gradle:8.7.3") + classpath("com.android.tools.build:gradle:8.13.1") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version") } } @@ -25,13 +25,13 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "4.10.0.1" + stringVersion = "4.11.0.1" } android { namespace = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_pubmatic" - compileSdk = 35 + compileSdk = 36 compileOptions { sourceCompatibility = JavaVersion.VERSION_11 @@ -53,7 +53,7 @@ android { dependencies { implementation "com.google.ads.mediation:pubmatic:$stringVersion" - implementation 'com.google.android.gms:play-services-ads:24.4.0' + implementation 'com.google.android.gms:play-services-ads:24.9.0' testImplementation("org.jetbrains.kotlin:kotlin-test") testImplementation("org.mockito:mockito-core:5.5.0") } diff --git a/packages/mediation/gma_mediation_pubmatic/example/android/app/build.gradle.kts b/packages/mediation/gma_mediation_pubmatic/example/android/app/build.gradle.kts index 594eefff3..b2fc349c8 100644 --- a/packages/mediation/gma_mediation_pubmatic/example/android/app/build.gradle.kts +++ b/packages/mediation/gma_mediation_pubmatic/example/android/app/build.gradle.kts @@ -23,7 +23,7 @@ android { applicationId = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_pubmatic_example" // You can update the following values to match your application needs. // For more information, see: https://flutter.dev/to/review-gradle-config. - minSdk = flutter.minSdkVersion + minSdk = 24 targetSdk = flutter.targetSdkVersion versionCode = flutter.versionCode versionName = flutter.versionName diff --git a/packages/mediation/gma_mediation_pubmatic/example/android/gradle/wrapper/gradle-wrapper.properties b/packages/mediation/gma_mediation_pubmatic/example/android/gradle/wrapper/gradle-wrapper.properties index ac3b47926..f004c34c0 100644 --- a/packages/mediation/gma_mediation_pubmatic/example/android/gradle/wrapper/gradle-wrapper.properties +++ b/packages/mediation/gma_mediation_pubmatic/example/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip diff --git a/packages/mediation/gma_mediation_pubmatic/example/android/settings.gradle.kts b/packages/mediation/gma_mediation_pubmatic/example/android/settings.gradle.kts index 1a6884017..4eac8be0d 100644 --- a/packages/mediation/gma_mediation_pubmatic/example/android/settings.gradle.kts +++ b/packages/mediation/gma_mediation_pubmatic/example/android/settings.gradle.kts @@ -18,8 +18,8 @@ pluginManagement { plugins { id("dev.flutter.flutter-plugin-loader") version "1.0.0" - id("com.android.application") version "8.7.3" apply false - id("org.jetbrains.kotlin.android") version "2.1.0" apply false + id("com.android.application") version "8.13.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.21" apply false } include(":app") diff --git a/packages/mediation/gma_mediation_pubmatic/example/ios/Runner.xcodeproj/project.pbxproj b/packages/mediation/gma_mediation_pubmatic/example/ios/Runner.xcodeproj/project.pbxproj index b561cd38a..0fc7b8f8c 100644 --- a/packages/mediation/gma_mediation_pubmatic/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/mediation/gma_mediation_pubmatic/example/ios/Runner.xcodeproj/project.pbxproj @@ -346,7 +346,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -472,7 +472,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -523,7 +523,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; diff --git a/packages/mediation/gma_mediation_pubmatic/example/pubspec.yaml b/packages/mediation/gma_mediation_pubmatic/example/pubspec.yaml index 082d9636d..607e83000 100644 --- a/packages/mediation/gma_mediation_pubmatic/example/pubspec.yaml +++ b/packages/mediation/gma_mediation_pubmatic/example/pubspec.yaml @@ -5,7 +5,7 @@ description: "Demonstrates how to use the gma_mediation_pubmatic plugin." publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: ^3.8.1 + sdk: ^3.9.0 # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions @@ -17,6 +17,7 @@ dependencies: flutter: sdk: flutter + google_mobile_ads: ^7.0.0 gma_mediation_pubmatic: # When depending on this package from a real application you should use: # gma_mediation_pubmatic: ^x.y.z @@ -40,7 +41,7 @@ dev_dependencies: # activated in the `analysis_options.yaml` file located at the root of your # package. See that file for information about deactivating specific lint # rules and activating additional ones. - flutter_lints: ^5.0.0 + flutter_lints: ^6.0.0 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/packages/mediation/gma_mediation_pubmatic/ios/gma_mediation_pubmatic.podspec b/packages/mediation/gma_mediation_pubmatic/ios/gma_mediation_pubmatic.podspec index 0b57a1d12..dce60a20d 100644 --- a/packages/mediation/gma_mediation_pubmatic/ios/gma_mediation_pubmatic.podspec +++ b/packages/mediation/gma_mediation_pubmatic/ios/gma_mediation_pubmatic.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_pubmatic' - s.version = '1.4.1' + s.version = '1.5.0' s.summary = 'Google Mobile Ads Mediation of Pubmatic.' s.description = <<-DESC Mediation Adapter for Pubmatic to use with Google Mobile Ads. @@ -11,8 +11,8 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationPubMatic', '~> 4.10.0.0' - s.platform = :ios, '12.0' + s.dependency 'GoogleMobileAdsMediationPubMatic', '~> 4.11.0.1' + s.platform = :ios, '13.0' s.static_framework = true s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } diff --git a/packages/mediation/gma_mediation_pubmatic/pubspec.yaml b/packages/mediation/gma_mediation_pubmatic/pubspec.yaml index d26db6319..7c8914d0c 100644 --- a/packages/mediation/gma_mediation_pubmatic/pubspec.yaml +++ b/packages/mediation/gma_mediation_pubmatic/pubspec.yaml @@ -1,19 +1,19 @@ name: gma_mediation_pubmatic description: 'Mediation Adapter that enables sending ad requests to the Pubmatic ad network using the google_mobile_ads plugin.' -version: 1.4.1 +version: 1.5.0 environment: - sdk: '>=3.6.0 <4.0.0' - flutter: '>=3.27.0' + sdk: '>=3.9.0 <4.0.0' + flutter: '>=3.35.1' dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 plugin_platform_interface: ^2.0.2 dev_dependencies: flutter_test: sdk: flutter - flutter_lints: ^5.0.0 + flutter_lints: ^6.0.0 lint: ^2.4.0 flutter: plugin: From 73b758cf82767c8df7c13fcd22f2c154001db617 Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Thu, 5 Feb 2026 14:45:51 -0800 Subject: [PATCH 115/251] Updating Chartboost Flutter mediation plugin to support the latest adapters (9.11.0.1, 9.11.0.1) PiperOrigin-RevId: 866121279 --- .../mediation/gma_mediation_chartboost/CHANGELOG.md | 4 ++++ .../gma_mediation_chartboost/android/build.gradle | 12 ++++++------ .../android/gradle/wrapper/gradle-wrapper.properties | 2 +- .../example/android/settings.gradle | 4 ++-- .../example/ios/Runner.xcodeproj/project.pbxproj | 6 +++--- .../gma_mediation_chartboost/example/pubspec.yaml | 6 +++--- .../ios/gma_mediation_chartboost.podspec | 6 +++--- .../mediation/gma_mediation_chartboost/pubspec.yaml | 10 +++++----- 8 files changed, 27 insertions(+), 23 deletions(-) diff --git a/packages/mediation/gma_mediation_chartboost/CHANGELOG.md b/packages/mediation/gma_mediation_chartboost/CHANGELOG.md index be5027225..7903a00da 100644 --- a/packages/mediation/gma_mediation_chartboost/CHANGELOG.md +++ b/packages/mediation/gma_mediation_chartboost/CHANGELOG.md @@ -1,5 +1,9 @@ ## Chartboost Flutter Mediation Adapter Changelog +#### Version 1.4.0 (In progress) +- Updated minimum Flutter version to 3.35.1 +- Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 + #### Version 1.3.3 - Supports [Chartboost Android adapter version 9.10.2.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/chartboost/CHANGELOG.md#version-91020). - Supports [Chartboost iOS adapter version 9.10.1.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Chartboost/CHANGELOG.md#version-91010). diff --git a/packages/mediation/gma_mediation_chartboost/android/build.gradle b/packages/mediation/gma_mediation_chartboost/android/build.gradle index 4e414de21..58b9ee371 100644 --- a/packages/mediation/gma_mediation_chartboost/android/build.gradle +++ b/packages/mediation/gma_mediation_chartboost/android/build.gradle @@ -1,15 +1,15 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_chartboost" -version = "1.3.3" +version = "1.4.0" buildscript { - ext.kotlin_version = "1.8.22" + ext.kotlin_version = "2.2.21" repositories { google() mavenCentral() } dependencies { - classpath("com.android.tools.build:gradle:8.1.0") + classpath("com.android.tools.build:gradle:8.13.1") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version") } } @@ -28,7 +28,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "9.10.2.0" + stringVersion = "9.11.0.1" } android { @@ -36,7 +36,7 @@ android { namespace = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_chartboost" } - compileSdk = 34 + compileSdk = 36 compileOptions { sourceCompatibility = JavaVersion.VERSION_11 @@ -59,7 +59,7 @@ android { dependencies { implementation("com.google.ads.mediation:chartboost:$stringVersion") testImplementation("org.jetbrains.kotlin:kotlin-test") - testImplementation("org.mockito:mockito-core:5.0.0") + testImplementation("org.mockito:mockito-core:5.5.0") } testOptions { diff --git a/packages/mediation/gma_mediation_chartboost/example/android/gradle/wrapper/gradle-wrapper.properties b/packages/mediation/gma_mediation_chartboost/example/android/gradle/wrapper/gradle-wrapper.properties index 7bb2df6ba..f004c34c0 100644 --- a/packages/mediation/gma_mediation_chartboost/example/android/gradle/wrapper/gradle-wrapper.properties +++ b/packages/mediation/gma_mediation_chartboost/example/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip diff --git a/packages/mediation/gma_mediation_chartboost/example/android/settings.gradle b/packages/mediation/gma_mediation_chartboost/example/android/settings.gradle index b9e43bd37..d7f1a0449 100644 --- a/packages/mediation/gma_mediation_chartboost/example/android/settings.gradle +++ b/packages/mediation/gma_mediation_chartboost/example/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.1.0" apply false - id "org.jetbrains.kotlin.android" version "1.8.22" apply false + id "com.android.application" version "8.13.1" apply false + id "org.jetbrains.kotlin.android" version "2.2.21" apply false } include ":app" diff --git a/packages/mediation/gma_mediation_chartboost/example/ios/Runner.xcodeproj/project.pbxproj b/packages/mediation/gma_mediation_chartboost/example/ios/Runner.xcodeproj/project.pbxproj index cdc9a5205..98f4e1e6f 100644 --- a/packages/mediation/gma_mediation_chartboost/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/mediation/gma_mediation_chartboost/example/ios/Runner.xcodeproj/project.pbxproj @@ -346,7 +346,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -472,7 +472,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -523,7 +523,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; diff --git a/packages/mediation/gma_mediation_chartboost/example/pubspec.yaml b/packages/mediation/gma_mediation_chartboost/example/pubspec.yaml index 882e8ee57..3b0fa5252 100644 --- a/packages/mediation/gma_mediation_chartboost/example/pubspec.yaml +++ b/packages/mediation/gma_mediation_chartboost/example/pubspec.yaml @@ -5,7 +5,7 @@ description: "Demonstrates how to use the gma_mediation_chartboost plugin." publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: ^3.6.0 + sdk: ^3.9.0 # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions @@ -17,7 +17,7 @@ dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 gma_mediation_chartboost: # When depending on this package from a real application you should use: # gma_mediation_chartboost: ^x.y.z @@ -41,7 +41,7 @@ dev_dependencies: # activated in the `analysis_options.yaml` file located at the root of your # package. See that file for information about deactivating specific lint # rules and activating additional ones. - flutter_lints: ^4.0.0 + flutter_lints: ^6.0.0 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/packages/mediation/gma_mediation_chartboost/ios/gma_mediation_chartboost.podspec b/packages/mediation/gma_mediation_chartboost/ios/gma_mediation_chartboost.podspec index 4391b41c1..16fa6cbd4 100644 --- a/packages/mediation/gma_mediation_chartboost/ios/gma_mediation_chartboost.podspec +++ b/packages/mediation/gma_mediation_chartboost/ios/gma_mediation_chartboost.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_chartboost' - s.version = '1.3.3' + s.version = '1.4.0' s.summary = 'Google Mobile Ads Mediation of Chartboost.' s.description = <<-DESC Mediation Adapter for Chartboost to use with Google Mobile Ads. @@ -11,8 +11,8 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationChartboost', '~>9.10.1.0' - s.platform = :ios, '12.0' + s.dependency 'GoogleMobileAdsMediationChartboost', '~>9.11.0.1' + s.platform = :ios, '13.0' s.static_framework = true s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } diff --git a/packages/mediation/gma_mediation_chartboost/pubspec.yaml b/packages/mediation/gma_mediation_chartboost/pubspec.yaml index 568b4c81a..66c315a25 100644 --- a/packages/mediation/gma_mediation_chartboost/pubspec.yaml +++ b/packages/mediation/gma_mediation_chartboost/pubspec.yaml @@ -1,17 +1,17 @@ name: gma_mediation_chartboost description: 'Mediation Adapter that enables sending ad requests to the Chartboost ad network using the google_mobile_ads plugin.' -version: 1.3.3 +version: 1.4.0 environment: - sdk: '>=3.6.0 <4.0.0' - flutter: '>=3.27.0' + sdk: '>=3.9.0 <4.0.0' + flutter: '>=3.35.1' dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 plugin_platform_interface: ^2.0.2 dev_dependencies: - flutter_lints: ^4.0.0 + flutter_lints: ^6.0.0 flutter_test: sdk: flutter lint: ^2.3.0 From c641ccf4eb02433310d1db0aa4753907b3852ab3 Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Thu, 5 Feb 2026 14:46:32 -0800 Subject: [PATCH 116/251] Updating Line Flutter mediation plugin to support the latest adapters (3.0.1.0, 3.0.0.0) PiperOrigin-RevId: 866121657 --- packages/mediation/gma_mediation_line/CHANGELOG.md | 4 ++++ .../gma_mediation_line/android/build.gradle | 12 ++++++------ .../example/android/settings.gradle | 4 ++-- .../example/ios/Runner.xcodeproj/project.pbxproj | 6 +++--- .../gma_mediation_line/example/pubspec.yaml | 6 +++--- .../ios/gma_mediation_line.podspec | 6 +++--- packages/mediation/gma_mediation_line/pubspec.yaml | 10 +++++----- 7 files changed, 26 insertions(+), 22 deletions(-) diff --git a/packages/mediation/gma_mediation_line/CHANGELOG.md b/packages/mediation/gma_mediation_line/CHANGELOG.md index 626ba1035..d42ee9c6b 100644 --- a/packages/mediation/gma_mediation_line/CHANGELOG.md +++ b/packages/mediation/gma_mediation_line/CHANGELOG.md @@ -1,5 +1,9 @@ ## Line Flutter Mediation Adapter Changelog +#### Version 2.0.0 (In progress) +- Updated minimum Flutter version to 3.35.1 +- Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 + #### Version 1.0.6 - Supports [Line Android adapter version 2.9.20251028.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/line/CHANGELOG.md#version-29202510280). - Supports [Line iOS adapter version 2.9.20251119.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Line/CHANGELOG.md#version-29202511190). diff --git a/packages/mediation/gma_mediation_line/android/build.gradle b/packages/mediation/gma_mediation_line/android/build.gradle index c2db0d04b..3a691e736 100644 --- a/packages/mediation/gma_mediation_line/android/build.gradle +++ b/packages/mediation/gma_mediation_line/android/build.gradle @@ -1,15 +1,15 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_line" -version = "1.0.6" +version = "2.0.0" buildscript { - ext.kotlin_version = "1.8.22" + ext.kotlin_version = "2.2.21" repositories { google() mavenCentral() } dependencies { - classpath("com.android.tools.build:gradle:8.1.0") + classpath("com.android.tools.build:gradle:8.13.1") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version") } } @@ -25,7 +25,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "2.9.20251028.0" + stringVersion = "3.0.1.0" } android { @@ -33,7 +33,7 @@ android { namespace = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_line" } - compileSdk = 34 + compileSdk = 36 compileOptions { sourceCompatibility = JavaVersion.VERSION_11 @@ -56,7 +56,7 @@ android { dependencies { implementation("com.google.ads.mediation:line:$stringVersion") testImplementation("org.jetbrains.kotlin:kotlin-test") - testImplementation("org.mockito:mockito-core:5.0.0") + testImplementation("org.mockito:mockito-core:5.5.0") } testOptions { diff --git a/packages/mediation/gma_mediation_line/example/android/settings.gradle b/packages/mediation/gma_mediation_line/example/android/settings.gradle index b9e43bd37..d7f1a0449 100644 --- a/packages/mediation/gma_mediation_line/example/android/settings.gradle +++ b/packages/mediation/gma_mediation_line/example/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.1.0" apply false - id "org.jetbrains.kotlin.android" version "1.8.22" apply false + id "com.android.application" version "8.13.1" apply false + id "org.jetbrains.kotlin.android" version "2.2.21" apply false } include ":app" diff --git a/packages/mediation/gma_mediation_line/example/ios/Runner.xcodeproj/project.pbxproj b/packages/mediation/gma_mediation_line/example/ios/Runner.xcodeproj/project.pbxproj index 26c02e461..f5aee869d 100644 --- a/packages/mediation/gma_mediation_line/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/mediation/gma_mediation_line/example/ios/Runner.xcodeproj/project.pbxproj @@ -346,7 +346,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -472,7 +472,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -523,7 +523,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; diff --git a/packages/mediation/gma_mediation_line/example/pubspec.yaml b/packages/mediation/gma_mediation_line/example/pubspec.yaml index 75e5d659d..a61fd105e 100644 --- a/packages/mediation/gma_mediation_line/example/pubspec.yaml +++ b/packages/mediation/gma_mediation_line/example/pubspec.yaml @@ -5,7 +5,7 @@ description: "Demonstrates how to use the gma_mediation_line plugin." publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: ^3.6.0 + sdk: ^3.9.0 # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions @@ -17,7 +17,7 @@ dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 gma_mediation_line: # When depending on this package from a real application you should use: # gma_mediation_line: ^x.y.z @@ -41,7 +41,7 @@ dev_dependencies: # activated in the `analysis_options.yaml` file located at the root of your # package. See that file for information about deactivating specific lint # rules and activating additional ones. - flutter_lints: ^4.0.0 + flutter_lints: ^6.0.0 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/packages/mediation/gma_mediation_line/ios/gma_mediation_line.podspec b/packages/mediation/gma_mediation_line/ios/gma_mediation_line.podspec index 31de55bf8..2ca079150 100644 --- a/packages/mediation/gma_mediation_line/ios/gma_mediation_line.podspec +++ b/packages/mediation/gma_mediation_line/ios/gma_mediation_line.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_line' - s.version = '1.0.6' + s.version = '2.0.0' s.summary = 'Google Mobile Ads Mediation of Line.' s.description = <<-DESC Mediation Adapter for Line to use with Google Mobile Ads. @@ -11,8 +11,8 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationLine', '~>2.9.20251119.0' - s.platform = :ios, '12.0' + s.dependency 'GoogleMobileAdsMediationLine', '~>3.0.0.0' + s.platform = :ios, '13.0' s.static_framework = true s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } diff --git a/packages/mediation/gma_mediation_line/pubspec.yaml b/packages/mediation/gma_mediation_line/pubspec.yaml index f97e4ef5d..9167bce17 100644 --- a/packages/mediation/gma_mediation_line/pubspec.yaml +++ b/packages/mediation/gma_mediation_line/pubspec.yaml @@ -1,19 +1,19 @@ name: gma_mediation_line description: 'Mediation Adapter that enables sending ad requests to the Line ad network using the google_mobile_ads plugin.' -version: 1.0.6 +version: 2.0.0 environment: - sdk: '>=3.6.0 <4.0.0' - flutter: '>=3.27.0' + sdk: '>=3.9.0 <4.0.0' + flutter: '>=3.35.1' dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 plugin_platform_interface: ^2.0.2 dev_dependencies: flutter_test: sdk: flutter - flutter_lints: ^4.0.0 + flutter_lints: ^6.0.0 lint: ^2.3.0 flutter: plugin: From 09fcae57898bc51d58025258c72f23cd2aa5f099 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Thu, 5 Feb 2026 15:45:07 -0800 Subject: [PATCH 117/251] Updating Liftoff Flutter mediation plugin to support the latest adapters (7.6.3.1, 7.6.3.1) PiperOrigin-RevId: 866146731 --- packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md | 2 ++ .../gma_mediation_liftoffmonetize/android/build.gradle | 4 ++-- .../ios/gma_mediation_liftoffmonetize.podspec | 4 ++-- packages/mediation/gma_mediation_liftoffmonetize/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md b/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md index a32993e2a..dce0f880c 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md +++ b/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md @@ -1,5 +1,7 @@ ## Liftoff Monetize Flutter Mediation Adapter Changelog +#### Version 1.4.3 (In progress) + #### Version 1.4.2 - Updated minimum Flutter version to 3.35.1 - Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 diff --git a/packages/mediation/gma_mediation_liftoffmonetize/android/build.gradle b/packages/mediation/gma_mediation_liftoffmonetize/android/build.gradle index c197cdfc1..759123ad9 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/android/build.gradle +++ b/packages/mediation/gma_mediation_liftoffmonetize/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_liftoffmonetize' -version = "1.4.2" +version = "1.4.3" buildscript { ext.kotlin_version = '2.2.21' @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "7.6.2.0" + stringVersion = "7.6.3.1" } android { diff --git a/packages/mediation/gma_mediation_liftoffmonetize/ios/gma_mediation_liftoffmonetize.podspec b/packages/mediation/gma_mediation_liftoffmonetize/ios/gma_mediation_liftoffmonetize.podspec index 792c3cfa9..5060ef337 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/ios/gma_mediation_liftoffmonetize.podspec +++ b/packages/mediation/gma_mediation_liftoffmonetize/ios/gma_mediation_liftoffmonetize.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_liftoffmonetize' - s.version = '1.4.2' + s.version = '1.4.3' s.summary = 'Google Mobile Ads Mediation of Liftoff Monetize.' s.description = <<-DESC Mediation Adapter for Liftoff Monetize to use with Google Mobile Ads. @@ -15,7 +15,7 @@ Mediation Adapter for Liftoff Monetize to use with Google Mobile Ads. s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.public_header_files = 'Public/**/*.h' - s.dependency 'GoogleMobileAdsMediationVungle', '~>7.6.3.0' + s.dependency 'GoogleMobileAdsMediationVungle', '~>7.6.3.1' s.dependency 'Flutter' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_liftoffmonetize/pubspec.yaml b/packages/mediation/gma_mediation_liftoffmonetize/pubspec.yaml index 38359b429..5645b5130 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/pubspec.yaml +++ b/packages/mediation/gma_mediation_liftoffmonetize/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_liftoffmonetize description: "Mediation Adapter that enables sending ad requests to the LiftoffMonetize ad network using the google_mobile_ads plugin." -version: 1.4.2 +version: 1.4.3 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_liftoffmonetize environment: From 79afa00791f1782fc59e9ae3014e380a8831f029 Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Thu, 5 Feb 2026 16:36:17 -0800 Subject: [PATCH 118/251] Updating InMobi Flutter mediation plugin to support the latest adapters (11.1.0.1, 11.1.0.1) PiperOrigin-RevId: 866166739 --- packages/mediation/gma_mediation_inmobi/CHANGELOG.md | 4 ++++ .../gma_mediation_inmobi/android/build.gradle | 12 ++++++------ .../android/gradle/wrapper/gradle-wrapper.properties | 2 +- .../android/gradle/wrapper/gradle-wrapper.properties | 2 +- .../example/android/settings.gradle | 4 ++-- .../gma_mediation_inmobi/example/ios/Podfile | 3 +-- .../example/ios/Runner.xcodeproj/project.pbxproj | 6 +++--- .../gma_mediation_inmobi/example/pubspec.yaml | 6 +++--- .../ios/gma_mediation_inmobi.podspec | 6 +++--- packages/mediation/gma_mediation_inmobi/pubspec.yaml | 10 +++++----- 10 files changed, 29 insertions(+), 26 deletions(-) diff --git a/packages/mediation/gma_mediation_inmobi/CHANGELOG.md b/packages/mediation/gma_mediation_inmobi/CHANGELOG.md index d5624c4e3..cabee9701 100644 --- a/packages/mediation/gma_mediation_inmobi/CHANGELOG.md +++ b/packages/mediation/gma_mediation_inmobi/CHANGELOG.md @@ -1,5 +1,9 @@ ## InMobi Flutter Mediation Adapter Changelog +#### Version 2.0.1 (In progress) +- Updated minimum Flutter version to 3.35.1 +- Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 + #### Version 2.0.0 * Supports [inMobi Android adapter version 11.1.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/inmobi/CHANGELOG.md#version-11100). * Supports [inMobi iOS adapter version 11.1.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/InMobi/CHANGELOG.md#version-11100). diff --git a/packages/mediation/gma_mediation_inmobi/android/build.gradle b/packages/mediation/gma_mediation_inmobi/android/build.gradle index 75100bdfe..7dddf67f5 100644 --- a/packages/mediation/gma_mediation_inmobi/android/build.gradle +++ b/packages/mediation/gma_mediation_inmobi/android/build.gradle @@ -1,15 +1,15 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_inmobi' -version = "2.0.0" +version = "2.0.1" buildscript { - ext.kotlin_version = '2.0.21' + ext.kotlin_version = '2.2.21' repositories { google() mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:7.3.0' + classpath 'com.android.tools.build:gradle:8.13.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "11.1.0.0" + stringVersion = "11.1.0.1" } android { @@ -33,7 +33,7 @@ android { namespace 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_inmobi' } - compileSdk 33 + compileSdk 36 compileOptions { sourceCompatibility JavaVersion.VERSION_11 @@ -56,7 +56,7 @@ android { dependencies { implementation "com.google.ads.mediation:inmobi:$stringVersion" testImplementation 'org.jetbrains.kotlin:kotlin-test' - testImplementation 'org.mockito:mockito-core:5.0.0' + testImplementation 'org.mockito:mockito-core:5.5.0' } testOptions { diff --git a/packages/mediation/gma_mediation_inmobi/android/gradle/wrapper/gradle-wrapper.properties b/packages/mediation/gma_mediation_inmobi/android/gradle/wrapper/gradle-wrapper.properties index 62f495dfe..23449a2b5 100644 --- a/packages/mediation/gma_mediation_inmobi/android/gradle/wrapper/gradle-wrapper.properties +++ b/packages/mediation/gma_mediation_inmobi/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/packages/mediation/gma_mediation_inmobi/example/android/gradle/wrapper/gradle-wrapper.properties b/packages/mediation/gma_mediation_inmobi/example/android/gradle/wrapper/gradle-wrapper.properties index e1ca574ef..f004c34c0 100644 --- a/packages/mediation/gma_mediation_inmobi/example/android/gradle/wrapper/gradle-wrapper.properties +++ b/packages/mediation/gma_mediation_inmobi/example/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip diff --git a/packages/mediation/gma_mediation_inmobi/example/android/settings.gradle b/packages/mediation/gma_mediation_inmobi/example/android/settings.gradle index 1d6d19b7f..a512319b9 100644 --- a/packages/mediation/gma_mediation_inmobi/example/android/settings.gradle +++ b/packages/mediation/gma_mediation_inmobi/example/android/settings.gradle @@ -19,8 +19,8 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "7.3.0" apply false - id "org.jetbrains.kotlin.android" version "1.7.10" apply false + id "com.android.application" version "8.13.1" apply false + id "org.jetbrains.kotlin.android" version "2.2.21" apply false } include ":app" diff --git a/packages/mediation/gma_mediation_inmobi/example/ios/Podfile b/packages/mediation/gma_mediation_inmobi/example/ios/Podfile index d97f17e22..ebaf3182a 100644 --- a/packages/mediation/gma_mediation_inmobi/example/ios/Podfile +++ b/packages/mediation/gma_mediation_inmobi/example/ios/Podfile @@ -1,5 +1,4 @@ -# Uncomment this line to define a global platform for your project -# platform :ios, '12.0' +platform :ios, '13.0' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' diff --git a/packages/mediation/gma_mediation_inmobi/example/ios/Runner.xcodeproj/project.pbxproj b/packages/mediation/gma_mediation_inmobi/example/ios/Runner.xcodeproj/project.pbxproj index 8db20c7d6..c9868ac29 100644 --- a/packages/mediation/gma_mediation_inmobi/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/mediation/gma_mediation_inmobi/example/ios/Runner.xcodeproj/project.pbxproj @@ -346,7 +346,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -472,7 +472,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -523,7 +523,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; diff --git a/packages/mediation/gma_mediation_inmobi/example/pubspec.yaml b/packages/mediation/gma_mediation_inmobi/example/pubspec.yaml index 1c779abf5..50eeb6419 100644 --- a/packages/mediation/gma_mediation_inmobi/example/pubspec.yaml +++ b/packages/mediation/gma_mediation_inmobi/example/pubspec.yaml @@ -5,7 +5,7 @@ description: "Demonstrates how to use the gma_mediation_inmobi plugin." publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: '>=3.6.0 <4.0.0' + sdk: '>=3.9.0 <4.0.0' # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions @@ -17,7 +17,7 @@ dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 gma_mediation_inmobi: # When depending on this package from a real application you should use: # gma_mediation_inmobi: ^x.y.z @@ -41,7 +41,7 @@ dev_dependencies: # activated in the `analysis_options.yaml` file located at the root of your # package. See that file for information about deactivating specific lint # rules and activating additional ones. - flutter_lints: ^3.0.0 + flutter_lints: ^6.0.0 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/packages/mediation/gma_mediation_inmobi/ios/gma_mediation_inmobi.podspec b/packages/mediation/gma_mediation_inmobi/ios/gma_mediation_inmobi.podspec index cd37177c4..61ec26544 100644 --- a/packages/mediation/gma_mediation_inmobi/ios/gma_mediation_inmobi.podspec +++ b/packages/mediation/gma_mediation_inmobi/ios/gma_mediation_inmobi.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_inmobi' - s.version = '2.0.0' + s.version = '2.0.1' s.summary = 'Google Mobile Ads Mediation of InMobi.' s.description = <<-DESC Mediation Adapter for InMobi to use with Google Mobile Ads. @@ -16,8 +16,8 @@ Mediation Adapter for InMobi to use with Google Mobile Ads. s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationInMobi', '~> 11.1.0.0' - s.platform = :ios, '12.0' + s.dependency 'GoogleMobileAdsMediationInMobi', '~> 11.1.0.1' + s.platform = :ios, '13.0' s.static_framework = true # Flutter.framework does not contain a i386 slice. diff --git a/packages/mediation/gma_mediation_inmobi/pubspec.yaml b/packages/mediation/gma_mediation_inmobi/pubspec.yaml index a030ad91b..220f3e3af 100644 --- a/packages/mediation/gma_mediation_inmobi/pubspec.yaml +++ b/packages/mediation/gma_mediation_inmobi/pubspec.yaml @@ -1,20 +1,20 @@ name: gma_mediation_inmobi description: "Mediation Adapter that enables sending ad requests to the InMobi ad network using the google_mobile_ads plugin." -version: 2.0.0 +version: 2.0.1 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_inmobi environment: - sdk: '>=3.6.0 <4.0.0' - flutter: '>=3.27.0' + sdk: '>=3.9.0 <4.0.0' + flutter: '>=3.35.1' dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 plugin_platform_interface: ^2.0.2 dev_dependencies: - flutter_lints: ^3.0.0 + flutter_lints: ^6.0.0 flutter_test: sdk: flutter lint: ^2.3.0 From 2ae4f2d74d75409e50f58d64c50dd66f96182533 Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Fri, 6 Feb 2026 12:13:27 -0800 Subject: [PATCH 119/251] Updating iMobile Flutter mediation plugin to support the latest adapters (2.3.2.1, 2.3.4.3) PiperOrigin-RevId: 866561991 --- packages/mediation/gma_mediation_imobile/CHANGELOG.md | 4 ++++ .../gma_mediation_imobile/android/build.gradle | 10 +++++----- .../android/gradle/wrapper/gradle-wrapper.properties | 2 +- .../example/android/settings.gradle.kts | 4 ++-- .../example/ios/Runner.xcodeproj/project.pbxproj | 6 +++--- .../gma_mediation_imobile/example/pubspec.yaml | 6 +++--- .../ios/gma_mediation_imobile.podspec | 4 ++-- packages/mediation/gma_mediation_imobile/pubspec.yaml | 10 +++++----- 8 files changed, 25 insertions(+), 21 deletions(-) diff --git a/packages/mediation/gma_mediation_imobile/CHANGELOG.md b/packages/mediation/gma_mediation_imobile/CHANGELOG.md index 343b2c414..842388e36 100644 --- a/packages/mediation/gma_mediation_imobile/CHANGELOG.md +++ b/packages/mediation/gma_mediation_imobile/CHANGELOG.md @@ -1,5 +1,9 @@ ## i-mobile Flutter Mediation Adapter Changelog +#### Version 1.0.3 (In progress) +- Updated minimum Flutter version to 3.35.1 +- Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 + #### Version 1.0.2 * Supports [i-mobile Android adapter version 2.3.2.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/imobile/CHANGELOG.md#version-2321). * Supports [i-mobile iOS adapter version 2.3.4.3](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/I-Mobile/CHANGELOG.md#version-2343). diff --git a/packages/mediation/gma_mediation_imobile/android/build.gradle b/packages/mediation/gma_mediation_imobile/android/build.gradle index 0d0996ae2..2fd7d2446 100644 --- a/packages/mediation/gma_mediation_imobile/android/build.gradle +++ b/packages/mediation/gma_mediation_imobile/android/build.gradle @@ -1,15 +1,15 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_imobile" -version = "1.0.2" +version = "1.0.3" buildscript { - ext.kotlin_version = "1.8.22" + ext.kotlin_version = "2.2.21" repositories { google() mavenCentral() } dependencies { - classpath("com.android.tools.build:gradle:8.7.0") + classpath("com.android.tools.build:gradle:8.13.1") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version") } } @@ -31,7 +31,7 @@ ext { android { namespace = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_imobile" - compileSdk = 35 + compileSdk = 36 compileOptions { sourceCompatibility = JavaVersion.VERSION_11 @@ -54,7 +54,7 @@ android { dependencies { implementation("com.google.ads.mediation:imobile:$stringVersion") testImplementation("org.jetbrains.kotlin:kotlin-test") - testImplementation("org.mockito:mockito-core:5.0.0") + testImplementation("org.mockito:mockito-core:5.5.0") } testOptions { diff --git a/packages/mediation/gma_mediation_imobile/example/android/gradle/wrapper/gradle-wrapper.properties b/packages/mediation/gma_mediation_imobile/example/android/gradle/wrapper/gradle-wrapper.properties index afa1e8eb0..f004c34c0 100644 --- a/packages/mediation/gma_mediation_imobile/example/android/gradle/wrapper/gradle-wrapper.properties +++ b/packages/mediation/gma_mediation_imobile/example/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip diff --git a/packages/mediation/gma_mediation_imobile/example/android/settings.gradle.kts b/packages/mediation/gma_mediation_imobile/example/android/settings.gradle.kts index b58f94546..4eac8be0d 100644 --- a/packages/mediation/gma_mediation_imobile/example/android/settings.gradle.kts +++ b/packages/mediation/gma_mediation_imobile/example/android/settings.gradle.kts @@ -18,8 +18,8 @@ pluginManagement { plugins { id("dev.flutter.flutter-plugin-loader") version "1.0.0" - id("com.android.application") version "8.7.0" apply false - id("org.jetbrains.kotlin.android") version "1.8.22" apply false + id("com.android.application") version "8.13.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.21" apply false } include(":app") diff --git a/packages/mediation/gma_mediation_imobile/example/ios/Runner.xcodeproj/project.pbxproj b/packages/mediation/gma_mediation_imobile/example/ios/Runner.xcodeproj/project.pbxproj index ad1b7cd37..91884ea9e 100644 --- a/packages/mediation/gma_mediation_imobile/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/mediation/gma_mediation_imobile/example/ios/Runner.xcodeproj/project.pbxproj @@ -346,7 +346,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -472,7 +472,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -523,7 +523,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; diff --git a/packages/mediation/gma_mediation_imobile/example/pubspec.yaml b/packages/mediation/gma_mediation_imobile/example/pubspec.yaml index 38ebf52fa..777470090 100644 --- a/packages/mediation/gma_mediation_imobile/example/pubspec.yaml +++ b/packages/mediation/gma_mediation_imobile/example/pubspec.yaml @@ -5,7 +5,7 @@ description: "Demonstrates how to use the gma_mediation_imobile plugin." publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: ^3.7.0 + sdk: ^3.9.0 # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions @@ -17,7 +17,7 @@ dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 gma_mediation_imobile: # When depending on this package from a real application you should use: # gma_mediation_imobile: ^x.y.z @@ -41,7 +41,7 @@ dev_dependencies: # activated in the `analysis_options.yaml` file located at the root of your # package. See that file for information about deactivating specific lint # rules and activating additional ones. - flutter_lints: ^5.0.0 + flutter_lints: ^6.0.0 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/packages/mediation/gma_mediation_imobile/ios/gma_mediation_imobile.podspec b/packages/mediation/gma_mediation_imobile/ios/gma_mediation_imobile.podspec index b660472cd..c99fc429a 100644 --- a/packages/mediation/gma_mediation_imobile/ios/gma_mediation_imobile.podspec +++ b/packages/mediation/gma_mediation_imobile/ios/gma_mediation_imobile.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_imobile' - s.version = '1.0.2' + s.version = '1.0.3' s.summary = 'Google Mobile Ads Mediation of imobile.' s.description = <<-DESC Mediation Adapter for imobile to use with Google Mobile Ads. @@ -12,7 +12,7 @@ Pod::Spec.new do |s| s.source_files = 'Classes/**/*' s.dependency 'Flutter' s.dependency 'GoogleMobileAdsMediationIMobile', '~> 2.3.4.3' - s.platform = :ios, '12.0' + s.platform = :ios, '13.0' s.static_framework = true s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } diff --git a/packages/mediation/gma_mediation_imobile/pubspec.yaml b/packages/mediation/gma_mediation_imobile/pubspec.yaml index 2f43f6596..58ab187a4 100644 --- a/packages/mediation/gma_mediation_imobile/pubspec.yaml +++ b/packages/mediation/gma_mediation_imobile/pubspec.yaml @@ -1,19 +1,19 @@ name: gma_mediation_imobile description: 'Mediation Adapter that enables sending ad requests to the imobile ad network using the google_mobile_ads plugin.' -version: 1.0.2 +version: 1.0.3 environment: - sdk: '>=3.6.0 <4.0.0' - flutter: '>=3.27.0' + sdk: '>=3.9.0 <4.0.0' + flutter: '>=3.35.1' dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 plugin_platform_interface: ^2.0.2 dev_dependencies: flutter_test: sdk: flutter - flutter_lints: ^5.0.0 + flutter_lints: ^6.0.0 lint: ^2.6.1 flutter: plugin: From 2ddc80a46e623e51758237716e6f009c8b4a740b Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Fri, 6 Feb 2026 13:46:43 -0800 Subject: [PATCH 120/251] Updating MyTarget Flutter mediation plugin to support the latest adapters (5.27.4.0, 5.38.0.0) PiperOrigin-RevId: 866599159 --- packages/mediation/gma_mediation_mytarget/CHANGELOG.md | 4 ++++ .../gma_mediation_mytarget/android/build.gradle | 10 +++++----- .../example/android/app/build.gradle.kts | 2 +- .../android/gradle/wrapper/gradle-wrapper.properties | 2 +- .../example/android/settings.gradle.kts | 4 ++-- .../example/ios/Runner.xcodeproj/project.pbxproj | 6 +++--- .../gma_mediation_mytarget/example/pubspec.yaml | 6 +++--- .../ios/gma_mediation_mytarget.podspec | 4 ++-- packages/mediation/gma_mediation_mytarget/pubspec.yaml | 10 +++++----- 9 files changed, 26 insertions(+), 22 deletions(-) diff --git a/packages/mediation/gma_mediation_mytarget/CHANGELOG.md b/packages/mediation/gma_mediation_mytarget/CHANGELOG.md index d00724a41..e5a01251f 100644 --- a/packages/mediation/gma_mediation_mytarget/CHANGELOG.md +++ b/packages/mediation/gma_mediation_mytarget/CHANGELOG.md @@ -1,5 +1,9 @@ ## myTarget Flutter Mediation Adapter Changelog +#### Version 1.7.1 (In progress) +- Updated minimum Flutter version to 3.35.1 +- Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 + #### Version 1.7.0 * Supports [myTarget Android adapter version 5.27.4.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/mytarget/CHANGELOG.md#version-52740). * Supports [myTarget iOS adapter version 5.38.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/MyTarget/CHANGELOG.md#version-53800). diff --git a/packages/mediation/gma_mediation_mytarget/android/build.gradle b/packages/mediation/gma_mediation_mytarget/android/build.gradle index 618ec456e..e82676f06 100644 --- a/packages/mediation/gma_mediation_mytarget/android/build.gradle +++ b/packages/mediation/gma_mediation_mytarget/android/build.gradle @@ -1,15 +1,15 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_mytarget" -version = "1.7.0" +version = "1.7.1" buildscript { - ext.kotlin_version = "1.8.22" + ext.kotlin_version = "2.2.21" repositories { google() mavenCentral() } dependencies { - classpath("com.android.tools.build:gradle:8.7.0") + classpath("com.android.tools.build:gradle:8.13.1") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version") } } @@ -31,7 +31,7 @@ ext { android { namespace = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_mytarget" - compileSdk = 35 + compileSdk = 36 compileOptions { sourceCompatibility = JavaVersion.VERSION_11 @@ -54,7 +54,7 @@ android { dependencies { implementation("com.google.ads.mediation:mytarget:$stringVersion") testImplementation("org.jetbrains.kotlin:kotlin-test") - testImplementation("org.mockito:mockito-core:5.0.0") + testImplementation("org.mockito:mockito-core:5.5.0") } testOptions { diff --git a/packages/mediation/gma_mediation_mytarget/example/android/app/build.gradle.kts b/packages/mediation/gma_mediation_mytarget/example/android/app/build.gradle.kts index 0ac321175..3e5220c2d 100644 --- a/packages/mediation/gma_mediation_mytarget/example/android/app/build.gradle.kts +++ b/packages/mediation/gma_mediation_mytarget/example/android/app/build.gradle.kts @@ -23,7 +23,7 @@ android { applicationId = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_mytarget_example" // You can update the following values to match your application needs. // For more information, see: https://flutter.dev/to/review-gradle-config. - minSdk = 23 + minSdk = 24 targetSdk = flutter.targetSdkVersion versionCode = flutter.versionCode versionName = flutter.versionName diff --git a/packages/mediation/gma_mediation_mytarget/example/android/gradle/wrapper/gradle-wrapper.properties b/packages/mediation/gma_mediation_mytarget/example/android/gradle/wrapper/gradle-wrapper.properties index afa1e8eb0..f004c34c0 100644 --- a/packages/mediation/gma_mediation_mytarget/example/android/gradle/wrapper/gradle-wrapper.properties +++ b/packages/mediation/gma_mediation_mytarget/example/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip diff --git a/packages/mediation/gma_mediation_mytarget/example/android/settings.gradle.kts b/packages/mediation/gma_mediation_mytarget/example/android/settings.gradle.kts index b58f94546..4eac8be0d 100644 --- a/packages/mediation/gma_mediation_mytarget/example/android/settings.gradle.kts +++ b/packages/mediation/gma_mediation_mytarget/example/android/settings.gradle.kts @@ -18,8 +18,8 @@ pluginManagement { plugins { id("dev.flutter.flutter-plugin-loader") version "1.0.0" - id("com.android.application") version "8.7.0" apply false - id("org.jetbrains.kotlin.android") version "1.8.22" apply false + id("com.android.application") version "8.13.1" apply false + id("org.jetbrains.kotlin.android") version "2.2.21" apply false } include(":app") diff --git a/packages/mediation/gma_mediation_mytarget/example/ios/Runner.xcodeproj/project.pbxproj b/packages/mediation/gma_mediation_mytarget/example/ios/Runner.xcodeproj/project.pbxproj index 6ab4a521a..0510a18de 100644 --- a/packages/mediation/gma_mediation_mytarget/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/mediation/gma_mediation_mytarget/example/ios/Runner.xcodeproj/project.pbxproj @@ -346,7 +346,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -472,7 +472,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -523,7 +523,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; diff --git a/packages/mediation/gma_mediation_mytarget/example/pubspec.yaml b/packages/mediation/gma_mediation_mytarget/example/pubspec.yaml index ee37b0329..9cdc93016 100644 --- a/packages/mediation/gma_mediation_mytarget/example/pubspec.yaml +++ b/packages/mediation/gma_mediation_mytarget/example/pubspec.yaml @@ -5,7 +5,7 @@ description: "Demonstrates how to use the gma_mediation_mytarget plugin." publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: ^3.7.0 + sdk: ^3.9.0 # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions @@ -17,7 +17,7 @@ dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 gma_mediation_mytarget: # When depending on this package from a real application you should use: # gma_mediation_mytarget: ^x.y.z @@ -41,7 +41,7 @@ dev_dependencies: # activated in the `analysis_options.yaml` file located at the root of your # package. See that file for information about deactivating specific lint # rules and activating additional ones. - flutter_lints: ^5.0.0 + flutter_lints: ^6.0.0 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/packages/mediation/gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec b/packages/mediation/gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec index c82ef0a04..2d98f6a71 100644 --- a/packages/mediation/gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec +++ b/packages/mediation/gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_mytarget' - s.version = '1.7.0' + s.version = '1.7.1' s.summary = 'Google Mobile Ads Mediation of mytarget.' s.description = <<-DESC Mediation Adapter for mytarget to use with Google Mobile Ads. @@ -12,7 +12,7 @@ Pod::Spec.new do |s| s.source_files = 'Classes/**/*' s.dependency 'Flutter' s.dependency 'GoogleMobileAdsMediationMyTarget', '~>5.38.0.0' - s.platform = :ios, '12.4' + s.platform = :ios, '13.0' s.static_framework = true s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } diff --git a/packages/mediation/gma_mediation_mytarget/pubspec.yaml b/packages/mediation/gma_mediation_mytarget/pubspec.yaml index 4fc3d0bd4..4441856a4 100644 --- a/packages/mediation/gma_mediation_mytarget/pubspec.yaml +++ b/packages/mediation/gma_mediation_mytarget/pubspec.yaml @@ -1,19 +1,19 @@ name: gma_mediation_mytarget description: 'Mediation Adapter that enables sending ad requests to the mytarget ad network using the google_mobile_ads plugin.' -version: 1.7.0 +version: 1.7.1 environment: - sdk: ^3.6.0 - flutter: '>=3.27.0' + sdk: ^3.9.0 + flutter: '>=3.35.1' dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 plugin_platform_interface: ^2.0.2 dev_dependencies: flutter_test: sdk: flutter - flutter_lints: ^5.0.0 + flutter_lints: ^6.0.0 lint: ^2.6.1 pigeon: ^24.2.1 flutter: From c51057d7b43c891e4fa9829098064b2bdf6ce4a2 Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Fri, 6 Feb 2026 13:52:12 -0800 Subject: [PATCH 121/251] Updating Meta Flutter mediation plugin to support the latest adapters (6.21.0.1, 6.21.0.1) PiperOrigin-RevId: 866601101 --- packages/mediation/gma_mediation_meta/CHANGELOG.md | 4 ++++ .../gma_mediation_meta/android/build.gradle | 12 ++++++------ .../gma_mediation_meta/example/android/build.gradle | 2 +- .../android/gradle/wrapper/gradle-wrapper.properties | 2 +- .../example/android/settings.gradle | 3 ++- .../mediation/gma_mediation_meta/example/ios/Podfile | 3 +-- .../example/ios/Runner.xcodeproj/project.pbxproj | 6 +++--- .../gma_mediation_meta/example/pubspec.yaml | 6 +++--- .../ios/gma_mediation_meta.podspec | 6 +++--- packages/mediation/gma_mediation_meta/pubspec.yaml | 8 ++++---- 10 files changed, 28 insertions(+), 24 deletions(-) diff --git a/packages/mediation/gma_mediation_meta/CHANGELOG.md b/packages/mediation/gma_mediation_meta/CHANGELOG.md index e07ff8727..7bfdcd37d 100644 --- a/packages/mediation/gma_mediation_meta/CHANGELOG.md +++ b/packages/mediation/gma_mediation_meta/CHANGELOG.md @@ -1,5 +1,9 @@ ## Meta Audience Network Flutter Mediation Adapter Changelog +#### Version 1.5.1 (In progress) +- Updated minimum Flutter version to 3.35.1 +- Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 + #### Version 1.5.0 * Supports [Meta Audience Network Android adapter version 6.21.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/meta/CHANGELOG.md#version-62100). * Supports [Meta Audience Network iOS adapter version 6.21.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Meta/CHANGELOG.md#version-62100). diff --git a/packages/mediation/gma_mediation_meta/android/build.gradle b/packages/mediation/gma_mediation_meta/android/build.gradle index fb7d49a50..f4059213b 100644 --- a/packages/mediation/gma_mediation_meta/android/build.gradle +++ b/packages/mediation/gma_mediation_meta/android/build.gradle @@ -1,15 +1,15 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_meta' -version = "1.5.0" +version = "1.5.1" buildscript { - ext.kotlin_version = '2.0.21' + ext.kotlin_version = '2.2.21' repositories { google() mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:7.3.0' + classpath 'com.android.tools.build:gradle:8.13.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "6.21.0.0" + stringVersion = "6.21.0.1" } android { @@ -33,7 +33,7 @@ android { namespace 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_meta' } - compileSdkVersion 33 + compileSdkVersion 36 compileOptions { sourceCompatibility JavaVersion.VERSION_11 @@ -56,7 +56,7 @@ android { dependencies { implementation "com.google.ads.mediation:facebook:$stringVersion" testImplementation 'org.jetbrains.kotlin:kotlin-test' - testImplementation 'org.mockito:mockito-core:5.0.0' + testImplementation 'org.mockito:mockito-core:5.5.0' } testOptions { diff --git a/packages/mediation/gma_mediation_meta/example/android/build.gradle b/packages/mediation/gma_mediation_meta/example/android/build.gradle index cff218755..7bdfd2321 100644 --- a/packages/mediation/gma_mediation_meta/example/android/build.gradle +++ b/packages/mediation/gma_mediation_meta/example/android/build.gradle @@ -1,5 +1,5 @@ buildscript { - ext.kotlin_version = '2.0.21' + ext.kotlin_version = '2.2.21' repositories { google() mavenCentral() diff --git a/packages/mediation/gma_mediation_meta/example/android/gradle/wrapper/gradle-wrapper.properties b/packages/mediation/gma_mediation_meta/example/android/gradle/wrapper/gradle-wrapper.properties index 3c472b99c..f004c34c0 100644 --- a/packages/mediation/gma_mediation_meta/example/android/gradle/wrapper/gradle-wrapper.properties +++ b/packages/mediation/gma_mediation_meta/example/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip diff --git a/packages/mediation/gma_mediation_meta/example/android/settings.gradle b/packages/mediation/gma_mediation_meta/example/android/settings.gradle index 7cd712855..dd253afc0 100644 --- a/packages/mediation/gma_mediation_meta/example/android/settings.gradle +++ b/packages/mediation/gma_mediation_meta/example/android/settings.gradle @@ -23,7 +23,8 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "7.3.0" apply false + id "com.android.application" version "8.13.1" apply false + id "org.jetbrains.kotlin.android" version "2.2.21" apply false } include ":app" diff --git a/packages/mediation/gma_mediation_meta/example/ios/Podfile b/packages/mediation/gma_mediation_meta/example/ios/Podfile index 38b28ff0d..b2d735017 100644 --- a/packages/mediation/gma_mediation_meta/example/ios/Podfile +++ b/packages/mediation/gma_mediation_meta/example/ios/Podfile @@ -1,5 +1,4 @@ -# Uncomment this line to define a global platform for your project -# platform :ios, '12.0' +platform :ios, '13.0' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' diff --git a/packages/mediation/gma_mediation_meta/example/ios/Runner.xcodeproj/project.pbxproj b/packages/mediation/gma_mediation_meta/example/ios/Runner.xcodeproj/project.pbxproj index 60d0f88c3..01c7eb012 100644 --- a/packages/mediation/gma_mediation_meta/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/mediation/gma_mediation_meta/example/ios/Runner.xcodeproj/project.pbxproj @@ -360,7 +360,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -484,7 +484,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -533,7 +533,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; diff --git a/packages/mediation/gma_mediation_meta/example/pubspec.yaml b/packages/mediation/gma_mediation_meta/example/pubspec.yaml index e1b4e495a..93c46b847 100644 --- a/packages/mediation/gma_mediation_meta/example/pubspec.yaml +++ b/packages/mediation/gma_mediation_meta/example/pubspec.yaml @@ -5,7 +5,7 @@ description: "Demonstrates how to use the gma_mediation_meta plugin." publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: '>=3.6.0 <4.0.0' + sdk: '>=3.9.0 <4.0.0' # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions @@ -17,7 +17,7 @@ dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 gma_mediation_meta: # When depending on this package from a real application you should use: # gma_mediation_meta: ^x.y.z @@ -41,7 +41,7 @@ dev_dependencies: # activated in the `analysis_options.yaml` file located at the root of your # package. See that file for information about deactivating specific lint # rules and activating additional ones. - flutter_lints: ^2.0.0 + flutter_lints: ^6.0.0 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/packages/mediation/gma_mediation_meta/ios/gma_mediation_meta.podspec b/packages/mediation/gma_mediation_meta/ios/gma_mediation_meta.podspec index 8f5ac0c70..e3f673509 100644 --- a/packages/mediation/gma_mediation_meta/ios/gma_mediation_meta.podspec +++ b/packages/mediation/gma_mediation_meta/ios/gma_mediation_meta.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_meta' - s.version = '1.5.0' + s.version = '1.5.1' s.summary = 'Google Mobile Ads Mediation of Meta Audience Network.' s.description = <<-DESC Mediation Adapter for Meta Audience Network to use with Google Mobile Ads. @@ -16,8 +16,8 @@ Mediation Adapter for Meta Audience Network to use with Google Mobile Ads. s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationFacebook', '~> 6.21.0.0' - s.platform = :ios, '12.0' + s.dependency 'GoogleMobileAdsMediationFacebook', '~> 6.21.0.1' + s.platform = :ios, '13.0' s.static_framework = true # Flutter.framework does not contain a i386 slice. diff --git a/packages/mediation/gma_mediation_meta/pubspec.yaml b/packages/mediation/gma_mediation_meta/pubspec.yaml index 90b07b92d..77b5ff5bd 100644 --- a/packages/mediation/gma_mediation_meta/pubspec.yaml +++ b/packages/mediation/gma_mediation_meta/pubspec.yaml @@ -1,16 +1,16 @@ name: gma_mediation_meta description: "Mediation Adapter that enables sending ad requests to the Meta Audience Network ad network using the google_mobile_ads plugin." -version: 1.5.0 +version: 1.5.1 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_meta environment: - sdk: '>=3.6.0 <4.0.0' - flutter: '>=3.27.0' + sdk: '>=3.9.0 <4.0.0' + flutter: '>=3.35.1' dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 plugin_platform_interface: ^2.0.2 dev_dependencies: From c4f6ef8ebdb63972d91b95005a7cdf8d4de06ade Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Fri, 6 Feb 2026 13:59:35 -0800 Subject: [PATCH 122/251] Updating AppLovin Flutter mediation plugin to support the latest adapters (13.5.1.0, 13.5.0.0) PiperOrigin-RevId: 866604351 --- .../mediation/gma_mediation_applovin/CHANGELOG.md | 4 ++++ .../gma_mediation_applovin/android/build.gradle | 14 +++++++------- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../example/android/app/build.gradle | 2 +- .../example/android/build.gradle | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../example/android/settings.gradle | 4 ++-- .../gma_mediation_applovin/example/ios/Podfile | 3 +-- .../example/ios/Runner.xcodeproj/project.pbxproj | 6 +++--- .../gma_mediation_applovin/example/pubspec.yaml | 6 +++--- .../ios/gma_mediation_applovin.podspec | 4 ++-- .../mediation/gma_mediation_applovin/pubspec.yaml | 10 +++++----- 12 files changed, 31 insertions(+), 28 deletions(-) diff --git a/packages/mediation/gma_mediation_applovin/CHANGELOG.md b/packages/mediation/gma_mediation_applovin/CHANGELOG.md index 89c91f4c4..d7f4ab56a 100644 --- a/packages/mediation/gma_mediation_applovin/CHANGELOG.md +++ b/packages/mediation/gma_mediation_applovin/CHANGELOG.md @@ -1,5 +1,9 @@ ## AppLovin Flutter Mediation Adapter Changelog +#### Version 2.5.2 (In progress) +- Updated minimum Flutter version to 3.35.1 +- Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 + #### Version 2.5.1 - Supports [AppLovin Android adapter version 13.5.1.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/applovin/CHANGELOG.md#version-13510). - Supports [AppLovin iOS adapter version 13.5.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/AppLovin/CHANGELOG.md#version-13500). diff --git a/packages/mediation/gma_mediation_applovin/android/build.gradle b/packages/mediation/gma_mediation_applovin/android/build.gradle index 5c58a90a3..2f03a16b1 100644 --- a/packages/mediation/gma_mediation_applovin/android/build.gradle +++ b/packages/mediation/gma_mediation_applovin/android/build.gradle @@ -1,15 +1,15 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_applovin' -version = "2.5.1" +version = "2.5.2" buildscript { - ext.kotlin_version = '2.0.21' + ext.kotlin_version = '2.2.21' repositories { google() mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:8.0.2' + classpath 'com.android.tools.build:gradle:8.13.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } @@ -33,7 +33,7 @@ android { namespace 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_applovin' } - compileSdkVersion 34 + compileSdkVersion 36 compileOptions { sourceCompatibility JavaVersion.VERSION_11 @@ -50,13 +50,13 @@ android { } defaultConfig { - minSdkVersion 23 + minSdkVersion 24 } dependencies { - implementation 'com.applovin:applovin-sdk:13.1.0' + implementation 'com.applovin:applovin-sdk:13.5.1' implementation "com.google.ads.mediation:applovin:$stringVersion" - implementation 'com.google.android.gms:play-services-ads:23.6.0' + implementation 'com.google.android.gms:play-services-ads:24.9.0' implementation 'androidx.core:core-ktx:1.8.0' testImplementation 'junit:junit:4.13.2' testImplementation 'androidx.test:core:1.5.0' diff --git a/packages/mediation/gma_mediation_applovin/android/gradle/wrapper/gradle-wrapper.properties b/packages/mediation/gma_mediation_applovin/android/gradle/wrapper/gradle-wrapper.properties index 62f495dfe..23449a2b5 100644 --- a/packages/mediation/gma_mediation_applovin/android/gradle/wrapper/gradle-wrapper.properties +++ b/packages/mediation/gma_mediation_applovin/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/packages/mediation/gma_mediation_applovin/example/android/app/build.gradle b/packages/mediation/gma_mediation_applovin/example/android/app/build.gradle index 58616ed81..0d78751fe 100644 --- a/packages/mediation/gma_mediation_applovin/example/android/app/build.gradle +++ b/packages/mediation/gma_mediation_applovin/example/android/app/build.gradle @@ -45,7 +45,7 @@ android { applicationId "io.flutter.plugins.googlemobileads.mediation.gma_mediation_applovin_example" // You can update the following values to match your application needs. // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. - minSdkVersion 23 + minSdkVersion 24 targetSdkVersion flutter.targetSdkVersion versionCode flutterVersionCode.toInteger() versionName flutterVersionName diff --git a/packages/mediation/gma_mediation_applovin/example/android/build.gradle b/packages/mediation/gma_mediation_applovin/example/android/build.gradle index cff218755..7bdfd2321 100644 --- a/packages/mediation/gma_mediation_applovin/example/android/build.gradle +++ b/packages/mediation/gma_mediation_applovin/example/android/build.gradle @@ -1,5 +1,5 @@ buildscript { - ext.kotlin_version = '2.0.21' + ext.kotlin_version = '2.2.21' repositories { google() mavenCentral() diff --git a/packages/mediation/gma_mediation_applovin/example/android/gradle/wrapper/gradle-wrapper.properties b/packages/mediation/gma_mediation_applovin/example/android/gradle/wrapper/gradle-wrapper.properties index afa1e8eb0..f004c34c0 100644 --- a/packages/mediation/gma_mediation_applovin/example/android/gradle/wrapper/gradle-wrapper.properties +++ b/packages/mediation/gma_mediation_applovin/example/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip diff --git a/packages/mediation/gma_mediation_applovin/example/android/settings.gradle b/packages/mediation/gma_mediation_applovin/example/android/settings.gradle index a33ee2203..ca273881f 100644 --- a/packages/mediation/gma_mediation_applovin/example/android/settings.gradle +++ b/packages/mediation/gma_mediation_applovin/example/android/settings.gradle @@ -23,8 +23,8 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.7.0" apply false - id 'org.jetbrains.kotlin.android' version '2.0.21' apply false + id "com.android.application" version "8.13.1" apply false + id 'org.jetbrains.kotlin.android' version '2.2.21' apply false } include ":app" diff --git a/packages/mediation/gma_mediation_applovin/example/ios/Podfile b/packages/mediation/gma_mediation_applovin/example/ios/Podfile index 38b28ff0d..b2d735017 100644 --- a/packages/mediation/gma_mediation_applovin/example/ios/Podfile +++ b/packages/mediation/gma_mediation_applovin/example/ios/Podfile @@ -1,5 +1,4 @@ -# Uncomment this line to define a global platform for your project -# platform :ios, '12.0' +platform :ios, '13.0' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' diff --git a/packages/mediation/gma_mediation_applovin/example/ios/Runner.xcodeproj/project.pbxproj b/packages/mediation/gma_mediation_applovin/example/ios/Runner.xcodeproj/project.pbxproj index 60d0f88c3..01c7eb012 100644 --- a/packages/mediation/gma_mediation_applovin/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/mediation/gma_mediation_applovin/example/ios/Runner.xcodeproj/project.pbxproj @@ -360,7 +360,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -484,7 +484,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -533,7 +533,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; diff --git a/packages/mediation/gma_mediation_applovin/example/pubspec.yaml b/packages/mediation/gma_mediation_applovin/example/pubspec.yaml index 950a55c17..95641604d 100644 --- a/packages/mediation/gma_mediation_applovin/example/pubspec.yaml +++ b/packages/mediation/gma_mediation_applovin/example/pubspec.yaml @@ -5,7 +5,7 @@ description: "Demonstrates how to use the gma_mediation_applovin plugin." publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: '>=3.6.0 <4.0.0' + sdk: '>=3.9.0 <4.0.0' # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions @@ -17,7 +17,7 @@ dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 gma_mediation_applovin: # When depending on this package from a real application you should use: # gma_mediation_applovin: ^x.y.z @@ -41,7 +41,7 @@ dev_dependencies: # activated in the `analysis_options.yaml` file located at the root of your # package. See that file for information about deactivating specific lint # rules and activating additional ones. - flutter_lints: ^2.0.0 + flutter_lints: ^6.0.0 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/packages/mediation/gma_mediation_applovin/ios/gma_mediation_applovin.podspec b/packages/mediation/gma_mediation_applovin/ios/gma_mediation_applovin.podspec index 6f2f59442..24ef8baf7 100644 --- a/packages/mediation/gma_mediation_applovin/ios/gma_mediation_applovin.podspec +++ b/packages/mediation/gma_mediation_applovin/ios/gma_mediation_applovin.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_applovin' - s.version = '2.5.1' + s.version = '2.5.2' s.summary = 'Google Mobile Ads Mediation of AppLovin.' s.description = <<-DESC Mediation Adapter for AppLovin to use with Google Mobile Ads. @@ -17,7 +17,7 @@ Mediation Adapter for AppLovin to use with Google Mobile Ads. s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' s.dependency 'GoogleMobileAdsMediationAppLovin', '~> 13.5.0.0' - s.platform = :ios, '12.0' + s.platform = :ios, '13.0' s.static_framework = true # Flutter.framework does not contain a i386 slice. diff --git a/packages/mediation/gma_mediation_applovin/pubspec.yaml b/packages/mediation/gma_mediation_applovin/pubspec.yaml index d0c6f94b4..b1bf8a53e 100644 --- a/packages/mediation/gma_mediation_applovin/pubspec.yaml +++ b/packages/mediation/gma_mediation_applovin/pubspec.yaml @@ -1,20 +1,20 @@ name: gma_mediation_applovin description: "Mediation Adapter that enables sending ad requests to the AppLovin ad network using the google_mobile_ads plugin." -version: 2.5.1 +version: 2.5.2 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_applovin environment: - sdk: '>=3.6.0 <4.0.0' - flutter: '>=3.27.0' + sdk: '>=3.9.0 <4.0.0' + flutter: '>=3.35.1' dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 plugin_platform_interface: ^2.1.8 dev_dependencies: - flutter_lints: ^5.0.0 + flutter_lints: ^6.0.0 flutter_test: sdk: flutter lint: ^2.3.0 From 56f3cfb688fe114a98538a5b6040b456a8518c63 Mon Sep 17 00:00:00 2001 From: LTphantom Date: Tue, 24 Feb 2026 12:09:16 -0800 Subject: [PATCH 123/251] Synced workflowFix branch (#1408) From fc779909bac22ceb452228258b8141527e26ee84 Mon Sep 17 00:00:00 2001 From: LTphantom Date: Tue, 24 Feb 2026 15:32:18 -0800 Subject: [PATCH 124/251] Workflow fix (#1409) * Added Xcode to adapters' github workflows * Updated google_mobile_ads workflow * Updated iOS version in workflows * modified xcodebuild command * Adds swift action * Added empty swift file for Samples --- .github/workflows/build.yaml | 2 +- .github/workflows/gma_mediation_applovin.yaml | 4 +-- .../workflows/gma_mediation_dtexchange.yaml | 4 +-- .../workflows/gma_mediation_ironsource.yaml | 4 +-- .../gma_mediation_liftoffmonetize.yaml | 4 +-- .github/workflows/gma_mediation_unity.yaml | 4 +-- .github/workflows/google_mobile_ads.yaml | 7 ++-- .../google_mobile_ads/example/ios/Podfile | 1 - .../ios/google_mobile_ads.podspec | 2 +- samples/admob/mediation_example/ios/Podfile | 3 +- .../ios/Runner.xcodeproj/project.pbxproj | 33 +++++++++++++++---- .../mediation_example/ios/Runner/Empty.swift | 15 +++++++++ .../ios/Runner/Runner-Bridging-Header.h | 4 +++ 13 files changed, 64 insertions(+), 23 deletions(-) create mode 100644 samples/admob/mediation_example/ios/Runner/Empty.swift create mode 100644 samples/admob/mediation_example/ios/Runner/Runner-Bridging-Header.h diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 774e04e24..c64bf1f51 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -64,7 +64,7 @@ jobs: with: fetch-depth: 0 - name: Select Xcode version - run: sudo xcode-select -s '/Applications/Xcode_16.3.0.app/Contents/Developer' + run: sudo xcode-select -s '/Applications/Xcode_26.2.app/Contents/Developer' - name: "Install Flutter" run: ./.github/workflows/scripts/install-flutter.sh stable - name: "Install Tools" diff --git a/.github/workflows/gma_mediation_applovin.yaml b/.github/workflows/gma_mediation_applovin.yaml index 8d648f831..237aff993 100644 --- a/.github/workflows/gma_mediation_applovin.yaml +++ b/.github/workflows/gma_mediation_applovin.yaml @@ -60,7 +60,7 @@ jobs: with: fetch-depth: 0 - name: Select Xcode version - run: sudo xcode-select -s '/Applications/Xcode_16.2.0.app/Contents/Developer' + run: sudo xcode-select -s '/Applications/Xcode_26.2.app/Contents/Developer' - name: "Install Flutter" run: ./.github/workflows/scripts/install-flutter.sh stable - name: "Install Tools" @@ -73,7 +73,7 @@ jobs: flutter pub get flutter precache --ios pod install --repo-update - xcodebuild -configuration Debug -resultBundlePath TestResults VERBOSE_SCRIPT_LOGGING=YES -workspace Runner.xcworkspace -scheme Runner -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 15,OS=17.5' test + xcodebuild -configuration Debug -resultBundlePath TestResults VERBOSE_SCRIPT_LOGGING=YES -workspace Runner.xcworkspace -scheme Runner -destination 'platform=iOS Simulator,name=iPhone 17,OS=26.2' test - uses: actions/upload-artifact@v4 if: failure() with: diff --git a/.github/workflows/gma_mediation_dtexchange.yaml b/.github/workflows/gma_mediation_dtexchange.yaml index 8a2dbe17e..272035682 100644 --- a/.github/workflows/gma_mediation_dtexchange.yaml +++ b/.github/workflows/gma_mediation_dtexchange.yaml @@ -60,7 +60,7 @@ jobs: with: fetch-depth: 0 - name: Select Xcode version - run: sudo xcode-select -s '/Applications/Xcode_16.2.0.app/Contents/Developer' + run: sudo xcode-select -s '/Applications/Xcode_26.2.app/Contents/Developer' - name: "Install Flutter" run: ./.github/workflows/scripts/install-flutter.sh stable - name: "Install Tools" @@ -73,7 +73,7 @@ jobs: flutter pub get flutter precache --ios pod install - xcodebuild -configuration Debug -resultBundlePath TestResults VERBOSE_SCRIPT_LOGGING=YES -workspace Runner.xcworkspace -scheme Runner -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 15,OS=17.5' test + xcodebuild -configuration Debug -resultBundlePath TestResults VERBOSE_SCRIPT_LOGGING=YES -workspace Runner.xcworkspace -scheme Runner -destination 'platform=iOS Simulator,name=iPhone 17,OS=26.2' test - uses: actions/upload-artifact@v4 if: failure() with: diff --git a/.github/workflows/gma_mediation_ironsource.yaml b/.github/workflows/gma_mediation_ironsource.yaml index 5807d8cb8..7c5871254 100644 --- a/.github/workflows/gma_mediation_ironsource.yaml +++ b/.github/workflows/gma_mediation_ironsource.yaml @@ -59,7 +59,7 @@ jobs: with: fetch-depth: 0 - name: Select Xcode version - run: sudo xcode-select -s '/Applications/Xcode_16.2.0.app/Contents/Developer' + run: sudo xcode-select -s '/Applications/Xcode_26.2.app/Contents/Developer' - name: "Install Flutter" run: ./.github/workflows/scripts/install-flutter.sh stable - name: "Install Tools" @@ -72,7 +72,7 @@ jobs: flutter pub get flutter precache --ios pod install - xcodebuild -configuration Debug -resultBundlePath TestResults VERBOSE_SCRIPT_LOGGING=YES -workspace Runner.xcworkspace -scheme Runner -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 15,OS=17.5' test + xcodebuild -configuration Debug -resultBundlePath TestResults VERBOSE_SCRIPT_LOGGING=YES -workspace Runner.xcworkspace -scheme Runner -destination 'platform=iOS Simulator,name=iPhone 17,OS=26.2' test - uses: actions/upload-artifact@v4 if: failure() with: diff --git a/.github/workflows/gma_mediation_liftoffmonetize.yaml b/.github/workflows/gma_mediation_liftoffmonetize.yaml index 6a20ad0b1..958bba525 100644 --- a/.github/workflows/gma_mediation_liftoffmonetize.yaml +++ b/.github/workflows/gma_mediation_liftoffmonetize.yaml @@ -60,7 +60,7 @@ jobs: with: fetch-depth: 0 - name: Select Xcode version - run: sudo xcode-select -s '/Applications/Xcode_16.2.0.app/Contents/Developer' + run: sudo xcode-select -s '/Applications/Xcode_26.2.app/Contents/Developer' - name: "Install Flutter" run: ./.github/workflows/scripts/install-flutter.sh stable - name: "Install Tools" @@ -73,7 +73,7 @@ jobs: flutter pub get flutter precache --ios pod install - xcodebuild -configuration Debug -resultBundlePath TestResults VERBOSE_SCRIPT_LOGGING=YES -workspace Runner.xcworkspace -scheme Runner -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 15,OS=17.5' test + xcodebuild -configuration Debug -resultBundlePath TestResults VERBOSE_SCRIPT_LOGGING=YES -workspace Runner.xcworkspace -scheme Runner -destination 'platform=iOS Simulator,name=iPhone 17,OS=26.2' test - uses: actions/upload-artifact@v4 if: failure() with: diff --git a/.github/workflows/gma_mediation_unity.yaml b/.github/workflows/gma_mediation_unity.yaml index e0fc3fffd..6f297f049 100644 --- a/.github/workflows/gma_mediation_unity.yaml +++ b/.github/workflows/gma_mediation_unity.yaml @@ -60,7 +60,7 @@ jobs: with: fetch-depth: 0 - name: Select Xcode version - run: sudo xcode-select -s '/Applications/Xcode_16.2.0.app/Contents/Developer' + run: sudo xcode-select -s '/Applications/Xcode_26.2.app/Contents/Developer' - name: "Install Flutter" run: ./.github/workflows/scripts/install-flutter.sh stable - name: "Install Tools" @@ -73,7 +73,7 @@ jobs: flutter pub get flutter precache --ios pod install - xcodebuild -configuration Debug -resultBundlePath TestResults VERBOSE_SCRIPT_LOGGING=YES -workspace Runner.xcworkspace -scheme Runner -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 15,OS=17.5' test + xcodebuild -configuration Debug -resultBundlePath TestResults VERBOSE_SCRIPT_LOGGING=YES -workspace Runner.xcworkspace -scheme Runner -destination 'platform=iOS Simulator,name=iPhone 17,OS=26.2' test - uses: actions/upload-artifact@v4 if: failure() with: diff --git a/.github/workflows/google_mobile_ads.yaml b/.github/workflows/google_mobile_ads.yaml index 9024b03cb..555dd1289 100644 --- a/.github/workflows/google_mobile_ads.yaml +++ b/.github/workflows/google_mobile_ads.yaml @@ -56,11 +56,14 @@ jobs: runs-on: macos-latest timeout-minutes: 40 steps: + - uses: swift-actions/setup-swift@v2 + with: + swift-version: "6.0.0" - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 with: fetch-depth: 0 - name: Select Xcode version - run: sudo xcode-select -s '/Applications/Xcode_16.3.0.app/Contents/Developer' + run: sudo xcode-select -s '/Applications/Xcode_26.2.app/Contents/Developer' - name: "Install Flutter" run: ./.github/workflows/scripts/install-flutter.sh stable - name: "Install Tools" @@ -74,7 +77,7 @@ jobs: flutter clean flutter pub get pod install - xcodebuild -configuration Debug -resultBundlePath TestResults VERBOSE_SCRIPT_LOGGING=YES -workspace Runner.xcworkspace -scheme Runner -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 16,OS=18.4' test + xcodebuild -configuration Debug -resultBundlePath TestResults VERBOSE_SCRIPT_LOGGING=YES -workspace Runner.xcworkspace -scheme Runner -destination 'platform=iOS Simulator,name=iPhone 17,OS=26.2' test - uses: actions/upload-artifact@v4 if: failure() with: diff --git a/packages/google_mobile_ads/example/ios/Podfile b/packages/google_mobile_ads/example/ios/Podfile index 5dc3b65f7..fe8a94667 100644 --- a/packages/google_mobile_ads/example/ios/Podfile +++ b/packages/google_mobile_ads/example/ios/Podfile @@ -1,4 +1,3 @@ -# Uncomment this line to define a global platform for your project platform :ios, '13.0' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. diff --git a/packages/google_mobile_ads/ios/google_mobile_ads.podspec b/packages/google_mobile_ads/ios/google_mobile_ads.podspec index e503293f3..53ba027ed 100644 --- a/packages/google_mobile_ads/ios/google_mobile_ads.podspec +++ b/packages/google_mobile_ads/ios/google_mobile_ads.podspec @@ -17,7 +17,7 @@ Google Mobile Ads plugin for Flutter. s.dependency 'Flutter' s.dependency 'Google-Mobile-Ads-SDK','~> 12.14.0' s.dependency 'webview_flutter_wkwebview' - s.ios.deployment_target = '12.0' + s.ios.deployment_target = '13.0' s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'VALID_ARCHS' => 'armv7 arm64 x86_64' } s.static_framework = true s.resource_bundles = { diff --git a/samples/admob/mediation_example/ios/Podfile b/samples/admob/mediation_example/ios/Podfile index 3065706be..1d357ba91 100644 --- a/samples/admob/mediation_example/ios/Podfile +++ b/samples/admob/mediation_example/ios/Podfile @@ -1,5 +1,4 @@ -# Uncomment this line to define a global platform for your project -# platform :ios, '11.0' +platform :ios, '13.0' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' diff --git a/samples/admob/mediation_example/ios/Runner.xcodeproj/project.pbxproj b/samples/admob/mediation_example/ios/Runner.xcodeproj/project.pbxproj index 440763196..fa09900a4 100644 --- a/samples/admob/mediation_example/ios/Runner.xcodeproj/project.pbxproj +++ b/samples/admob/mediation_example/ios/Runner.xcodeproj/project.pbxproj @@ -10,6 +10,7 @@ 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 2248859B0846DDE51DA93B88 /* libPods-Runner.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BEFF7245B44DFB5F90761A60 /* libPods-Runner.a */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 44468B622F4E62AF00C7E62A /* Empty.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44468B612F4E62AF00C7E62A /* Empty.swift */; }; 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; }; 97C146F31CF9000F007C117D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C146F21CF9000F007C117D /* main.m */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; @@ -37,6 +38,8 @@ 1BD88CDB2AE480CC3BC7AEFB /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; 22ECC605216B2DF9DFC8B563 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 44468B602F4E62AF00C7E62A /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 44468B612F4E62AF00C7E62A /* Empty.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Empty.swift; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; @@ -128,6 +131,8 @@ 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, 9E796845271E936F00E06158 /* MyFLTMediationNetworkExtrasProvider.h */, 9E796846271E957600E06158 /* MyFLTMediationNetworkExtrasProvider.m */, + 44468B612F4E62AF00C7E62A /* Empty.swift */, + 44468B602F4E62AF00C7E62A /* Runner-Bridging-Header.h */, ); path = Runner; sourceTree = ""; @@ -176,6 +181,7 @@ TargetAttributes = { 97C146ED1CF9000F007C117D = { CreatedOnToolsVersion = 7.3.1; + LastSwiftMigration = 2610; }; }; }; @@ -272,10 +278,14 @@ inputFileListPaths = ( "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist", ); + inputPaths = ( + ); name = "[CP] Copy Pods Resources"; outputFileListPaths = ( "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist", ); + outputPaths = ( + ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n"; @@ -290,6 +300,7 @@ files = ( 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */, 97C146F31CF9000F007C117D /* main.m in Sources */, + 44468B622F4E62AF00C7E62A /* Empty.swift in Sources */, 9E796847271E957600E06158 /* MyFLTMediationNetworkExtrasProvider.m in Sources */, 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, ); @@ -358,7 +369,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -372,16 +383,19 @@ baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); PRODUCT_BUNDLE_IDENTIFIER = com.example.mediationexample; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 6.0; VERSIONING_SYSTEM = "apple-generic"; }; name = Profile; @@ -433,7 +447,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -482,7 +496,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -496,16 +510,20 @@ baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); PRODUCT_BUNDLE_IDENTIFIER = com.example.mediationexample; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 6.0; VERSIONING_SYSTEM = "apple-generic"; }; name = Debug; @@ -515,16 +533,19 @@ baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); PRODUCT_BUNDLE_IDENTIFIER = com.example.mediationexample; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 6.0; VERSIONING_SYSTEM = "apple-generic"; }; name = Release; diff --git a/samples/admob/mediation_example/ios/Runner/Empty.swift b/samples/admob/mediation_example/ios/Runner/Empty.swift new file mode 100644 index 000000000..4a21f6159 --- /dev/null +++ b/samples/admob/mediation_example/ios/Runner/Empty.swift @@ -0,0 +1,15 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import Foundation diff --git a/samples/admob/mediation_example/ios/Runner/Runner-Bridging-Header.h b/samples/admob/mediation_example/ios/Runner/Runner-Bridging-Header.h new file mode 100644 index 000000000..1b2cb5d6d --- /dev/null +++ b/samples/admob/mediation_example/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1,4 @@ +// +// Use this file to import your target's public headers that you would like to expose to Swift. +// + From ca7d1564445651fc07db16979d9145b288c2bdf2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 Feb 2026 15:54:07 -0800 Subject: [PATCH 125/251] Bump actions/setup-java from 4 to 5 (#1347) Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4 to 5. - [Release notes](https://github.com/actions/setup-java/releases) - [Commits](https://github.com/actions/setup-java/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/setup-java dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/gma_mediation_applovin.yaml | 2 +- .github/workflows/gma_mediation_dtexchange.yaml | 2 +- .github/workflows/gma_mediation_ironsource.yaml | 2 +- .github/workflows/gma_mediation_liftoffmonetize.yaml | 2 +- .github/workflows/gma_mediation_unity.yaml | 2 +- .github/workflows/google_mobile_ads.yaml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/gma_mediation_applovin.yaml b/.github/workflows/gma_mediation_applovin.yaml index 237aff993..cc6210da5 100644 --- a/.github/workflows/gma_mediation_applovin.yaml +++ b/.github/workflows/gma_mediation_applovin.yaml @@ -34,7 +34,7 @@ jobs: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 with: fetch-depth: 0 - - uses: actions/setup-java@v4 + - uses: actions/setup-java@v5 with: distribution: 'temurin' java-version: '17' diff --git a/.github/workflows/gma_mediation_dtexchange.yaml b/.github/workflows/gma_mediation_dtexchange.yaml index 272035682..0117935bf 100644 --- a/.github/workflows/gma_mediation_dtexchange.yaml +++ b/.github/workflows/gma_mediation_dtexchange.yaml @@ -34,7 +34,7 @@ jobs: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 with: fetch-depth: 0 - - uses: actions/setup-java@v4 + - uses: actions/setup-java@v5 with: distribution: 'temurin' java-version: '17' diff --git a/.github/workflows/gma_mediation_ironsource.yaml b/.github/workflows/gma_mediation_ironsource.yaml index 7c5871254..f1c86d584 100644 --- a/.github/workflows/gma_mediation_ironsource.yaml +++ b/.github/workflows/gma_mediation_ironsource.yaml @@ -34,7 +34,7 @@ jobs: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 with: fetch-depth: 0 - - uses: actions/setup-java@v4 + - uses: actions/setup-java@v5 with: distribution: 'temurin' java-version: '17' diff --git a/.github/workflows/gma_mediation_liftoffmonetize.yaml b/.github/workflows/gma_mediation_liftoffmonetize.yaml index 958bba525..7bbb2947e 100644 --- a/.github/workflows/gma_mediation_liftoffmonetize.yaml +++ b/.github/workflows/gma_mediation_liftoffmonetize.yaml @@ -34,7 +34,7 @@ jobs: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 with: fetch-depth: 0 - - uses: actions/setup-java@v4 + - uses: actions/setup-java@v5 with: distribution: 'temurin' java-version: '17' diff --git a/.github/workflows/gma_mediation_unity.yaml b/.github/workflows/gma_mediation_unity.yaml index 6f297f049..272bd2751 100644 --- a/.github/workflows/gma_mediation_unity.yaml +++ b/.github/workflows/gma_mediation_unity.yaml @@ -34,7 +34,7 @@ jobs: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 with: fetch-depth: 0 - - uses: actions/setup-java@v4 + - uses: actions/setup-java@v5 with: distribution: 'temurin' java-version: '17' diff --git a/.github/workflows/google_mobile_ads.yaml b/.github/workflows/google_mobile_ads.yaml index 555dd1289..838a8fa91 100644 --- a/.github/workflows/google_mobile_ads.yaml +++ b/.github/workflows/google_mobile_ads.yaml @@ -37,7 +37,7 @@ jobs: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 with: fetch-depth: 0 - - uses: actions/setup-java@v4 + - uses: actions/setup-java@v5 with: distribution: 'temurin' java-version: '17' From a69a83227372ac1660f0574b03890fcc92790f32 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 Feb 2026 15:59:39 -0800 Subject: [PATCH 126/251] Bump actions/upload-artifact from 4 to 6 (#1379) Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 6. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v4...v6) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/gma_mediation_applovin.yaml | 2 +- .github/workflows/gma_mediation_dtexchange.yaml | 2 +- .github/workflows/gma_mediation_ironsource.yaml | 2 +- .github/workflows/gma_mediation_liftoffmonetize.yaml | 2 +- .github/workflows/gma_mediation_unity.yaml | 2 +- .github/workflows/google_mobile_ads.yaml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/gma_mediation_applovin.yaml b/.github/workflows/gma_mediation_applovin.yaml index cc6210da5..fc03583d9 100644 --- a/.github/workflows/gma_mediation_applovin.yaml +++ b/.github/workflows/gma_mediation_applovin.yaml @@ -74,7 +74,7 @@ jobs: flutter precache --ios pod install --repo-update xcodebuild -configuration Debug -resultBundlePath TestResults VERBOSE_SCRIPT_LOGGING=YES -workspace Runner.xcworkspace -scheme Runner -destination 'platform=iOS Simulator,name=iPhone 17,OS=26.2' test - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v6 if: failure() with: name: iOSTestResults diff --git a/.github/workflows/gma_mediation_dtexchange.yaml b/.github/workflows/gma_mediation_dtexchange.yaml index 0117935bf..039a00c10 100644 --- a/.github/workflows/gma_mediation_dtexchange.yaml +++ b/.github/workflows/gma_mediation_dtexchange.yaml @@ -74,7 +74,7 @@ jobs: flutter precache --ios pod install xcodebuild -configuration Debug -resultBundlePath TestResults VERBOSE_SCRIPT_LOGGING=YES -workspace Runner.xcworkspace -scheme Runner -destination 'platform=iOS Simulator,name=iPhone 17,OS=26.2' test - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v6 if: failure() with: name: iOSTestResults diff --git a/.github/workflows/gma_mediation_ironsource.yaml b/.github/workflows/gma_mediation_ironsource.yaml index f1c86d584..053c1bcf5 100644 --- a/.github/workflows/gma_mediation_ironsource.yaml +++ b/.github/workflows/gma_mediation_ironsource.yaml @@ -73,7 +73,7 @@ jobs: flutter precache --ios pod install xcodebuild -configuration Debug -resultBundlePath TestResults VERBOSE_SCRIPT_LOGGING=YES -workspace Runner.xcworkspace -scheme Runner -destination 'platform=iOS Simulator,name=iPhone 17,OS=26.2' test - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v6 if: failure() with: name: iOSTestResults diff --git a/.github/workflows/gma_mediation_liftoffmonetize.yaml b/.github/workflows/gma_mediation_liftoffmonetize.yaml index 7bbb2947e..d6b7978c4 100644 --- a/.github/workflows/gma_mediation_liftoffmonetize.yaml +++ b/.github/workflows/gma_mediation_liftoffmonetize.yaml @@ -74,7 +74,7 @@ jobs: flutter precache --ios pod install xcodebuild -configuration Debug -resultBundlePath TestResults VERBOSE_SCRIPT_LOGGING=YES -workspace Runner.xcworkspace -scheme Runner -destination 'platform=iOS Simulator,name=iPhone 17,OS=26.2' test - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v6 if: failure() with: name: iOSTestResults diff --git a/.github/workflows/gma_mediation_unity.yaml b/.github/workflows/gma_mediation_unity.yaml index 272bd2751..4bcb65b8c 100644 --- a/.github/workflows/gma_mediation_unity.yaml +++ b/.github/workflows/gma_mediation_unity.yaml @@ -74,7 +74,7 @@ jobs: flutter precache --ios pod install xcodebuild -configuration Debug -resultBundlePath TestResults VERBOSE_SCRIPT_LOGGING=YES -workspace Runner.xcworkspace -scheme Runner -destination 'platform=iOS Simulator,name=iPhone 17,OS=26.2' test - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v6 if: failure() with: name: iOSTestResults diff --git a/.github/workflows/google_mobile_ads.yaml b/.github/workflows/google_mobile_ads.yaml index 838a8fa91..5c88c0402 100644 --- a/.github/workflows/google_mobile_ads.yaml +++ b/.github/workflows/google_mobile_ads.yaml @@ -78,7 +78,7 @@ jobs: flutter pub get pod install xcodebuild -configuration Debug -resultBundlePath TestResults VERBOSE_SCRIPT_LOGGING=YES -workspace Runner.xcworkspace -scheme Runner -destination 'platform=iOS Simulator,name=iPhone 17,OS=26.2' test - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v6 if: failure() with: name: iOSTestResults From b337bd45941ef439673eed9cd1d638056ef25577 Mon Sep 17 00:00:00 2001 From: LTphantom Date: Wed, 25 Feb 2026 10:44:09 -0800 Subject: [PATCH 127/251] Update CODEOWNERS (#1407) Added berile and thanvirm as Code Owners --- CODEOWNERS | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CODEOWNERS b/CODEOWNERS index ad5d0447e..80db18083 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -4,5 +4,5 @@ # These names are just suggestions. It is fine to have your changes # reviewed by someone else. -packages/google_mobile_ads/* @bparrishMines @jjliu15 @luo86 @srichakradhar @LTPhantom -.github/ @bparrishMines @jjliu15 @luo86 @srichakradhar @LTPhantom +packages/google_mobile_ads/* @berile @luo86 @LTPhantom @thanvirm +.github/ @berile @luo86 @LTPhantom @thanvirm From 13f09c364d648bf6bd63238ba567fef8f79d1cb6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 25 Feb 2026 10:44:54 -0800 Subject: [PATCH 128/251] Bump actions/checkout from 4.2.2 to 6.0.2 (#1398) Bumps [actions/checkout](https://github.com/actions/checkout) from 4.2.2 to 6.0.2. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/11bd71901bbe5b1630ceea73d27597364c9af683...de0fac2e4500dabe0009e67214ff5f5447ce83dd) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: 6.0.2 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build.yaml | 6 +++--- .github/workflows/gma_mediation_applovin.yaml | 6 +++--- .github/workflows/gma_mediation_chartboost.yaml | 2 +- .github/workflows/gma_mediation_dtexchange.yaml | 6 +++--- .github/workflows/gma_mediation_inmobi.yaml | 2 +- .github/workflows/gma_mediation_ironsource.yaml | 6 +++--- .github/workflows/gma_mediation_liftoffmonetize.yaml | 6 +++--- .github/workflows/gma_mediation_meta.yaml | 2 +- .github/workflows/gma_mediation_mintegral.yaml | 2 +- .github/workflows/gma_mediation_pangle.yaml | 2 +- .github/workflows/gma_mediation_unity.yaml | 6 +++--- .github/workflows/google_mobile_ads.yaml | 6 +++--- 12 files changed, 26 insertions(+), 26 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index c64bf1f51..e630c0264 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -29,7 +29,7 @@ jobs: - "samples/admob/rewarded_example" - "samples/admob/rewarded_interstitial_example" steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with: fetch-depth: 0 - name: "Install Flutter" @@ -60,7 +60,7 @@ jobs: - "samples/admob/rewarded_example" - "samples/admob/rewarded_interstitial_example" steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with: fetch-depth: 0 - name: Select Xcode version @@ -94,7 +94,7 @@ jobs: - "samples/admob/rewarded_example" - "samples/admob/rewarded_interstitial_example" steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with: fetch-depth: 0 - name: "Install Flutter" diff --git a/.github/workflows/gma_mediation_applovin.yaml b/.github/workflows/gma_mediation_applovin.yaml index fc03583d9..3f61af49e 100644 --- a/.github/workflows/gma_mediation_applovin.yaml +++ b/.github/workflows/gma_mediation_applovin.yaml @@ -31,7 +31,7 @@ jobs: if: github.event_name == 'pull_request' timeout-minutes: 30 steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with: fetch-depth: 0 - uses: actions/setup-java@v5 @@ -56,7 +56,7 @@ jobs: - uses: swift-actions/setup-swift@v2 with: swift-version: "5.7.2" - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with: fetch-depth: 0 - name: Select Xcode version @@ -84,7 +84,7 @@ jobs: if: github.event_name == 'pull_request' timeout-minutes: 30 steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with: fetch-depth: 0 - name: "Install Flutter" diff --git a/.github/workflows/gma_mediation_chartboost.yaml b/.github/workflows/gma_mediation_chartboost.yaml index 4589ecf6b..b8f93d1dc 100644 --- a/.github/workflows/gma_mediation_chartboost.yaml +++ b/.github/workflows/gma_mediation_chartboost.yaml @@ -31,7 +31,7 @@ jobs: if: github.event_name == 'pull_request' timeout-minutes: 30 steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with: fetch-depth: 0 - name: "Install Flutter" diff --git a/.github/workflows/gma_mediation_dtexchange.yaml b/.github/workflows/gma_mediation_dtexchange.yaml index 039a00c10..d0d8aa810 100644 --- a/.github/workflows/gma_mediation_dtexchange.yaml +++ b/.github/workflows/gma_mediation_dtexchange.yaml @@ -31,7 +31,7 @@ jobs: if: github.event_name == 'pull_request' timeout-minutes: 30 steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with: fetch-depth: 0 - uses: actions/setup-java@v5 @@ -56,7 +56,7 @@ jobs: - uses: swift-actions/setup-swift@v2 with: swift-version: "6.0.0" - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with: fetch-depth: 0 - name: Select Xcode version @@ -84,7 +84,7 @@ jobs: if: github.event_name == 'pull_request' timeout-minutes: 30 steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with: fetch-depth: 0 - name: "Install Flutter" diff --git a/.github/workflows/gma_mediation_inmobi.yaml b/.github/workflows/gma_mediation_inmobi.yaml index 944721f33..73163d762 100644 --- a/.github/workflows/gma_mediation_inmobi.yaml +++ b/.github/workflows/gma_mediation_inmobi.yaml @@ -31,7 +31,7 @@ jobs: if: github.event_name == 'pull_request' timeout-minutes: 30 steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with: fetch-depth: 0 - name: "Install Flutter" diff --git a/.github/workflows/gma_mediation_ironsource.yaml b/.github/workflows/gma_mediation_ironsource.yaml index 053c1bcf5..3e9c156fc 100644 --- a/.github/workflows/gma_mediation_ironsource.yaml +++ b/.github/workflows/gma_mediation_ironsource.yaml @@ -31,7 +31,7 @@ jobs: if: github.event_name == 'pull_request' timeout-minutes: 30 steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with: fetch-depth: 0 - uses: actions/setup-java@v5 @@ -55,7 +55,7 @@ jobs: - uses: swift-actions/setup-swift@v2 with: swift-version: "6.0.0" - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with: fetch-depth: 0 - name: Select Xcode version @@ -83,7 +83,7 @@ jobs: if: github.event_name == 'pull_request' timeout-minutes: 30 steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with: fetch-depth: 0 - name: "Install Flutter" diff --git a/.github/workflows/gma_mediation_liftoffmonetize.yaml b/.github/workflows/gma_mediation_liftoffmonetize.yaml index d6b7978c4..6e70d9b6c 100644 --- a/.github/workflows/gma_mediation_liftoffmonetize.yaml +++ b/.github/workflows/gma_mediation_liftoffmonetize.yaml @@ -31,7 +31,7 @@ jobs: if: github.event_name == 'pull_request' timeout-minutes: 30 steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with: fetch-depth: 0 - uses: actions/setup-java@v5 @@ -56,7 +56,7 @@ jobs: - uses: swift-actions/setup-swift@v2 with: swift-version: "5.7.2" - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with: fetch-depth: 0 - name: Select Xcode version @@ -85,7 +85,7 @@ jobs: if: github.event_name == 'pull_request' timeout-minutes: 30 steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with: fetch-depth: 0 - name: "Install Flutter" diff --git a/.github/workflows/gma_mediation_meta.yaml b/.github/workflows/gma_mediation_meta.yaml index ff7134bd3..95eb6933e 100644 --- a/.github/workflows/gma_mediation_meta.yaml +++ b/.github/workflows/gma_mediation_meta.yaml @@ -31,7 +31,7 @@ jobs: if: github.event_name == 'pull_request' timeout-minutes: 30 steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with: fetch-depth: 0 - name: "Install Flutter" diff --git a/.github/workflows/gma_mediation_mintegral.yaml b/.github/workflows/gma_mediation_mintegral.yaml index bd9ff3e1d..332bb5b25 100644 --- a/.github/workflows/gma_mediation_mintegral.yaml +++ b/.github/workflows/gma_mediation_mintegral.yaml @@ -31,7 +31,7 @@ jobs: if: github.event_name == 'pull_request' timeout-minutes: 30 steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with: fetch-depth: 0 - name: "Install Flutter" diff --git a/.github/workflows/gma_mediation_pangle.yaml b/.github/workflows/gma_mediation_pangle.yaml index d4b573ef8..cb2d4ce9e 100644 --- a/.github/workflows/gma_mediation_pangle.yaml +++ b/.github/workflows/gma_mediation_pangle.yaml @@ -31,7 +31,7 @@ jobs: if: github.event_name == 'pull_request' timeout-minutes: 30 steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with: fetch-depth: 0 - name: "Install Flutter" diff --git a/.github/workflows/gma_mediation_unity.yaml b/.github/workflows/gma_mediation_unity.yaml index 4bcb65b8c..1509f32ef 100644 --- a/.github/workflows/gma_mediation_unity.yaml +++ b/.github/workflows/gma_mediation_unity.yaml @@ -31,7 +31,7 @@ jobs: if: github.event_name == 'pull_request' timeout-minutes: 30 steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with: fetch-depth: 0 - uses: actions/setup-java@v5 @@ -56,7 +56,7 @@ jobs: - uses: swift-actions/setup-swift@v2 with: swift-version: "6.0.0" - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with: fetch-depth: 0 - name: Select Xcode version @@ -85,7 +85,7 @@ jobs: if: github.event_name == 'pull_request' timeout-minutes: 30 steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with: fetch-depth: 0 - name: "Install Flutter" diff --git a/.github/workflows/google_mobile_ads.yaml b/.github/workflows/google_mobile_ads.yaml index 5c88c0402..1830f5ad0 100644 --- a/.github/workflows/google_mobile_ads.yaml +++ b/.github/workflows/google_mobile_ads.yaml @@ -34,7 +34,7 @@ jobs: if: github.event_name == 'pull_request' timeout-minutes: 30 steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with: fetch-depth: 0 - uses: actions/setup-java@v5 @@ -59,7 +59,7 @@ jobs: - uses: swift-actions/setup-swift@v2 with: swift-version: "6.0.0" - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with: fetch-depth: 0 - name: Select Xcode version @@ -88,7 +88,7 @@ jobs: if: github.event_name == 'pull_request' timeout-minutes: 30 steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with: fetch-depth: 0 - name: "Install Flutter" From df778048fa907f1d11420e69a78e231262ee888c Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Tue, 10 Feb 2026 11:58:40 -0800 Subject: [PATCH 129/251] Updating Pangle Flutter mediation plugin for release version 3.5.3 PiperOrigin-RevId: 868254599 --- packages/mediation/gma_mediation_pangle/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_pangle/CHANGELOG.md b/packages/mediation/gma_mediation_pangle/CHANGELOG.md index 49f60c190..c872d0f8c 100644 --- a/packages/mediation/gma_mediation_pangle/CHANGELOG.md +++ b/packages/mediation/gma_mediation_pangle/CHANGELOG.md @@ -1,6 +1,9 @@ ## Pangle Flutter Mediation Adapter Changelog -#### Version 3.5.3 (In progress) +#### Version 3.5.3 +- Supports [Pangle Android adapter version 7.8.5.2.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/pangle/CHANGELOG.md#version-78520). +- Supports [Pangle iOS adapter version 7.8.5.6.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Pangle/CHANGELOG.md#version-78560). +- Built and tested with the Google Mobile Ads Flutter Plugin version 7.0.0. #### Version 3.5.2 - Updated minimum Flutter version to 3.35.1 From bed7bc2d4f0a7cca2a64937cd0d12309812cfc85 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Tue, 10 Feb 2026 13:55:17 -0800 Subject: [PATCH 130/251] Updating Meta Audience Network Flutter mediation plugin for release version 1.5.1 PiperOrigin-RevId: 868305192 --- packages/mediation/gma_mediation_meta/CHANGELOG.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/mediation/gma_mediation_meta/CHANGELOG.md b/packages/mediation/gma_mediation_meta/CHANGELOG.md index 7bfdcd37d..0f466efda 100644 --- a/packages/mediation/gma_mediation_meta/CHANGELOG.md +++ b/packages/mediation/gma_mediation_meta/CHANGELOG.md @@ -1,8 +1,11 @@ ## Meta Audience Network Flutter Mediation Adapter Changelog -#### Version 1.5.1 (In progress) -- Updated minimum Flutter version to 3.35.1 -- Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 +#### Version 1.5.1 +* Updated minimum Flutter version to 3.35.1 +* Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 +* Supports [Meta Audience Network Android adapter version 6.21.0.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/meta/CHANGELOG.md#version-62101). +* Supports [Meta Audience Network iOS adapter version 6.21.0.1](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Meta/CHANGELOG.md#version-62101). +* Built and tested with the Google Mobile Ads Flutter Plugin version 7.0.0. #### Version 1.5.0 * Supports [Meta Audience Network Android adapter version 6.21.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/meta/CHANGELOG.md#version-62100). From f66a26c61005296688c40688167a3bf4fad95d08 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Wed, 11 Feb 2026 17:54:13 -0800 Subject: [PATCH 131/251] Updating BidMachine Flutter Adapter version to 1.6.4 PiperOrigin-RevId: 868925085 --- packages/mediation/gma_mediation_bidmachine/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md b/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md index a64ddcbf2..99e1eb2ad 100644 --- a/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md +++ b/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md @@ -1,6 +1,9 @@ ## BidMachine Flutter Mediation Adapter Changelog -#### Version 1.3.1 (In progress) +#### Version 1.3.1 +- Supports [BidMachine Android adapter version 3.5.1.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/bidmachine/CHANGELOG.md#version-3501). +- Supports [BidMachine iOS adapter version 3.5.1.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/BidMachine/CHANGELOG.md#version-3501). +- Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 1.3.0 - Supports [BidMachine Android adapter version 3.5.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/bidmachine/CHANGELOG.md#version-3500). From 77bfdd63c08f6bbf6bc5df6b5f9239031f1bdf45 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Thu, 12 Feb 2026 17:28:20 -0800 Subject: [PATCH 132/251] Updating Pubmatic Flutter Adapter to version 1.5.0 PiperOrigin-RevId: 869457055 --- packages/mediation/gma_mediation_pubmatic/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md b/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md index 9d1b27e8f..47a3ba736 100644 --- a/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md +++ b/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md @@ -1,8 +1,11 @@ ## Pubmatic Flutter Mediation Adapter Changelog -#### Version 1.5.0 (In progress) +#### Version 1.5.0 - Updated minimum Flutter version to 3.35.1 - Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 +- Supports [PubMatic Android adapter version 4.11.0.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/pubmatic/CHANGELOG.md#version-41101). +- Supports [PubMatic iOS adapter version 4.11.0.1](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/PubMatic/CHANGELOG.md#version-41101). +- Built and tested with the Google Mobile Ads Flutter Plugin version 7.0.0. #### Version 1.4.1 - Supports [PubMatic Android adapter version 4.10.0.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/pubmatic/CHANGELOG.md#version-41001). From e40a1491f510f0e1fae782e7b6bbdc47d70b5e80 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Fri, 13 Feb 2026 18:03:41 -0800 Subject: [PATCH 133/251] Updating Mintegral Flutter Adapter to version 2.0.3. PiperOrigin-RevId: 869960870 --- packages/mediation/gma_mediation_mintegral/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_mintegral/CHANGELOG.md b/packages/mediation/gma_mediation_mintegral/CHANGELOG.md index 2b86fff30..e48939559 100644 --- a/packages/mediation/gma_mediation_mintegral/CHANGELOG.md +++ b/packages/mediation/gma_mediation_mintegral/CHANGELOG.md @@ -1,6 +1,9 @@ ## Mintegral Flutter Mediation Adapter Changelog -#### Version 2.0.3 (In progress) +#### Version 2.0.3 +- Supports [Mintegral Android adapter version 17.0.61.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/mintegral/CHANGELOG.md#version-170610). +- Supports [Mintegral iOS adapter version 8.0.5.1](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Mintegral/CHANGELOG.md#version-8051). +- Built and tested with the Google Mobile Ads Flutter Plugin version 7.0.0. #### Version 2.0.2 - Updated minimum Flutter version to 3.35.1 From 4feabacc7fb4a51d382df8dc1131eed1b847f09e Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Fri, 13 Feb 2026 18:04:42 -0800 Subject: [PATCH 134/251] Updating Chartboost Flutter Adapter to version 1.4.0 PiperOrigin-RevId: 869961106 --- packages/mediation/gma_mediation_chartboost/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_chartboost/CHANGELOG.md b/packages/mediation/gma_mediation_chartboost/CHANGELOG.md index 7903a00da..2558d861b 100644 --- a/packages/mediation/gma_mediation_chartboost/CHANGELOG.md +++ b/packages/mediation/gma_mediation_chartboost/CHANGELOG.md @@ -1,8 +1,11 @@ ## Chartboost Flutter Mediation Adapter Changelog -#### Version 1.4.0 (In progress) +#### Version 1.4.0 - Updated minimum Flutter version to 3.35.1 - Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 +- Supports [Chartboost Android adapter version 9.11.0.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/chartboost/CHANGELOG.md#version-91101). +- Supports [Chartboost iOS adapter version 9.11.0.1](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Chartboost/CHANGELOG.md#version-91101). +- Built and tested with the Google Mobile Ads Flutter Plugin version 7.0.0. #### Version 1.3.3 - Supports [Chartboost Android adapter version 9.10.2.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/chartboost/CHANGELOG.md#version-91020). From 8afc37ef0023731fefe4b6837d5b89fc916af47e Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Fri, 13 Feb 2026 18:05:17 -0800 Subject: [PATCH 135/251] Update Moloco Flutter Adapter to version 3.2.0 PiperOrigin-RevId: 869961243 --- packages/mediation/gma_mediation_moloco/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_moloco/CHANGELOG.md b/packages/mediation/gma_mediation_moloco/CHANGELOG.md index 5a263cee8..5d3143aa0 100644 --- a/packages/mediation/gma_mediation_moloco/CHANGELOG.md +++ b/packages/mediation/gma_mediation_moloco/CHANGELOG.md @@ -1,6 +1,9 @@ ## Moloco Flutter Mediation Adapter Changelog -#### Version 3.2.0 (In progress) +#### Version 3.2.0 +- Supports [Moloco Android adapter version 4.4.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/moloco/CHANGELOG.md#version-4400). +- Supports [Moloco iOS adapter version 4.2.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Moloco/CHANGELOG.md#version-4200). +- Built and tested with the Google Mobile Ads Flutter Plugin version 7.0.0. #### Version 3.1.0 - Updated minimum Flutter version to 3.35.1 From 5ae2ebdd7173f5593078943815a12c8cbf62cbd3 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Fri, 13 Feb 2026 18:06:38 -0800 Subject: [PATCH 136/251] Updating Liftoff Monetize Flutter Adapter version to 1.4.3 PiperOrigin-RevId: 869961597 --- .../mediation/gma_mediation_liftoffmonetize/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md b/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md index dce0f880c..683b7359c 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md +++ b/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md @@ -1,6 +1,9 @@ ## Liftoff Monetize Flutter Mediation Adapter Changelog -#### Version 1.4.3 (In progress) +#### Version 1.4.3 +* Supports [Liftoff Monetize Android adapter version 7.6.3.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/liftoffmonetize/CHANGELOG.md#version-7631). +* Supports [Liftoff Monetize iOS adapter version 7.6.3.1](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/LiftoffMonetize/CHANGELOG.md#version-7631). +* Built and tested with the Google Mobile Ads Flutter Plugin version 7.0.0. #### Version 1.4.2 - Updated minimum Flutter version to 3.35.1 From 9eab156e3602fa1f4da55c8b8317d22ae5821da8 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Fri, 13 Feb 2026 18:08:53 -0800 Subject: [PATCH 137/251] Update Line Flutter Adapter version to 2.0.0 PiperOrigin-RevId: 869962282 --- packages/mediation/gma_mediation_line/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_line/CHANGELOG.md b/packages/mediation/gma_mediation_line/CHANGELOG.md index d42ee9c6b..f3b8c53ac 100644 --- a/packages/mediation/gma_mediation_line/CHANGELOG.md +++ b/packages/mediation/gma_mediation_line/CHANGELOG.md @@ -1,8 +1,11 @@ ## Line Flutter Mediation Adapter Changelog -#### Version 2.0.0 (In progress) +#### Version 2.0.0 - Updated minimum Flutter version to 3.35.1 - Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 +- Supports [Line Android adapter version 3.0.1.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/line/CHANGELOG.md#version-3010). +- Supports [Line iOS adapter version 3.0.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Line/CHANGELOG.md#version-3000). +- Built and tested with the Google Mobile Ads Flutter Plugin version 7.0.0 #### Version 1.0.6 - Supports [Line Android adapter version 2.9.20251028.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/line/CHANGELOG.md#version-29202510280). From 15405efe139d175b051eafb7726def3ac5860b15 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Fri, 13 Feb 2026 18:20:03 -0800 Subject: [PATCH 138/251] Updating DT Exchange Flutter Adapter version to 1.3.2 PiperOrigin-RevId: 869965271 --- packages/mediation/gma_mediation_dtexchange/CHANGELOG.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md b/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md index 4e1609152..94a8e2434 100644 --- a/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md +++ b/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md @@ -1,8 +1,11 @@ ## DT Exchange Flutter Mediation Adapter Changelog -#### Version 1.3.2 (In progress) -- Updated minimum Flutter version to 3.35.1 -- Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 +#### Version 1.3.2 +* Updated minimum Flutter version to 3.35.1 +* Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 +* Supports [DT Exchange Android adapter version 8.4.0.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/dtexchange/CHANGELOG.md#version-8401). +* Supports [DT Exchange iOS adapter version 8.4.2.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/DTExchange/CHANGELOG.md#version-8420). +* Built and tested with the Google Mobile Ads Flutter Plugin version 7.0.0. #### Version 1.3.1 * Supports [DT Exchange Android adapter version 8.4.0.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/dtexchange/CHANGELOG.md#version-8401). From 3e3aa2b2542050ce79e6d36e848b2811aaca8b24 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Wed, 18 Feb 2026 17:27:54 -0800 Subject: [PATCH 139/251] Update ironSource Flutter Adapter to version 2.2.0 PiperOrigin-RevId: 872115906 --- packages/mediation/gma_mediation_ironsource/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_ironsource/CHANGELOG.md b/packages/mediation/gma_mediation_ironsource/CHANGELOG.md index a8e032251..9823d13f9 100644 --- a/packages/mediation/gma_mediation_ironsource/CHANGELOG.md +++ b/packages/mediation/gma_mediation_ironsource/CHANGELOG.md @@ -1,6 +1,9 @@ ## ironSource Flutter Mediation Adapter Changelog -#### Version 2.2.0 (In progress) +#### Version 2.2.0 +- Supports [ironSource Android adapter version 9.1.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/ironsource/CHANGELOG.md#version-9100). +- Supports [ironSource iOS adapter version 9.2.0.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/IronSource/CHANGELOG.md#version-91000). +- Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 2.1.0 - Supports [ironSource Android adapter version 9.1.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/ironsource/CHANGELOG.md#version-9100). From 576a3b7acccaa321ce7664829a86eb0babc7c6a4 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Thu, 19 Feb 2026 10:11:19 -0800 Subject: [PATCH 140/251] Updating BidMachine Flutter mediation plugin to support the latest adapters (3.5.1.1, 3.5.1.2) PiperOrigin-RevId: 872452923 --- packages/mediation/gma_mediation_bidmachine/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_bidmachine/android/build.gradle | 4 ++-- .../ios/gma_mediation_bidmachine.podspec | 4 ++-- packages/mediation/gma_mediation_bidmachine/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md b/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md index 99e1eb2ad..e63dd391f 100644 --- a/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md +++ b/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md @@ -1,5 +1,7 @@ ## BidMachine Flutter Mediation Adapter Changelog +#### Version 1.3.2 (In progress) + #### Version 1.3.1 - Supports [BidMachine Android adapter version 3.5.1.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/bidmachine/CHANGELOG.md#version-3501). - Supports [BidMachine iOS adapter version 3.5.1.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/BidMachine/CHANGELOG.md#version-3501). diff --git a/packages/mediation/gma_mediation_bidmachine/android/build.gradle b/packages/mediation/gma_mediation_bidmachine/android/build.gradle index b11bc53ad..7bc435572 100644 --- a/packages/mediation/gma_mediation_bidmachine/android/build.gradle +++ b/packages/mediation/gma_mediation_bidmachine/android/build.gradle @@ -1,5 +1,5 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_bidmachine" -version = "1.3.1" +version = "1.3.2" buildscript { ext.kotlin_version = "2.2.21" @@ -25,7 +25,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "3.5.1.0" + stringVersion = "3.5.1.1" } android { diff --git a/packages/mediation/gma_mediation_bidmachine/ios/gma_mediation_bidmachine.podspec b/packages/mediation/gma_mediation_bidmachine/ios/gma_mediation_bidmachine.podspec index 7abc81a93..b2597609b 100644 --- a/packages/mediation/gma_mediation_bidmachine/ios/gma_mediation_bidmachine.podspec +++ b/packages/mediation/gma_mediation_bidmachine/ios/gma_mediation_bidmachine.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_bidmachine' - s.version = '1.3.1' + s.version = '1.3.2' s.summary = 'Google Mobile Ads Mediation of BidMachine.' s.description = <<-DESC Mediation Adapter for BidMachine to use with Google Mobile Ads. @@ -11,7 +11,7 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationBidMachine', '~> 3.5.1.0' + s.dependency 'GoogleMobileAdsMediationBidMachine', '~> 3.5.1.2' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_bidmachine/pubspec.yaml b/packages/mediation/gma_mediation_bidmachine/pubspec.yaml index 954ebc265..b39f5427e 100644 --- a/packages/mediation/gma_mediation_bidmachine/pubspec.yaml +++ b/packages/mediation/gma_mediation_bidmachine/pubspec.yaml @@ -1,7 +1,7 @@ name: gma_mediation_bidmachine description: 'Mediation Adapter that enables sending ad requests to the BidMachine ad network using the google_mobile_ads plugin.' -version: 1.3.1 +version: 1.3.2 environment: sdk: '>=3.9.0 <4.0.0' flutter: '>=3.35.1' From 2eca95d2b0da61144b2729827760aeffb53b0bab Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Thu, 19 Feb 2026 10:15:25 -0800 Subject: [PATCH 141/251] Updating Moloco Flutter mediation plugin to support the latest adapters (4.5.0.0, 4.3.0.2) PiperOrigin-RevId: 872454690 --- packages/mediation/gma_mediation_moloco/CHANGELOG.md | 2 ++ packages/mediation/gma_mediation_moloco/android/build.gradle | 4 ++-- .../gma_mediation_moloco/ios/gma_mediation_moloco.podspec | 4 ++-- packages/mediation/gma_mediation_moloco/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_moloco/CHANGELOG.md b/packages/mediation/gma_mediation_moloco/CHANGELOG.md index 5d3143aa0..54ef23f60 100644 --- a/packages/mediation/gma_mediation_moloco/CHANGELOG.md +++ b/packages/mediation/gma_mediation_moloco/CHANGELOG.md @@ -1,5 +1,7 @@ ## Moloco Flutter Mediation Adapter Changelog +#### Version 3.3.0 (In progress) + #### Version 3.2.0 - Supports [Moloco Android adapter version 4.4.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/moloco/CHANGELOG.md#version-4400). - Supports [Moloco iOS adapter version 4.2.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Moloco/CHANGELOG.md#version-4200). diff --git a/packages/mediation/gma_mediation_moloco/android/build.gradle b/packages/mediation/gma_mediation_moloco/android/build.gradle index b596485e6..e54d37629 100644 --- a/packages/mediation/gma_mediation_moloco/android/build.gradle +++ b/packages/mediation/gma_mediation_moloco/android/build.gradle @@ -1,5 +1,5 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_moloco" -version = "3.2.0" +version = "3.3.0" buildscript { ext.kotlin_version = "2.2.21" @@ -25,7 +25,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "4.4.0.0" + stringVersion = "4.5.0.0" } android { diff --git a/packages/mediation/gma_mediation_moloco/ios/gma_mediation_moloco.podspec b/packages/mediation/gma_mediation_moloco/ios/gma_mediation_moloco.podspec index f9134d5e3..e78801d43 100644 --- a/packages/mediation/gma_mediation_moloco/ios/gma_mediation_moloco.podspec +++ b/packages/mediation/gma_mediation_moloco/ios/gma_mediation_moloco.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_moloco' - s.version = '3.2.0' + s.version = '3.3.0' s.summary = 'Google Mobile Ads Mediation of Moloco.' s.description = <<-DESC Mediation Adapter for Moloco to use with Google Mobile Ads. @@ -11,7 +11,7 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationMoloco', '~> 4.2.0.0' + s.dependency 'GoogleMobileAdsMediationMoloco', '~> 4.3.0.2' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_moloco/pubspec.yaml b/packages/mediation/gma_mediation_moloco/pubspec.yaml index 3c335d453..b120c4b85 100644 --- a/packages/mediation/gma_mediation_moloco/pubspec.yaml +++ b/packages/mediation/gma_mediation_moloco/pubspec.yaml @@ -1,7 +1,7 @@ name: gma_mediation_moloco description: 'Mediation Adapter that enables sending ad requests to the Moloco ad network using the google_mobile_ads plugin.' -version: 3.2.0 +version: 3.3.0 environment: sdk: '>=3.9.0 <4.0.0' flutter: '>=3.35.1' From 8a11e6d293f92f491ccf7e08d49a5c4cab28baa6 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Thu, 19 Feb 2026 10:15:55 -0800 Subject: [PATCH 142/251] Updating Chartboost Flutter mediation plugin to support the latest adapters (9.11.1.0, 9.11.0.3) PiperOrigin-RevId: 872454901 --- packages/mediation/gma_mediation_chartboost/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_chartboost/android/build.gradle | 4 ++-- .../ios/gma_mediation_chartboost.podspec | 4 ++-- packages/mediation/gma_mediation_chartboost/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_chartboost/CHANGELOG.md b/packages/mediation/gma_mediation_chartboost/CHANGELOG.md index 2558d861b..14af4cee1 100644 --- a/packages/mediation/gma_mediation_chartboost/CHANGELOG.md +++ b/packages/mediation/gma_mediation_chartboost/CHANGELOG.md @@ -1,5 +1,7 @@ ## Chartboost Flutter Mediation Adapter Changelog +#### Version 1.4.1 (In progress) + #### Version 1.4.0 - Updated minimum Flutter version to 3.35.1 - Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 diff --git a/packages/mediation/gma_mediation_chartboost/android/build.gradle b/packages/mediation/gma_mediation_chartboost/android/build.gradle index 58b9ee371..1c80f27c6 100644 --- a/packages/mediation/gma_mediation_chartboost/android/build.gradle +++ b/packages/mediation/gma_mediation_chartboost/android/build.gradle @@ -1,5 +1,5 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_chartboost" -version = "1.4.0" +version = "1.4.1" buildscript { ext.kotlin_version = "2.2.21" @@ -28,7 +28,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "9.11.0.1" + stringVersion = "9.11.1.0" } android { diff --git a/packages/mediation/gma_mediation_chartboost/ios/gma_mediation_chartboost.podspec b/packages/mediation/gma_mediation_chartboost/ios/gma_mediation_chartboost.podspec index 16fa6cbd4..a321bb4ce 100644 --- a/packages/mediation/gma_mediation_chartboost/ios/gma_mediation_chartboost.podspec +++ b/packages/mediation/gma_mediation_chartboost/ios/gma_mediation_chartboost.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_chartboost' - s.version = '1.4.0' + s.version = '1.4.1' s.summary = 'Google Mobile Ads Mediation of Chartboost.' s.description = <<-DESC Mediation Adapter for Chartboost to use with Google Mobile Ads. @@ -11,7 +11,7 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationChartboost', '~>9.11.0.1' + s.dependency 'GoogleMobileAdsMediationChartboost', '~>9.11.0.3' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_chartboost/pubspec.yaml b/packages/mediation/gma_mediation_chartboost/pubspec.yaml index 66c315a25..dc6850ad1 100644 --- a/packages/mediation/gma_mediation_chartboost/pubspec.yaml +++ b/packages/mediation/gma_mediation_chartboost/pubspec.yaml @@ -1,7 +1,7 @@ name: gma_mediation_chartboost description: 'Mediation Adapter that enables sending ad requests to the Chartboost ad network using the google_mobile_ads plugin.' -version: 1.4.0 +version: 1.4.1 environment: sdk: '>=3.9.0 <4.0.0' flutter: '>=3.35.1' From addb24ddb87c27f0abeff5482b89b4f5a384625c Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Thu, 19 Feb 2026 10:16:11 -0800 Subject: [PATCH 143/251] Updating PubMatic Flutter mediation plugin to support the latest adapters (4.12.0.0, 4.12.0.0) PiperOrigin-RevId: 872455011 --- packages/mediation/gma_mediation_pubmatic/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_pubmatic/android/build.gradle | 4 ++-- .../gma_mediation_pubmatic/ios/gma_mediation_pubmatic.podspec | 4 ++-- packages/mediation/gma_mediation_pubmatic/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md b/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md index 47a3ba736..a63d549b0 100644 --- a/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md +++ b/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md @@ -1,5 +1,7 @@ ## Pubmatic Flutter Mediation Adapter Changelog +#### Version 1.6.0 (In progress) + #### Version 1.5.0 - Updated minimum Flutter version to 3.35.1 - Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 diff --git a/packages/mediation/gma_mediation_pubmatic/android/build.gradle b/packages/mediation/gma_mediation_pubmatic/android/build.gradle index 191cecea9..52750da02 100644 --- a/packages/mediation/gma_mediation_pubmatic/android/build.gradle +++ b/packages/mediation/gma_mediation_pubmatic/android/build.gradle @@ -1,5 +1,5 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_pubmatic" -version = "1.5.0" +version = "1.6.0" buildscript { ext.kotlin_version = "2.2.21" @@ -25,7 +25,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "4.11.0.1" + stringVersion = "4.12.0.0" } android { diff --git a/packages/mediation/gma_mediation_pubmatic/ios/gma_mediation_pubmatic.podspec b/packages/mediation/gma_mediation_pubmatic/ios/gma_mediation_pubmatic.podspec index dce60a20d..80092e44a 100644 --- a/packages/mediation/gma_mediation_pubmatic/ios/gma_mediation_pubmatic.podspec +++ b/packages/mediation/gma_mediation_pubmatic/ios/gma_mediation_pubmatic.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_pubmatic' - s.version = '1.5.0' + s.version = '1.6.0' s.summary = 'Google Mobile Ads Mediation of Pubmatic.' s.description = <<-DESC Mediation Adapter for Pubmatic to use with Google Mobile Ads. @@ -11,7 +11,7 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationPubMatic', '~> 4.11.0.1' + s.dependency 'GoogleMobileAdsMediationPubMatic', '~> 4.12.0.0' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_pubmatic/pubspec.yaml b/packages/mediation/gma_mediation_pubmatic/pubspec.yaml index 7c8914d0c..065d77c44 100644 --- a/packages/mediation/gma_mediation_pubmatic/pubspec.yaml +++ b/packages/mediation/gma_mediation_pubmatic/pubspec.yaml @@ -1,7 +1,7 @@ name: gma_mediation_pubmatic description: 'Mediation Adapter that enables sending ad requests to the Pubmatic ad network using the google_mobile_ads plugin.' -version: 1.5.0 +version: 1.6.0 environment: sdk: '>=3.9.0 <4.0.0' flutter: '>=3.35.1' From 570f99fc8327e13d8d6c204564ef5969f1c62b6e Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Thu, 19 Feb 2026 10:16:51 -0800 Subject: [PATCH 144/251] Updating Pangle Flutter mediation plugin to support the latest adapters (7.8.5.9.0, 7.8.5.8.2) PiperOrigin-RevId: 872455269 --- packages/mediation/gma_mediation_pangle/CHANGELOG.md | 2 ++ packages/mediation/gma_mediation_pangle/android/build.gradle | 4 ++-- .../gma_mediation_pangle/ios/gma_mediation_pangle.podspec | 4 ++-- packages/mediation/gma_mediation_pangle/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_pangle/CHANGELOG.md b/packages/mediation/gma_mediation_pangle/CHANGELOG.md index c872d0f8c..da332eec5 100644 --- a/packages/mediation/gma_mediation_pangle/CHANGELOG.md +++ b/packages/mediation/gma_mediation_pangle/CHANGELOG.md @@ -1,5 +1,7 @@ ## Pangle Flutter Mediation Adapter Changelog +#### Version 3.5.4 (In progress) + #### Version 3.5.3 - Supports [Pangle Android adapter version 7.8.5.2.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/pangle/CHANGELOG.md#version-78520). - Supports [Pangle iOS adapter version 7.8.5.6.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Pangle/CHANGELOG.md#version-78560). diff --git a/packages/mediation/gma_mediation_pangle/android/build.gradle b/packages/mediation/gma_mediation_pangle/android/build.gradle index 70cf96d9d..8e9a890a6 100644 --- a/packages/mediation/gma_mediation_pangle/android/build.gradle +++ b/packages/mediation/gma_mediation_pangle/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_pangle' -version = "3.5.3" +version = "3.5.4" buildscript { ext.kotlin_version = '2.2.21' @@ -28,7 +28,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "7.8.5.2.0" + stringVersion = "7.8.5.9.0" } android { diff --git a/packages/mediation/gma_mediation_pangle/ios/gma_mediation_pangle.podspec b/packages/mediation/gma_mediation_pangle/ios/gma_mediation_pangle.podspec index d693a1c0e..008dbc231 100644 --- a/packages/mediation/gma_mediation_pangle/ios/gma_mediation_pangle.podspec +++ b/packages/mediation/gma_mediation_pangle/ios/gma_mediation_pangle.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_pangle' - s.version = '3.5.3' + s.version = '3.5.4' s.summary = 'Google Mobile Ads Mediation of Pangle.' s.description = <<-DESC Mediation Adapter for Pangle to use with Google Mobile Ads. @@ -16,7 +16,7 @@ Pod::Spec.new do |s| s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationPangle', '~> 7.8.5.6.0' + s.dependency 'GoogleMobileAdsMediationPangle', '~> 7.8.5.8.2' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_pangle/pubspec.yaml b/packages/mediation/gma_mediation_pangle/pubspec.yaml index a4ab8b825..78d2db106 100644 --- a/packages/mediation/gma_mediation_pangle/pubspec.yaml +++ b/packages/mediation/gma_mediation_pangle/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_pangle description: "Mediation Adapter that enables sending ad requests to the Pangle ad network using the google_mobile_ads plugin." -version: 3.5.3 +version: 3.5.4 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_pangle environment: From 662fd7c96fcc122c33bc5fff5ae12cee88ca1f8c Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Thu, 19 Feb 2026 10:17:00 -0800 Subject: [PATCH 145/251] Updating MyTarget Flutter mediation plugin to support the latest adapters (5.27.4.1, 5.39.1.0) PiperOrigin-RevId: 872455318 --- packages/mediation/gma_mediation_mytarget/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_mytarget/android/build.gradle | 4 ++-- .../gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec | 4 ++-- packages/mediation/gma_mediation_mytarget/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_mytarget/CHANGELOG.md b/packages/mediation/gma_mediation_mytarget/CHANGELOG.md index e5a01251f..07a21aff5 100644 --- a/packages/mediation/gma_mediation_mytarget/CHANGELOG.md +++ b/packages/mediation/gma_mediation_mytarget/CHANGELOG.md @@ -1,5 +1,7 @@ ## myTarget Flutter Mediation Adapter Changelog +#### Version 1.8.0 (In progress) + #### Version 1.7.1 (In progress) - Updated minimum Flutter version to 3.35.1 - Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 diff --git a/packages/mediation/gma_mediation_mytarget/android/build.gradle b/packages/mediation/gma_mediation_mytarget/android/build.gradle index e82676f06..9f92f0ef2 100644 --- a/packages/mediation/gma_mediation_mytarget/android/build.gradle +++ b/packages/mediation/gma_mediation_mytarget/android/build.gradle @@ -1,5 +1,5 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_mytarget" -version = "1.7.1" +version = "1.8.0" buildscript { ext.kotlin_version = "2.2.21" @@ -25,7 +25,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "5.27.4.0" + stringVersion = "5.27.4.1" } android { diff --git a/packages/mediation/gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec b/packages/mediation/gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec index 2d98f6a71..3c02f24ba 100644 --- a/packages/mediation/gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec +++ b/packages/mediation/gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_mytarget' - s.version = '1.7.1' + s.version = '1.8.0' s.summary = 'Google Mobile Ads Mediation of mytarget.' s.description = <<-DESC Mediation Adapter for mytarget to use with Google Mobile Ads. @@ -11,7 +11,7 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationMyTarget', '~>5.38.0.0' + s.dependency 'GoogleMobileAdsMediationMyTarget', '~>5.39.1.0' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_mytarget/pubspec.yaml b/packages/mediation/gma_mediation_mytarget/pubspec.yaml index 4441856a4..026feddf6 100644 --- a/packages/mediation/gma_mediation_mytarget/pubspec.yaml +++ b/packages/mediation/gma_mediation_mytarget/pubspec.yaml @@ -1,7 +1,7 @@ name: gma_mediation_mytarget description: 'Mediation Adapter that enables sending ad requests to the mytarget ad network using the google_mobile_ads plugin.' -version: 1.7.1 +version: 1.8.0 environment: sdk: ^3.9.0 flutter: '>=3.35.1' From 0150e820ecfaec3d293d639569f4a62087097fa3 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Thu, 19 Feb 2026 10:17:19 -0800 Subject: [PATCH 146/251] Updating Line Flutter mediation plugin to support the latest adapters (3.0.1.1, 3.0.0.1) PiperOrigin-RevId: 872455446 --- packages/mediation/gma_mediation_line/CHANGELOG.md | 2 ++ packages/mediation/gma_mediation_line/android/build.gradle | 4 ++-- .../gma_mediation_line/ios/gma_mediation_line.podspec | 4 ++-- packages/mediation/gma_mediation_line/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_line/CHANGELOG.md b/packages/mediation/gma_mediation_line/CHANGELOG.md index f3b8c53ac..5fda0d384 100644 --- a/packages/mediation/gma_mediation_line/CHANGELOG.md +++ b/packages/mediation/gma_mediation_line/CHANGELOG.md @@ -1,5 +1,7 @@ ## Line Flutter Mediation Adapter Changelog +#### Version 2.0.1 (In progress) + #### Version 2.0.0 - Updated minimum Flutter version to 3.35.1 - Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 diff --git a/packages/mediation/gma_mediation_line/android/build.gradle b/packages/mediation/gma_mediation_line/android/build.gradle index 3a691e736..81759d501 100644 --- a/packages/mediation/gma_mediation_line/android/build.gradle +++ b/packages/mediation/gma_mediation_line/android/build.gradle @@ -1,5 +1,5 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_line" -version = "2.0.0" +version = "2.0.1" buildscript { ext.kotlin_version = "2.2.21" @@ -25,7 +25,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "3.0.1.0" + stringVersion = "3.0.1.1" } android { diff --git a/packages/mediation/gma_mediation_line/ios/gma_mediation_line.podspec b/packages/mediation/gma_mediation_line/ios/gma_mediation_line.podspec index 2ca079150..93a657059 100644 --- a/packages/mediation/gma_mediation_line/ios/gma_mediation_line.podspec +++ b/packages/mediation/gma_mediation_line/ios/gma_mediation_line.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_line' - s.version = '2.0.0' + s.version = '2.0.1' s.summary = 'Google Mobile Ads Mediation of Line.' s.description = <<-DESC Mediation Adapter for Line to use with Google Mobile Ads. @@ -11,7 +11,7 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationLine', '~>3.0.0.0' + s.dependency 'GoogleMobileAdsMediationLine', '~>3.0.0.1' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_line/pubspec.yaml b/packages/mediation/gma_mediation_line/pubspec.yaml index 9167bce17..fee554c33 100644 --- a/packages/mediation/gma_mediation_line/pubspec.yaml +++ b/packages/mediation/gma_mediation_line/pubspec.yaml @@ -1,7 +1,7 @@ name: gma_mediation_line description: 'Mediation Adapter that enables sending ad requests to the Line ad network using the google_mobile_ads plugin.' -version: 2.0.0 +version: 2.0.1 environment: sdk: '>=3.9.0 <4.0.0' flutter: '>=3.35.1' From 3872e64a7328b597652387aa234b28a8e2212c44 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Thu, 19 Feb 2026 10:17:20 -0800 Subject: [PATCH 147/251] Updating Mintegral Flutter mediation plugin to support the latest adapters (17.0.81.0, 8.0.7.0) PiperOrigin-RevId: 872455454 --- packages/mediation/gma_mediation_mintegral/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_mintegral/android/build.gradle | 4 ++-- .../ios/gma_mediation_mintegral.podspec | 4 ++-- packages/mediation/gma_mediation_mintegral/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_mintegral/CHANGELOG.md b/packages/mediation/gma_mediation_mintegral/CHANGELOG.md index e48939559..be1f00e44 100644 --- a/packages/mediation/gma_mediation_mintegral/CHANGELOG.md +++ b/packages/mediation/gma_mediation_mintegral/CHANGELOG.md @@ -1,5 +1,7 @@ ## Mintegral Flutter Mediation Adapter Changelog +#### Version 2.0.4 (In progress) + #### Version 2.0.3 - Supports [Mintegral Android adapter version 17.0.61.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/mintegral/CHANGELOG.md#version-170610). - Supports [Mintegral iOS adapter version 8.0.5.1](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Mintegral/CHANGELOG.md#version-8051). diff --git a/packages/mediation/gma_mediation_mintegral/android/build.gradle b/packages/mediation/gma_mediation_mintegral/android/build.gradle index eb48dc60c..b378e6118 100644 --- a/packages/mediation/gma_mediation_mintegral/android/build.gradle +++ b/packages/mediation/gma_mediation_mintegral/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_mintegral' -version = "2.0.3" +version = "2.0.4" buildscript { ext.kotlin_version = '2.2.21' @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "17.0.61.0" + stringVersion = "17.0.81.0" } android { diff --git a/packages/mediation/gma_mediation_mintegral/ios/gma_mediation_mintegral.podspec b/packages/mediation/gma_mediation_mintegral/ios/gma_mediation_mintegral.podspec index 796440836..183286d38 100644 --- a/packages/mediation/gma_mediation_mintegral/ios/gma_mediation_mintegral.podspec +++ b/packages/mediation/gma_mediation_mintegral/ios/gma_mediation_mintegral.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_mintegral' - s.version = '2.0.3' + s.version = '2.0.4' s.summary = 'Google Mobile Ads Mediation of Mintegral.' s.description = <<-DESC Mediation Adapter for Mintegral to use with Google Mobile Ads. @@ -16,7 +16,7 @@ Mediation Adapter for Mintegral to use with Google Mobile Ads. s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationMintegral', '~>8.0.5.1' + s.dependency 'GoogleMobileAdsMediationMintegral', '~>8.0.7.0' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_mintegral/pubspec.yaml b/packages/mediation/gma_mediation_mintegral/pubspec.yaml index 91084b10c..8be060165 100644 --- a/packages/mediation/gma_mediation_mintegral/pubspec.yaml +++ b/packages/mediation/gma_mediation_mintegral/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_mintegral description: "Mediation Adapter that enables sending ad requests to the Mintegral ad network using the google_mobile_ads plugin." -version: 2.0.3 +version: 2.0.4 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_mintegral environment: From 28f52b775f3e5415f60a443bfc8d04a1c10c5ac5 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Thu, 19 Feb 2026 10:27:34 -0800 Subject: [PATCH 148/251] Updating UnityAds Flutter mediation plugin to support the latest adapters (4.16.6.0, 4.16.6.0) PiperOrigin-RevId: 872459784 --- packages/mediation/gma_mediation_unity/CHANGELOG.md | 2 ++ packages/mediation/gma_mediation_unity/android/build.gradle | 4 ++-- .../gma_mediation_unity/ios/gma_mediation_unity.podspec | 4 ++-- packages/mediation/gma_mediation_unity/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_unity/CHANGELOG.md b/packages/mediation/gma_mediation_unity/CHANGELOG.md index 469bbbc4b..c54355959 100644 --- a/packages/mediation/gma_mediation_unity/CHANGELOG.md +++ b/packages/mediation/gma_mediation_unity/CHANGELOG.md @@ -1,5 +1,7 @@ ## Unity Ads Flutter Mediation Adapter Changelog +#### Version 1.6.5 (In progress) + #### Version 1.6.4 - Updated minimum Flutter version to 3.35.1 - Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 diff --git a/packages/mediation/gma_mediation_unity/android/build.gradle b/packages/mediation/gma_mediation_unity/android/build.gradle index b6f4e72d9..79b5fc8be 100644 --- a/packages/mediation/gma_mediation_unity/android/build.gradle +++ b/packages/mediation/gma_mediation_unity/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_unity' -version = "1.6.4" +version = "1.6.5" buildscript { ext.kotlin_version = '2.2.21' @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "4.16.5.0" + stringVersion = "4.16.6.0" } android { diff --git a/packages/mediation/gma_mediation_unity/ios/gma_mediation_unity.podspec b/packages/mediation/gma_mediation_unity/ios/gma_mediation_unity.podspec index 9390a2750..485f619f3 100644 --- a/packages/mediation/gma_mediation_unity/ios/gma_mediation_unity.podspec +++ b/packages/mediation/gma_mediation_unity/ios/gma_mediation_unity.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_unity' - s.version = '1.6.4' + s.version = '1.6.5' s.summary = 'Google Mobile Ads Mediation of Unity Ads.' s.description = <<-DESC Mediation Adapter for Unity Ads to use with Google Mobile Ads. @@ -16,7 +16,7 @@ Mediation Adapter for Unity Ads to use with Google Mobile Ads. s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationUnity', '~>4.16.5.0' + s.dependency 'GoogleMobileAdsMediationUnity', '~>4.16.6.0' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_unity/pubspec.yaml b/packages/mediation/gma_mediation_unity/pubspec.yaml index fbd84bda9..99f9d792c 100644 --- a/packages/mediation/gma_mediation_unity/pubspec.yaml +++ b/packages/mediation/gma_mediation_unity/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_unity description: "Mediation Adapter that enables sending ad requests to the Unity ad network using the google_mobile_ads plugin." -version: 1.6.4 +version: 1.6.5 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_unity environment: From 771ddcb0a951297cb1f49817421953d1c1a3974b Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Fri, 20 Feb 2026 12:17:24 -0800 Subject: [PATCH 149/251] Updating IronSource Flutter mediation plugin to support the latest adapters (9.3.0.0, 9.2.0.0.0) PiperOrigin-RevId: 873022090 --- packages/mediation/gma_mediation_ironsource/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_ironsource/android/build.gradle | 4 ++-- .../ios/gma_mediation_ironsource.podspec | 2 +- packages/mediation/gma_mediation_ironsource/pubspec.yaml | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/mediation/gma_mediation_ironsource/CHANGELOG.md b/packages/mediation/gma_mediation_ironsource/CHANGELOG.md index 9823d13f9..0f98b6e0a 100644 --- a/packages/mediation/gma_mediation_ironsource/CHANGELOG.md +++ b/packages/mediation/gma_mediation_ironsource/CHANGELOG.md @@ -1,5 +1,7 @@ ## ironSource Flutter Mediation Adapter Changelog +#### Version 2.3.0 (In progress) + #### Version 2.2.0 - Supports [ironSource Android adapter version 9.1.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/ironsource/CHANGELOG.md#version-9100). - Supports [ironSource iOS adapter version 9.2.0.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/IronSource/CHANGELOG.md#version-91000). diff --git a/packages/mediation/gma_mediation_ironsource/android/build.gradle b/packages/mediation/gma_mediation_ironsource/android/build.gradle index 1ba536545..6e7f9082a 100644 --- a/packages/mediation/gma_mediation_ironsource/android/build.gradle +++ b/packages/mediation/gma_mediation_ironsource/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_ironsource' -version = "2.2.0" +version = "2.3.0" buildscript { ext.kotlin_version = '2.2.21' @@ -28,7 +28,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "9.2.0.0" + stringVersion = "9.3.0.0" } android { diff --git a/packages/mediation/gma_mediation_ironsource/ios/gma_mediation_ironsource.podspec b/packages/mediation/gma_mediation_ironsource/ios/gma_mediation_ironsource.podspec index bd0aa04d2..608eabd03 100644 --- a/packages/mediation/gma_mediation_ironsource/ios/gma_mediation_ironsource.podspec +++ b/packages/mediation/gma_mediation_ironsource/ios/gma_mediation_ironsource.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_ironsource' - s.version = '2.2.0' + s.version = '2.3.0' s.summary = 'Google Mobile Ads Mediation of ironSource.' s.description = <<-DESC Mediation Adapter for ironSource to use with Google Mobile Ads. diff --git a/packages/mediation/gma_mediation_ironsource/pubspec.yaml b/packages/mediation/gma_mediation_ironsource/pubspec.yaml index fd28ccd85..720af5a39 100644 --- a/packages/mediation/gma_mediation_ironsource/pubspec.yaml +++ b/packages/mediation/gma_mediation_ironsource/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_ironsource description: "Mediation Adapter that enables sending ad requests to the ironSource ad network using the google_mobile_ads plugin." -version: 2.2.0 +version: 2.3.0 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_ironsource environment: From 5b1c523078251cbefa405ed7747be58bf26cf57d Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Fri, 20 Feb 2026 12:17:38 -0800 Subject: [PATCH 150/251] Updating DTExchange Flutter mediation plugin to support the latest adapters (8.4.2.1, 8.4.3.0) PiperOrigin-RevId: 873022192 --- packages/mediation/gma_mediation_dtexchange/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_dtexchange/android/build.gradle | 4 ++-- .../ios/gma_mediation_dtexchange.podspec | 4 ++-- packages/mediation/gma_mediation_dtexchange/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md b/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md index 94a8e2434..356c62635 100644 --- a/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md +++ b/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md @@ -1,5 +1,7 @@ ## DT Exchange Flutter Mediation Adapter Changelog +#### Version 1.3.3 (In progress) + #### Version 1.3.2 * Updated minimum Flutter version to 3.35.1 * Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 diff --git a/packages/mediation/gma_mediation_dtexchange/android/build.gradle b/packages/mediation/gma_mediation_dtexchange/android/build.gradle index 113c63d42..8c41d986e 100644 --- a/packages/mediation/gma_mediation_dtexchange/android/build.gradle +++ b/packages/mediation/gma_mediation_dtexchange/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_dtexchange' -version = "1.3.2" +version = "1.3.3" buildscript { ext.kotlin_version = '2.2.21' @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "8.4.1.0" + stringVersion = "8.4.2.1" } android { diff --git a/packages/mediation/gma_mediation_dtexchange/ios/gma_mediation_dtexchange.podspec b/packages/mediation/gma_mediation_dtexchange/ios/gma_mediation_dtexchange.podspec index b761daf55..d051bb4f2 100644 --- a/packages/mediation/gma_mediation_dtexchange/ios/gma_mediation_dtexchange.podspec +++ b/packages/mediation/gma_mediation_dtexchange/ios/gma_mediation_dtexchange.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_dtexchange' - s.version = '1.3.2' + s.version = '1.3.3' s.summary = 'Google Mobile Ads Mediation of DT Exchange.' s.description = <<-DESC Mediation Adapter for DT Exchange to use with Google Mobile Ads. @@ -16,7 +16,7 @@ Mediation Adapter for DT Exchange to use with Google Mobile Ads. s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationFyber', '~> 8.4.2.1' + s.dependency 'GoogleMobileAdsMediationFyber', '~> 8.4.3.0' s.platform = :ios, '13.0' s.static_framework = true # Flutter.framework does not contain a i386 slice. diff --git a/packages/mediation/gma_mediation_dtexchange/pubspec.yaml b/packages/mediation/gma_mediation_dtexchange/pubspec.yaml index 8fa897800..767c9104d 100644 --- a/packages/mediation/gma_mediation_dtexchange/pubspec.yaml +++ b/packages/mediation/gma_mediation_dtexchange/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_dtexchange description: "Mediation Adapter that enables sending ad requests to the DT Exchange ad network using the google_mobile_ads plugin." -version: 1.3.2 +version: 1.3.3 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_dtexchange environment: From 365c1966c304addba3e214653dca42e14050e758 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Tue, 24 Feb 2026 03:51:32 -0800 Subject: [PATCH 151/251] Update myTarget Flutter Adapter version to 1.7.1 PiperOrigin-RevId: 874525887 --- packages/mediation/gma_mediation_mytarget/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_mytarget/CHANGELOG.md b/packages/mediation/gma_mediation_mytarget/CHANGELOG.md index 07a21aff5..608c55b2b 100644 --- a/packages/mediation/gma_mediation_mytarget/CHANGELOG.md +++ b/packages/mediation/gma_mediation_mytarget/CHANGELOG.md @@ -2,9 +2,12 @@ #### Version 1.8.0 (In progress) -#### Version 1.7.1 (In progress) +#### Version 1.7.1 - Updated minimum Flutter version to 3.35.1 - Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 +* Supports [myTarget Android adapter version 5.27.4.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/mytarget/CHANGELOG.md#version-52740). +* Supports [myTarget iOS adapter version 5.38.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/MyTarget/CHANGELOG.md#version-53800). +* Built and tested with the Google Mobile Ads Flutter Plugin version 7.0.0. #### Version 1.7.0 * Supports [myTarget Android adapter version 5.27.4.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/mytarget/CHANGELOG.md#version-52740). From 64c02834d514fbbbd62aa44a49f92466043a404b Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Tue, 24 Feb 2026 04:02:34 -0800 Subject: [PATCH 152/251] Update Inmobi Flutter Adapter version to 2.0.1 PiperOrigin-RevId: 874529784 --- packages/mediation/gma_mediation_inmobi/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_inmobi/CHANGELOG.md b/packages/mediation/gma_mediation_inmobi/CHANGELOG.md index cabee9701..fea1ba6f1 100644 --- a/packages/mediation/gma_mediation_inmobi/CHANGELOG.md +++ b/packages/mediation/gma_mediation_inmobi/CHANGELOG.md @@ -1,8 +1,11 @@ ## InMobi Flutter Mediation Adapter Changelog -#### Version 2.0.1 (In progress) +#### Version 2.0.1 - Updated minimum Flutter version to 3.35.1 - Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 +* Supports [inMobi Android adapter version 11.1.0.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/inmobi/CHANGELOG.md#version-11101). +* Supports [inMobi iOS adapter version 11.1.0.1](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/InMobi/CHANGELOG.md#version-11101). +* Built and tested with the Google Mobile Ads Flutter Plugin version 7.0.0. #### Version 2.0.0 * Supports [inMobi Android adapter version 11.1.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/inmobi/CHANGELOG.md#version-11100). From b842ef1603c5f5f5bc5988deb015c25e549bb679 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Tue, 24 Feb 2026 04:18:37 -0800 Subject: [PATCH 153/251] Update Applovin Flutter Adapter version to 2.5.2 PiperOrigin-RevId: 874537035 --- packages/mediation/gma_mediation_applovin/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_applovin/CHANGELOG.md b/packages/mediation/gma_mediation_applovin/CHANGELOG.md index d7f4ab56a..ae18c9a42 100644 --- a/packages/mediation/gma_mediation_applovin/CHANGELOG.md +++ b/packages/mediation/gma_mediation_applovin/CHANGELOG.md @@ -1,8 +1,11 @@ ## AppLovin Flutter Mediation Adapter Changelog -#### Version 2.5.2 (In progress) +#### Version 2.5.2 - Updated minimum Flutter version to 3.35.1 - Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 +- Supports [AppLovin Android adapter version 13.5.1.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/applovin/CHANGELOG.md#version-13510). +- Supports [AppLovin iOS adapter version 13.5.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/AppLovin/CHANGELOG.md#version-13500). +* Built and tested with the Google Mobile Ads Flutter Plugin version 7.0.0. #### Version 2.5.1 - Supports [AppLovin Android adapter version 13.5.1.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/applovin/CHANGELOG.md#version-13510). From 6d2fe3811c8fd1530dd1830e038eec2bd475cfea Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 2 Mar 2026 10:46:02 -0800 Subject: [PATCH 154/251] Updating Pangle Flutter mediation plugin to support the latest adapters (7.9.0.9.0, 7.9.0.6.0) PiperOrigin-RevId: 877474093 --- packages/mediation/gma_mediation_pangle/CHANGELOG.md | 2 ++ packages/mediation/gma_mediation_pangle/android/build.gradle | 4 ++-- .../gma_mediation_pangle/ios/gma_mediation_pangle.podspec | 4 ++-- packages/mediation/gma_mediation_pangle/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_pangle/CHANGELOG.md b/packages/mediation/gma_mediation_pangle/CHANGELOG.md index da332eec5..d83071243 100644 --- a/packages/mediation/gma_mediation_pangle/CHANGELOG.md +++ b/packages/mediation/gma_mediation_pangle/CHANGELOG.md @@ -1,5 +1,7 @@ ## Pangle Flutter Mediation Adapter Changelog +#### Version 3.6.0 (In progress) + #### Version 3.5.4 (In progress) #### Version 3.5.3 diff --git a/packages/mediation/gma_mediation_pangle/android/build.gradle b/packages/mediation/gma_mediation_pangle/android/build.gradle index 8e9a890a6..615318400 100644 --- a/packages/mediation/gma_mediation_pangle/android/build.gradle +++ b/packages/mediation/gma_mediation_pangle/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_pangle' -version = "3.5.4" +version = "3.6.0" buildscript { ext.kotlin_version = '2.2.21' @@ -28,7 +28,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "7.8.5.9.0" + stringVersion = "7.9.0.9.0" } android { diff --git a/packages/mediation/gma_mediation_pangle/ios/gma_mediation_pangle.podspec b/packages/mediation/gma_mediation_pangle/ios/gma_mediation_pangle.podspec index 008dbc231..19b91b63a 100644 --- a/packages/mediation/gma_mediation_pangle/ios/gma_mediation_pangle.podspec +++ b/packages/mediation/gma_mediation_pangle/ios/gma_mediation_pangle.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_pangle' - s.version = '3.5.4' + s.version = '3.6.0' s.summary = 'Google Mobile Ads Mediation of Pangle.' s.description = <<-DESC Mediation Adapter for Pangle to use with Google Mobile Ads. @@ -16,7 +16,7 @@ Pod::Spec.new do |s| s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationPangle', '~> 7.8.5.8.2' + s.dependency 'GoogleMobileAdsMediationPangle', '~> 7.9.0.6.0' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_pangle/pubspec.yaml b/packages/mediation/gma_mediation_pangle/pubspec.yaml index 78d2db106..44fd06786 100644 --- a/packages/mediation/gma_mediation_pangle/pubspec.yaml +++ b/packages/mediation/gma_mediation_pangle/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_pangle description: "Mediation Adapter that enables sending ad requests to the Pangle ad network using the google_mobile_ads plugin." -version: 3.5.4 +version: 3.6.0 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_pangle environment: From a1a392fcb66ac3e64f2a454ecd88969a9f87cf57 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 2 Mar 2026 10:54:58 -0800 Subject: [PATCH 155/251] Updating BidMachine Flutter mediation plugin to support the latest adapters (3.5.1.2, 3.5.1.2) PiperOrigin-RevId: 877478346 --- packages/mediation/gma_mediation_bidmachine/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_bidmachine/android/build.gradle | 4 ++-- .../ios/gma_mediation_bidmachine.podspec | 2 +- packages/mediation/gma_mediation_bidmachine/pubspec.yaml | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md b/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md index e63dd391f..04f86c445 100644 --- a/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md +++ b/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md @@ -1,5 +1,7 @@ ## BidMachine Flutter Mediation Adapter Changelog +#### Version 1.3.3 (In progress) + #### Version 1.3.2 (In progress) #### Version 1.3.1 diff --git a/packages/mediation/gma_mediation_bidmachine/android/build.gradle b/packages/mediation/gma_mediation_bidmachine/android/build.gradle index 7bc435572..ebc6e93d4 100644 --- a/packages/mediation/gma_mediation_bidmachine/android/build.gradle +++ b/packages/mediation/gma_mediation_bidmachine/android/build.gradle @@ -1,5 +1,5 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_bidmachine" -version = "1.3.2" +version = "1.3.3" buildscript { ext.kotlin_version = "2.2.21" @@ -25,7 +25,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "3.5.1.1" + stringVersion = "3.5.1.2" } android { diff --git a/packages/mediation/gma_mediation_bidmachine/ios/gma_mediation_bidmachine.podspec b/packages/mediation/gma_mediation_bidmachine/ios/gma_mediation_bidmachine.podspec index b2597609b..41e50c58a 100644 --- a/packages/mediation/gma_mediation_bidmachine/ios/gma_mediation_bidmachine.podspec +++ b/packages/mediation/gma_mediation_bidmachine/ios/gma_mediation_bidmachine.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_bidmachine' - s.version = '1.3.2' + s.version = '1.3.3' s.summary = 'Google Mobile Ads Mediation of BidMachine.' s.description = <<-DESC Mediation Adapter for BidMachine to use with Google Mobile Ads. diff --git a/packages/mediation/gma_mediation_bidmachine/pubspec.yaml b/packages/mediation/gma_mediation_bidmachine/pubspec.yaml index b39f5427e..8f775c0db 100644 --- a/packages/mediation/gma_mediation_bidmachine/pubspec.yaml +++ b/packages/mediation/gma_mediation_bidmachine/pubspec.yaml @@ -1,7 +1,7 @@ name: gma_mediation_bidmachine description: 'Mediation Adapter that enables sending ad requests to the BidMachine ad network using the google_mobile_ads plugin.' -version: 1.3.2 +version: 1.3.3 environment: sdk: '>=3.9.0 <4.0.0' flutter: '>=3.35.1' From 5ebc4110861b25dcd8dc7e0df6bbdfc124e816f5 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 2 Mar 2026 10:55:10 -0800 Subject: [PATCH 156/251] Updating InMobi Flutter mediation plugin to support the latest adapters (11.1.0.1, 11.1.1.1) PiperOrigin-RevId: 877478448 --- packages/mediation/gma_mediation_inmobi/CHANGELOG.md | 2 ++ packages/mediation/gma_mediation_inmobi/android/build.gradle | 2 +- .../gma_mediation_inmobi/ios/gma_mediation_inmobi.podspec | 4 ++-- packages/mediation/gma_mediation_inmobi/pubspec.yaml | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/mediation/gma_mediation_inmobi/CHANGELOG.md b/packages/mediation/gma_mediation_inmobi/CHANGELOG.md index fea1ba6f1..307c2fe8c 100644 --- a/packages/mediation/gma_mediation_inmobi/CHANGELOG.md +++ b/packages/mediation/gma_mediation_inmobi/CHANGELOG.md @@ -1,5 +1,7 @@ ## InMobi Flutter Mediation Adapter Changelog +#### Version 2.0.2 (In progress) + #### Version 2.0.1 - Updated minimum Flutter version to 3.35.1 - Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 diff --git a/packages/mediation/gma_mediation_inmobi/android/build.gradle b/packages/mediation/gma_mediation_inmobi/android/build.gradle index 7dddf67f5..c02ccee11 100644 --- a/packages/mediation/gma_mediation_inmobi/android/build.gradle +++ b/packages/mediation/gma_mediation_inmobi/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_inmobi' -version = "2.0.1" +version = "2.0.2" buildscript { ext.kotlin_version = '2.2.21' diff --git a/packages/mediation/gma_mediation_inmobi/ios/gma_mediation_inmobi.podspec b/packages/mediation/gma_mediation_inmobi/ios/gma_mediation_inmobi.podspec index 61ec26544..91e480e95 100644 --- a/packages/mediation/gma_mediation_inmobi/ios/gma_mediation_inmobi.podspec +++ b/packages/mediation/gma_mediation_inmobi/ios/gma_mediation_inmobi.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_inmobi' - s.version = '2.0.1' + s.version = '2.0.2' s.summary = 'Google Mobile Ads Mediation of InMobi.' s.description = <<-DESC Mediation Adapter for InMobi to use with Google Mobile Ads. @@ -16,7 +16,7 @@ Mediation Adapter for InMobi to use with Google Mobile Ads. s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationInMobi', '~> 11.1.0.1' + s.dependency 'GoogleMobileAdsMediationInMobi', '~> 11.1.1.1' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_inmobi/pubspec.yaml b/packages/mediation/gma_mediation_inmobi/pubspec.yaml index 220f3e3af..6d1ecad09 100644 --- a/packages/mediation/gma_mediation_inmobi/pubspec.yaml +++ b/packages/mediation/gma_mediation_inmobi/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_inmobi description: "Mediation Adapter that enables sending ad requests to the InMobi ad network using the google_mobile_ads plugin." -version: 2.0.1 +version: 2.0.2 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_inmobi environment: From 12f8597befee00aecb0f3ffa6bec4fcc36271364 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 2 Mar 2026 10:55:34 -0800 Subject: [PATCH 157/251] Updating Maio Flutter mediation plugin to support the latest adapters (2.0.8.0, 2.2.0.3) PiperOrigin-RevId: 877478650 --- packages/mediation/gma_mediation_maio/CHANGELOG.md | 2 ++ packages/mediation/gma_mediation_maio/android/build.gradle | 2 +- .../gma_mediation_maio/ios/gma_mediation_maio.podspec | 4 ++-- packages/mediation/gma_mediation_maio/pubspec.yaml | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/mediation/gma_mediation_maio/CHANGELOG.md b/packages/mediation/gma_mediation_maio/CHANGELOG.md index 8463f29df..71e654021 100644 --- a/packages/mediation/gma_mediation_maio/CHANGELOG.md +++ b/packages/mediation/gma_mediation_maio/CHANGELOG.md @@ -1,5 +1,7 @@ ## maio Flutter Mediation Adapter Changelog +#### Version 1.1.3 (In progress) + #### Version 1.1.2 - Updated minimum Flutter version to 3.35.1 - Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 diff --git a/packages/mediation/gma_mediation_maio/android/build.gradle b/packages/mediation/gma_mediation_maio/android/build.gradle index 60b73a019..c2d14b08f 100644 --- a/packages/mediation/gma_mediation_maio/android/build.gradle +++ b/packages/mediation/gma_mediation_maio/android/build.gradle @@ -1,5 +1,5 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_maio" -version = "1.1.2" +version = "1.1.3" buildscript { ext.kotlin_version = "2.2.21" diff --git a/packages/mediation/gma_mediation_maio/ios/gma_mediation_maio.podspec b/packages/mediation/gma_mediation_maio/ios/gma_mediation_maio.podspec index 37109114a..5d0829a01 100644 --- a/packages/mediation/gma_mediation_maio/ios/gma_mediation_maio.podspec +++ b/packages/mediation/gma_mediation_maio/ios/gma_mediation_maio.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_maio' - s.version = '1.1.2' + s.version = '1.1.3' s.summary = 'Google Mobile Ads Mediation of maio.' s.description = <<-DESC Mediation Adapter for maio to use with Google Mobile Ads. @@ -11,7 +11,7 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationMaio', '~>2.2.0.1' + s.dependency 'GoogleMobileAdsMediationMaio', '~>2.2.0.3' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_maio/pubspec.yaml b/packages/mediation/gma_mediation_maio/pubspec.yaml index 31e473be6..ae1086d56 100644 --- a/packages/mediation/gma_mediation_maio/pubspec.yaml +++ b/packages/mediation/gma_mediation_maio/pubspec.yaml @@ -1,7 +1,7 @@ name: gma_mediation_maio description: 'Mediation Adapter that enables sending ad requests to the maio ad network using the google_mobile_ads plugin.' -version: 1.1.2 +version: 1.1.3 environment: sdk: '>=3.9.0 <4.0.0' flutter: '>=3.35.1' From f0a6145eb7289d58ec1f891efb8cf026cf7d3ee5 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 2 Mar 2026 10:59:04 -0800 Subject: [PATCH 158/251] Updating iMobile Flutter mediation plugin to support the latest adapters (2.3.2.1, 2.3.4.5) PiperOrigin-RevId: 877480608 --- packages/mediation/gma_mediation_imobile/CHANGELOG.md | 2 ++ packages/mediation/gma_mediation_imobile/android/build.gradle | 2 +- .../gma_mediation_imobile/ios/gma_mediation_imobile.podspec | 4 ++-- packages/mediation/gma_mediation_imobile/pubspec.yaml | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/mediation/gma_mediation_imobile/CHANGELOG.md b/packages/mediation/gma_mediation_imobile/CHANGELOG.md index 842388e36..c138f98dc 100644 --- a/packages/mediation/gma_mediation_imobile/CHANGELOG.md +++ b/packages/mediation/gma_mediation_imobile/CHANGELOG.md @@ -1,5 +1,7 @@ ## i-mobile Flutter Mediation Adapter Changelog +#### Version 1.0.4 (In progress) + #### Version 1.0.3 (In progress) - Updated minimum Flutter version to 3.35.1 - Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 diff --git a/packages/mediation/gma_mediation_imobile/android/build.gradle b/packages/mediation/gma_mediation_imobile/android/build.gradle index 2fd7d2446..2a1d30a89 100644 --- a/packages/mediation/gma_mediation_imobile/android/build.gradle +++ b/packages/mediation/gma_mediation_imobile/android/build.gradle @@ -1,5 +1,5 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_imobile" -version = "1.0.3" +version = "1.0.4" buildscript { ext.kotlin_version = "2.2.21" diff --git a/packages/mediation/gma_mediation_imobile/ios/gma_mediation_imobile.podspec b/packages/mediation/gma_mediation_imobile/ios/gma_mediation_imobile.podspec index c99fc429a..e3cd9d9cd 100644 --- a/packages/mediation/gma_mediation_imobile/ios/gma_mediation_imobile.podspec +++ b/packages/mediation/gma_mediation_imobile/ios/gma_mediation_imobile.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_imobile' - s.version = '1.0.3' + s.version = '1.0.4' s.summary = 'Google Mobile Ads Mediation of imobile.' s.description = <<-DESC Mediation Adapter for imobile to use with Google Mobile Ads. @@ -11,7 +11,7 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationIMobile', '~> 2.3.4.3' + s.dependency 'GoogleMobileAdsMediationIMobile', '~> 2.3.4.5' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_imobile/pubspec.yaml b/packages/mediation/gma_mediation_imobile/pubspec.yaml index 58ab187a4..df66b9f09 100644 --- a/packages/mediation/gma_mediation_imobile/pubspec.yaml +++ b/packages/mediation/gma_mediation_imobile/pubspec.yaml @@ -1,7 +1,7 @@ name: gma_mediation_imobile description: 'Mediation Adapter that enables sending ad requests to the imobile ad network using the google_mobile_ads plugin.' -version: 1.0.3 +version: 1.0.4 environment: sdk: '>=3.9.0 <4.0.0' flutter: '>=3.35.1' From 9caa0a6c51f63277b48aa0c20f9133ea13a40e54 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Wed, 4 Mar 2026 09:36:53 -0800 Subject: [PATCH 159/251] Update Unity Ads Flutter Adapter version to 1.6.5 PiperOrigin-RevId: 878531686 --- packages/mediation/gma_mediation_unity/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_unity/CHANGELOG.md b/packages/mediation/gma_mediation_unity/CHANGELOG.md index c54355959..052aee877 100644 --- a/packages/mediation/gma_mediation_unity/CHANGELOG.md +++ b/packages/mediation/gma_mediation_unity/CHANGELOG.md @@ -1,6 +1,9 @@ ## Unity Ads Flutter Mediation Adapter Changelog -#### Version 1.6.5 (In progress) +#### Version 1.6.5 +- Supports [Unity Android adapter version 4.16.6.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/unity/CHANGELOG.md#version-41660). +- Supports [Unity iOS adapter version 4.16.6.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Unity/CHANGELOG.md#version-41660). +* Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 1.6.4 - Updated minimum Flutter version to 3.35.1 From cbae7d20ea2d742f3c13d25e553c80fddd2ab84c Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Wed, 4 Mar 2026 09:39:10 -0800 Subject: [PATCH 160/251] Update Chartboost Flutter Adapter version to 1.4.1 PiperOrigin-RevId: 878532712 --- packages/mediation/gma_mediation_chartboost/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_chartboost/CHANGELOG.md b/packages/mediation/gma_mediation_chartboost/CHANGELOG.md index 14af4cee1..061d48678 100644 --- a/packages/mediation/gma_mediation_chartboost/CHANGELOG.md +++ b/packages/mediation/gma_mediation_chartboost/CHANGELOG.md @@ -1,6 +1,9 @@ ## Chartboost Flutter Mediation Adapter Changelog -#### Version 1.4.1 (In progress) +#### Version 1.4.1 +- Supports [Chartboost Android adapter version 9.11.1.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/chartboost/CHANGELOG.md#version-91110). +- Supports [Chartboost iOS adapter version 9.11.0.3](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Chartboost/CHANGELOG.md#version-91103). +- Built and tested with the Google Mobile Ads Flutter Plugin version 7.0.0. #### Version 1.4.0 - Updated minimum Flutter version to 3.35.1 From 1d37657586e6ad40b63c828fa9489f7f3b593b10 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Wed, 4 Mar 2026 09:41:29 -0800 Subject: [PATCH 161/251] Update maio Flutter Adapter version to 1.6.5 PiperOrigin-RevId: 878533724 --- packages/mediation/gma_mediation_maio/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_maio/CHANGELOG.md b/packages/mediation/gma_mediation_maio/CHANGELOG.md index 71e654021..a55b8dc37 100644 --- a/packages/mediation/gma_mediation_maio/CHANGELOG.md +++ b/packages/mediation/gma_mediation_maio/CHANGELOG.md @@ -1,6 +1,9 @@ ## maio Flutter Mediation Adapter Changelog -#### Version 1.1.3 (In progress) +#### Version 1.1.3 +- Supports [maio Android adapter version 2.0.7.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/maio/CHANGELOG.md#version-2070). +- Supports [maio iOS adapter version 2.2.0.3](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Maio/CHANGELOG.md#version-2203). +- Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 1.1.2 - Updated minimum Flutter version to 3.35.1 From 2c30d92cf65ad8ba7703ed033ab77c0d6534aa24 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 6 Mar 2026 11:37:40 -0800 Subject: [PATCH 162/251] Bump actions/upload-artifact from 6 to 7 (#1414) Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6 to 7. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v6...v7) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/gma_mediation_applovin.yaml | 2 +- .github/workflows/gma_mediation_dtexchange.yaml | 2 +- .github/workflows/gma_mediation_ironsource.yaml | 2 +- .github/workflows/gma_mediation_liftoffmonetize.yaml | 2 +- .github/workflows/gma_mediation_unity.yaml | 2 +- .github/workflows/google_mobile_ads.yaml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/gma_mediation_applovin.yaml b/.github/workflows/gma_mediation_applovin.yaml index 3f61af49e..ff1e55c1c 100644 --- a/.github/workflows/gma_mediation_applovin.yaml +++ b/.github/workflows/gma_mediation_applovin.yaml @@ -74,7 +74,7 @@ jobs: flutter precache --ios pod install --repo-update xcodebuild -configuration Debug -resultBundlePath TestResults VERBOSE_SCRIPT_LOGGING=YES -workspace Runner.xcworkspace -scheme Runner -destination 'platform=iOS Simulator,name=iPhone 17,OS=26.2' test - - uses: actions/upload-artifact@v6 + - uses: actions/upload-artifact@v7 if: failure() with: name: iOSTestResults diff --git a/.github/workflows/gma_mediation_dtexchange.yaml b/.github/workflows/gma_mediation_dtexchange.yaml index d0d8aa810..756bcb263 100644 --- a/.github/workflows/gma_mediation_dtexchange.yaml +++ b/.github/workflows/gma_mediation_dtexchange.yaml @@ -74,7 +74,7 @@ jobs: flutter precache --ios pod install xcodebuild -configuration Debug -resultBundlePath TestResults VERBOSE_SCRIPT_LOGGING=YES -workspace Runner.xcworkspace -scheme Runner -destination 'platform=iOS Simulator,name=iPhone 17,OS=26.2' test - - uses: actions/upload-artifact@v6 + - uses: actions/upload-artifact@v7 if: failure() with: name: iOSTestResults diff --git a/.github/workflows/gma_mediation_ironsource.yaml b/.github/workflows/gma_mediation_ironsource.yaml index 3e9c156fc..d4032b306 100644 --- a/.github/workflows/gma_mediation_ironsource.yaml +++ b/.github/workflows/gma_mediation_ironsource.yaml @@ -73,7 +73,7 @@ jobs: flutter precache --ios pod install xcodebuild -configuration Debug -resultBundlePath TestResults VERBOSE_SCRIPT_LOGGING=YES -workspace Runner.xcworkspace -scheme Runner -destination 'platform=iOS Simulator,name=iPhone 17,OS=26.2' test - - uses: actions/upload-artifact@v6 + - uses: actions/upload-artifact@v7 if: failure() with: name: iOSTestResults diff --git a/.github/workflows/gma_mediation_liftoffmonetize.yaml b/.github/workflows/gma_mediation_liftoffmonetize.yaml index 6e70d9b6c..43e9ed086 100644 --- a/.github/workflows/gma_mediation_liftoffmonetize.yaml +++ b/.github/workflows/gma_mediation_liftoffmonetize.yaml @@ -74,7 +74,7 @@ jobs: flutter precache --ios pod install xcodebuild -configuration Debug -resultBundlePath TestResults VERBOSE_SCRIPT_LOGGING=YES -workspace Runner.xcworkspace -scheme Runner -destination 'platform=iOS Simulator,name=iPhone 17,OS=26.2' test - - uses: actions/upload-artifact@v6 + - uses: actions/upload-artifact@v7 if: failure() with: name: iOSTestResults diff --git a/.github/workflows/gma_mediation_unity.yaml b/.github/workflows/gma_mediation_unity.yaml index 1509f32ef..2e33056f6 100644 --- a/.github/workflows/gma_mediation_unity.yaml +++ b/.github/workflows/gma_mediation_unity.yaml @@ -74,7 +74,7 @@ jobs: flutter precache --ios pod install xcodebuild -configuration Debug -resultBundlePath TestResults VERBOSE_SCRIPT_LOGGING=YES -workspace Runner.xcworkspace -scheme Runner -destination 'platform=iOS Simulator,name=iPhone 17,OS=26.2' test - - uses: actions/upload-artifact@v6 + - uses: actions/upload-artifact@v7 if: failure() with: name: iOSTestResults diff --git a/.github/workflows/google_mobile_ads.yaml b/.github/workflows/google_mobile_ads.yaml index 1830f5ad0..720747440 100644 --- a/.github/workflows/google_mobile_ads.yaml +++ b/.github/workflows/google_mobile_ads.yaml @@ -78,7 +78,7 @@ jobs: flutter pub get pod install xcodebuild -configuration Debug -resultBundlePath TestResults VERBOSE_SCRIPT_LOGGING=YES -workspace Runner.xcworkspace -scheme Runner -destination 'platform=iOS Simulator,name=iPhone 17,OS=26.2' test - - uses: actions/upload-artifact@v6 + - uses: actions/upload-artifact@v7 if: failure() with: name: iOSTestResults From 13d791915e0d62416698d4c36b5eb5d383f5ae24 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 6 Mar 2026 11:37:55 -0800 Subject: [PATCH 163/251] Bump styfle/cancel-workflow-action from 0.12.1 to 0.13.0 (#1415) Bumps [styfle/cancel-workflow-action](https://github.com/styfle/cancel-workflow-action) from 0.12.1 to 0.13.0. - [Release notes](https://github.com/styfle/cancel-workflow-action/releases) - [Commits](https://github.com/styfle/cancel-workflow-action/compare/0.12.1...0.13.0) --- updated-dependencies: - dependency-name: styfle/cancel-workflow-action dependency-version: 0.13.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/cancel.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cancel.yaml b/.github/workflows/cancel.yaml index c0f41e7af..6d1cd29ee 100644 --- a/.github/workflows/cancel.yaml +++ b/.github/workflows/cancel.yaml @@ -20,7 +20,7 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 3 steps: - - uses: styfle/cancel-workflow-action@0.12.1 + - uses: styfle/cancel-workflow-action@0.13.0 with: workflow_id: 5958127 access_token: ${{ github.token }} From d27c7b00254380b73d271762c96f25efa89953aa Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Tue, 10 Mar 2026 04:03:32 -0700 Subject: [PATCH 164/251] Update ironSource Flutter Adapter to version 2.3.0 PiperOrigin-RevId: 881341801 --- packages/mediation/gma_mediation_ironsource/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_ironsource/CHANGELOG.md b/packages/mediation/gma_mediation_ironsource/CHANGELOG.md index 0f98b6e0a..df552b962 100644 --- a/packages/mediation/gma_mediation_ironsource/CHANGELOG.md +++ b/packages/mediation/gma_mediation_ironsource/CHANGELOG.md @@ -1,6 +1,9 @@ ## ironSource Flutter Mediation Adapter Changelog -#### Version 2.3.0 (In progress) +#### Version 2.3.0 +- Supports [ironSource Android adapter version 9.3.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/ironsource/CHANGELOG.md#version-9300). +- Supports [ironSource iOS adapter version 9.2.0.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/IronSource/CHANGELOG.md#version-92000). +- Built and tested with the Google Mobile Ads Flutter Plugin version 6.0.0. #### Version 2.2.0 - Supports [ironSource Android adapter version 9.1.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/ironsource/CHANGELOG.md#version-9100). From 1ac260aeab4cbedf42793053de9ec9a0a619ed38 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Tue, 10 Mar 2026 04:07:00 -0700 Subject: [PATCH 165/251] Update Moloco Flutter Adapter to version 3.3.0 PiperOrigin-RevId: 881343259 --- packages/mediation/gma_mediation_moloco/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_moloco/CHANGELOG.md b/packages/mediation/gma_mediation_moloco/CHANGELOG.md index 54ef23f60..747ebe925 100644 --- a/packages/mediation/gma_mediation_moloco/CHANGELOG.md +++ b/packages/mediation/gma_mediation_moloco/CHANGELOG.md @@ -1,6 +1,9 @@ ## Moloco Flutter Mediation Adapter Changelog -#### Version 3.3.0 (In progress) +#### Version 3.3.0 +- Supports [Moloco Android adapter version 4.5.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/moloco/CHANGELOG.md#version-4500). +- Supports [Moloco iOS adapter version 4.3.0.2](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Moloco/CHANGELOG.md#version-4302). +- Built and tested with the Google Mobile Ads Flutter Plugin version 7.0.0. #### Version 3.2.0 - Supports [Moloco Android adapter version 4.4.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/moloco/CHANGELOG.md#version-4400). From 9d74540ae564d430c2ed35ad90c5582b472bceff Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Tue, 10 Mar 2026 04:39:55 -0700 Subject: [PATCH 166/251] Updating Pubmatic Flutter Adapter to version 1.6.0 PiperOrigin-RevId: 881355336 --- packages/mediation/gma_mediation_pubmatic/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md b/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md index a63d549b0..423849c4a 100644 --- a/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md +++ b/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md @@ -1,6 +1,9 @@ ## Pubmatic Flutter Mediation Adapter Changelog -#### Version 1.6.0 (In progress) +#### Version 1.6.0 +- Supports [PubMatic Android adapter version 4.12.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/pubmatic/CHANGELOG.md#version-41200). +- Supports [PubMatic iOS adapter version 4.12.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/PubMatic/CHANGELOG.md#version-41200). +- Built and tested with the Google Mobile Ads Flutter Plugin version 7.0.0. #### Version 1.5.0 - Updated minimum Flutter version to 3.35.1 From 5ebdeab66196f398308c7589be6d7dc99f95a09c Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Tue, 10 Mar 2026 04:46:58 -0700 Subject: [PATCH 167/251] Updating DT Exchange Flutter Adapter version to 1.3.3 PiperOrigin-RevId: 881358123 --- packages/mediation/gma_mediation_dtexchange/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md b/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md index 356c62635..53b8d3963 100644 --- a/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md +++ b/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md @@ -1,6 +1,9 @@ ## DT Exchange Flutter Mediation Adapter Changelog -#### Version 1.3.3 (In progress) +#### Version 1.3.3 +* Supports [DT Exchange Android adapter version 8.4.2.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/dtexchange/CHANGELOG.md#version-8421). +* Supports [DT Exchange iOS adapter version 8.4.3.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/DTExchange/CHANGELOG.md#version-8430). +* Built and tested with the Google Mobile Ads Flutter Plugin version 7.0.0. #### Version 1.3.2 * Updated minimum Flutter version to 3.35.1 From 7736e0419991f8866092b1fb33c07d7d57234433 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Tue, 10 Mar 2026 09:19:30 -0700 Subject: [PATCH 168/251] Update myTarget Flutter Adapter version to 1.8.0 PiperOrigin-RevId: 881469695 --- packages/mediation/gma_mediation_mytarget/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_mytarget/CHANGELOG.md b/packages/mediation/gma_mediation_mytarget/CHANGELOG.md index 608c55b2b..5cfa07a4e 100644 --- a/packages/mediation/gma_mediation_mytarget/CHANGELOG.md +++ b/packages/mediation/gma_mediation_mytarget/CHANGELOG.md @@ -1,6 +1,9 @@ ## myTarget Flutter Mediation Adapter Changelog -#### Version 1.8.0 (In progress) +#### Version 1.8.0 +* Supports [myTarget Android adapter version 5.27.4.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/mytarget/CHANGELOG.md#version-52741). +* Supports [myTarget iOS adapter version 5.39.1.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/MyTarget/CHANGELOG.md#version-53910). +* Built and tested with the Google Mobile Ads Flutter Plugin version 7.0.0. #### Version 1.7.1 - Updated minimum Flutter version to 3.35.1 From 3545736ad87007e977ed564a478ade9562293454 Mon Sep 17 00:00:00 2001 From: stuartmorgan-g Date: Wed, 18 Mar 2026 03:09:01 -0400 Subject: [PATCH 169/251] =?UTF-8?q?Adds=20=E2=80=8E`google=5Fmobile=5Fads`?= =?UTF-8?q?=20support=20for=20Swift=20Package=20Manager=20(#1395)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Initial restructure * Update paths in Xcode project * Adjust include paths for new file structure * Don't ignore shared xcode data * Automigration * Remove duplicate source references from example project to fix compilation * Add the webview_flutter_wkwebview dependency in SwiftPM * Manual scheme integration --- .gitignore | 1 - .../ios/Flutter/AppFrameworkInfo.plist | 2 - .../ios/Runner.xcodeproj/project.pbxproj | 201 ++++-------------- .../xcshareddata/xcschemes/Runner.xcscheme | 112 ++++++++++ .../example/ios/Runner/AppDelegate.m | 3 +- .../google_mobile_ads/ios/Assets/.gitkeep | 0 .../ios/google_mobile_ads.podspec | 6 +- .../ios/google_mobile_ads/Package.swift | 34 +++ .../FLTAdInstanceManager_Internal.m | 0 .../Sources/google_mobile_ads}/FLTAdUtil.m | 0 .../google_mobile_ads}/FLTAd_Internal.m | 0 .../google_mobile_ads}/FLTAppStateNotifier.m | 0 .../FLTGoogleMobileAdsCollection_Internal.m | 0 .../FLTGoogleMobileAdsPlugin.m | 2 +- .../FLTGoogleMobileAdsReaderWriter_Internal.m | 10 +- .../FLTMobileAds_Internal.m | 0 .../Sources/google_mobile_ads}/FLTNSString.m | 0 .../GADTFullScreenTemplateView.m | 0 .../GADTMediumTemplateView.m | 0 .../GADTSmallTemplateView.m | 0 .../GADTTemplateView.m | 0 .../NativeTemplates/FLTNativeTemplateColor.m | 0 .../FLTNativeTemplateFontStyle.m | 0 .../NativeTemplates/FLTNativeTemplateStyle.m | 0 .../FLTNativeTemplateTextStyle.m | 0 .../NativeTemplates/FLTNativeTemplateType.m | 0 .../Resources}/GADTFullScreenTemplateView.xib | 0 .../Resources}/GADTMediumTemplateView.xib | 0 .../Resources}/GADTSmallTemplateView.xib | 0 .../FLTUserMessagingPlatformManager.m | 4 +- .../FLTUserMessagingPlatformReaderWriter.m | 2 +- .../FLTAdInstanceManager_Internal.h | 0 .../include/google_mobile_ads}/FLTAdUtil.h | 0 .../google_mobile_ads}/FLTAd_Internal.h | 0 .../google_mobile_ads}/FLTAppStateNotifier.h | 0 .../include/google_mobile_ads}/FLTConstants.h | 0 .../FLTGoogleMobileAdsCollection_Internal.h | 0 .../FLTGoogleMobileAdsPlugin.h | 0 .../FLTGoogleMobileAdsReaderWriter_Internal.h | 0 .../google_mobile_ads}/FLTMediationExtras.h | 0 .../FLTMediationNetworkExtrasProvider.h | 0 .../FLTMobileAds_Internal.h | 0 .../include/google_mobile_ads}/FLTNSString.h | 0 .../FLTNativeTemplateColor.h | 0 .../FLTNativeTemplateFontStyle.h | 0 .../FLTNativeTemplateStyle.h | 0 .../FLTNativeTemplateTextStyle.h | 0 .../FLTNativeTemplateType.h | 0 .../FLTUserMessagingPlatformManager.h | 0 .../FLTUserMessagingPlatformReaderWriter.h | 0 .../GADTFullScreenTemplateView.h | 0 .../GADTMediumTemplateView.h | 0 .../GADTSmallTemplateView.h | 0 .../google_mobile_ads}/GADTTemplateView.h | 0 54 files changed, 200 insertions(+), 177 deletions(-) create mode 100644 packages/google_mobile_ads/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme delete mode 100644 packages/google_mobile_ads/ios/Assets/.gitkeep create mode 100644 packages/google_mobile_ads/ios/google_mobile_ads/Package.swift rename packages/google_mobile_ads/ios/{Classes => google_mobile_ads/Sources/google_mobile_ads}/FLTAdInstanceManager_Internal.m (100%) rename packages/google_mobile_ads/ios/{Classes => google_mobile_ads/Sources/google_mobile_ads}/FLTAdUtil.m (100%) rename packages/google_mobile_ads/ios/{Classes => google_mobile_ads/Sources/google_mobile_ads}/FLTAd_Internal.m (100%) rename packages/google_mobile_ads/ios/{Classes => google_mobile_ads/Sources/google_mobile_ads}/FLTAppStateNotifier.m (100%) rename packages/google_mobile_ads/ios/{Classes => google_mobile_ads/Sources/google_mobile_ads}/FLTGoogleMobileAdsCollection_Internal.m (100%) rename packages/google_mobile_ads/ios/{Classes => google_mobile_ads/Sources/google_mobile_ads}/FLTGoogleMobileAdsPlugin.m (99%) rename packages/google_mobile_ads/ios/{Classes => google_mobile_ads/Sources/google_mobile_ads}/FLTGoogleMobileAdsReaderWriter_Internal.m (98%) rename packages/google_mobile_ads/ios/{Classes => google_mobile_ads/Sources/google_mobile_ads}/FLTMobileAds_Internal.m (100%) rename packages/google_mobile_ads/ios/{Classes => google_mobile_ads/Sources/google_mobile_ads}/FLTNSString.m (100%) rename packages/google_mobile_ads/ios/{Classes/NativeTemplates => google_mobile_ads/Sources/google_mobile_ads}/GoogleAdsMobileIosNativeTemplates/GADTFullScreenTemplateView.m (100%) rename packages/google_mobile_ads/ios/{Classes/NativeTemplates => google_mobile_ads/Sources/google_mobile_ads}/GoogleAdsMobileIosNativeTemplates/GADTMediumTemplateView.m (100%) rename packages/google_mobile_ads/ios/{Classes/NativeTemplates => google_mobile_ads/Sources/google_mobile_ads}/GoogleAdsMobileIosNativeTemplates/GADTSmallTemplateView.m (100%) rename packages/google_mobile_ads/ios/{Classes/NativeTemplates => google_mobile_ads/Sources/google_mobile_ads}/GoogleAdsMobileIosNativeTemplates/GADTTemplateView.m (100%) rename packages/google_mobile_ads/ios/{Classes => google_mobile_ads/Sources/google_mobile_ads}/NativeTemplates/FLTNativeTemplateColor.m (100%) rename packages/google_mobile_ads/ios/{Classes => google_mobile_ads/Sources/google_mobile_ads}/NativeTemplates/FLTNativeTemplateFontStyle.m (100%) rename packages/google_mobile_ads/ios/{Classes => google_mobile_ads/Sources/google_mobile_ads}/NativeTemplates/FLTNativeTemplateStyle.m (100%) rename packages/google_mobile_ads/ios/{Classes => google_mobile_ads/Sources/google_mobile_ads}/NativeTemplates/FLTNativeTemplateTextStyle.m (100%) rename packages/google_mobile_ads/ios/{Classes => google_mobile_ads/Sources/google_mobile_ads}/NativeTemplates/FLTNativeTemplateType.m (100%) rename packages/google_mobile_ads/ios/{Classes/NativeTemplates/GoogleAdsMobileIosNativeTemplates => google_mobile_ads/Sources/google_mobile_ads/Resources}/GADTFullScreenTemplateView.xib (100%) rename packages/google_mobile_ads/ios/{Classes/NativeTemplates/GoogleAdsMobileIosNativeTemplates => google_mobile_ads/Sources/google_mobile_ads/Resources}/GADTMediumTemplateView.xib (100%) rename packages/google_mobile_ads/ios/{Classes/NativeTemplates/GoogleAdsMobileIosNativeTemplates => google_mobile_ads/Sources/google_mobile_ads/Resources}/GADTSmallTemplateView.xib (100%) rename packages/google_mobile_ads/ios/{Classes => google_mobile_ads/Sources/google_mobile_ads}/UserMessagingPlatform/FLTUserMessagingPlatformManager.m (99%) rename packages/google_mobile_ads/ios/{Classes => google_mobile_ads/Sources/google_mobile_ads}/UserMessagingPlatform/FLTUserMessagingPlatformReaderWriter.m (99%) rename packages/google_mobile_ads/ios/{Classes => google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads}/FLTAdInstanceManager_Internal.h (100%) rename packages/google_mobile_ads/ios/{Classes => google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads}/FLTAdUtil.h (100%) rename packages/google_mobile_ads/ios/{Classes => google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads}/FLTAd_Internal.h (100%) rename packages/google_mobile_ads/ios/{Classes => google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads}/FLTAppStateNotifier.h (100%) rename packages/google_mobile_ads/ios/{Classes => google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads}/FLTConstants.h (100%) rename packages/google_mobile_ads/ios/{Classes => google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads}/FLTGoogleMobileAdsCollection_Internal.h (100%) rename packages/google_mobile_ads/ios/{Classes => google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads}/FLTGoogleMobileAdsPlugin.h (100%) rename packages/google_mobile_ads/ios/{Classes => google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads}/FLTGoogleMobileAdsReaderWriter_Internal.h (100%) rename packages/google_mobile_ads/ios/{Classes => google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads}/FLTMediationExtras.h (100%) rename packages/google_mobile_ads/ios/{Classes => google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads}/FLTMediationNetworkExtrasProvider.h (100%) rename packages/google_mobile_ads/ios/{Classes => google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads}/FLTMobileAds_Internal.h (100%) rename packages/google_mobile_ads/ios/{Classes => google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads}/FLTNSString.h (100%) rename packages/google_mobile_ads/ios/{Classes/NativeTemplates => google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads}/FLTNativeTemplateColor.h (100%) rename packages/google_mobile_ads/ios/{Classes/NativeTemplates => google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads}/FLTNativeTemplateFontStyle.h (100%) rename packages/google_mobile_ads/ios/{Classes/NativeTemplates => google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads}/FLTNativeTemplateStyle.h (100%) rename packages/google_mobile_ads/ios/{Classes/NativeTemplates => google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads}/FLTNativeTemplateTextStyle.h (100%) rename packages/google_mobile_ads/ios/{Classes/NativeTemplates => google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads}/FLTNativeTemplateType.h (100%) rename packages/google_mobile_ads/ios/{Classes/UserMessagingPlatform => google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads}/FLTUserMessagingPlatformManager.h (100%) rename packages/google_mobile_ads/ios/{Classes/UserMessagingPlatform => google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads}/FLTUserMessagingPlatformReaderWriter.h (100%) rename packages/google_mobile_ads/ios/{Classes/NativeTemplates/GoogleAdsMobileIosNativeTemplates => google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads}/GADTFullScreenTemplateView.h (100%) rename packages/google_mobile_ads/ios/{Classes/NativeTemplates/GoogleAdsMobileIosNativeTemplates => google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads}/GADTMediumTemplateView.h (100%) rename packages/google_mobile_ads/ios/{Classes/NativeTemplates/GoogleAdsMobileIosNativeTemplates => google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads}/GADTSmallTemplateView.h (100%) rename packages/google_mobile_ads/ios/{Classes/NativeTemplates/GoogleAdsMobileIosNativeTemplates => google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads}/GADTTemplateView.h (100%) diff --git a/.gitignore b/.gitignore index 3cb9a0984..ac23f68c9 100644 --- a/.gitignore +++ b/.gitignore @@ -23,7 +23,6 @@ Pods/ **/Flutter/flutter_assets/ ServiceDefinitions.json xcuserdata/ -xcshareddata/ local.properties keystore.properties diff --git a/packages/google_mobile_ads/example/ios/Flutter/AppFrameworkInfo.plist b/packages/google_mobile_ads/example/ios/Flutter/AppFrameworkInfo.plist index 1f6b98f11..6fe403435 100644 --- a/packages/google_mobile_ads/example/ios/Flutter/AppFrameworkInfo.plist +++ b/packages/google_mobile_ads/example/ios/Flutter/AppFrameworkInfo.plist @@ -24,7 +24,5 @@ arm64 - MinimumOSVersion - 13.0 diff --git a/packages/google_mobile_ads/example/ios/Runner.xcodeproj/project.pbxproj b/packages/google_mobile_ads/example/ios/Runner.xcodeproj/project.pbxproj index 9ec8e605a..542fe3170 100644 --- a/packages/google_mobile_ads/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/google_mobile_ads/example/ios/Runner.xcodeproj/project.pbxproj @@ -3,12 +3,15 @@ archiveVersion = 1; classes = { }; - objectVersion = 54; + objectVersion = 60; objects = { /* Begin PBXBuildFile section */ 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 3378E6382F26E4F80045E7DA /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 3378E6372F26E4F80045E7DA /* FlutterGeneratedPluginSwiftPackage */; }; + 33BB199B2F27F2E0000F183D /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 33BB199A2F27F2E0000F183D /* FlutterGeneratedPluginSwiftPackage */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; 887A5D54EBB22EE56FEA68C0 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D45D7A6903C5DAFE9FAFAD /* Pods_RunnerTests.framework */; }; 8FC897F52411A9F100415930 /* NativeAdView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8FC897F42411A9F100415930 /* NativeAdView.xib */; }; 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; }; @@ -72,7 +75,8 @@ 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; 27D45D7A6903C5DAFE9FAFAD /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; - 44F3DED22B745BEE004D7117 /* FLTMediationExtras.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = FLTMediationExtras.h; path = ../../ios/Classes/FLTMediationExtras.h; sourceTree = ""; }; + 784666492D4C4C64000A1A5F /* FlutterFramework */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterFramework; path = Flutter/ephemeral/Packages/.packages/FlutterFramework; sourceTree = ""; }; + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; @@ -85,12 +89,6 @@ 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 9E091BBD294BB06600245390 /* FLTNativeTemplateType.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FLTNativeTemplateType.m; sourceTree = ""; }; - 9E091BBE294BBFEB00245390 /* FLTNativeTemplateTextStyle.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FLTNativeTemplateTextStyle.m; sourceTree = ""; }; - 9E091BBF294BC29500245390 /* FLTNativeTemplateFontStyle.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FLTNativeTemplateFontStyle.m; sourceTree = ""; }; - 9E091BC0294BCE2C00245390 /* FLTNativeTemplateStyle.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FLTNativeTemplateStyle.m; sourceTree = ""; }; - 9E5A534726AA235D00B9438D /* FLTAdUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FLTAdUtil.h; path = ../../ios/Classes/FLTAdUtil.h; sourceTree = ""; }; - 9E5A534826AA235D00B9438D /* FLTAdUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = FLTAdUtil.m; path = ../../ios/Classes/FLTAdUtil.m; sourceTree = ""; }; 9E61AA1629BBE51900801A83 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 9E61AA1F29BBE58400801A83 /* FLTAdRequestTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FLTAdRequestTest.m; sourceTree = ""; }; 9E61AA2129BBE66900801A83 /* FLTGoogleMobileAdsTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FLTGoogleMobileAdsTest.m; sourceTree = ""; }; @@ -114,47 +112,8 @@ 9E61AA5B29BBE8FD00801A83 /* FLTNativeTemplateStyleTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = FLTNativeTemplateStyleTest.m; path = NativeTemplates/FLTNativeTemplateStyleTest.m; sourceTree = ""; }; 9E61AA5C29BBE8FD00801A83 /* FLTNativeTemplateFontStyleTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = FLTNativeTemplateFontStyleTest.m; path = NativeTemplates/FLTNativeTemplateFontStyleTest.m; sourceTree = ""; }; 9E61AA5D29BBE8FD00801A83 /* FLTNativeTemplateColorTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = FLTNativeTemplateColorTest.m; path = NativeTemplates/FLTNativeTemplateColorTest.m; sourceTree = ""; }; - 9E79682A271D415600E06158 /* FLTMediationNetworkExtrasProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FLTMediationNetworkExtrasProvider.h; path = ../../ios/Classes/FLTMediationNetworkExtrasProvider.h; sourceTree = ""; }; - 9E7B9D8D273206F800C6A6AB /* FLTAppStateNotifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FLTAppStateNotifier.h; path = ../../ios/Classes/FLTAppStateNotifier.h; sourceTree = ""; }; - 9E7B9D8E273206F800C6A6AB /* FLTAppStateNotifier.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = FLTAppStateNotifier.m; path = ../../ios/Classes/FLTAppStateNotifier.m; sourceTree = ""; }; 9EA7213525BB6464008D57E3 /* GoogleMobileAds.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = GoogleMobileAds.xcframework; path = "Pods/Google-Mobile-Ads-SDK/Frameworks/GoogleMobileAdsFramework-Current/GoogleMobileAds.xcframework"; sourceTree = ""; }; - 9EAB471F286A4C73004456D0 /* FLTNSString.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = FLTNSString.m; path = ../../ios/Classes/FLTNSString.m; sourceTree = ""; }; - 9EAB4720286A4C73004456D0 /* FLTNSString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FLTNSString.h; path = ../../ios/Classes/FLTNSString.h; sourceTree = ""; }; - 9EB849FB294A903300F2A80D /* FLTNativeTemplateFontStyle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FLTNativeTemplateFontStyle.h; sourceTree = ""; }; - 9EB849FC294A903300F2A80D /* FLTNativeTemplateType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FLTNativeTemplateType.h; sourceTree = ""; }; - 9EB849FD294A903300F2A80D /* FLTNativeTemplateColor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FLTNativeTemplateColor.h; sourceTree = ""; }; - 9EB849FE294A903300F2A80D /* FLTNativeTemplateStyle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FLTNativeTemplateStyle.h; sourceTree = ""; }; - 9EB849FF294A903400F2A80D /* FLTNativeTemplateColor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FLTNativeTemplateColor.m; sourceTree = ""; }; - 9EB84A00294A903400F2A80D /* FLTNativeTemplateTextStyle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FLTNativeTemplateTextStyle.h; sourceTree = ""; }; - 9EB84A17294A986400F2A80D /* GADTFullScreenTemplateView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GADTFullScreenTemplateView.h; path = GoogleAdsMobileIosNativeTemplates/GADTFullScreenTemplateView.h; sourceTree = ""; }; - 9EB84A18294A989500F2A80D /* GADTFullScreenTemplateView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = GADTFullScreenTemplateView.xib; path = GoogleAdsMobileIosNativeTemplates/GADTFullScreenTemplateView.xib; sourceTree = ""; }; - 9EB84A1A294A98DB00F2A80D /* GADTFullScreenTemplateView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = GADTFullScreenTemplateView.m; path = GoogleAdsMobileIosNativeTemplates/GADTFullScreenTemplateView.m; sourceTree = ""; }; - 9EB84A1C294A997800F2A80D /* GADTMediumTemplateView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = GADTMediumTemplateView.h; path = GoogleAdsMobileIosNativeTemplates/GADTMediumTemplateView.h; sourceTree = ""; }; - 9EB84A1D294A99A300F2A80D /* GADTMediumTemplateView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = GADTMediumTemplateView.m; path = GoogleAdsMobileIosNativeTemplates/GADTMediumTemplateView.m; sourceTree = ""; }; - 9EB84A1F294A99E500F2A80D /* GADTSmallTemplateView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = GADTSmallTemplateView.h; path = GoogleAdsMobileIosNativeTemplates/GADTSmallTemplateView.h; sourceTree = ""; }; - 9EB84A20294A9A1F00F2A80D /* GADTSmallTemplateView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = GADTSmallTemplateView.m; path = GoogleAdsMobileIosNativeTemplates/GADTSmallTemplateView.m; sourceTree = ""; }; - 9EB84A22294A9A6400F2A80D /* GADTTemplateView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = GADTTemplateView.h; path = GoogleAdsMobileIosNativeTemplates/GADTTemplateView.h; sourceTree = ""; }; - 9EB84A23294A9A8600F2A80D /* GADTTemplateView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = GADTTemplateView.m; path = GoogleAdsMobileIosNativeTemplates/GADTTemplateView.m; sourceTree = ""; }; - 9EB84A25294A9AD100F2A80D /* GADTMediumTemplateView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = GADTMediumTemplateView.xib; path = GoogleAdsMobileIosNativeTemplates/GADTMediumTemplateView.xib; sourceTree = ""; }; - 9EB84A26294A9AF300F2A80D /* GADTSmallTemplateView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = GADTSmallTemplateView.xib; path = GoogleAdsMobileIosNativeTemplates/GADTSmallTemplateView.xib; sourceTree = ""; }; - 9EB9FE51280F6CA200DDBB4F /* FLTUserMessagingPlatformManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FLTUserMessagingPlatformManager.m; sourceTree = ""; }; - 9EB9FE52280F6CA200DDBB4F /* FLTUserMessagingPlatformManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FLTUserMessagingPlatformManager.h; sourceTree = ""; }; - 9EB9FE54280F6F2100DDBB4F /* FLTUserMessagingPlatformReaderWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FLTUserMessagingPlatformReaderWriter.h; sourceTree = ""; }; - 9EB9FE55280F6F2100DDBB4F /* FLTUserMessagingPlatformReaderWriter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FLTUserMessagingPlatformReaderWriter.m; sourceTree = ""; }; 9EB9FE57280F853D00DDBB4F /* UserMessagingPlatform.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = UserMessagingPlatform.xcframework; path = Pods/GoogleUserMessagingPlatform/Frameworks/Release/UserMessagingPlatform.xcframework; sourceTree = ""; }; - 9EF4E6F326392B230007E4FE /* FLTGoogleMobileAdsCollection_Internal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = FLTGoogleMobileAdsCollection_Internal.h; path = ../../ios/Classes/FLTGoogleMobileAdsCollection_Internal.h; sourceTree = ""; }; - 9EF4E6F426392B230007E4FE /* FLTAd_Internal.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = FLTAd_Internal.m; path = ../../ios/Classes/FLTAd_Internal.m; sourceTree = ""; }; - 9EF4E6F526392B230007E4FE /* FLTConstants.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = FLTConstants.h; path = ../../ios/Classes/FLTConstants.h; sourceTree = ""; }; - 9EF4E6F626392B230007E4FE /* FLTMobileAds_Internal.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = FLTMobileAds_Internal.m; path = ../../ios/Classes/FLTMobileAds_Internal.m; sourceTree = ""; }; - 9EF4E6F726392B230007E4FE /* FLTGoogleMobileAdsPlugin.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = FLTGoogleMobileAdsPlugin.h; path = ../../ios/Classes/FLTGoogleMobileAdsPlugin.h; sourceTree = ""; }; - 9EF4E6F826392B230007E4FE /* FLTGoogleMobileAdsReaderWriter_Internal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = FLTGoogleMobileAdsReaderWriter_Internal.h; path = ../../ios/Classes/FLTGoogleMobileAdsReaderWriter_Internal.h; sourceTree = ""; }; - 9EF4E6F926392B230007E4FE /* FLTAdInstanceManager_Internal.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = FLTAdInstanceManager_Internal.m; path = ../../ios/Classes/FLTAdInstanceManager_Internal.m; sourceTree = ""; }; - 9EF4E6FA26392B230007E4FE /* FLTGoogleMobileAdsReaderWriter_Internal.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = FLTGoogleMobileAdsReaderWriter_Internal.m; path = ../../ios/Classes/FLTGoogleMobileAdsReaderWriter_Internal.m; sourceTree = ""; }; - 9EF4E6FB26392B230007E4FE /* FLTAd_Internal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = FLTAd_Internal.h; path = ../../ios/Classes/FLTAd_Internal.h; sourceTree = ""; }; - 9EF4E6FC26392B230007E4FE /* FLTGoogleMobileAdsPlugin.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = FLTGoogleMobileAdsPlugin.m; path = ../../ios/Classes/FLTGoogleMobileAdsPlugin.m; sourceTree = ""; }; - 9EF4E6FD26392B230007E4FE /* FLTAdInstanceManager_Internal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = FLTAdInstanceManager_Internal.h; path = ../../ios/Classes/FLTAdInstanceManager_Internal.h; sourceTree = ""; }; - 9EF4E6FE26392B230007E4FE /* FLTGoogleMobileAdsCollection_Internal.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = FLTGoogleMobileAdsCollection_Internal.m; path = ../../ios/Classes/FLTGoogleMobileAdsCollection_Internal.m; sourceTree = ""; }; - 9EF4E6FF26392B230007E4FE /* FLTMobileAds_Internal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = FLTMobileAds_Internal.h; path = ../../ios/Classes/FLTMobileAds_Internal.h; sourceTree = ""; }; 9EFEAB4E29B0019F000A063B /* GoogleMobileAds.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = GoogleMobileAds.xcframework; path = "Pods/Google-Mobile-Ads-SDK/Frameworks/GoogleMobileAdsFramework/GoogleMobileAds.xcframework"; sourceTree = ""; }; A380EE5B67A6B0F501F9FBF1 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; FE39CA478AEB75A8616A301A /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -165,7 +124,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, EBE2BC5BBFE6DB1E33F703F6 /* Pods_Runner.framework in Frameworks */, + 3378E6382F26E4F80045E7DA /* FlutterGeneratedPluginSwiftPackage in Frameworks */, + 33BB199B2F27F2E0000F183D /* FlutterGeneratedPluginSwiftPackage in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -206,6 +168,8 @@ 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( + 784666492D4C4C64000A1A5F /* FlutterFramework */, + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, 9740EEB21CF90195004384FC /* Debug.xcconfig */, 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, @@ -217,29 +181,6 @@ 97C146E51CF9000F007C117D = { isa = PBXGroup; children = ( - 9E9D10C72949637600300686 /* NativeTemplates */, - 9EB9FE50280F6CA200DDBB4F /* UserMessagingPlatform */, - 9EAB4720286A4C73004456D0 /* FLTNSString.h */, - 9EAB471F286A4C73004456D0 /* FLTNSString.m */, - 9E79682A271D415600E06158 /* FLTMediationNetworkExtrasProvider.h */, - 9E7B9D8D273206F800C6A6AB /* FLTAppStateNotifier.h */, - 9E7B9D8E273206F800C6A6AB /* FLTAppStateNotifier.m */, - 9E5A534726AA235D00B9438D /* FLTAdUtil.h */, - 9E5A534826AA235D00B9438D /* FLTAdUtil.m */, - 9EF4E6FB26392B230007E4FE /* FLTAd_Internal.h */, - 9EF4E6F426392B230007E4FE /* FLTAd_Internal.m */, - 9EF4E6FD26392B230007E4FE /* FLTAdInstanceManager_Internal.h */, - 9EF4E6F926392B230007E4FE /* FLTAdInstanceManager_Internal.m */, - 9EF4E6F526392B230007E4FE /* FLTConstants.h */, - 9EF4E6F326392B230007E4FE /* FLTGoogleMobileAdsCollection_Internal.h */, - 9EF4E6FE26392B230007E4FE /* FLTGoogleMobileAdsCollection_Internal.m */, - 9EF4E6F726392B230007E4FE /* FLTGoogleMobileAdsPlugin.h */, - 9EF4E6FC26392B230007E4FE /* FLTGoogleMobileAdsPlugin.m */, - 9EF4E6F826392B230007E4FE /* FLTGoogleMobileAdsReaderWriter_Internal.h */, - 9EF4E6FA26392B230007E4FE /* FLTGoogleMobileAdsReaderWriter_Internal.m */, - 44F3DED22B745BEE004D7117 /* FLTMediationExtras.h */, - 9EF4E6FF26392B230007E4FE /* FLTMobileAds_Internal.h */, - 9EF4E6F626392B230007E4FE /* FLTMobileAds_Internal.m */, 9740EEB11CF90186004384FC /* Flutter */, 97C146F01CF9000F007C117D /* Runner */, 9E61AA1729BBE51900801A83 /* RunnerTests */, @@ -328,55 +269,6 @@ name = NativeTemplates; sourceTree = ""; }; - 9E9D10C72949637600300686 /* NativeTemplates */ = { - isa = PBXGroup; - children = ( - 9EB84A16294A984C00F2A80D /* GoogleAdsMobileIosNativeTemplates */, - 9EB849FD294A903300F2A80D /* FLTNativeTemplateColor.h */, - 9EB849FF294A903400F2A80D /* FLTNativeTemplateColor.m */, - 9EB849FB294A903300F2A80D /* FLTNativeTemplateFontStyle.h */, - 9E091BBF294BC29500245390 /* FLTNativeTemplateFontStyle.m */, - 9EB849FE294A903300F2A80D /* FLTNativeTemplateStyle.h */, - 9E091BC0294BCE2C00245390 /* FLTNativeTemplateStyle.m */, - 9EB84A00294A903400F2A80D /* FLTNativeTemplateTextStyle.h */, - 9E091BBE294BBFEB00245390 /* FLTNativeTemplateTextStyle.m */, - 9EB849FC294A903300F2A80D /* FLTNativeTemplateType.h */, - 9E091BBD294BB06600245390 /* FLTNativeTemplateType.m */, - ); - name = NativeTemplates; - path = ../../ios/Classes/NativeTemplates; - sourceTree = ""; - }; - 9EB84A16294A984C00F2A80D /* GoogleAdsMobileIosNativeTemplates */ = { - isa = PBXGroup; - children = ( - 9EB84A26294A9AF300F2A80D /* GADTSmallTemplateView.xib */, - 9EB84A25294A9AD100F2A80D /* GADTMediumTemplateView.xib */, - 9EB84A18294A989500F2A80D /* GADTFullScreenTemplateView.xib */, - 9EB84A23294A9A8600F2A80D /* GADTTemplateView.m */, - 9EB84A22294A9A6400F2A80D /* GADTTemplateView.h */, - 9EB84A20294A9A1F00F2A80D /* GADTSmallTemplateView.m */, - 9EB84A1F294A99E500F2A80D /* GADTSmallTemplateView.h */, - 9EB84A1D294A99A300F2A80D /* GADTMediumTemplateView.m */, - 9EB84A1C294A997800F2A80D /* GADTMediumTemplateView.h */, - 9EB84A1A294A98DB00F2A80D /* GADTFullScreenTemplateView.m */, - 9EB84A17294A986400F2A80D /* GADTFullScreenTemplateView.h */, - ); - name = GoogleAdsMobileIosNativeTemplates; - sourceTree = ""; - }; - 9EB9FE50280F6CA200DDBB4F /* UserMessagingPlatform */ = { - isa = PBXGroup; - children = ( - 9EB9FE54280F6F2100DDBB4F /* FLTUserMessagingPlatformReaderWriter.h */, - 9EB9FE55280F6F2100DDBB4F /* FLTUserMessagingPlatformReaderWriter.m */, - 9EB9FE51280F6CA200DDBB4F /* FLTUserMessagingPlatformManager.m */, - 9EB9FE52280F6CA200DDBB4F /* FLTUserMessagingPlatformManager.h */, - ); - name = UserMessagingPlatform; - path = ../../ios/Classes/UserMessagingPlatform; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -391,14 +283,16 @@ 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - D621B7120BAE5B88B39CB730 /* [CP] Embed Pods Frameworks */, - 352E2E45CC90E4DC15A87261 /* [CP] Copy Pods Resources */, ); buildRules = ( ); dependencies = ( ); name = Runner; + packageProductDependencies = ( + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */, + 33BB199A2F27F2E0000F183D /* FlutterGeneratedPluginSwiftPackage */, + ); productName = Runner; productReference = 97C146EE1CF9000F007C117D /* Runner.app */; productType = "com.apple.product-type.application"; @@ -452,6 +346,9 @@ Base, ); mainGroup = 97C146E51CF9000F007C117D; + packageReferences = ( + 33BB19992F27F2E0000F183D /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */, + ); productRefGroup = 97C146EF1CF9000F007C117D /* Products */; projectDirPath = ""; projectRoot = ""; @@ -547,28 +444,6 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 352E2E45CC90E4DC15A87261 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh", - "${PODS_CONFIGURATION_BUILD_DIR}/Google-Mobile-Ads-SDK/GoogleMobileAdsResources.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/GoogleUserMessagingPlatform/UserMessagingPlatformResources.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/google_mobile_ads/google_mobile_ads.bundle", - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleMobileAdsResources.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/UserMessagingPlatformResources.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/google_mobile_ads.bundle", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; @@ -600,24 +475,6 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build\n"; }; - D621B7120BAE5B88B39CB730 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/webview_flutter_wkwebview/webview_flutter_wkwebview.framework", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/webview_flutter_wkwebview.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -938,6 +795,28 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ + +/* Begin XCLocalSwiftPackageReference section */ + 33BB19992F27F2E0000F183D /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */ = { + isa = XCLocalSwiftPackageReference; + relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; + }; +/* End XCLocalSwiftPackageReference section */ + +/* Begin XCSwiftPackageProductDependency section */ + 3378E6372F26E4F80045E7DA /* FlutterGeneratedPluginSwiftPackage */ = { + isa = XCSwiftPackageProductDependency; + productName = FlutterGeneratedPluginSwiftPackage; + }; + 33BB199A2F27F2E0000F183D /* FlutterGeneratedPluginSwiftPackage */ = { + isa = XCSwiftPackageProductDependency; + productName = FlutterGeneratedPluginSwiftPackage; + }; + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */ = { + isa = XCSwiftPackageProductDependency; + productName = FlutterGeneratedPluginSwiftPackage; + }; +/* End XCSwiftPackageProductDependency section */ }; rootObject = 97C146E61CF9000F007C117D /* Project object */; } diff --git a/packages/google_mobile_ads/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/google_mobile_ads/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 000000000..4054ba82f --- /dev/null +++ b/packages/google_mobile_ads/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/google_mobile_ads/example/ios/Runner/AppDelegate.m b/packages/google_mobile_ads/example/ios/Runner/AppDelegate.m index ffbad4233..2e4aa889e 100644 --- a/packages/google_mobile_ads/example/ios/Runner/AppDelegate.m +++ b/packages/google_mobile_ads/example/ios/Runner/AppDelegate.m @@ -12,8 +12,9 @@ // See the License for the specific language governing permissions and // limitations under the License. +@import google_mobile_ads; + #include "AppDelegate.h" -#import "FLTGoogleMobileAdsPlugin.h" #include "GeneratedPluginRegistrant.h" @interface NativeAdFactoryExample : NSObject diff --git a/packages/google_mobile_ads/ios/Assets/.gitkeep b/packages/google_mobile_ads/ios/Assets/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/google_mobile_ads/ios/google_mobile_ads.podspec b/packages/google_mobile_ads/ios/google_mobile_ads.podspec index 53ba027ed..fdd6aee23 100644 --- a/packages/google_mobile_ads/ios/google_mobile_ads.podspec +++ b/packages/google_mobile_ads/ios/google_mobile_ads.podspec @@ -12,8 +12,8 @@ Google Mobile Ads plugin for Flutter. s.license = { :file => '../LICENSE' } s.author = { 'Flutter Team' => 'flutter-dev@googlegroups.com' } s.source = { :path => '.' } - s.source_files = 'Classes/**/*.{h,m}' - s.public_header_files = 'Classes/**/*.h' + s.source_files = 'google_mobile_ads/Sources/google_mobile_ads/**/*.{h,m}' + s.public_header_files = 'google_mobile_ads/Sources/google_mobile_ads/**/*.h' s.dependency 'Flutter' s.dependency 'Google-Mobile-Ads-SDK','~> 12.14.0' s.dependency 'webview_flutter_wkwebview' @@ -21,7 +21,7 @@ Google Mobile Ads plugin for Flutter. s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'VALID_ARCHS' => 'armv7 arm64 x86_64' } s.static_framework = true s.resource_bundles = { - 'google_mobile_ads' => ['Classes/**/*.xib'] + 'google_mobile_ads' => ['google_mobile_ads/Sources/google_mobile_ads/**/*.xib'] } s.test_spec 'Tests' do |test_spec| diff --git a/packages/google_mobile_ads/ios/google_mobile_ads/Package.swift b/packages/google_mobile_ads/ios/google_mobile_ads/Package.swift new file mode 100644 index 000000000..3d92618d5 --- /dev/null +++ b/packages/google_mobile_ads/ios/google_mobile_ads/Package.swift @@ -0,0 +1,34 @@ +// swift-tools-version: 5.9 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +import PackageDescription + +let package = Package( + name: "google_mobile_ads", + platforms: [ + .iOS("13.0") + ], + products: [ + .library(name: "google-mobile-ads", targets: ["google_mobile_ads"]) + ], + dependencies: [ + .package( + url: "https://github.com/googleads/swift-package-manager-google-mobile-ads", from: "12.14.0"), + .package(name: "webview_flutter_wkwebview", path: "../webview_flutter_wkwebview"), + ], + targets: [ + .target( + name: "google_mobile_ads", + dependencies: [ + .product(name: "GoogleMobileAds", package: "swift-package-manager-google-mobile-ads"), + .product(name: "webview-flutter-wkwebview", package: "webview_flutter_wkwebview"), + ], + resources: [ + .process("Resources"), + ], + cSettings: [ + .headerSearchPath("include/google_mobile_ads") + ] + ) + ] +) diff --git a/packages/google_mobile_ads/ios/Classes/FLTAdInstanceManager_Internal.m b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTAdInstanceManager_Internal.m similarity index 100% rename from packages/google_mobile_ads/ios/Classes/FLTAdInstanceManager_Internal.m rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTAdInstanceManager_Internal.m diff --git a/packages/google_mobile_ads/ios/Classes/FLTAdUtil.m b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTAdUtil.m similarity index 100% rename from packages/google_mobile_ads/ios/Classes/FLTAdUtil.m rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTAdUtil.m diff --git a/packages/google_mobile_ads/ios/Classes/FLTAd_Internal.m b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTAd_Internal.m similarity index 100% rename from packages/google_mobile_ads/ios/Classes/FLTAd_Internal.m rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTAd_Internal.m diff --git a/packages/google_mobile_ads/ios/Classes/FLTAppStateNotifier.m b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTAppStateNotifier.m similarity index 100% rename from packages/google_mobile_ads/ios/Classes/FLTAppStateNotifier.m rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTAppStateNotifier.m diff --git a/packages/google_mobile_ads/ios/Classes/FLTGoogleMobileAdsCollection_Internal.m b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTGoogleMobileAdsCollection_Internal.m similarity index 100% rename from packages/google_mobile_ads/ios/Classes/FLTGoogleMobileAdsCollection_Internal.m rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTGoogleMobileAdsCollection_Internal.m diff --git a/packages/google_mobile_ads/ios/Classes/FLTGoogleMobileAdsPlugin.m b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTGoogleMobileAdsPlugin.m similarity index 99% rename from packages/google_mobile_ads/ios/Classes/FLTGoogleMobileAdsPlugin.m rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTGoogleMobileAdsPlugin.m index 9832c0c9b..e50096d98 100644 --- a/packages/google_mobile_ads/ios/Classes/FLTGoogleMobileAdsPlugin.m +++ b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTGoogleMobileAdsPlugin.m @@ -17,7 +17,7 @@ #import "FLTAppStateNotifier.h" #import "FLTConstants.h" #import "FLTNSString.h" -#import "UserMessagingPlatform/FLTUserMessagingPlatformManager.h" +#import "FLTUserMessagingPlatformManager.h" @import webview_flutter_wkwebview; @interface FLTGoogleMobileAdsPlugin () diff --git a/packages/google_mobile_ads/ios/Classes/FLTGoogleMobileAdsReaderWriter_Internal.m b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTGoogleMobileAdsReaderWriter_Internal.m similarity index 98% rename from packages/google_mobile_ads/ios/Classes/FLTGoogleMobileAdsReaderWriter_Internal.m rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTGoogleMobileAdsReaderWriter_Internal.m index 24572e60f..830f8f3b7 100644 --- a/packages/google_mobile_ads/ios/Classes/FLTGoogleMobileAdsReaderWriter_Internal.m +++ b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTGoogleMobileAdsReaderWriter_Internal.m @@ -15,11 +15,11 @@ #import "FLTGoogleMobileAdsReaderWriter_Internal.h" #import "FLTAdUtil.h" #import "FLTMediationExtras.h" -#import "NativeTemplates/FLTNativeTemplateColor.h" -#import "NativeTemplates/FLTNativeTemplateFontStyle.h" -#import "NativeTemplates/FLTNativeTemplateStyle.h" -#import "NativeTemplates/FLTNativeTemplateTextStyle.h" -#import "NativeTemplates/FLTNativeTemplateType.h" +#import "FLTNativeTemplateColor.h" +#import "FLTNativeTemplateFontStyle.h" +#import "FLTNativeTemplateStyle.h" +#import "FLTNativeTemplateTextStyle.h" +#import "FLTNativeTemplateType.h" // The type values below must be consistent for each platform. typedef NS_ENUM(NSInteger, FLTAdMobField) { diff --git a/packages/google_mobile_ads/ios/Classes/FLTMobileAds_Internal.m b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTMobileAds_Internal.m similarity index 100% rename from packages/google_mobile_ads/ios/Classes/FLTMobileAds_Internal.m rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTMobileAds_Internal.m diff --git a/packages/google_mobile_ads/ios/Classes/FLTNSString.m b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTNSString.m similarity index 100% rename from packages/google_mobile_ads/ios/Classes/FLTNSString.m rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTNSString.m diff --git a/packages/google_mobile_ads/ios/Classes/NativeTemplates/GoogleAdsMobileIosNativeTemplates/GADTFullScreenTemplateView.m b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/GoogleAdsMobileIosNativeTemplates/GADTFullScreenTemplateView.m similarity index 100% rename from packages/google_mobile_ads/ios/Classes/NativeTemplates/GoogleAdsMobileIosNativeTemplates/GADTFullScreenTemplateView.m rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/GoogleAdsMobileIosNativeTemplates/GADTFullScreenTemplateView.m diff --git a/packages/google_mobile_ads/ios/Classes/NativeTemplates/GoogleAdsMobileIosNativeTemplates/GADTMediumTemplateView.m b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/GoogleAdsMobileIosNativeTemplates/GADTMediumTemplateView.m similarity index 100% rename from packages/google_mobile_ads/ios/Classes/NativeTemplates/GoogleAdsMobileIosNativeTemplates/GADTMediumTemplateView.m rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/GoogleAdsMobileIosNativeTemplates/GADTMediumTemplateView.m diff --git a/packages/google_mobile_ads/ios/Classes/NativeTemplates/GoogleAdsMobileIosNativeTemplates/GADTSmallTemplateView.m b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/GoogleAdsMobileIosNativeTemplates/GADTSmallTemplateView.m similarity index 100% rename from packages/google_mobile_ads/ios/Classes/NativeTemplates/GoogleAdsMobileIosNativeTemplates/GADTSmallTemplateView.m rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/GoogleAdsMobileIosNativeTemplates/GADTSmallTemplateView.m diff --git a/packages/google_mobile_ads/ios/Classes/NativeTemplates/GoogleAdsMobileIosNativeTemplates/GADTTemplateView.m b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/GoogleAdsMobileIosNativeTemplates/GADTTemplateView.m similarity index 100% rename from packages/google_mobile_ads/ios/Classes/NativeTemplates/GoogleAdsMobileIosNativeTemplates/GADTTemplateView.m rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/GoogleAdsMobileIosNativeTemplates/GADTTemplateView.m diff --git a/packages/google_mobile_ads/ios/Classes/NativeTemplates/FLTNativeTemplateColor.m b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/NativeTemplates/FLTNativeTemplateColor.m similarity index 100% rename from packages/google_mobile_ads/ios/Classes/NativeTemplates/FLTNativeTemplateColor.m rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/NativeTemplates/FLTNativeTemplateColor.m diff --git a/packages/google_mobile_ads/ios/Classes/NativeTemplates/FLTNativeTemplateFontStyle.m b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/NativeTemplates/FLTNativeTemplateFontStyle.m similarity index 100% rename from packages/google_mobile_ads/ios/Classes/NativeTemplates/FLTNativeTemplateFontStyle.m rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/NativeTemplates/FLTNativeTemplateFontStyle.m diff --git a/packages/google_mobile_ads/ios/Classes/NativeTemplates/FLTNativeTemplateStyle.m b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/NativeTemplates/FLTNativeTemplateStyle.m similarity index 100% rename from packages/google_mobile_ads/ios/Classes/NativeTemplates/FLTNativeTemplateStyle.m rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/NativeTemplates/FLTNativeTemplateStyle.m diff --git a/packages/google_mobile_ads/ios/Classes/NativeTemplates/FLTNativeTemplateTextStyle.m b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/NativeTemplates/FLTNativeTemplateTextStyle.m similarity index 100% rename from packages/google_mobile_ads/ios/Classes/NativeTemplates/FLTNativeTemplateTextStyle.m rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/NativeTemplates/FLTNativeTemplateTextStyle.m diff --git a/packages/google_mobile_ads/ios/Classes/NativeTemplates/FLTNativeTemplateType.m b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/NativeTemplates/FLTNativeTemplateType.m similarity index 100% rename from packages/google_mobile_ads/ios/Classes/NativeTemplates/FLTNativeTemplateType.m rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/NativeTemplates/FLTNativeTemplateType.m diff --git a/packages/google_mobile_ads/ios/Classes/NativeTemplates/GoogleAdsMobileIosNativeTemplates/GADTFullScreenTemplateView.xib b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/Resources/GADTFullScreenTemplateView.xib similarity index 100% rename from packages/google_mobile_ads/ios/Classes/NativeTemplates/GoogleAdsMobileIosNativeTemplates/GADTFullScreenTemplateView.xib rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/Resources/GADTFullScreenTemplateView.xib diff --git a/packages/google_mobile_ads/ios/Classes/NativeTemplates/GoogleAdsMobileIosNativeTemplates/GADTMediumTemplateView.xib b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/Resources/GADTMediumTemplateView.xib similarity index 100% rename from packages/google_mobile_ads/ios/Classes/NativeTemplates/GoogleAdsMobileIosNativeTemplates/GADTMediumTemplateView.xib rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/Resources/GADTMediumTemplateView.xib diff --git a/packages/google_mobile_ads/ios/Classes/NativeTemplates/GoogleAdsMobileIosNativeTemplates/GADTSmallTemplateView.xib b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/Resources/GADTSmallTemplateView.xib similarity index 100% rename from packages/google_mobile_ads/ios/Classes/NativeTemplates/GoogleAdsMobileIosNativeTemplates/GADTSmallTemplateView.xib rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/Resources/GADTSmallTemplateView.xib diff --git a/packages/google_mobile_ads/ios/Classes/UserMessagingPlatform/FLTUserMessagingPlatformManager.m b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/UserMessagingPlatform/FLTUserMessagingPlatformManager.m similarity index 99% rename from packages/google_mobile_ads/ios/Classes/UserMessagingPlatform/FLTUserMessagingPlatformManager.m rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/UserMessagingPlatform/FLTUserMessagingPlatformManager.m index 4201b34d9..831a60f32 100644 --- a/packages/google_mobile_ads/ios/Classes/UserMessagingPlatform/FLTUserMessagingPlatformManager.m +++ b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/UserMessagingPlatform/FLTUserMessagingPlatformManager.m @@ -13,8 +13,8 @@ // limitations under the License. #import "FLTUserMessagingPlatformManager.h" -#import "../FLTAdUtil.h" -#import "../FLTNSString.h" +#import "FLTAdUtil.h" +#import "FLTNSString.h" #import "FLTUserMessagingPlatformReaderWriter.h" #include diff --git a/packages/google_mobile_ads/ios/Classes/UserMessagingPlatform/FLTUserMessagingPlatformReaderWriter.m b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/UserMessagingPlatform/FLTUserMessagingPlatformReaderWriter.m similarity index 99% rename from packages/google_mobile_ads/ios/Classes/UserMessagingPlatform/FLTUserMessagingPlatformReaderWriter.m rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/UserMessagingPlatform/FLTUserMessagingPlatformReaderWriter.m index 7056f984f..d3ab46d72 100644 --- a/packages/google_mobile_ads/ios/Classes/UserMessagingPlatform/FLTUserMessagingPlatformReaderWriter.m +++ b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/UserMessagingPlatform/FLTUserMessagingPlatformReaderWriter.m @@ -13,7 +13,7 @@ // limitations under the License. #import "FLTUserMessagingPlatformReaderWriter.h" -#import "../FLTAdUtil.h" +#import "FLTAdUtil.h" #include // The type values below must be consistent for each platform. diff --git a/packages/google_mobile_ads/ios/Classes/FLTAdInstanceManager_Internal.h b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTAdInstanceManager_Internal.h similarity index 100% rename from packages/google_mobile_ads/ios/Classes/FLTAdInstanceManager_Internal.h rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTAdInstanceManager_Internal.h diff --git a/packages/google_mobile_ads/ios/Classes/FLTAdUtil.h b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTAdUtil.h similarity index 100% rename from packages/google_mobile_ads/ios/Classes/FLTAdUtil.h rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTAdUtil.h diff --git a/packages/google_mobile_ads/ios/Classes/FLTAd_Internal.h b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTAd_Internal.h similarity index 100% rename from packages/google_mobile_ads/ios/Classes/FLTAd_Internal.h rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTAd_Internal.h diff --git a/packages/google_mobile_ads/ios/Classes/FLTAppStateNotifier.h b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTAppStateNotifier.h similarity index 100% rename from packages/google_mobile_ads/ios/Classes/FLTAppStateNotifier.h rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTAppStateNotifier.h diff --git a/packages/google_mobile_ads/ios/Classes/FLTConstants.h b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTConstants.h similarity index 100% rename from packages/google_mobile_ads/ios/Classes/FLTConstants.h rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTConstants.h diff --git a/packages/google_mobile_ads/ios/Classes/FLTGoogleMobileAdsCollection_Internal.h b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTGoogleMobileAdsCollection_Internal.h similarity index 100% rename from packages/google_mobile_ads/ios/Classes/FLTGoogleMobileAdsCollection_Internal.h rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTGoogleMobileAdsCollection_Internal.h diff --git a/packages/google_mobile_ads/ios/Classes/FLTGoogleMobileAdsPlugin.h b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTGoogleMobileAdsPlugin.h similarity index 100% rename from packages/google_mobile_ads/ios/Classes/FLTGoogleMobileAdsPlugin.h rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTGoogleMobileAdsPlugin.h diff --git a/packages/google_mobile_ads/ios/Classes/FLTGoogleMobileAdsReaderWriter_Internal.h b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTGoogleMobileAdsReaderWriter_Internal.h similarity index 100% rename from packages/google_mobile_ads/ios/Classes/FLTGoogleMobileAdsReaderWriter_Internal.h rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTGoogleMobileAdsReaderWriter_Internal.h diff --git a/packages/google_mobile_ads/ios/Classes/FLTMediationExtras.h b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTMediationExtras.h similarity index 100% rename from packages/google_mobile_ads/ios/Classes/FLTMediationExtras.h rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTMediationExtras.h diff --git a/packages/google_mobile_ads/ios/Classes/FLTMediationNetworkExtrasProvider.h b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTMediationNetworkExtrasProvider.h similarity index 100% rename from packages/google_mobile_ads/ios/Classes/FLTMediationNetworkExtrasProvider.h rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTMediationNetworkExtrasProvider.h diff --git a/packages/google_mobile_ads/ios/Classes/FLTMobileAds_Internal.h b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTMobileAds_Internal.h similarity index 100% rename from packages/google_mobile_ads/ios/Classes/FLTMobileAds_Internal.h rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTMobileAds_Internal.h diff --git a/packages/google_mobile_ads/ios/Classes/FLTNSString.h b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTNSString.h similarity index 100% rename from packages/google_mobile_ads/ios/Classes/FLTNSString.h rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTNSString.h diff --git a/packages/google_mobile_ads/ios/Classes/NativeTemplates/FLTNativeTemplateColor.h b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTNativeTemplateColor.h similarity index 100% rename from packages/google_mobile_ads/ios/Classes/NativeTemplates/FLTNativeTemplateColor.h rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTNativeTemplateColor.h diff --git a/packages/google_mobile_ads/ios/Classes/NativeTemplates/FLTNativeTemplateFontStyle.h b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTNativeTemplateFontStyle.h similarity index 100% rename from packages/google_mobile_ads/ios/Classes/NativeTemplates/FLTNativeTemplateFontStyle.h rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTNativeTemplateFontStyle.h diff --git a/packages/google_mobile_ads/ios/Classes/NativeTemplates/FLTNativeTemplateStyle.h b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTNativeTemplateStyle.h similarity index 100% rename from packages/google_mobile_ads/ios/Classes/NativeTemplates/FLTNativeTemplateStyle.h rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTNativeTemplateStyle.h diff --git a/packages/google_mobile_ads/ios/Classes/NativeTemplates/FLTNativeTemplateTextStyle.h b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTNativeTemplateTextStyle.h similarity index 100% rename from packages/google_mobile_ads/ios/Classes/NativeTemplates/FLTNativeTemplateTextStyle.h rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTNativeTemplateTextStyle.h diff --git a/packages/google_mobile_ads/ios/Classes/NativeTemplates/FLTNativeTemplateType.h b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTNativeTemplateType.h similarity index 100% rename from packages/google_mobile_ads/ios/Classes/NativeTemplates/FLTNativeTemplateType.h rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTNativeTemplateType.h diff --git a/packages/google_mobile_ads/ios/Classes/UserMessagingPlatform/FLTUserMessagingPlatformManager.h b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTUserMessagingPlatformManager.h similarity index 100% rename from packages/google_mobile_ads/ios/Classes/UserMessagingPlatform/FLTUserMessagingPlatformManager.h rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTUserMessagingPlatformManager.h diff --git a/packages/google_mobile_ads/ios/Classes/UserMessagingPlatform/FLTUserMessagingPlatformReaderWriter.h b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTUserMessagingPlatformReaderWriter.h similarity index 100% rename from packages/google_mobile_ads/ios/Classes/UserMessagingPlatform/FLTUserMessagingPlatformReaderWriter.h rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTUserMessagingPlatformReaderWriter.h diff --git a/packages/google_mobile_ads/ios/Classes/NativeTemplates/GoogleAdsMobileIosNativeTemplates/GADTFullScreenTemplateView.h b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/GADTFullScreenTemplateView.h similarity index 100% rename from packages/google_mobile_ads/ios/Classes/NativeTemplates/GoogleAdsMobileIosNativeTemplates/GADTFullScreenTemplateView.h rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/GADTFullScreenTemplateView.h diff --git a/packages/google_mobile_ads/ios/Classes/NativeTemplates/GoogleAdsMobileIosNativeTemplates/GADTMediumTemplateView.h b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/GADTMediumTemplateView.h similarity index 100% rename from packages/google_mobile_ads/ios/Classes/NativeTemplates/GoogleAdsMobileIosNativeTemplates/GADTMediumTemplateView.h rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/GADTMediumTemplateView.h diff --git a/packages/google_mobile_ads/ios/Classes/NativeTemplates/GoogleAdsMobileIosNativeTemplates/GADTSmallTemplateView.h b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/GADTSmallTemplateView.h similarity index 100% rename from packages/google_mobile_ads/ios/Classes/NativeTemplates/GoogleAdsMobileIosNativeTemplates/GADTSmallTemplateView.h rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/GADTSmallTemplateView.h diff --git a/packages/google_mobile_ads/ios/Classes/NativeTemplates/GoogleAdsMobileIosNativeTemplates/GADTTemplateView.h b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/GADTTemplateView.h similarity index 100% rename from packages/google_mobile_ads/ios/Classes/NativeTemplates/GoogleAdsMobileIosNativeTemplates/GADTTemplateView.h rename to packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/GADTTemplateView.h From f8e37e37ce9bb3d876044fff50f816de16c339d5 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 23 Mar 2026 09:46:33 -0700 Subject: [PATCH 170/251] Updating Mintegral Flutter mediation plugin to support the latest adapters (17.0.91.0, 8.0.8.0) PiperOrigin-RevId: 888142597 --- packages/mediation/gma_mediation_mintegral/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_mintegral/android/build.gradle | 4 ++-- .../ios/gma_mediation_mintegral.podspec | 4 ++-- packages/mediation/gma_mediation_mintegral/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_mintegral/CHANGELOG.md b/packages/mediation/gma_mediation_mintegral/CHANGELOG.md index be1f00e44..e4206f741 100644 --- a/packages/mediation/gma_mediation_mintegral/CHANGELOG.md +++ b/packages/mediation/gma_mediation_mintegral/CHANGELOG.md @@ -1,5 +1,7 @@ ## Mintegral Flutter Mediation Adapter Changelog +#### Version 2.0.5 (In progress) + #### Version 2.0.4 (In progress) #### Version 2.0.3 diff --git a/packages/mediation/gma_mediation_mintegral/android/build.gradle b/packages/mediation/gma_mediation_mintegral/android/build.gradle index b378e6118..71708b937 100644 --- a/packages/mediation/gma_mediation_mintegral/android/build.gradle +++ b/packages/mediation/gma_mediation_mintegral/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_mintegral' -version = "2.0.4" +version = "2.0.5" buildscript { ext.kotlin_version = '2.2.21' @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "17.0.81.0" + stringVersion = "17.0.91.0" } android { diff --git a/packages/mediation/gma_mediation_mintegral/ios/gma_mediation_mintegral.podspec b/packages/mediation/gma_mediation_mintegral/ios/gma_mediation_mintegral.podspec index 183286d38..5f87cbb5b 100644 --- a/packages/mediation/gma_mediation_mintegral/ios/gma_mediation_mintegral.podspec +++ b/packages/mediation/gma_mediation_mintegral/ios/gma_mediation_mintegral.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_mintegral' - s.version = '2.0.4' + s.version = '2.0.5' s.summary = 'Google Mobile Ads Mediation of Mintegral.' s.description = <<-DESC Mediation Adapter for Mintegral to use with Google Mobile Ads. @@ -16,7 +16,7 @@ Mediation Adapter for Mintegral to use with Google Mobile Ads. s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationMintegral', '~>8.0.7.0' + s.dependency 'GoogleMobileAdsMediationMintegral', '~>8.0.8.0' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_mintegral/pubspec.yaml b/packages/mediation/gma_mediation_mintegral/pubspec.yaml index 8be060165..60e7545cf 100644 --- a/packages/mediation/gma_mediation_mintegral/pubspec.yaml +++ b/packages/mediation/gma_mediation_mintegral/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_mintegral description: "Mediation Adapter that enables sending ad requests to the Mintegral ad network using the google_mobile_ads plugin." -version: 2.0.4 +version: 2.0.5 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_mintegral environment: From 19e9508567d9316424309e7679379a995e2ec995 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 23 Mar 2026 09:47:17 -0700 Subject: [PATCH 171/251] Updating Maio Flutter mediation plugin to support the latest adapters (2.0.8.1, 2.2.1.0) PiperOrigin-RevId: 888142988 --- packages/mediation/gma_mediation_maio/CHANGELOG.md | 2 ++ packages/mediation/gma_mediation_maio/android/build.gradle | 4 ++-- .../gma_mediation_maio/ios/gma_mediation_maio.podspec | 4 ++-- packages/mediation/gma_mediation_maio/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_maio/CHANGELOG.md b/packages/mediation/gma_mediation_maio/CHANGELOG.md index a55b8dc37..65c73b521 100644 --- a/packages/mediation/gma_mediation_maio/CHANGELOG.md +++ b/packages/mediation/gma_mediation_maio/CHANGELOG.md @@ -1,5 +1,7 @@ ## maio Flutter Mediation Adapter Changelog +#### Version 1.1.4 (In progress) + #### Version 1.1.3 - Supports [maio Android adapter version 2.0.7.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/maio/CHANGELOG.md#version-2070). - Supports [maio iOS adapter version 2.2.0.3](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Maio/CHANGELOG.md#version-2203). diff --git a/packages/mediation/gma_mediation_maio/android/build.gradle b/packages/mediation/gma_mediation_maio/android/build.gradle index c2d14b08f..46771b052 100644 --- a/packages/mediation/gma_mediation_maio/android/build.gradle +++ b/packages/mediation/gma_mediation_maio/android/build.gradle @@ -1,5 +1,5 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_maio" -version = "1.1.3" +version = "1.1.4" buildscript { ext.kotlin_version = "2.2.21" @@ -25,7 +25,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "2.0.8.0" + stringVersion = "2.0.8.1" } android { diff --git a/packages/mediation/gma_mediation_maio/ios/gma_mediation_maio.podspec b/packages/mediation/gma_mediation_maio/ios/gma_mediation_maio.podspec index 5d0829a01..279b4203d 100644 --- a/packages/mediation/gma_mediation_maio/ios/gma_mediation_maio.podspec +++ b/packages/mediation/gma_mediation_maio/ios/gma_mediation_maio.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_maio' - s.version = '1.1.3' + s.version = '1.1.4' s.summary = 'Google Mobile Ads Mediation of maio.' s.description = <<-DESC Mediation Adapter for maio to use with Google Mobile Ads. @@ -11,7 +11,7 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationMaio', '~>2.2.0.3' + s.dependency 'GoogleMobileAdsMediationMaio', '~>2.2.1.0' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_maio/pubspec.yaml b/packages/mediation/gma_mediation_maio/pubspec.yaml index ae1086d56..82f415da5 100644 --- a/packages/mediation/gma_mediation_maio/pubspec.yaml +++ b/packages/mediation/gma_mediation_maio/pubspec.yaml @@ -1,7 +1,7 @@ name: gma_mediation_maio description: 'Mediation Adapter that enables sending ad requests to the maio ad network using the google_mobile_ads plugin.' -version: 1.1.3 +version: 1.1.4 environment: sdk: '>=3.9.0 <4.0.0' flutter: '>=3.35.1' From f222bbfc543dfe4073b33477bfcb959bf1a90e7b Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 23 Mar 2026 09:47:31 -0700 Subject: [PATCH 172/251] Updating Meta Flutter mediation plugin to support the latest adapters (6.21.0.1, 6.21.1.0) PiperOrigin-RevId: 888143097 --- packages/mediation/gma_mediation_meta/CHANGELOG.md | 2 ++ packages/mediation/gma_mediation_meta/android/build.gradle | 2 +- .../gma_mediation_meta/ios/gma_mediation_meta.podspec | 4 ++-- packages/mediation/gma_mediation_meta/pubspec.yaml | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/mediation/gma_mediation_meta/CHANGELOG.md b/packages/mediation/gma_mediation_meta/CHANGELOG.md index 0f466efda..5f7edfa5c 100644 --- a/packages/mediation/gma_mediation_meta/CHANGELOG.md +++ b/packages/mediation/gma_mediation_meta/CHANGELOG.md @@ -1,5 +1,7 @@ ## Meta Audience Network Flutter Mediation Adapter Changelog +#### Version 1.5.2 (In progress) + #### Version 1.5.1 * Updated minimum Flutter version to 3.35.1 * Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 diff --git a/packages/mediation/gma_mediation_meta/android/build.gradle b/packages/mediation/gma_mediation_meta/android/build.gradle index f4059213b..b3986f526 100644 --- a/packages/mediation/gma_mediation_meta/android/build.gradle +++ b/packages/mediation/gma_mediation_meta/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_meta' -version = "1.5.1" +version = "1.5.2" buildscript { ext.kotlin_version = '2.2.21' diff --git a/packages/mediation/gma_mediation_meta/ios/gma_mediation_meta.podspec b/packages/mediation/gma_mediation_meta/ios/gma_mediation_meta.podspec index e3f673509..b6ae49a5f 100644 --- a/packages/mediation/gma_mediation_meta/ios/gma_mediation_meta.podspec +++ b/packages/mediation/gma_mediation_meta/ios/gma_mediation_meta.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_meta' - s.version = '1.5.1' + s.version = '1.5.2' s.summary = 'Google Mobile Ads Mediation of Meta Audience Network.' s.description = <<-DESC Mediation Adapter for Meta Audience Network to use with Google Mobile Ads. @@ -16,7 +16,7 @@ Mediation Adapter for Meta Audience Network to use with Google Mobile Ads. s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationFacebook', '~> 6.21.0.1' + s.dependency 'GoogleMobileAdsMediationFacebook', '~> 6.21.1.0' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_meta/pubspec.yaml b/packages/mediation/gma_mediation_meta/pubspec.yaml index 77b5ff5bd..caa6fdcc6 100644 --- a/packages/mediation/gma_mediation_meta/pubspec.yaml +++ b/packages/mediation/gma_mediation_meta/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_meta description: "Mediation Adapter that enables sending ad requests to the Meta Audience Network ad network using the google_mobile_ads plugin." -version: 1.5.1 +version: 1.5.2 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_meta environment: From 318779ef60e2744cb92e36186764f0af5ba291f8 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 23 Mar 2026 09:47:38 -0700 Subject: [PATCH 173/251] Updating MyTarget Flutter mediation plugin to support the latest adapters (5.45.3.0, 5.40.0.0) PiperOrigin-RevId: 888143157 --- packages/mediation/gma_mediation_mytarget/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_mytarget/android/build.gradle | 4 ++-- .../gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec | 4 ++-- packages/mediation/gma_mediation_mytarget/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_mytarget/CHANGELOG.md b/packages/mediation/gma_mediation_mytarget/CHANGELOG.md index 5cfa07a4e..30981bb43 100644 --- a/packages/mediation/gma_mediation_mytarget/CHANGELOG.md +++ b/packages/mediation/gma_mediation_mytarget/CHANGELOG.md @@ -1,5 +1,7 @@ ## myTarget Flutter Mediation Adapter Changelog +#### Version 1.9.0 (In progress) + #### Version 1.8.0 * Supports [myTarget Android adapter version 5.27.4.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/mytarget/CHANGELOG.md#version-52741). * Supports [myTarget iOS adapter version 5.39.1.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/MyTarget/CHANGELOG.md#version-53910). diff --git a/packages/mediation/gma_mediation_mytarget/android/build.gradle b/packages/mediation/gma_mediation_mytarget/android/build.gradle index 9f92f0ef2..bbf19a144 100644 --- a/packages/mediation/gma_mediation_mytarget/android/build.gradle +++ b/packages/mediation/gma_mediation_mytarget/android/build.gradle @@ -1,5 +1,5 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_mytarget" -version = "1.8.0" +version = "1.9.0" buildscript { ext.kotlin_version = "2.2.21" @@ -25,7 +25,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "5.27.4.1" + stringVersion = "5.45.3.0" } android { diff --git a/packages/mediation/gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec b/packages/mediation/gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec index 3c02f24ba..567327c2e 100644 --- a/packages/mediation/gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec +++ b/packages/mediation/gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_mytarget' - s.version = '1.8.0' + s.version = '1.9.0' s.summary = 'Google Mobile Ads Mediation of mytarget.' s.description = <<-DESC Mediation Adapter for mytarget to use with Google Mobile Ads. @@ -11,7 +11,7 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationMyTarget', '~>5.39.1.0' + s.dependency 'GoogleMobileAdsMediationMyTarget', '~>5.40.0.0' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_mytarget/pubspec.yaml b/packages/mediation/gma_mediation_mytarget/pubspec.yaml index 026feddf6..f41b762de 100644 --- a/packages/mediation/gma_mediation_mytarget/pubspec.yaml +++ b/packages/mediation/gma_mediation_mytarget/pubspec.yaml @@ -1,7 +1,7 @@ name: gma_mediation_mytarget description: 'Mediation Adapter that enables sending ad requests to the mytarget ad network using the google_mobile_ads plugin.' -version: 1.8.0 +version: 1.9.0 environment: sdk: ^3.9.0 flutter: '>=3.35.1' From 511aa9015eef6105866a6b515e7295f2a3e9c663 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 23 Mar 2026 09:48:13 -0700 Subject: [PATCH 174/251] Updating Moloco Flutter mediation plugin to support the latest adapters (4.6.0.0, 4.4.1.0) PiperOrigin-RevId: 888143412 --- packages/mediation/gma_mediation_moloco/CHANGELOG.md | 2 ++ packages/mediation/gma_mediation_moloco/android/build.gradle | 4 ++-- .../gma_mediation_moloco/ios/gma_mediation_moloco.podspec | 4 ++-- packages/mediation/gma_mediation_moloco/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_moloco/CHANGELOG.md b/packages/mediation/gma_mediation_moloco/CHANGELOG.md index 747ebe925..f66b7fedf 100644 --- a/packages/mediation/gma_mediation_moloco/CHANGELOG.md +++ b/packages/mediation/gma_mediation_moloco/CHANGELOG.md @@ -1,5 +1,7 @@ ## Moloco Flutter Mediation Adapter Changelog +#### Version 3.4.0 (In progress) + #### Version 3.3.0 - Supports [Moloco Android adapter version 4.5.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/moloco/CHANGELOG.md#version-4500). - Supports [Moloco iOS adapter version 4.3.0.2](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Moloco/CHANGELOG.md#version-4302). diff --git a/packages/mediation/gma_mediation_moloco/android/build.gradle b/packages/mediation/gma_mediation_moloco/android/build.gradle index e54d37629..be9288a95 100644 --- a/packages/mediation/gma_mediation_moloco/android/build.gradle +++ b/packages/mediation/gma_mediation_moloco/android/build.gradle @@ -1,5 +1,5 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_moloco" -version = "3.3.0" +version = "3.4.0" buildscript { ext.kotlin_version = "2.2.21" @@ -25,7 +25,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "4.5.0.0" + stringVersion = "4.6.0.0" } android { diff --git a/packages/mediation/gma_mediation_moloco/ios/gma_mediation_moloco.podspec b/packages/mediation/gma_mediation_moloco/ios/gma_mediation_moloco.podspec index e78801d43..682abb325 100644 --- a/packages/mediation/gma_mediation_moloco/ios/gma_mediation_moloco.podspec +++ b/packages/mediation/gma_mediation_moloco/ios/gma_mediation_moloco.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_moloco' - s.version = '3.3.0' + s.version = '3.4.0' s.summary = 'Google Mobile Ads Mediation of Moloco.' s.description = <<-DESC Mediation Adapter for Moloco to use with Google Mobile Ads. @@ -11,7 +11,7 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationMoloco', '~> 4.3.0.2' + s.dependency 'GoogleMobileAdsMediationMoloco', '~> 4.4.1.0' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_moloco/pubspec.yaml b/packages/mediation/gma_mediation_moloco/pubspec.yaml index b120c4b85..8e26200f1 100644 --- a/packages/mediation/gma_mediation_moloco/pubspec.yaml +++ b/packages/mediation/gma_mediation_moloco/pubspec.yaml @@ -1,7 +1,7 @@ name: gma_mediation_moloco description: 'Mediation Adapter that enables sending ad requests to the Moloco ad network using the google_mobile_ads plugin.' -version: 3.3.0 +version: 3.4.0 environment: sdk: '>=3.9.0 <4.0.0' flutter: '>=3.35.1' From 6434e5ee5f98fe22ea0ef96a330ca41891376803 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 23 Mar 2026 09:49:16 -0700 Subject: [PATCH 175/251] Updating Line Flutter mediation plugin to support the latest adapters (3.0.1.1, 3.0.1.0) PiperOrigin-RevId: 888143891 --- packages/mediation/gma_mediation_line/CHANGELOG.md | 2 ++ packages/mediation/gma_mediation_line/android/build.gradle | 2 +- .../gma_mediation_line/ios/gma_mediation_line.podspec | 4 ++-- packages/mediation/gma_mediation_line/pubspec.yaml | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/mediation/gma_mediation_line/CHANGELOG.md b/packages/mediation/gma_mediation_line/CHANGELOG.md index 5fda0d384..d366c1326 100644 --- a/packages/mediation/gma_mediation_line/CHANGELOG.md +++ b/packages/mediation/gma_mediation_line/CHANGELOG.md @@ -1,5 +1,7 @@ ## Line Flutter Mediation Adapter Changelog +#### Version 2.0.2 (In progress) + #### Version 2.0.1 (In progress) #### Version 2.0.0 diff --git a/packages/mediation/gma_mediation_line/android/build.gradle b/packages/mediation/gma_mediation_line/android/build.gradle index 81759d501..d4e866108 100644 --- a/packages/mediation/gma_mediation_line/android/build.gradle +++ b/packages/mediation/gma_mediation_line/android/build.gradle @@ -1,5 +1,5 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_line" -version = "2.0.1" +version = "2.0.2" buildscript { ext.kotlin_version = "2.2.21" diff --git a/packages/mediation/gma_mediation_line/ios/gma_mediation_line.podspec b/packages/mediation/gma_mediation_line/ios/gma_mediation_line.podspec index 93a657059..9f2fce951 100644 --- a/packages/mediation/gma_mediation_line/ios/gma_mediation_line.podspec +++ b/packages/mediation/gma_mediation_line/ios/gma_mediation_line.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_line' - s.version = '2.0.1' + s.version = '2.0.2' s.summary = 'Google Mobile Ads Mediation of Line.' s.description = <<-DESC Mediation Adapter for Line to use with Google Mobile Ads. @@ -11,7 +11,7 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationLine', '~>3.0.0.1' + s.dependency 'GoogleMobileAdsMediationLine', '~>3.0.1.0' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_line/pubspec.yaml b/packages/mediation/gma_mediation_line/pubspec.yaml index fee554c33..6fc0d7e12 100644 --- a/packages/mediation/gma_mediation_line/pubspec.yaml +++ b/packages/mediation/gma_mediation_line/pubspec.yaml @@ -1,7 +1,7 @@ name: gma_mediation_line description: 'Mediation Adapter that enables sending ad requests to the Line ad network using the google_mobile_ads plugin.' -version: 2.0.1 +version: 2.0.2 environment: sdk: '>=3.9.0 <4.0.0' flutter: '>=3.35.1' From 72be67b8ac6335b0c1dbda2880e1e1e58017ab02 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 30 Mar 2026 14:23:03 -0700 Subject: [PATCH 176/251] Updating PubMatic Flutter mediation plugin to support the latest adapters (5.0.0.0, 5.0.0.0) PiperOrigin-RevId: 891909995 --- packages/mediation/gma_mediation_pubmatic/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_pubmatic/android/build.gradle | 4 ++-- .../gma_mediation_pubmatic/ios/gma_mediation_pubmatic.podspec | 4 ++-- packages/mediation/gma_mediation_pubmatic/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md b/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md index 423849c4a..0fbe48b14 100644 --- a/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md +++ b/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md @@ -1,5 +1,7 @@ ## Pubmatic Flutter Mediation Adapter Changelog +#### Version 2.0.0 (In progress) + #### Version 1.6.0 - Supports [PubMatic Android adapter version 4.12.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/pubmatic/CHANGELOG.md#version-41200). - Supports [PubMatic iOS adapter version 4.12.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/PubMatic/CHANGELOG.md#version-41200). diff --git a/packages/mediation/gma_mediation_pubmatic/android/build.gradle b/packages/mediation/gma_mediation_pubmatic/android/build.gradle index 52750da02..d71f329f6 100644 --- a/packages/mediation/gma_mediation_pubmatic/android/build.gradle +++ b/packages/mediation/gma_mediation_pubmatic/android/build.gradle @@ -1,5 +1,5 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_pubmatic" -version = "1.6.0" +version = "2.0.0" buildscript { ext.kotlin_version = "2.2.21" @@ -25,7 +25,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "4.12.0.0" + stringVersion = "5.0.0.0" } android { diff --git a/packages/mediation/gma_mediation_pubmatic/ios/gma_mediation_pubmatic.podspec b/packages/mediation/gma_mediation_pubmatic/ios/gma_mediation_pubmatic.podspec index 80092e44a..0ba7e01a6 100644 --- a/packages/mediation/gma_mediation_pubmatic/ios/gma_mediation_pubmatic.podspec +++ b/packages/mediation/gma_mediation_pubmatic/ios/gma_mediation_pubmatic.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_pubmatic' - s.version = '1.6.0' + s.version = '2.0.0' s.summary = 'Google Mobile Ads Mediation of Pubmatic.' s.description = <<-DESC Mediation Adapter for Pubmatic to use with Google Mobile Ads. @@ -11,7 +11,7 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationPubMatic', '~> 4.12.0.0' + s.dependency 'GoogleMobileAdsMediationPubMatic', '~> 5.0.0.0' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_pubmatic/pubspec.yaml b/packages/mediation/gma_mediation_pubmatic/pubspec.yaml index 065d77c44..18bda95ec 100644 --- a/packages/mediation/gma_mediation_pubmatic/pubspec.yaml +++ b/packages/mediation/gma_mediation_pubmatic/pubspec.yaml @@ -1,7 +1,7 @@ name: gma_mediation_pubmatic description: 'Mediation Adapter that enables sending ad requests to the Pubmatic ad network using the google_mobile_ads plugin.' -version: 1.6.0 +version: 2.0.0 environment: sdk: '>=3.9.0 <4.0.0' flutter: '>=3.35.1' From 749c72b612dd00a1ac7bd81afd0a8c868495c449 Mon Sep 17 00:00:00 2001 From: LTphantom Date: Wed, 1 Apr 2026 13:17:49 -0700 Subject: [PATCH 177/251] Migration to use UISceneDelegate protocol. (#1421) * GMAPlugin iOS first update * Added FlutterSceneLifeCycleDelegate * Updated Example app --- .../example/ios/Runner/AppDelegate.h | 2 +- .../example/ios/Runner/AppDelegate.m | 5 ++++- .../example/ios/Runner/Info.plist | 21 +++++++++++++++++++ .../FLTGoogleMobileAdsPlugin.m | 21 ++++++++++++------- .../FLTGoogleMobileAdsPlugin.h | 2 +- 5 files changed, 41 insertions(+), 10 deletions(-) diff --git a/packages/google_mobile_ads/example/ios/Runner/AppDelegate.h b/packages/google_mobile_ads/example/ios/Runner/AppDelegate.h index 2e308bb55..087fbca75 100644 --- a/packages/google_mobile_ads/example/ios/Runner/AppDelegate.h +++ b/packages/google_mobile_ads/example/ios/Runner/AppDelegate.h @@ -15,6 +15,6 @@ #import #import -@interface AppDelegate : FlutterAppDelegate +@interface AppDelegate : FlutterAppDelegate @end diff --git a/packages/google_mobile_ads/example/ios/Runner/AppDelegate.m b/packages/google_mobile_ads/example/ios/Runner/AppDelegate.m index 2e4aa889e..0bf39072c 100644 --- a/packages/google_mobile_ads/example/ios/Runner/AppDelegate.m +++ b/packages/google_mobile_ads/example/ios/Runner/AppDelegate.m @@ -71,7 +71,6 @@ - (GADNativeAdView *)createNativeAd:(GADNativeAd *)nativeAd @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - [GeneratedPluginRegistrant registerWithRegistry:self]; NativeAdFactoryExample *nativeAdFactory = [[NativeAdFactoryExample alloc] init]; @@ -82,4 +81,8 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:launchOptions]; } +- (void)didInitializeImplicitFlutterEngine:(NSObject*)engineBridge { + [GeneratedPluginRegistrant registerWithRegistry:engineBridge.pluginRegistry]; +} + @end diff --git a/packages/google_mobile_ads/example/ios/Runner/Info.plist b/packages/google_mobile_ads/example/ios/Runner/Info.plist index 924f1d9a8..7da348315 100644 --- a/packages/google_mobile_ads/example/ios/Runner/Info.plist +++ b/packages/google_mobile_ads/example/ios/Runner/Info.plist @@ -60,5 +60,26 @@ UIApplicationSupportsIndirectInputEvents + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneClassName + UIWindowScene + UISceneDelegateClassName + FlutterSceneDelegate + UISceneConfigurationName + flutter + UISceneStoryboardFile + Main + + + + diff --git a/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTGoogleMobileAdsPlugin.m b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTGoogleMobileAdsPlugin.m index e50096d98..9ff050904 100644 --- a/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTGoogleMobileAdsPlugin.m +++ b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTGoogleMobileAdsPlugin.m @@ -22,6 +22,7 @@ @interface FLTGoogleMobileAdsPlugin () @property(nonatomic, retain) FlutterMethodChannel *channel; +@property NSObject *registrar; @property NSMutableDictionary> *nativeAdFactories; @end @@ -76,7 +77,7 @@ @implementation FLTGoogleMobileAdsPlugin { + (void)registerWithRegistrar:(NSObject *)registrar { FLTGoogleMobileAdsPlugin *instance = [[FLTGoogleMobileAdsPlugin alloc] - initWithBinaryMessenger:registrar.messenger]; + initWithRegistrar:registrar binaryMessenger:registrar.messenger]; [registrar publish:instance]; FLTGoogleMobileAdsReaderWriter *readerWriter = @@ -112,10 +113,11 @@ - (BOOL)application:(UIApplication *)application return YES; } -- (instancetype)initWithBinaryMessenger: - (id)binaryMessenger { +- (instancetype)initWithRegistrar: (NSObject*)registrar + binaryMessenger: (id)binaryMessenger { self = [self init]; if (self) { + _registrar = registrar; _nativeAdFactories = [NSMutableDictionary dictionary]; _manager = [[FLTAdInstanceManager alloc] initWithBinaryMessenger:binaryMessenger]; @@ -212,8 +214,7 @@ + (BOOL)registerNativeAdFactory:(id)registry } - (UIViewController *)rootController { - UIViewController *root = - UIApplication.sharedApplication.delegate.window.rootViewController; + UIViewController* root = _registrar.viewController; if ([FLTAdUtil isNull:root]) { // UIApplication.sharedApplication.delegate.window is not guaranteed to be // set. Use the keyWindow in this case. @@ -310,10 +311,16 @@ - (void)handleMethodCall:(FlutterMethodCall *)call isEqualToString:@"MobileAds#getRequestConfiguration"]) { result(GADMobileAds.sharedInstance.requestConfiguration); } else if ([call.method isEqualToString:@"MobileAds#registerWebView"]) { - if (!_appDelegate) { + UIViewController* viewController = _registrar.viewController; + NSNumber *webViewId = call.arguments[@"webViewId"]; + if ([viewController isKindOfClass:FlutterViewController.class]) { + FlutterEngine* engine = ((FlutterViewController*)viewController).engine; + WKWebView *webView = [FLTAdUtil getWebView:webViewId + flutterPluginRegistry:engine]; + [GADMobileAds.sharedInstance registerWebView:webView]; + } else if (!_appDelegate) { NSLog(@"App delegate is null in MobileAds#registerWebView, skipping"); } else { - NSNumber *webViewId = call.arguments[@"webViewId"]; WKWebView *webView = [FLTAdUtil getWebView:webViewId flutterPluginRegistry:_appDelegate]; [GADMobileAds.sharedInstance registerWebView:webView]; diff --git a/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTGoogleMobileAdsPlugin.h b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTGoogleMobileAdsPlugin.h index f01782088..9da745da3 100644 --- a/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTGoogleMobileAdsPlugin.h +++ b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTGoogleMobileAdsPlugin.h @@ -49,7 +49,7 @@ /** * Flutter plugin providing access to the Google Mobile Ads API. */ -@interface FLTGoogleMobileAdsPlugin : NSObject +@interface FLTGoogleMobileAdsPlugin : NSObject /** * Registers a FLTMediationNetworkExtrasProvider used to provide mediation From 2c2af323d89c99c788bc6dfb1bff68bec4e29b18 Mon Sep 17 00:00:00 2001 From: LTphantom Date: Thu, 2 Apr 2026 19:04:51 -0700 Subject: [PATCH 178/251] Adds isCollapsible API for BannerAd (#1425) * Android and iOS integration of isCollapsible API --- .../android/gradle/gradle-daemon-jvm.properties | 12 ++++++++++++ .../FlutterAdManagerBannerAd.java | 8 ++++++++ .../googlemobileads/FlutterBannerAd.java | 8 ++++++++ .../googlemobileads/GoogleMobileAdsPlugin.java | 17 +++++++++++++++++ .../Sources/google_mobile_ads/FLTAd_Internal.m | 7 +++++++ .../FLTGoogleMobileAdsPlugin.m | 12 ++++++++++++ .../include/google_mobile_ads/FLTAd_Internal.h | 1 + .../lib/src/ad_containers.dart | 5 +++++ .../lib/src/ad_instance_manager.dart | 7 +++++++ 9 files changed, 77 insertions(+) create mode 100644 packages/google_mobile_ads/android/gradle/gradle-daemon-jvm.properties diff --git a/packages/google_mobile_ads/android/gradle/gradle-daemon-jvm.properties b/packages/google_mobile_ads/android/gradle/gradle-daemon-jvm.properties new file mode 100644 index 000000000..6c1139ec0 --- /dev/null +++ b/packages/google_mobile_ads/android/gradle/gradle-daemon-jvm.properties @@ -0,0 +1,12 @@ +#This file is generated by updateDaemonJvm +toolchainUrl.FREE_BSD.AARCH64=https\://api.foojay.io/disco/v3.0/ids/ec7520a1e057cd116f9544c42142a16b/redirect +toolchainUrl.FREE_BSD.X86_64=https\://api.foojay.io/disco/v3.0/ids/4c4f879899012ff0a8b2e2117df03b0e/redirect +toolchainUrl.LINUX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/ec7520a1e057cd116f9544c42142a16b/redirect +toolchainUrl.LINUX.X86_64=https\://api.foojay.io/disco/v3.0/ids/4c4f879899012ff0a8b2e2117df03b0e/redirect +toolchainUrl.MAC_OS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/73bcfb608d1fde9fb62e462f834a3299/redirect +toolchainUrl.MAC_OS.X86_64=https\://api.foojay.io/disco/v3.0/ids/846ee0d876d26a26f37aa1ce8de73224/redirect +toolchainUrl.UNIX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/ec7520a1e057cd116f9544c42142a16b/redirect +toolchainUrl.UNIX.X86_64=https\://api.foojay.io/disco/v3.0/ids/4c4f879899012ff0a8b2e2117df03b0e/redirect +toolchainUrl.WINDOWS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/9482ddec596298c84656d31d16652665/redirect +toolchainUrl.WINDOWS.X86_64=https\://api.foojay.io/disco/v3.0/ids/39701d92e1756bb2f141eb67cd4c660e/redirect +toolchainVersion=21 diff --git a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterAdManagerBannerAd.java b/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterAdManagerBannerAd.java index ecf7892e5..c07168eb9 100644 --- a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterAdManagerBannerAd.java +++ b/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterAdManagerBannerAd.java @@ -120,4 +120,12 @@ FlutterAdSize getAdSize() { } return new FlutterAdSize(adView.getAdSize()); } + + boolean isCollapsible() { + if (adView == null) { + return false; + } + + return adView.isCollapsible(); + } } diff --git a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterBannerAd.java b/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterBannerAd.java index 04b1ee3ad..ce4e18700 100644 --- a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterBannerAd.java +++ b/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterBannerAd.java @@ -91,4 +91,12 @@ FlutterAdSize getAdSize() { } return new FlutterAdSize(adView.getAdSize()); } + + boolean isCollapsible() { + if (adView == null) { + return false; + } + + return adView.isCollapsible(); + } } diff --git a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/GoogleMobileAdsPlugin.java b/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/GoogleMobileAdsPlugin.java index 91479ca77..08c5b8e59 100644 --- a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/GoogleMobileAdsPlugin.java +++ b/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/GoogleMobileAdsPlugin.java @@ -632,6 +632,23 @@ public void onAdInspectorClosed(@Nullable AdInspectorError adInspectorError) { } break; } + case "isCollapsible": + { + FlutterAd ad = instanceManager.adForId(call.argument("adId")); + if (ad == null) { + result.success(false); + } else if (ad instanceof FlutterBannerAd) { + result.success(((FlutterBannerAd) ad).isCollapsible()); + } else if (ad instanceof FlutterAdManagerBannerAd) { + result.success(((FlutterAdManagerBannerAd) ad).isCollapsible()); + } else { + result.error( + Constants.ERROR_CODE_UNEXPECTED_AD_TYPE, + "Unexpected ad type for isCollapsible: " + ad, + null); + } + break; + } case "setServerSideVerificationOptions": { FlutterAd ad = instanceManager.adForId(call.argument("adId")); diff --git a/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTAd_Internal.m b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTAd_Internal.m index aeff03b74..d012dca15 100644 --- a/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTAd_Internal.m +++ b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTAd_Internal.m @@ -399,6 +399,13 @@ - (FLTAdSize *)getAdSize { return nil; } +-(BOOL)isCollapsible { + if (self.bannerView) { + return self.bannerView.isCollapsible; + } + return false; +} + #pragma mark - GADBannerViewDelegate - (void)bannerViewDidReceiveAd:(GADBannerView *)bannerView { diff --git a/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTGoogleMobileAdsPlugin.m b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTGoogleMobileAdsPlugin.m index 9ff050904..ced9e2944 100644 --- a/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTGoogleMobileAdsPlugin.m +++ b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTGoogleMobileAdsPlugin.m @@ -543,6 +543,18 @@ - (void)handleMethodCall:(FlutterMethodCall *)call } else { result(FlutterMethodNotImplemented); } + } else if ([call.method isEqualToString:@"isCollapsible"]) { + id ad = [_manager adFor:call.arguments[@"adId"]]; + if ([FLTAdUtil isNull:ad]) { + // Called on an ad that hasn't been loaded yet. + result(@NO); + } + if ([ad isKindOfClass:[FLTBannerAd class]]) { + FLTBannerAd *bannerAd = (FLTBannerAd *)ad; + result(@([bannerAd isCollapsible])); + } else { + result(FlutterMethodNotImplemented); + } } else if ([call.method isEqualToString:@"setServerSideVerificationOptions"]) { id ad = [_manager adFor:call.arguments[@"adId"]]; diff --git a/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTAd_Internal.h b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTAd_Internal.h index 7d8b79f65..e19021530 100644 --- a/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTAd_Internal.h +++ b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTAd_Internal.h @@ -181,6 +181,7 @@ adId:(NSNumber *_Nonnull)adId; - (FLTAdSize *_Nullable)getAdSize; - (GADBannerView *_Nonnull)bannerView; +- (BOOL)isCollapsible; @end /** diff --git a/packages/google_mobile_ads/lib/src/ad_containers.dart b/packages/google_mobile_ads/lib/src/ad_containers.dart index 85ae6f0f1..f402b963d 100644 --- a/packages/google_mobile_ads/lib/src/ad_containers.dart +++ b/packages/google_mobile_ads/lib/src/ad_containers.dart @@ -920,6 +920,11 @@ class BannerAd extends AdWithView { } return false; } + + /// Returns true if banner loaded is collapsible + Future get isCollapsible async { + return await instanceManager.isCollapsible(this); + } } /// An 'AdManagerBannerAd' that has fluid ad size. diff --git a/packages/google_mobile_ads/lib/src/ad_instance_manager.dart b/packages/google_mobile_ads/lib/src/ad_instance_manager.dart index aa37a30a0..a0cccbb83 100644 --- a/packages/google_mobile_ads/lib/src/ad_instance_manager.dart +++ b/packages/google_mobile_ads/lib/src/ad_instance_manager.dart @@ -504,6 +504,13 @@ class AdInstanceManager { /// Returns true if the [adId] is already mounted in a [WidgetAd]. bool isWidgetAdIdMounted(int adId) => _mountedWidgetAdIds.contains(adId); + /// Returns true if banner loaded is collapsible + Future isCollapsible(Ad ad) async => + (await instanceManager.channel.invokeMethod( + 'isCollapsible', + {'adId': adIdFor(ad)}, + ))!; + /// Indicates that [adId] is mounted in widget tree. void mountWidgetAdId(int adId) => _mountedWidgetAdIds.add(adId); From 74d4f17b72fc34457b620299fd33579bcce541d4 Mon Sep 17 00:00:00 2001 From: LTphantom Date: Fri, 3 Apr 2026 09:51:10 -0700 Subject: [PATCH 179/251] Renaming of initWithInt method inside FLTNSString (#1426) * Changed initWithInt method name of FLTNSString category to avoid possible name clashes --- .../google_mobile_ads/FLTGoogleMobileAdsPlugin.m | 2 +- .../Sources/google_mobile_ads/FLTNSString.m | 2 +- .../FLTUserMessagingPlatformManager.m | 10 +++++----- .../include/google_mobile_ads/FLTNSString.h | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTGoogleMobileAdsPlugin.m b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTGoogleMobileAdsPlugin.m index ced9e2944..9802ce6ff 100644 --- a/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTGoogleMobileAdsPlugin.m +++ b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTGoogleMobileAdsPlugin.m @@ -297,7 +297,7 @@ - (void)handleMethodCall:(FlutterMethodCall *)call if (error) { result([FlutterError errorWithCode:[[NSString alloc] - initWithInt:error.code] + gma_initWithInt:error.code] message:error.localizedDescription details:error.domain]); } else { diff --git a/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTNSString.m b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTNSString.m index a9f03951c..3cf996f6a 100644 --- a/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTNSString.m +++ b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTNSString.m @@ -16,7 +16,7 @@ @implementation NSString (FLTNSStringExtension) -- (instancetype _Nonnull)initWithInt:(NSInteger)integer { +- (instancetype _Nonnull)gma_initWithInt:(NSInteger)integer { self = [self initWithFormat:@"%ld", (long)integer]; return self; } diff --git a/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/UserMessagingPlatform/FLTUserMessagingPlatformManager.m b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/UserMessagingPlatform/FLTUserMessagingPlatformManager.m index 831a60f32..5cca57673 100644 --- a/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/UserMessagingPlatform/FLTUserMessagingPlatformManager.m +++ b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/UserMessagingPlatform/FLTUserMessagingPlatformManager.m @@ -87,7 +87,7 @@ - (void)handleMethodCall:(FlutterMethodCall *_Nonnull)call } else { result([FlutterError errorWithCode:[[NSString alloc] - initWithInt:error.code] + gma_initWithInt:error.code] message:error.localizedDescription details:error.domain]); } @@ -104,7 +104,7 @@ - (void)handleMethodCall:(FlutterMethodCall *_Nonnull)call result([FlutterError errorWithCode: [[NSString alloc] - initWithInt:error.code] + gma_initWithInt:error.code] message:error .localizedDescription details:error.domain]); @@ -119,7 +119,7 @@ - (void)handleMethodCall:(FlutterMethodCall *_Nonnull)call result(form); } else { result([FlutterError - errorWithCode:[[NSString alloc] initWithInt:loadError.code] + errorWithCode:[[NSString alloc] gma_initWithInt:loadError.code] message:loadError.localizedDescription details:loadError.domain]); } @@ -137,7 +137,7 @@ - (void)handleMethodCall:(FlutterMethodCall *_Nonnull)call result([FlutterError errorWithCode: [[NSString alloc] - initWithInt:formError.code] + gma_initWithInt:formError.code] message: formError .localizedDescription @@ -158,7 +158,7 @@ - (void)handleMethodCall:(FlutterMethodCall *_Nonnull)call result(nil); } else { result([FlutterError - errorWithCode:[[NSString alloc] initWithInt:error.code] + errorWithCode:[[NSString alloc] gma_initWithInt:error.code] message:error.localizedDescription details:error.domain]); } diff --git a/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTNSString.h b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTNSString.h index ad050d61d..5ec639008 100644 --- a/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTNSString.h +++ b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTNSString.h @@ -17,6 +17,6 @@ /// Category extensions for NSString @interface NSString (FLTNSStringExtension) -- (instancetype _Nonnull)initWithInt:(NSInteger)integer; +- (instancetype _Nonnull)gma_initWithInt:(NSInteger)integer __attribute__((objc_method_family(init))); @end From 15d89f3ed51deabf20986634798e9d207f157002 Mon Sep 17 00:00:00 2001 From: LTphantom Date: Wed, 8 Apr 2026 15:01:43 -0700 Subject: [PATCH 180/251] GMA SDK major version update 8.0.0 (#1427) * Android major update * iOS major update * Updated CHANGELOG * Added new LargeAnchoredAdaptive Banner Ad Sizes --- packages/google_mobile_ads/CHANGELOG.md | 11 +++++ .../google_mobile_ads/android/build.gradle | 10 ++-- .../googlemobileads/AdMessageCodec.java | 2 +- .../plugins/googlemobileads/Constants.java | 2 +- .../googlemobileads/FlutterAdSize.java | 40 ++++++++++++---- .../GoogleMobileAdsPlugin.java | 17 ++++++- .../googlemobileads/AdMessageCodecTest.java | 6 +-- .../googlemobileads/GoogleMobileAdsTest.java | 21 ++++++++ .../FLTGoogleMobileAdsPluginMethodCallsTest.m | 22 ++++----- .../FLTGoogleMobileAdsReaderWriterTest.m | 35 +++++++------- .../lib/anchored_adaptive_example.dart | 2 +- .../lib/snippets/banner_ad_snippets.dart | 2 +- .../ios/google_mobile_ads.podspec | 4 +- .../ios/google_mobile_ads/Package.swift | 2 +- .../google_mobile_ads/FLTAd_Internal.m | 39 +++++++++++++-- .../FLTGoogleMobileAdsPlugin.m | 14 +++++- .../FLTGoogleMobileAdsReaderWriter_Internal.m | 3 +- .../google_mobile_ads/FLTAd_Internal.h | 3 +- .../include/google_mobile_ads/FLTConstants.h | 2 +- .../lib/src/ad_containers.dart | 48 +++++++++++++++++++ packages/google_mobile_ads/pubspec.yaml | 2 +- 21 files changed, 226 insertions(+), 61 deletions(-) diff --git a/packages/google_mobile_ads/CHANGELOG.md b/packages/google_mobile_ads/CHANGELOG.md index b23d4acde..e42d252c8 100644 --- a/packages/google_mobile_ads/CHANGELOG.md +++ b/packages/google_mobile_ads/CHANGELOG.md @@ -1,3 +1,14 @@ +## 8.0.0 +* Adds Swift Package Manager Support for the plugin. [PR 1395](https://github.com/googleads/googleads-mobile-flutter/pull/1395) +* Adds `isCollapsible` API. [FR 1294](https://github.com/googleads/googleads-mobile-flutter/issues/1294) +* Renamed method name to avoid possible name collision. [FR 1394](https://github.com/googleads/googleads-mobile-flutter/issues/1394) +* Migrated to use UISceneDelegate protocol. [Issue 1391](https://github.com/googleads/googleads-mobile-flutter/issues/1391) +* Updates GMA [Android](https://developers.google.com/admob/android/rel-notes) dependency to 25.1.0 +* Updates GMA [iOS](https://developers.google.com/admob/ios/rel-notes) dependency to 13.2.0 +* Uses latest UMP SDK: + * [Android](https://developers.google.com/admob/android/privacy/release-notes) UMP SDK version 4.0.0. + * [iOS](https://developers.google.com/admob/ios/privacy/download#release_notes) UMP SDK version 3.1.0. + ## 7.0.0 * Added character limits expected for Native Ad Templates. Issues [1243](https://github.com/googleads/googleads-mobile-flutter/issues/1243) and [1332](https://github.com/googleads/googleads-mobile-flutter/issues/1332) * Fixed padding for Native Ads small template. [Issue 1357](https://github.com/googleads/googleads-mobile-flutter/issues/1357) diff --git a/packages/google_mobile_ads/android/build.gradle b/packages/google_mobile_ads/android/build.gradle index 009e9518e..14c700f93 100644 --- a/packages/google_mobile_ads/android/build.gradle +++ b/packages/google_mobile_ads/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads' -version '7.0.0' +version '8.0.0' buildscript { ext { @@ -38,15 +38,15 @@ android { disable 'InvalidPackage' } dependencies { - api 'com.google.android.gms:play-services-ads:24.9.0' + api 'com.google.android.gms:play-services-ads:25.1.0' implementation 'com.google.android.ump:user-messaging-platform:4.0.0' implementation 'androidx.constraintlayout:constraintlayout:2.2.1' implementation 'androidx.lifecycle:lifecycle-process:2.10.0' - implementation 'com.google.errorprone:error_prone_annotations:2.44.0' + implementation 'com.google.errorprone:error_prone_annotations:2.48.0' testImplementation 'junit:junit:4.13.2' testImplementation 'org.hamcrest:hamcrest:3.0' - testImplementation 'org.mockito:mockito-core:5.20.0' - testImplementation 'org.robolectric:robolectric:4.16' + testImplementation 'org.mockito:mockito-core:5.23.0' + testImplementation 'org.robolectric:robolectric:4.16.1' testImplementation 'androidx.test:core:1.7.0' } testOptions { diff --git a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/AdMessageCodec.java b/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/AdMessageCodec.java index 65f370cf4..68c238918 100644 --- a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/AdMessageCodec.java +++ b/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/AdMessageCodec.java @@ -280,7 +280,7 @@ protected Object readValueOfType(byte type, ByteBuffer buffer) { final String orientation = (String) readValueOfType(buffer.get(), buffer); final Integer width = (Integer) readValueOfType(buffer.get(), buffer); return new FlutterAdSize.AnchoredAdaptiveBannerAdSize( - context, adSizeFactory, orientation, width); + context, adSizeFactory, orientation, width, /* isLarge = */ false); case VALUE_SMART_BANNER_AD_SIZE: return new FlutterAdSize.SmartBannerAdSize(); case VALUE_AD_SIZE: diff --git a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/Constants.java b/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/Constants.java index fc8c808aa..ab28b2066 100644 --- a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/Constants.java +++ b/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/Constants.java @@ -17,7 +17,7 @@ /** Constants used in the plugin. */ public class Constants { /** Version request agent. Should be bumped alongside plugin versions. */ - public static final String REQUEST_AGENT_PREFIX_VERSIONED = "Flutter-GMA-7.0.0"; + public static final String REQUEST_AGENT_PREFIX_VERSIONED = "Flutter-GMA-8.0.0"; /** Prefix for news template */ public static final String REQUEST_AGENT_NEWS_TEMPLATE_PREFIX = "News"; diff --git a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterAdSize.java b/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterAdSize.java index d1faf110b..d08ffa90a 100644 --- a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterAdSize.java +++ b/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterAdSize.java @@ -27,18 +27,33 @@ class FlutterAdSize { /** Wrapper around static methods for {@link com.google.android.gms.ads.AdSize}. */ static class AdSizeFactory { + @SuppressWarnings("deprecation") AdSize getPortraitAnchoredAdaptiveBannerAdSize(Context context, int width) { return AdSize.getPortraitAnchoredAdaptiveBannerAdSize(context, width); } + @SuppressWarnings("deprecation") AdSize getLandscapeAnchoredAdaptiveBannerAdSize(Context context, int width) { return AdSize.getLandscapeAnchoredAdaptiveBannerAdSize(context, width); } + @SuppressWarnings("deprecation") AdSize getCurrentOrientationAnchoredAdaptiveBannerAdSize(Context context, int width) { return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(context, width); } + AdSize getLargePortraitAnchoredAdaptiveBannerAdSize(Context context, int width) { + return AdSize.getLargePortraitAnchoredAdaptiveBannerAdSize(context, width); + } + + AdSize getLargeLandscapeAnchoredAdaptiveBannerAdSize(Context context, int width) { + return AdSize.getLargeLandscapeAnchoredAdaptiveBannerAdSize(context, width); + } + + AdSize getLargeAnchoredAdaptiveBannerAdSize(Context context, int width) { + return AdSize.getLargeAnchoredAdaptiveBannerAdSize(context, width); + } + AdSize getCurrentOrientationInlineAdaptiveBannerAdSize(Context context, int width) { return AdSize.getCurrentOrientationInlineAdaptiveBannerAdSize(context, width); } @@ -64,26 +79,35 @@ private static AdSize getAdSize( @NonNull Context context, @NonNull AdSizeFactory factory, @Nullable String orientation, - int width) { - final AdSize adSize; + int width, + boolean isLarge) { if (orientation == null) { - adSize = factory.getCurrentOrientationAnchoredAdaptiveBannerAdSize(context, width); + if (isLarge) { + return factory.getLargeAnchoredAdaptiveBannerAdSize(context, width); + } + return factory.getCurrentOrientationAnchoredAdaptiveBannerAdSize(context, width); } else if (orientation.equals("portrait")) { - adSize = factory.getPortraitAnchoredAdaptiveBannerAdSize(context, width); + if (isLarge) { + return factory.getLargePortraitAnchoredAdaptiveBannerAdSize(context, width); + } + return factory.getPortraitAnchoredAdaptiveBannerAdSize(context, width); } else if (orientation.equals("landscape")) { - adSize = factory.getLandscapeAnchoredAdaptiveBannerAdSize(context, width); + if (isLarge) { + return factory.getLargeLandscapeAnchoredAdaptiveBannerAdSize(context, width); + } + return factory.getLandscapeAnchoredAdaptiveBannerAdSize(context, width); } else { throw new IllegalArgumentException("Unexpected value for orientation: " + orientation); } - return adSize; } AnchoredAdaptiveBannerAdSize( @NonNull Context context, @NonNull AdSizeFactory factory, @Nullable String orientation, - int width) { - super(getAdSize(context, factory, orientation, width)); + int width, + boolean isLarge) { + super(getAdSize(context, factory, orientation, width, isLarge)); this.orientation = orientation; } } diff --git a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/GoogleMobileAdsPlugin.java b/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/GoogleMobileAdsPlugin.java index 08c5b8e59..87871b5e5 100644 --- a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/GoogleMobileAdsPlugin.java +++ b/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/GoogleMobileAdsPlugin.java @@ -582,13 +582,28 @@ public void onAdInspectorClosed(@Nullable AdInspectorError adInspectorError) { context, new FlutterAdSize.AdSizeFactory(), call.argument("orientation"), - call.argument("width")); + call.argument("width"), + /* isLarge = */ false); if (AdSize.INVALID.equals(size.size)) { result.success(null); } else { result.success(size.height); } break; + case "AdSize#getLargeAnchoredAdaptiveBannerAdSize": + final FlutterAdSize.AnchoredAdaptiveBannerAdSize largeSize = + new FlutterAdSize.AnchoredAdaptiveBannerAdSize( + context, + new FlutterAdSize.AdSizeFactory(), + call.argument("orientation"), + call.argument("width"), + /* isLarge = */ true); + if (AdSize.INVALID.equals(largeSize.size)) { + result.success(null); + } else { + result.success(largeSize.height); + } + break; case "MobileAds#setAppMuted": flutterMobileAds.setAppMuted(call.argument("muted")); result.success(null); diff --git a/packages/google_mobile_ads/android/src/test/java/io/flutter/plugins/googlemobileads/AdMessageCodecTest.java b/packages/google_mobile_ads/android/src/test/java/io/flutter/plugins/googlemobileads/AdMessageCodecTest.java index 56fb41324..f1b80ac62 100644 --- a/packages/google_mobile_ads/android/src/test/java/io/flutter/plugins/googlemobileads/AdMessageCodecTest.java +++ b/packages/google_mobile_ads/android/src/test/java/io/flutter/plugins/googlemobileads/AdMessageCodecTest.java @@ -169,7 +169,7 @@ public void encodeAnchoredAdaptiveBannerAdSize() { .getCurrentOrientationAnchoredAdaptiveBannerAdSize(any(Context.class), anyInt()); final AnchoredAdaptiveBannerAdSize portraitAnchoredAdaptiveAdSize = - new AnchoredAdaptiveBannerAdSize(mock(Context.class), mockAdSizeFactory, "portrait", 23); + new AnchoredAdaptiveBannerAdSize(mock(Context.class), mockAdSizeFactory, "portrait", 23, false); final ByteBuffer portraitData = codec.encodeMessage(portraitAnchoredAdaptiveAdSize); final AnchoredAdaptiveBannerAdSize portraitResult = @@ -177,7 +177,7 @@ public void encodeAnchoredAdaptiveBannerAdSize() { assertEquals(portraitResult.size, mockAdSize); final AnchoredAdaptiveBannerAdSize landscapeAnchoredAdaptiveAdSize = - new AnchoredAdaptiveBannerAdSize(mock(Context.class), mockAdSizeFactory, "landscape", 34); + new AnchoredAdaptiveBannerAdSize(mock(Context.class), mockAdSizeFactory, "landscape", 34, false); final ByteBuffer landscapeData = codec.encodeMessage(landscapeAnchoredAdaptiveAdSize); final AnchoredAdaptiveBannerAdSize landscapeResult = @@ -185,7 +185,7 @@ public void encodeAnchoredAdaptiveBannerAdSize() { assertEquals(landscapeResult.size, mockAdSize); final AnchoredAdaptiveBannerAdSize anchoredAdaptiveAdSize = - new AnchoredAdaptiveBannerAdSize(mock(Context.class), mockAdSizeFactory, null, 45); + new AnchoredAdaptiveBannerAdSize(mock(Context.class), mockAdSizeFactory, null, 45, false); final ByteBuffer data = codec.encodeMessage(anchoredAdaptiveAdSize); final AnchoredAdaptiveBannerAdSize result = diff --git a/packages/google_mobile_ads/android/src/test/java/io/flutter/plugins/googlemobileads/GoogleMobileAdsTest.java b/packages/google_mobile_ads/android/src/test/java/io/flutter/plugins/googlemobileads/GoogleMobileAdsTest.java index 832d1d489..a25e8a88c 100644 --- a/packages/google_mobile_ads/android/src/test/java/io/flutter/plugins/googlemobileads/GoogleMobileAdsTest.java +++ b/packages/google_mobile_ads/android/src/test/java/io/flutter/plugins/googlemobileads/GoogleMobileAdsTest.java @@ -784,6 +784,13 @@ public void testGetAnchoredAdaptiveBannerAdSize() { verify(result).success(adSize.getHeight()); + adSize = AdSize.getLargePortraitAnchoredAdaptiveBannerAdSize(context, 23); + methodCall = new MethodCall("AdSize#getLargeAnchoredAdaptiveBannerAdSize", arguments); + result = mock(Result.class); + plugin.onMethodCall(methodCall, result); + + verify(result).success(adSize.getHeight()); + // Test for landscape Banner AdSize. arguments = new HashMap<>(); arguments.put("orientation", "landscape"); @@ -796,6 +803,13 @@ public void testGetAnchoredAdaptiveBannerAdSize() { verify(result).success(adSize.getHeight()); + adSize = AdSize.getLargeLandscapeAnchoredAdaptiveBannerAdSize(context, 23); + methodCall = new MethodCall("AdSize#getLargeAnchoredAdaptiveBannerAdSize", arguments); + result = mock(Result.class); + plugin.onMethodCall(methodCall, result); + + verify(result).success(adSize.getHeight()); + // Test for current orientation (inferred) Banner AdSize. arguments = new HashMap<>(); arguments.put("width", 23); @@ -806,6 +820,13 @@ public void testGetAnchoredAdaptiveBannerAdSize() { plugin.onMethodCall(methodCall, result); verify(result).success(adSize.getHeight()); + + adSize = AdSize.getLargeAnchoredAdaptiveBannerAdSize(context, 23); + methodCall = new MethodCall("AdSize#getLargeAnchoredAdaptiveBannerAdSize", arguments); + result = mock(Result.class); + plugin.onMethodCall(methodCall, result); + + verify(result).success(adSize.getHeight()); } public void testGetAdSize_bannerAd() { diff --git a/packages/google_mobile_ads/example/ios/RunnerTests/FLTGoogleMobileAdsPluginMethodCallsTest.m b/packages/google_mobile_ads/example/ios/RunnerTests/FLTGoogleMobileAdsPluginMethodCallsTest.m index 3f429c90b..ff7d8bde3 100644 --- a/packages/google_mobile_ads/example/ios/RunnerTests/FLTGoogleMobileAdsPluginMethodCallsTest.m +++ b/packages/google_mobile_ads/example/ios/RunnerTests/FLTGoogleMobileAdsPluginMethodCallsTest.m @@ -15,11 +15,11 @@ #import #import -#import "FLTAdInstanceManager_Internal.h" -#import "FLTAdUtil.h" -#import "FLTGoogleMobileAdsPlugin.h" -#import "FLTGoogleMobileAdsReaderWriter_Internal.h" -#import "FLTMobileAds_Internal.h" +#import "google_mobile_ads/FLTAdInstanceManager_Internal.h" +#import "google_mobile_ads/FLTAdUtil.h" +#import "google_mobile_ads/FLTGoogleMobileAdsPlugin.h" +#import "google_mobile_ads/FLTGoogleMobileAdsReaderWriter_Internal.h" +#import "google_mobile_ads/FLTMobileAds_Internal.h" @interface FLTGoogleMobileAdsPluginMethodCallsTest : XCTestCase @end @@ -500,7 +500,7 @@ - (void)testGetRequestConfiguration { - (void)testGetAnchoredAdaptiveBannerAdSize { FlutterMethodCall *methodCall = [FlutterMethodCall - methodCallWithMethodName:@"AdSize#getAnchoredAdaptiveBannerAdSize" + methodCallWithMethodName:@"AdSize#getLargeAnchoredAdaptiveBannerAdSize" arguments:@{ @"orientation" : @"portrait", @"width" : @23, @@ -518,10 +518,10 @@ - (void)testGetAnchoredAdaptiveBannerAdSize { XCTAssertTrue(resultInvoked); XCTAssertEqual( [returnedResult doubleValue], - GADPortraitAnchoredAdaptiveBannerAdSizeWithWidth(23).size.height); + GADLargePortraitAnchoredAdaptiveBannerAdSizeWithWidth(23).size.height); methodCall = [FlutterMethodCall - methodCallWithMethodName:@"AdSize#getAnchoredAdaptiveBannerAdSize" + methodCallWithMethodName:@"AdSize#getLargeAnchoredAdaptiveBannerAdSize" arguments:@{ @"orientation" : @"landscape", @"width" : @34, @@ -538,10 +538,10 @@ - (void)testGetAnchoredAdaptiveBannerAdSize { XCTAssertTrue(resultInvoked); XCTAssertEqual( [returnedResult doubleValue], - GADLandscapeAnchoredAdaptiveBannerAdSizeWithWidth(34).size.height); + GADLargeLandscapeAnchoredAdaptiveBannerAdSizeWithWidth(34).size.height); methodCall = [FlutterMethodCall - methodCallWithMethodName:@"AdSize#getAnchoredAdaptiveBannerAdSize" + methodCallWithMethodName:@"AdSize#getLargeAnchoredAdaptiveBannerAdSize" arguments:@{ @"width" : @45, }]; @@ -556,7 +556,7 @@ - (void)testGetAnchoredAdaptiveBannerAdSize { XCTAssertTrue(resultInvoked); XCTAssertEqual([returnedResult doubleValue], - GADCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(45) + GADLargeAnchoredAdaptiveBannerAdSizeWithWidth(45) .size.height); } diff --git a/packages/google_mobile_ads/example/ios/RunnerTests/FLTGoogleMobileAdsReaderWriterTest.m b/packages/google_mobile_ads/example/ios/RunnerTests/FLTGoogleMobileAdsReaderWriterTest.m index e60d75356..bf273249e 100644 --- a/packages/google_mobile_ads/example/ios/RunnerTests/FLTGoogleMobileAdsReaderWriterTest.m +++ b/packages/google_mobile_ads/example/ios/RunnerTests/FLTGoogleMobileAdsReaderWriterTest.m @@ -15,19 +15,19 @@ #import #import -#import "FLTAdInstanceManager_Internal.h" -#import "FLTAdUtil.h" -#import "FLTAd_Internal.h" -#import "FLTGoogleMobileAdsCollection_Internal.h" -#import "FLTGoogleMobileAdsPlugin.h" -#import "FLTGoogleMobileAdsReaderWriter_Internal.h" -#import "FLTMediationExtras.h" -#import "FLTMobileAds_Internal.h" -#import "FLTNativeTemplateColor.h" -#import "FLTNativeTemplateFontStyle.h" -#import "FLTNativeTemplateStyle.h" -#import "FLTNativeTemplateTextStyle.h" -#import "FLTNativeTemplateType.h" +#import "google_mobile_ads/FLTAdInstanceManager_Internal.h" +#import "google_mobile_ads/FLTAdUtil.h" +#import "google_mobile_ads/FLTAd_Internal.h" +#import "google_mobile_ads/FLTGoogleMobileAdsCollection_Internal.h" +#import "google_mobile_ads/FLTGoogleMobileAdsPlugin.h" +#import "google_mobile_ads/FLTGoogleMobileAdsReaderWriter_Internal.h" +#import "google_mobile_ads/FLTMediationExtras.h" +#import "google_mobile_ads/FLTMobileAds_Internal.h" +#import "google_mobile_ads/FLTNativeTemplateColor.h" +#import "google_mobile_ads/FLTNativeTemplateFontStyle.h" +#import "google_mobile_ads/FLTNativeTemplateStyle.h" +#import "google_mobile_ads/FLTNativeTemplateTextStyle.h" +#import "google_mobile_ads/FLTNativeTemplateType.h" @interface FLTGoogleMobileAdsReaderWriterTest : XCTestCase @end @@ -190,7 +190,8 @@ - (void)testEncodeDecodeAnchoredAdaptiveBannerAdSize_portraitOrientation { FLTAnchoredAdaptiveBannerSize *size = [[FLTAnchoredAdaptiveBannerSize alloc] initWithFactory:factory orientation:@"portrait" - width:@(23)]; + width:@(23) + isLarge:false]; NSData *encodedMessage = [_messageCodec encode:size]; FLTAnchoredAdaptiveBannerSize *decodedSize = @@ -208,7 +209,8 @@ - (void)testEncodeDecodeAnchoredAdaptiveBannerAdSize_landscapeOrientation { FLTAnchoredAdaptiveBannerSize *size = [[FLTAnchoredAdaptiveBannerSize alloc] initWithFactory:factory orientation:@"landscape" - width:@(34)]; + width:@(34) + isLarge:false]; NSData *encodedMessage = [_messageCodec encode:size]; FLTAnchoredAdaptiveBannerSize *decodedSize = @@ -227,7 +229,8 @@ - (void)testEncodeDecodeAnchoredAdaptiveBannerAdSize_currentOrientation { FLTAnchoredAdaptiveBannerSize *size = [[FLTAnchoredAdaptiveBannerSize alloc] initWithFactory:factory orientation:NULL - width:@(45)]; + width:@(45) + isLarge:false]; NSData *encodedMessage = [_messageCodec encode:size]; FLTAnchoredAdaptiveBannerSize *decodedSize = diff --git a/packages/google_mobile_ads/example/lib/anchored_adaptive_example.dart b/packages/google_mobile_ads/example/lib/anchored_adaptive_example.dart index 251ecc2e0..02719666a 100644 --- a/packages/google_mobile_ads/example/lib/anchored_adaptive_example.dart +++ b/packages/google_mobile_ads/example/lib/anchored_adaptive_example.dart @@ -51,7 +51,7 @@ class _AnchoredAdaptiveExampleState extends State { }); final AnchoredAdaptiveBannerAdSize? size = - await AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize( + await AdSize.getLargeAnchoredAdaptiveBannerAdSize( MediaQuery.of(context).size.width.truncate(), ); diff --git a/packages/google_mobile_ads/example/lib/snippets/banner_ad_snippets.dart b/packages/google_mobile_ads/example/lib/snippets/banner_ad_snippets.dart index b2f9370ca..8685cbf8b 100644 --- a/packages/google_mobile_ads/example/lib/snippets/banner_ad_snippets.dart +++ b/packages/google_mobile_ads/example/lib/snippets/banner_ad_snippets.dart @@ -38,7 +38,7 @@ class _BannerAdSnippets extends State<_BannerAdWidget> { // [START load_ad_ad_manager] void _loadAd() async { // Get an AnchoredAdaptiveBannerAdSize before loading the ad. - final size = await AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize( + final size = await AdSize.getLargeAnchoredAdaptiveBannerAdSize( MediaQuery.sizeOf(context).width.truncate(), ); diff --git a/packages/google_mobile_ads/ios/google_mobile_ads.podspec b/packages/google_mobile_ads/ios/google_mobile_ads.podspec index fdd6aee23..161c4794f 100644 --- a/packages/google_mobile_ads/ios/google_mobile_ads.podspec +++ b/packages/google_mobile_ads/ios/google_mobile_ads.podspec @@ -3,7 +3,7 @@ # Pod::Spec.new do |s| s.name = 'google_mobile_ads' - s.version = '7.0.0' + s.version = '8.0.0' s.summary = 'Google Mobile Ads plugin for Flutter.' s.description = <<-DESC Google Mobile Ads plugin for Flutter. @@ -15,7 +15,7 @@ Google Mobile Ads plugin for Flutter. s.source_files = 'google_mobile_ads/Sources/google_mobile_ads/**/*.{h,m}' s.public_header_files = 'google_mobile_ads/Sources/google_mobile_ads/**/*.h' s.dependency 'Flutter' - s.dependency 'Google-Mobile-Ads-SDK','~> 12.14.0' + s.dependency 'Google-Mobile-Ads-SDK','~> 13.2.0' s.dependency 'webview_flutter_wkwebview' s.ios.deployment_target = '13.0' s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'VALID_ARCHS' => 'armv7 arm64 x86_64' } diff --git a/packages/google_mobile_ads/ios/google_mobile_ads/Package.swift b/packages/google_mobile_ads/ios/google_mobile_ads/Package.swift index 3d92618d5..d22c0c33f 100644 --- a/packages/google_mobile_ads/ios/google_mobile_ads/Package.swift +++ b/packages/google_mobile_ads/ios/google_mobile_ads/Package.swift @@ -13,7 +13,7 @@ let package = Package( ], dependencies: [ .package( - url: "https://github.com/googleads/swift-package-manager-google-mobile-ads", from: "12.14.0"), + url: "https://github.com/googleads/swift-package-manager-google-mobile-ads", from: "13.2.0"), .package(name: "webview_flutter_wkwebview", path: "../webview_flutter_wkwebview"), ], targets: [ diff --git a/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTAd_Internal.m b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTAd_Internal.m index d012dca15..d66f9b913 100644 --- a/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTAd_Internal.m +++ b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTAd_Internal.m @@ -51,6 +51,22 @@ - (GADAdSize)currentOrientationAnchoredAdaptiveBannerAdSizeWithWidth: width.doubleValue); } +- (GADAdSize)largePortraitAnchoredAdaptiveBannerAdSizeWithWidth: + (NSNumber *_Nonnull)width { + return GADLargePortraitAnchoredAdaptiveBannerAdSizeWithWidth(width.doubleValue); +} + +- (GADAdSize)largeLandscapeAnchoredAdaptiveBannerAdSizeWithWidth: + (NSNumber *_Nonnull)width { + return GADLargeLandscapeAnchoredAdaptiveBannerAdSizeWithWidth(width.doubleValue); +} + +- (GADAdSize)largeAnchoredAdaptiveBannerAdSizeWithWidth: + (NSNumber *_Nonnull)width { + return GADLargeAnchoredAdaptiveBannerAdSizeWithWidth( + width.doubleValue); +} + - (GADAdSize)currentOrientationInlineAdaptiveBannerSizeWithWidth: (NSNumber *_Nonnull)width { return GADCurrentOrientationInlineAdaptiveBannerAdSizeWithWidth( @@ -78,15 +94,28 @@ - (GADAdSize)landscapeInlineAdaptiveBannerAdSizeWithWidth: @implementation FLTAnchoredAdaptiveBannerSize - (instancetype _Nonnull)initWithFactory:(FLTAdSizeFactory *_Nonnull)factory orientation:(NSString *_Nullable)orientation - width:(NSNumber *_Nonnull)width { + width:(NSNumber *_Nonnull)width + isLarge:(Boolean)isLarge { GADAdSize size; if ([FLTAdUtil isNull:orientation]) { - size = - [factory currentOrientationAnchoredAdaptiveBannerAdSizeWithWidth:width]; + if (isLarge) { + size = [factory largeAnchoredAdaptiveBannerAdSizeWithWidth:width]; + } else { + size = + [factory currentOrientationAnchoredAdaptiveBannerAdSizeWithWidth:width]; + } } else if ([orientation isEqualToString:@"portrait"]) { - size = [factory portraitAnchoredAdaptiveBannerAdSizeWithWidth:width]; + if (isLarge) { + size = [factory largePortraitAnchoredAdaptiveBannerAdSizeWithWidth:width]; + } else { + size = [factory portraitAnchoredAdaptiveBannerAdSizeWithWidth:width]; + } } else if ([orientation isEqualToString:@"landscape"]) { - size = [factory landscapeAnchoredAdaptiveBannerAdSizeWithWidth:width]; + if (isLarge) { + size = [factory largeLandscapeAnchoredAdaptiveBannerAdSizeWithWidth:width]; + } else { + size = [factory landscapeAnchoredAdaptiveBannerAdSizeWithWidth:width]; + } } else { NSLog(@"Unexpected value for orientation: %@", orientation); return nil; diff --git a/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTGoogleMobileAdsPlugin.m b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTGoogleMobileAdsPlugin.m index 9802ce6ff..ae62c7031 100644 --- a/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTGoogleMobileAdsPlugin.m +++ b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTGoogleMobileAdsPlugin.m @@ -525,7 +525,19 @@ - (void)handleMethodCall:(FlutterMethodCall *)call FLTAnchoredAdaptiveBannerSize *size = [[FLTAnchoredAdaptiveBannerSize alloc] initWithFactory:[[FLTAdSizeFactory alloc] init] orientation:call.arguments[@"orientation"] - width:call.arguments[@"width"]]; + width:call.arguments[@"width"] + isLarge:false]; + if (IsGADAdSizeValid(size.size)) { + result(size.height); + } else { + result(nil); + } + } else if ([call.method isEqualToString:@"AdSize#getLargeAnchoredAdaptiveBannerAdSize"]) { + FLTAnchoredAdaptiveBannerSize *size = [[FLTAnchoredAdaptiveBannerSize alloc] + initWithFactory:[[FLTAdSizeFactory alloc] init] + orientation:call.arguments[@"orientation"] + width:call.arguments[@"width"] + isLarge:true]; if (IsGADAdSizeValid(size.size)) { result(size.height); } else { diff --git a/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTGoogleMobileAdsReaderWriter_Internal.m b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTGoogleMobileAdsReaderWriter_Internal.m index 830f8f3b7..fa8bcb5b3 100644 --- a/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTGoogleMobileAdsReaderWriter_Internal.m +++ b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/FLTGoogleMobileAdsReaderWriter_Internal.m @@ -249,7 +249,8 @@ - (id _Nullable)readValueOfType:(UInt8)type { NSNumber *width = [self readValueOfType:[self readByte]]; return [[FLTAnchoredAdaptiveBannerSize alloc] initWithFactory:_adSizeFactory orientation:orientation - width:width]; + width:width + isLarge:false]; } case FLTAdmobFieldSmartBannerAdSize: return [[FLTSmartBannerSize alloc] diff --git a/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTAd_Internal.h b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTAd_Internal.h index e19021530..1d48655cd 100644 --- a/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTAd_Internal.h +++ b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTAd_Internal.h @@ -62,7 +62,8 @@ @property(readonly) NSString *_Nonnull orientation; - (instancetype _Nonnull)initWithFactory:(FLTAdSizeFactory *_Nonnull)factory orientation:(NSString *_Nullable)orientation - width:(NSNumber *_Nonnull)width; + width:(NSNumber *_Nonnull)width + isLarge:(BOOL)isLarge; @end @interface FLTInlineAdaptiveBannerSize : FLTAdSize diff --git a/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTConstants.h b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTConstants.h index de436414d..46a063b85 100644 --- a/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTConstants.h +++ b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/include/google_mobile_ads/FLTConstants.h @@ -13,4 +13,4 @@ // limitations under the License. /** Versioned request agent string. */ -#define FLT_REQUEST_AGENT_VERSIONED @"Flutter-GMA-7.0.0" +#define FLT_REQUEST_AGENT_VERSIONED @"Flutter-GMA-8.0.0" diff --git a/packages/google_mobile_ads/lib/src/ad_containers.dart b/packages/google_mobile_ads/lib/src/ad_containers.dart index f402b963d..5c6fb7169 100644 --- a/packages/google_mobile_ads/lib/src/ad_containers.dart +++ b/packages/google_mobile_ads/lib/src/ad_containers.dart @@ -438,6 +438,7 @@ class AdSize { /// /// Returns `null` if a proper height could not be found for the device or /// window. + @Deprecated('Use getLargeAnchoredAdaptiveBannerAdSizeWithOrientation instead') static Future getAnchoredAdaptiveBannerAdSize( Orientation orientation, int width, @@ -455,12 +456,38 @@ class AdSize { ); } + /// Ad units that render screen-width banner ads on any screen size across different devices in either [Orientation]. + /// + /// Width of the current device can be found using: + /// `MediaQuery.of(context).size.width.truncate()`. + /// + /// Returns `null` if a proper height could not be found for the device or + /// window. + static Future + getLargeAnchoredAdaptiveBannerAdSizeWithOrientation( + Orientation orientation, + int width, + ) async { + final num? height = await instanceManager.channel.invokeMethod( + 'AdSize#getLargeAnchoredAdaptiveBannerAdSize', + {'orientation': orientation.name, 'width': width}, + ); + + if (height == null) return null; + return AnchoredAdaptiveBannerAdSize( + orientation, + width: width, + height: height.truncate(), + ); + } + /// Returns an AdSize with the given width and a Google-optimized height to create a banner ad. /// /// The size returned will have an aspect ratio similar to AdSize, suitable for anchoring near the top or bottom of your app. /// The height will never be larger than 15% of the device's current orientation height and never smaller than 50px. /// This function always returns the same height for any width / device combination. /// For more details, visit: https://developers.google.com/android/reference/com/google/android/gms/ads/AdSize#getCurrentOrientationAnchoredAdaptiveBannerAdSize(android.content.Context,%20int) + @Deprecated('Use getLargeAnchoredAdaptiveBannerAdSize instead') static Future getCurrentOrientationAnchoredAdaptiveBannerAdSize(int width) async { final num? height = await instanceManager.channel.invokeMethod( @@ -476,6 +503,27 @@ class AdSize { ); } + /// Returns an AdSize with the given width and a Google-optimized height to create a banner ad. + /// + /// The size returned will have an aspect ratio similar to AdSize, suitable for anchoring near the top or bottom of your app. + /// The height will never be larger than 15% of the device's current orientation height and never smaller than 50px. + /// This function always returns the same height for any width / device combination. + /// For more details, visit: https://developers.google.com/android/reference/com/google/android/gms/ads/AdSize#getCurrentOrientationAnchoredAdaptiveBannerAdSize(android.content.Context,%20int) + static Future + getLargeAnchoredAdaptiveBannerAdSize(int width) async { + final num? height = await instanceManager.channel.invokeMethod( + 'AdSize#getLargeAnchoredAdaptiveBannerAdSize', + {'width': width}, + ); + + if (height == null) return null; + return AnchoredAdaptiveBannerAdSize( + null, + width: width, + height: height.truncate(), + ); + } + /// Gets an AdSize with the given width and height that is always 0. /// /// This ad size allows Google servers to choose an optimal ad size with a diff --git a/packages/google_mobile_ads/pubspec.yaml b/packages/google_mobile_ads/pubspec.yaml index 275a0470d..2c4eb9f64 100644 --- a/packages/google_mobile_ads/pubspec.yaml +++ b/packages/google_mobile_ads/pubspec.yaml @@ -13,7 +13,7 @@ # limitations under the License. name: google_mobile_ads -version: 7.0.0 +version: 8.0.0 description: Flutter plugin for Google Mobile Ads, supporting banner, interstitial (full-screen), rewarded and native ads repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/google_mobile_ads From 4a4e95608be0ecd4271d1c3c710c417edf13a6e3 Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Thu, 9 Apr 2026 12:03:52 -0700 Subject: [PATCH 181/251] Updates WebView test url --- packages/google_mobile_ads/example/lib/webview_example.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/google_mobile_ads/example/lib/webview_example.dart b/packages/google_mobile_ads/example/lib/webview_example.dart index e0dc505f2..b194a964a 100644 --- a/packages/google_mobile_ads/example/lib/webview_example.dart +++ b/packages/google_mobile_ads/example/lib/webview_example.dart @@ -71,7 +71,7 @@ class _WebViewExampleState extends State { } await MobileAds.instance.registerWebView(controller); await controller.loadRequest( - Uri.parse('https://webview-api-for-ads-test.glitch.me/'), + Uri.parse('https://google.github.io/webview-ads/test/#api-for-ads-tests'), ); } } From ea70f22f17ed3c275e443a8d2dcbdd7fe0cf1cbf Mon Sep 17 00:00:00 2001 From: LTphantom Date: Fri, 10 Apr 2026 12:04:56 -0700 Subject: [PATCH 182/251] Fixes Native Ads template for iOS | Increases minimum Flutter version (#1428) * Fixed iOS Native Ads Template. Updated min Flutter version * Updated CHANGELOG --- packages/google_mobile_ads/CHANGELOG.md | 6 ++++ .../ios/Runner.xcodeproj/project.pbxproj | 2 +- .../NativeTemplates/FLTNativeTemplateType.m | 28 +++++++++++++++---- packages/google_mobile_ads/pubspec.yaml | 4 +-- 4 files changed, 32 insertions(+), 8 deletions(-) diff --git a/packages/google_mobile_ads/CHANGELOG.md b/packages/google_mobile_ads/CHANGELOG.md index e42d252c8..20a205f95 100644 --- a/packages/google_mobile_ads/CHANGELOG.md +++ b/packages/google_mobile_ads/CHANGELOG.md @@ -1,8 +1,14 @@ ## 8.0.0 +* Updates minimum Flutter SDK to 3.38.1 +* Updates Dart SDK low bound to 3.10.0. * Adds Swift Package Manager Support for the plugin. [PR 1395](https://github.com/googleads/googleads-mobile-flutter/pull/1395) * Adds `isCollapsible` API. [FR 1294](https://github.com/googleads/googleads-mobile-flutter/issues/1294) * Renamed method name to avoid possible name collision. [FR 1394](https://github.com/googleads/googleads-mobile-flutter/issues/1394) * Migrated to use UISceneDelegate protocol. [Issue 1391](https://github.com/googleads/googleads-mobile-flutter/issues/1391) +* New to Anchored adaptive banner ads: + * The following APIs have been deprecated for their replacement: + * The `getCurrentOrientationAnchoredAdaptiveBannerAdSize` function is deprecated. Instead, use the `getLargeAnchoredAdaptiveBannerAdSize` function. + * The `getAnchoredAdaptiveBannerAdSize` function is deprecated. Instead, use the `getLargeAnchoredAdaptiveBannerAdSizeWithOrientation` function. * Updates GMA [Android](https://developers.google.com/admob/android/rel-notes) dependency to 25.1.0 * Updates GMA [iOS](https://developers.google.com/admob/ios/rel-notes) dependency to 13.2.0 * Uses latest UMP SDK: diff --git a/packages/google_mobile_ads/example/ios/Runner.xcodeproj/project.pbxproj b/packages/google_mobile_ads/example/ios/Runner.xcodeproj/project.pbxproj index 542fe3170..6da12129c 100644 --- a/packages/google_mobile_ads/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/google_mobile_ads/example/ios/Runner.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 60; + objectVersion = 54; objects = { /* Begin PBXBuildFile section */ diff --git a/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/NativeTemplates/FLTNativeTemplateType.m b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/NativeTemplates/FLTNativeTemplateType.m index 6a8b4579b..6f7ab2e0b 100644 --- a/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/NativeTemplates/FLTNativeTemplateType.m +++ b/packages/google_mobile_ads/ios/google_mobile_ads/Sources/google_mobile_ads/NativeTemplates/FLTNativeTemplateType.m @@ -14,6 +14,10 @@ #import "FLTNativeTemplateType.h" +#ifndef SWIFTPM_MODULE_BUNDLE + #define SWIFTPM_MODULE_BUNDLE [NSBundle bundleForClass:[self class]] +#endif + @implementation FLTNativeTemplateType { int _intValue; } @@ -39,12 +43,26 @@ - (NSString *_Nonnull)xibName { } - (GADTTemplateView *_Nonnull)templateView { - // Bundle file name is declared in podspec - id bundleURL = [NSBundle.mainBundle URLForResource:@"google_mobile_ads" - withExtension:@"bundle"]; - NSBundle *bundle = [NSBundle bundleWithURL:bundleURL]; + // Bundle file name is declared in Package.swift or podspec + NSBundle *adsBundle = nil; + + NSURL *bundleURL = [[NSBundle mainBundle] URLForResource:@"google_mobile_ads" + withExtension:@"bundle"]; + if (bundleURL) { + adsBundle = [NSBundle bundleWithURL:bundleURL]; + } else { + #ifdef SWIFTPM_MODULE_BUNDLE + adsBundle = SWIFTPM_MODULE_BUNDLE; + #else + adsBundle = [NSBundle bundleForClass:[self class]]; + #endif + } + if (!adsBundle) { + adsBundle = [NSBundle mainBundle]; + } + GADTTemplateView *templateView = - [bundle loadNibNamed:self.xibName owner:nil options:nil].firstObject; + [adsBundle loadNibNamed:self.xibName owner:nil options:nil].firstObject; return templateView; } diff --git a/packages/google_mobile_ads/pubspec.yaml b/packages/google_mobile_ads/pubspec.yaml index 2c4eb9f64..2dd66048a 100644 --- a/packages/google_mobile_ads/pubspec.yaml +++ b/packages/google_mobile_ads/pubspec.yaml @@ -48,5 +48,5 @@ dev_dependencies: environment: - sdk: ">=3.9.0 <4.0.0" - flutter: ">=3.35.1" + sdk: ">=3.10.0 <4.0.0" + flutter: ">=3.38.1" From 11b788ae808fa4bdeb5efd2443768f5b3e1a1251 Mon Sep 17 00:00:00 2001 From: Justin Malandruccolo Date: Mon, 13 Apr 2026 17:33:01 -0400 Subject: [PATCH 183/251] Updates samples to 8.0.0 (#1429) --- samples/admob/app_open_example/pubspec.yaml | 2 +- samples/admob/banner_example/lib/main.dart | 2 +- samples/admob/banner_example/pubspec.yaml | 2 +- samples/admob/interstitial_example/pubspec.yaml | 2 +- samples/admob/mediation_example/pubspec.yaml | 2 +- samples/admob/native_platform_example/pubspec.yaml | 2 +- samples/admob/native_template_example/pubspec.yaml | 2 +- samples/admob/rewarded_example/pubspec.yaml | 2 +- samples/admob/rewarded_interstitial_example/pubspec.yaml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/samples/admob/app_open_example/pubspec.yaml b/samples/admob/app_open_example/pubspec.yaml index ba61abe59..f1a0bea36 100644 --- a/samples/admob/app_open_example/pubspec.yaml +++ b/samples/admob/app_open_example/pubspec.yaml @@ -9,7 +9,7 @@ environment: dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 + google_mobile_ads: ^8.0.0 dev_dependencies: flutter_test: diff --git a/samples/admob/banner_example/lib/main.dart b/samples/admob/banner_example/lib/main.dart index d9443f4c1..67ffeb67c 100644 --- a/samples/admob/banner_example/lib/main.dart +++ b/samples/admob/banner_example/lib/main.dart @@ -150,7 +150,7 @@ class BannerExampleState extends State { // [END_EXCLUDE] // [START get_ad_size] // Get an AnchoredAdaptiveBannerAdSize before loading the ad. - final size = await AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize( + final size = await AdSize.getLargeAnchoredAdaptiveBannerAdSize( MediaQuery.sizeOf(context).width.truncate(), ); // [END get_ad_size] diff --git a/samples/admob/banner_example/pubspec.yaml b/samples/admob/banner_example/pubspec.yaml index 0beccf26b..83ef4a09e 100644 --- a/samples/admob/banner_example/pubspec.yaml +++ b/samples/admob/banner_example/pubspec.yaml @@ -9,7 +9,7 @@ environment: dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 + google_mobile_ads: ^8.0.0 dev_dependencies: flutter_test: diff --git a/samples/admob/interstitial_example/pubspec.yaml b/samples/admob/interstitial_example/pubspec.yaml index 2561b8f61..159b12974 100644 --- a/samples/admob/interstitial_example/pubspec.yaml +++ b/samples/admob/interstitial_example/pubspec.yaml @@ -9,7 +9,7 @@ environment: dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 + google_mobile_ads: ^8.0.0 dev_dependencies: flutter_test: diff --git a/samples/admob/mediation_example/pubspec.yaml b/samples/admob/mediation_example/pubspec.yaml index b31514111..692d1ed69 100644 --- a/samples/admob/mediation_example/pubspec.yaml +++ b/samples/admob/mediation_example/pubspec.yaml @@ -23,7 +23,7 @@ environment: dependencies: flutter: sdk: flutter - google_mobile_ads: ^6.0.0 + google_mobile_ads: ^7.0.0 # The following adds the Cupertino Icons font to your application. diff --git a/samples/admob/native_platform_example/pubspec.yaml b/samples/admob/native_platform_example/pubspec.yaml index 2d7575c55..727b91c76 100644 --- a/samples/admob/native_platform_example/pubspec.yaml +++ b/samples/admob/native_platform_example/pubspec.yaml @@ -30,7 +30,7 @@ environment: dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 + google_mobile_ads: ^8.0.0 # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. diff --git a/samples/admob/native_template_example/pubspec.yaml b/samples/admob/native_template_example/pubspec.yaml index 7f09e8c3e..139e83219 100644 --- a/samples/admob/native_template_example/pubspec.yaml +++ b/samples/admob/native_template_example/pubspec.yaml @@ -30,7 +30,7 @@ environment: dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 + google_mobile_ads: ^8.0.0 # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. diff --git a/samples/admob/rewarded_example/pubspec.yaml b/samples/admob/rewarded_example/pubspec.yaml index ae5fb37a5..5f8922eaf 100644 --- a/samples/admob/rewarded_example/pubspec.yaml +++ b/samples/admob/rewarded_example/pubspec.yaml @@ -9,7 +9,7 @@ environment: dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 + google_mobile_ads: ^8.0.0 dev_dependencies: flutter_test: diff --git a/samples/admob/rewarded_interstitial_example/pubspec.yaml b/samples/admob/rewarded_interstitial_example/pubspec.yaml index 42b81bf83..154effdcc 100644 --- a/samples/admob/rewarded_interstitial_example/pubspec.yaml +++ b/samples/admob/rewarded_interstitial_example/pubspec.yaml @@ -9,7 +9,7 @@ environment: dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 + google_mobile_ads: ^8.0.0 dev_dependencies: flutter_test: From aa6391226c520487de800fd110b2e4d2cf3e120f Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Fri, 17 Apr 2026 13:11:25 -0700 Subject: [PATCH 184/251] Updating AppLovin Flutter mediation plugin to support the latest adapters (13.6.2.0, 13.6.1.0) PiperOrigin-RevId: 901436891 --- .../gma_mediation_applovin/CHANGELOG.md | 4 + .../android/build.gradle | 10 +- .../AppLovinSDKApi.g.kt | 35 +- .../ios/Flutter/AppFrameworkInfo.plist | 2 - .../ios/Runner.xcodeproj/project.pbxproj | 86 +- .../xcshareddata/xcschemes/Runner.xcscheme | 112 ++ .../xcschemes/xcschememanagement.plist | 27 + .../example/ios/Runner/AppDelegate.swift | 11 +- .../example/ios/Runner/Info.plist | 1223 +++++++++-------- .../example/pubspec.yaml | 4 +- .../ios/Classes/AppLovinSDKApi.g.swift | 8 +- .../ios/gma_mediation_applovin.podspec | 6 +- .../lib/applovin_sdk_api.g.dart | 115 +- .../gma_mediation_applovin/pubspec.yaml | 10 +- 14 files changed, 955 insertions(+), 698 deletions(-) create mode 100644 packages/mediation/gma_mediation_applovin/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 packages/mediation/gma_mediation_applovin/example/ios/Runner.xcodeproj/xcuserdata/aldobecerril.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/packages/mediation/gma_mediation_applovin/CHANGELOG.md b/packages/mediation/gma_mediation_applovin/CHANGELOG.md index ae18c9a42..eb65d0d0d 100644 --- a/packages/mediation/gma_mediation_applovin/CHANGELOG.md +++ b/packages/mediation/gma_mediation_applovin/CHANGELOG.md @@ -1,5 +1,9 @@ ## AppLovin Flutter Mediation Adapter Changelog +#### Version 2.6.0 (In progress) +- Updated minimum Flutter version to 3.38.1 +- Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 + #### Version 2.5.2 - Updated minimum Flutter version to 3.35.1 - Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 diff --git a/packages/mediation/gma_mediation_applovin/android/build.gradle b/packages/mediation/gma_mediation_applovin/android/build.gradle index 2f03a16b1..202af56f7 100644 --- a/packages/mediation/gma_mediation_applovin/android/build.gradle +++ b/packages/mediation/gma_mediation_applovin/android/build.gradle @@ -1,8 +1,8 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_applovin' -version = "2.5.2" +version = "2.6.0" buildscript { - ext.kotlin_version = '2.2.21' + ext.kotlin_version = '2.3.0' repositories { google() mavenCentral() @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "13.5.1.0" + stringVersion = "13.6.2.0" } android { @@ -54,9 +54,9 @@ android { } dependencies { - implementation 'com.applovin:applovin-sdk:13.5.1' + implementation 'com.applovin:applovin-sdk:13.6.2' implementation "com.google.ads.mediation:applovin:$stringVersion" - implementation 'com.google.android.gms:play-services-ads:24.9.0' + implementation 'com.google.android.gms:play-services-ads:25.1.0' implementation 'androidx.core:core-ktx:1.8.0' testImplementation 'junit:junit:4.13.2' testImplementation 'androidx.test:core:1.5.0' diff --git a/packages/mediation/gma_mediation_applovin/android/src/main/kotlin/io/flutter/plugins/googlemobileads/mediation/gma_mediation_applovin/AppLovinSDKApi.g.kt b/packages/mediation/gma_mediation_applovin/android/src/main/kotlin/io/flutter/plugins/googlemobileads/mediation/gma_mediation_applovin/AppLovinSDKApi.g.kt index 638e9197f..cd270698d 100644 --- a/packages/mediation/gma_mediation_applovin/android/src/main/kotlin/io/flutter/plugins/googlemobileads/mediation/gma_mediation_applovin/AppLovinSDKApi.g.kt +++ b/packages/mediation/gma_mediation_applovin/android/src/main/kotlin/io/flutter/plugins/googlemobileads/mediation/gma_mediation_applovin/AppLovinSDKApi.g.kt @@ -1,4 +1,4 @@ -// Autogenerated from Pigeon (v22.7.2), do not edit directly. +// Autogenerated from Pigeon (v26.3.4), do not edit directly. // See also: https://pub.dev/packages/pigeon @file:Suppress("UNCHECKED_CAST", "ArrayInDataClass") @@ -12,19 +12,22 @@ import io.flutter.plugin.common.StandardMessageCodec import java.io.ByteArrayOutputStream import java.nio.ByteBuffer -private fun wrapResult(result: Any?): List { - return listOf(result) -} +private object AppLovinSDKApiPigeonUtils { + + fun wrapResult(result: Any?): List { + return listOf(result) + } -private fun wrapError(exception: Throwable): List { - return if (exception is FlutterError) { - listOf(exception.code, exception.message, exception.details) - } else { - listOf( - exception.javaClass.simpleName, - exception.toString(), - "Cause: " + exception.cause + ", Stacktrace: " + Log.getStackTraceString(exception), - ) + fun wrapError(exception: Throwable): List { + return if (exception is FlutterError) { + listOf(exception.code, exception.message, exception.details) + } else { + listOf( + exception.javaClass.simpleName, + exception.toString(), + "Cause: " + exception.cause + ", Stacktrace: " + Log.getStackTraceString(exception), + ) + } } } @@ -39,7 +42,7 @@ class FlutterError( val code: String, override val message: String? = null, val details: Any? = null, -) : Throwable() +) : RuntimeException() private open class AppLovinSDKApiPigeonCodec : StandardMessageCodec() { override fun readValueOfType(type: Byte, buffer: ByteBuffer): Any? { @@ -93,7 +96,7 @@ interface AppLovinSDKApi { api.setHasUserConsent(hasUserConsentArg) listOf(null) } catch (exception: Throwable) { - wrapError(exception) + AppLovinSDKApiPigeonUtils.wrapError(exception) } reply.reply(wrapped) } @@ -117,7 +120,7 @@ interface AppLovinSDKApi { api.setDoNotSell(doNotSellArg) listOf(null) } catch (exception: Throwable) { - wrapError(exception) + AppLovinSDKApiPigeonUtils.wrapError(exception) } reply.reply(wrapped) } diff --git a/packages/mediation/gma_mediation_applovin/example/ios/Flutter/AppFrameworkInfo.plist b/packages/mediation/gma_mediation_applovin/example/ios/Flutter/AppFrameworkInfo.plist index 7c5696400..391a902b2 100644 --- a/packages/mediation/gma_mediation_applovin/example/ios/Flutter/AppFrameworkInfo.plist +++ b/packages/mediation/gma_mediation_applovin/example/ios/Flutter/AppFrameworkInfo.plist @@ -20,7 +20,5 @@ ???? CFBundleVersion 1.0 - MinimumOSVersion - 12.0 diff --git a/packages/mediation/gma_mediation_applovin/example/ios/Runner.xcodeproj/project.pbxproj b/packages/mediation/gma_mediation_applovin/example/ios/Runner.xcodeproj/project.pbxproj index 01c7eb012..49064c2a3 100644 --- a/packages/mediation/gma_mediation_applovin/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/mediation/gma_mediation_applovin/example/ios/Runner.xcodeproj/project.pbxproj @@ -3,14 +3,16 @@ archiveVersion = 1; classes = { }; - objectVersion = 54; + objectVersion = 60; objects = { /* Begin PBXBuildFile section */ 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 331C808B294A63AB00263BE5 /* GmaMediationApplovinPluginTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* GmaMediationApplovinPluginTests.swift */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 44239ED52F903F7500DA5A88 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 44239ED42F903F7500DA5A88 /* FlutterGeneratedPluginSwiftPackage */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; @@ -47,6 +49,7 @@ 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; @@ -62,6 +65,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, + 44239ED52F903F7500DA5A88 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -93,6 +98,7 @@ 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, 9740EEB21CF90195004384FC /* Debug.xcconfig */, 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, @@ -173,6 +179,9 @@ dependencies = ( ); name = Runner; + packageProductDependencies = ( + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */, + ); productName = Runner; productReference = 97C146EE1CF9000F007C117D /* Runner.app */; productType = "com.apple.product-type.application"; @@ -184,7 +193,7 @@ isa = PBXProject; attributes = { BuildIndependentTargetsInParallel = YES; - LastUpgradeCheck = 1430; + LastUpgradeCheck = 1510; ORGANIZATIONNAME = ""; TargetAttributes = { 331C8080294A63A400263BE5 = { @@ -206,6 +215,10 @@ Base, ); mainGroup = 97C146E51CF9000F007C117D; + packageReferences = ( + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */, + 44239ECF2F903F3F00DA5A88 /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */, + ); productRefGroup = 97C146EF1CF9000F007C117D /* Products */; projectDirPath = ""; projectRoot = ""; @@ -257,17 +270,20 @@ 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; - buildActionMask = 2147483647; + buildActionMask = 12; files = ( ); inputPaths = ( + "$(SRCROOT)/../pubspec.yaml", + "$(SRCROOT)/Flutter/AppFrameworkInfo.plist", ); name = "Run Script"; outputPaths = ( + "$(BUILT_PRODUCTS_DIR)/Flutter.framework", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build\n"; }; /* End PBXShellScriptBuildPhase section */ @@ -377,11 +393,19 @@ CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(PROJECT_DIR)/Flutter", + "$(inherited)", + ); INFOPLIST_FILE = Runner/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); + LIBRARY_SEARCH_PATHS = ( + "$(PROJECT_DIR)/Flutter", + "$(inherited)", + ); PRODUCT_BUNDLE_IDENTIFIER = io.flutter.plugins.googlemobileads.mediation.gmaMediationApplovinExample; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -396,7 +420,12 @@ BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; + FRAMEWORK_SEARCH_PATHS = ( + "$(PROJECT_DIR)/Pods", + "$(inherited)", + ); GENERATE_INFOPLIST_FILE = YES; + HEADER_SEARCH_PATHS = "$(inherited)"; MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = io.flutter.plugins.googlemobileads.mediation.gmaMediationApplovinExample.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -413,7 +442,12 @@ BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; + FRAMEWORK_SEARCH_PATHS = ( + "$(PROJECT_DIR)/Pods", + "$(inherited)", + ); GENERATE_INFOPLIST_FILE = YES; + HEADER_SEARCH_PATHS = "$(inherited)"; MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = io.flutter.plugins.googlemobileads.mediation.gmaMediationApplovinExample.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -428,7 +462,12 @@ BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; + FRAMEWORK_SEARCH_PATHS = ( + "$(PROJECT_DIR)/Pods", + "$(inherited)", + ); GENERATE_INFOPLIST_FILE = YES; + HEADER_SEARCH_PATHS = "$(inherited)"; MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = io.flutter.plugins.googlemobileads.mediation.gmaMediationApplovinExample.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -552,11 +591,19 @@ CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(PROJECT_DIR)/Flutter", + "$(inherited)", + ); INFOPLIST_FILE = Runner/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); + LIBRARY_SEARCH_PATHS = ( + "$(PROJECT_DIR)/Flutter", + "$(inherited)", + ); PRODUCT_BUNDLE_IDENTIFIER = io.flutter.plugins.googlemobileads.mediation.gmaMediationApplovinExample; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -574,11 +621,19 @@ CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(PROJECT_DIR)/Flutter", + "$(inherited)", + ); INFOPLIST_FILE = Runner/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); + LIBRARY_SEARCH_PATHS = ( + "$(PROJECT_DIR)/Flutter", + "$(inherited)", + ); PRODUCT_BUNDLE_IDENTIFIER = io.flutter.plugins.googlemobileads.mediation.gmaMediationApplovinExample; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -621,6 +676,29 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ + +/* Begin XCLocalSwiftPackageReference section */ + 44239ECF2F903F3F00DA5A88 /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */ = { + isa = XCLocalSwiftPackageReference; + relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; + }; + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */ = { + isa = XCLocalSwiftPackageReference; + relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; + }; +/* End XCLocalSwiftPackageReference section */ + +/* Begin XCSwiftPackageProductDependency section */ + 44239ED42F903F7500DA5A88 /* FlutterGeneratedPluginSwiftPackage */ = { + isa = XCSwiftPackageProductDependency; + package = 44239ECF2F903F3F00DA5A88 /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */; + productName = FlutterGeneratedPluginSwiftPackage; + }; + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */ = { + isa = XCSwiftPackageProductDependency; + productName = FlutterGeneratedPluginSwiftPackage; + }; +/* End XCSwiftPackageProductDependency section */ }; rootObject = 97C146E61CF9000F007C117D /* Project object */; } diff --git a/packages/mediation/gma_mediation_applovin/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/mediation/gma_mediation_applovin/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 000000000..ba4db4729 --- /dev/null +++ b/packages/mediation/gma_mediation_applovin/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/mediation/gma_mediation_applovin/example/ios/Runner.xcodeproj/xcuserdata/aldobecerril.xcuserdatad/xcschemes/xcschememanagement.plist b/packages/mediation/gma_mediation_applovin/example/ios/Runner.xcodeproj/xcuserdata/aldobecerril.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 000000000..48188ad5a --- /dev/null +++ b/packages/mediation/gma_mediation_applovin/example/ios/Runner.xcodeproj/xcuserdata/aldobecerril.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,27 @@ + + + + + SchemeUserState + + Runner.xcscheme_^#shared#^_ + + orderHint + 0 + + + SuppressBuildableAutocreation + + 331C8080294A63A400263BE5 + + primary + + + 97C146ED1CF9000F007C117D + + primary + + + + + diff --git a/packages/mediation/gma_mediation_applovin/example/ios/Runner/AppDelegate.swift b/packages/mediation/gma_mediation_applovin/example/ios/Runner/AppDelegate.swift index 70693e4a8..c30b367ec 100644 --- a/packages/mediation/gma_mediation_applovin/example/ios/Runner/AppDelegate.swift +++ b/packages/mediation/gma_mediation_applovin/example/ios/Runner/AppDelegate.swift @@ -1,13 +1,16 @@ -import UIKit import Flutter +import UIKit -@UIApplicationMain -@objc class AppDelegate: FlutterAppDelegate { +@main +@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate { override func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { - GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } + + func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) { + GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry) + } } diff --git a/packages/mediation/gma_mediation_applovin/example/ios/Runner/Info.plist b/packages/mediation/gma_mediation_applovin/example/ios/Runner/Info.plist index 6ba115c3c..6ada6a57b 100644 --- a/packages/mediation/gma_mediation_applovin/example/ios/Runner/Info.plist +++ b/packages/mediation/gma_mediation_applovin/example/ios/Runner/Info.plist @@ -2,6 +2,8 @@ + CADisableMinimumFrameDurationOnPhone + CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleDisplayName @@ -22,8 +24,628 @@ ???? CFBundleVersion $(FLUTTER_BUILD_NUMBER) + GADApplicationIdentifier + ca-app-pub-3940256099942544~1458002511 LSRequiresIPhoneOS + SKAdNetworkItems + + + SKAdNetworkIdentifier + cstr6suwn9.skadnetwork + + + SKAdNetworkIdentifier + 22mmun2rn5.skadnetwork + + + SKAdNetworkIdentifier + 238da6jt44.skadnetwork + + + SKAdNetworkIdentifier + 24t9a8vw3c.skadnetwork + + + SKAdNetworkIdentifier + 24zw6aqk47.skadnetwork + + + SKAdNetworkIdentifier + 252b5q8x7y.skadnetwork + + + SKAdNetworkIdentifier + 275upjj5gd.skadnetwork + + + SKAdNetworkIdentifier + 294l99pt4k.skadnetwork + + + SKAdNetworkIdentifier + 2fnua5tdw4.skadnetwork + + + SKAdNetworkIdentifier + 2u9pt9hc89.skadnetwork + + + SKAdNetworkIdentifier + 32z4fx6l9h.skadnetwork + + + SKAdNetworkIdentifier + 3l6bd9hu43.skadnetwork + + + SKAdNetworkIdentifier + 3qcr597p9d.skadnetwork + + + SKAdNetworkIdentifier + 3qy4746246.skadnetwork + + + SKAdNetworkIdentifier + 3rd42ekr43.skadnetwork + + + SKAdNetworkIdentifier + 3sh42y64q3.skadnetwork + + + SKAdNetworkIdentifier + 424m5254lk.skadnetwork + + + SKAdNetworkIdentifier + 4468km3ulz.skadnetwork + + + SKAdNetworkIdentifier + 44jx6755aq.skadnetwork + + + SKAdNetworkIdentifier + 44n7hlldy6.skadnetwork + + + SKAdNetworkIdentifier + 47vhws6wlr.skadnetwork + + + SKAdNetworkIdentifier + 488r3q3dtq.skadnetwork + + + SKAdNetworkIdentifier + 4dzt52r2t5.skadnetwork + + + SKAdNetworkIdentifier + 4fzdc2evr5.skadnetwork + + + SKAdNetworkIdentifier + 4mn522wn87.skadnetwork + + + SKAdNetworkIdentifier + 4pfyvq9l8r.skadnetwork + + + SKAdNetworkIdentifier + 4w7y6s5ca2.skadnetwork + + + SKAdNetworkIdentifier + 523jb4fst2.skadnetwork + + + SKAdNetworkIdentifier + 52fl2v3hgk.skadnetwork + + + SKAdNetworkIdentifier + 54nzkqm89y.skadnetwork + + + SKAdNetworkIdentifier + 578prtvx9j.skadnetwork + + + SKAdNetworkIdentifier + 5a6flpkh64.skadnetwork + + + SKAdNetworkIdentifier + 5l3tpt7t6e.skadnetwork + + + SKAdNetworkIdentifier + 5lm9lj6jb7.skadnetwork + + + SKAdNetworkIdentifier + 5tjdwbrq8w.skadnetwork + + + SKAdNetworkIdentifier + 6964rsfnh4.skadnetwork + + + SKAdNetworkIdentifier + 6g9af3uyq4.skadnetwork + + + SKAdNetworkIdentifier + 6p4ks3rnbw.skadnetwork + + + SKAdNetworkIdentifier + 6v7lgmsu45.skadnetwork + + + SKAdNetworkIdentifier + 6xzpu9s2p8.skadnetwork + + + SKAdNetworkIdentifier + 737z793b9f.skadnetwork + + + SKAdNetworkIdentifier + 74b6s63p6l.skadnetwork + + + SKAdNetworkIdentifier + 79pbpufp6p.skadnetwork + + + SKAdNetworkIdentifier + 7fmhfwg9en.skadnetwork + + + SKAdNetworkIdentifier + 7rz58n8ntl.skadnetwork + + + SKAdNetworkIdentifier + 7ug5zh24hu.skadnetwork + + + SKAdNetworkIdentifier + 84993kbrcf.skadnetwork + + + SKAdNetworkIdentifier + 89z7zv988g.skadnetwork + + + SKAdNetworkIdentifier + 8c4e2ghe7u.skadnetwork + + + SKAdNetworkIdentifier + 8m87ys6875.skadnetwork + + + SKAdNetworkIdentifier + 8r8llnkz5a.skadnetwork + + + SKAdNetworkIdentifier + 8s468mfl3y.skadnetwork + + + SKAdNetworkIdentifier + 97r2b46745.skadnetwork + + + SKAdNetworkIdentifier + 9b89h5y424.skadnetwork + + + SKAdNetworkIdentifier + 9nlqeag3gk.skadnetwork + + + SKAdNetworkIdentifier + 9rd848q2bz.skadnetwork + + + SKAdNetworkIdentifier + 9t245vhmpl.skadnetwork + + + SKAdNetworkIdentifier + 9vvzujtq5s.skadnetwork + + + SKAdNetworkIdentifier + 9yg77x724h.skadnetwork + + + SKAdNetworkIdentifier + a2p9lx4jpn.skadnetwork + + + SKAdNetworkIdentifier + a7xqa6mtl2.skadnetwork + + + SKAdNetworkIdentifier + a8cz6cu7e5.skadnetwork + + + SKAdNetworkIdentifier + av6w8kgt66.skadnetwork + + + SKAdNetworkIdentifier + b9bk5wbcq9.skadnetwork + + + SKAdNetworkIdentifier + bxvub5ada5.skadnetwork + + + SKAdNetworkIdentifier + c3frkrj4fj.skadnetwork + + + SKAdNetworkIdentifier + c6k4g5qg8m.skadnetwork + + + SKAdNetworkIdentifier + cg4yq2srnc.skadnetwork + + + SKAdNetworkIdentifier + cj5566h2ga.skadnetwork + + + SKAdNetworkIdentifier + cp8zw746q7.skadnetwork + + + SKAdNetworkIdentifier + cs644xg564.skadnetwork + + + SKAdNetworkIdentifier + cstr6suwn9.skadnetwork + + + SKAdNetworkIdentifier + dbu4b84rxf.skadnetwork + + + SKAdNetworkIdentifier + dkc879ngq3.skadnetwork + + + SKAdNetworkIdentifier + dzg6xy7pwj.skadnetwork + + + SKAdNetworkIdentifier + e5fvkxwrpn.skadnetwork + + + SKAdNetworkIdentifier + ecpz2srf59.skadnetwork + + + SKAdNetworkIdentifier + eh6m2bh4zr.skadnetwork + + + SKAdNetworkIdentifier + ejvt5qm6ak.skadnetwork + + + SKAdNetworkIdentifier + f38h382jlk.skadnetwork + + + SKAdNetworkIdentifier + f73kdq92p3.skadnetwork + + + SKAdNetworkIdentifier + f7s53z58qe.skadnetwork + + + SKAdNetworkIdentifier + feyaarzu9v.skadnetwork + + + SKAdNetworkIdentifier + g28c52eehv.skadnetwork + + + SKAdNetworkIdentifier + g2y4y55b64.skadnetwork + + + SKAdNetworkIdentifier + ggvn48r87g.skadnetwork + + + SKAdNetworkIdentifier + glqzh8vgby.skadnetwork + + + SKAdNetworkIdentifier + gta8lk7p23.skadnetwork + + + SKAdNetworkIdentifier + gta9lk7p23.skadnetwork + + + SKAdNetworkIdentifier + hb56zgv37p.skadnetwork + + + SKAdNetworkIdentifier + hdw39hrw9y.skadnetwork + + + SKAdNetworkIdentifier + hs6bdukanm.skadnetwork + + + SKAdNetworkIdentifier + k674qkevps.skadnetwork + + + SKAdNetworkIdentifier + kbd757ywx3.skadnetwork + + + SKAdNetworkIdentifier + kbmxgpxpgc.skadnetwork + + + SKAdNetworkIdentifier + klf5c3l5u5.skadnetwork + + + SKAdNetworkIdentifier + krvm3zuq6h.skadnetwork + + + SKAdNetworkIdentifier + lr83yxwka7.skadnetwork + + + SKAdNetworkIdentifier + ludvb6z3bs.skadnetwork + + + SKAdNetworkIdentifier + m297p6643m.skadnetwork + + + SKAdNetworkIdentifier + m5mvw97r93.skadnetwork + + + SKAdNetworkIdentifier + m8dbw4sv7c.skadnetwork + + + SKAdNetworkIdentifier + mlmmfzh3r3.skadnetwork + + + SKAdNetworkIdentifier + mls7yz5dvl.skadnetwork + + + SKAdNetworkIdentifier + mp6xlyr22a.skadnetwork + + + SKAdNetworkIdentifier + mtkv5xtk9e.skadnetwork + + + SKAdNetworkIdentifier + n38lu8286q.skadnetwork + + + SKAdNetworkIdentifier + n66cz3y3bx.skadnetwork + + + SKAdNetworkIdentifier + n6fk4nfna4.skadnetwork + + + SKAdNetworkIdentifier + n9x2a789qt.skadnetwork + + + SKAdNetworkIdentifier + nzq8sh4pbs.skadnetwork + + + SKAdNetworkIdentifier + p78axxw29g.skadnetwork + + + SKAdNetworkIdentifier + ppxm28t8ap.skadnetwork + + + SKAdNetworkIdentifier + prcb7njmu6.skadnetwork + + + SKAdNetworkIdentifier + pwa73g5rt2.skadnetwork + + + SKAdNetworkIdentifier + pwdxu55a5a.skadnetwork + + + SKAdNetworkIdentifier + qqp299437r.skadnetwork + + + SKAdNetworkIdentifier + r45fhb6rf7.skadnetwork + + + SKAdNetworkIdentifier + rvh3l7un93.skadnetwork + + + SKAdNetworkIdentifier + rx5hdcabgc.skadnetwork + + + SKAdNetworkIdentifier + s39g8k73mm.skadnetwork + + + SKAdNetworkIdentifier + s69wq72ugq.skadnetwork + + + SKAdNetworkIdentifier + su67r6k2v3.skadnetwork + + + SKAdNetworkIdentifier + t38b2kh725.skadnetwork + + + SKAdNetworkIdentifier + tl55sbb4fm.skadnetwork + + + SKAdNetworkIdentifier + u679fj5vs4.skadnetwork + + + SKAdNetworkIdentifier + uw77j35x4d.skadnetwork + + + SKAdNetworkIdentifier + v4nxqhlyqp.skadnetwork + + + SKAdNetworkIdentifier + v72qych5uu.skadnetwork + + + SKAdNetworkIdentifier + v79kvwwj4g.skadnetwork + + + SKAdNetworkIdentifier + v9wttpbfk9.skadnetwork + + + SKAdNetworkIdentifier + vcra2ehyfk.skadnetwork + + + SKAdNetworkIdentifier + vutu7akeur.skadnetwork + + + SKAdNetworkIdentifier + w9q455wk68.skadnetwork + + + SKAdNetworkIdentifier + wg4vff78zm.skadnetwork + + + SKAdNetworkIdentifier + wzmmz9fp6w.skadnetwork + + + SKAdNetworkIdentifier + x44k69ngh6.skadnetwork + + + SKAdNetworkIdentifier + x5l83yy675.skadnetwork + + + SKAdNetworkIdentifier + x8jxxk4ff5.skadnetwork + + + SKAdNetworkIdentifier + x8uqf25wch.skadnetwork + + + SKAdNetworkIdentifier + xy9t38ct57.skadnetwork + + + SKAdNetworkIdentifier + y45688jllp.skadnetwork + + + SKAdNetworkIdentifier + y5ghdn5j9k.skadnetwork + + + SKAdNetworkIdentifier + yclnxrl5pm.skadnetwork + + + SKAdNetworkIdentifier + ydx93a7ass.skadnetwork + + + SKAdNetworkIdentifier + z24wtl6j62.skadnetwork + + + SKAdNetworkIdentifier + zmvfpc5aq8.skadnetwork + + + SKAdNetworkIdentifier + zq492l623r.skadnetwork + + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneClassName + UIWindowScene + UISceneConfigurationName + flutter + UISceneDelegateClassName + FlutterSceneDelegate + UISceneStoryboardFile + Main + + + + + UIApplicationSupportsIndirectInputEvents + UILaunchStoryboardName LaunchScreen UIMainStoryboardFile @@ -41,606 +663,5 @@ UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight - CADisableMinimumFrameDurationOnPhone - - UIApplicationSupportsIndirectInputEvents - - GADApplicationIdentifier - ca-app-pub-3940256099942544~1458002511 - SKAdNetworkItems - - - SKAdNetworkIdentifier - cstr6suwn9.skadnetwork - - - SKAdNetworkIdentifier - 22mmun2rn5.skadnetwork - - - SKAdNetworkIdentifier - 238da6jt44.skadnetwork - - - SKAdNetworkIdentifier - 24t9a8vw3c.skadnetwork - - - SKAdNetworkIdentifier - 24zw6aqk47.skadnetwork - - - SKAdNetworkIdentifier - 252b5q8x7y.skadnetwork - - - SKAdNetworkIdentifier - 275upjj5gd.skadnetwork - - - SKAdNetworkIdentifier - 294l99pt4k.skadnetwork - - - SKAdNetworkIdentifier - 2fnua5tdw4.skadnetwork - - - SKAdNetworkIdentifier - 2u9pt9hc89.skadnetwork - - - SKAdNetworkIdentifier - 32z4fx6l9h.skadnetwork - - - SKAdNetworkIdentifier - 3l6bd9hu43.skadnetwork - - - SKAdNetworkIdentifier - 3qcr597p9d.skadnetwork - - - SKAdNetworkIdentifier - 3qy4746246.skadnetwork - - - SKAdNetworkIdentifier - 3rd42ekr43.skadnetwork - - - SKAdNetworkIdentifier - 3sh42y64q3.skadnetwork - - - SKAdNetworkIdentifier - 424m5254lk.skadnetwork - - - SKAdNetworkIdentifier - 4468km3ulz.skadnetwork - - - SKAdNetworkIdentifier - 44jx6755aq.skadnetwork - - - SKAdNetworkIdentifier - 44n7hlldy6.skadnetwork - - - SKAdNetworkIdentifier - 47vhws6wlr.skadnetwork - - - SKAdNetworkIdentifier - 488r3q3dtq.skadnetwork - - - SKAdNetworkIdentifier - 4dzt52r2t5.skadnetwork - - - SKAdNetworkIdentifier - 4fzdc2evr5.skadnetwork - - - SKAdNetworkIdentifier - 4mn522wn87.skadnetwork - - - SKAdNetworkIdentifier - 4pfyvq9l8r.skadnetwork - - - SKAdNetworkIdentifier - 4w7y6s5ca2.skadnetwork - - - SKAdNetworkIdentifier - 523jb4fst2.skadnetwork - - - SKAdNetworkIdentifier - 52fl2v3hgk.skadnetwork - - - SKAdNetworkIdentifier - 54nzkqm89y.skadnetwork - - - SKAdNetworkIdentifier - 578prtvx9j.skadnetwork - - - SKAdNetworkIdentifier - 5a6flpkh64.skadnetwork - - - SKAdNetworkIdentifier - 5l3tpt7t6e.skadnetwork - - - SKAdNetworkIdentifier - 5lm9lj6jb7.skadnetwork - - - SKAdNetworkIdentifier - 5tjdwbrq8w.skadnetwork - - - SKAdNetworkIdentifier - 6964rsfnh4.skadnetwork - - - SKAdNetworkIdentifier - 6g9af3uyq4.skadnetwork - - - SKAdNetworkIdentifier - 6p4ks3rnbw.skadnetwork - - - SKAdNetworkIdentifier - 6v7lgmsu45.skadnetwork - - - SKAdNetworkIdentifier - 6xzpu9s2p8.skadnetwork - - - SKAdNetworkIdentifier - 737z793b9f.skadnetwork - - - SKAdNetworkIdentifier - 74b6s63p6l.skadnetwork - - - SKAdNetworkIdentifier - 79pbpufp6p.skadnetwork - - - SKAdNetworkIdentifier - 7fmhfwg9en.skadnetwork - - - SKAdNetworkIdentifier - 7rz58n8ntl.skadnetwork - - - SKAdNetworkIdentifier - 7ug5zh24hu.skadnetwork - - - SKAdNetworkIdentifier - 84993kbrcf.skadnetwork - - - SKAdNetworkIdentifier - 89z7zv988g.skadnetwork - - - SKAdNetworkIdentifier - 8c4e2ghe7u.skadnetwork - - - SKAdNetworkIdentifier - 8m87ys6875.skadnetwork - - - SKAdNetworkIdentifier - 8r8llnkz5a.skadnetwork - - - SKAdNetworkIdentifier - 8s468mfl3y.skadnetwork - - - SKAdNetworkIdentifier - 97r2b46745.skadnetwork - - - SKAdNetworkIdentifier - 9b89h5y424.skadnetwork - - - SKAdNetworkIdentifier - 9nlqeag3gk.skadnetwork - - - SKAdNetworkIdentifier - 9rd848q2bz.skadnetwork - - - SKAdNetworkIdentifier - 9t245vhmpl.skadnetwork - - - SKAdNetworkIdentifier - 9vvzujtq5s.skadnetwork - - - SKAdNetworkIdentifier - 9yg77x724h.skadnetwork - - - SKAdNetworkIdentifier - a2p9lx4jpn.skadnetwork - - - SKAdNetworkIdentifier - a7xqa6mtl2.skadnetwork - - - SKAdNetworkIdentifier - a8cz6cu7e5.skadnetwork - - - SKAdNetworkIdentifier - av6w8kgt66.skadnetwork - - - SKAdNetworkIdentifier - b9bk5wbcq9.skadnetwork - - - SKAdNetworkIdentifier - bxvub5ada5.skadnetwork - - - SKAdNetworkIdentifier - c3frkrj4fj.skadnetwork - - - SKAdNetworkIdentifier - c6k4g5qg8m.skadnetwork - - - SKAdNetworkIdentifier - cg4yq2srnc.skadnetwork - - - SKAdNetworkIdentifier - cj5566h2ga.skadnetwork - - - SKAdNetworkIdentifier - cp8zw746q7.skadnetwork - - - SKAdNetworkIdentifier - cs644xg564.skadnetwork - - - SKAdNetworkIdentifier - cstr6suwn9.skadnetwork - - - SKAdNetworkIdentifier - dbu4b84rxf.skadnetwork - - - SKAdNetworkIdentifier - dkc879ngq3.skadnetwork - - - SKAdNetworkIdentifier - dzg6xy7pwj.skadnetwork - - - SKAdNetworkIdentifier - e5fvkxwrpn.skadnetwork - - - SKAdNetworkIdentifier - ecpz2srf59.skadnetwork - - - SKAdNetworkIdentifier - eh6m2bh4zr.skadnetwork - - - SKAdNetworkIdentifier - ejvt5qm6ak.skadnetwork - - - SKAdNetworkIdentifier - f38h382jlk.skadnetwork - - - SKAdNetworkIdentifier - f73kdq92p3.skadnetwork - - - SKAdNetworkIdentifier - f7s53z58qe.skadnetwork - - - SKAdNetworkIdentifier - feyaarzu9v.skadnetwork - - - SKAdNetworkIdentifier - g28c52eehv.skadnetwork - - - SKAdNetworkIdentifier - g2y4y55b64.skadnetwork - - - SKAdNetworkIdentifier - ggvn48r87g.skadnetwork - - - SKAdNetworkIdentifier - glqzh8vgby.skadnetwork - - - SKAdNetworkIdentifier - gta8lk7p23.skadnetwork - - - SKAdNetworkIdentifier - gta9lk7p23.skadnetwork - - - SKAdNetworkIdentifier - hb56zgv37p.skadnetwork - - - SKAdNetworkIdentifier - hdw39hrw9y.skadnetwork - - - SKAdNetworkIdentifier - hs6bdukanm.skadnetwork - - - SKAdNetworkIdentifier - k674qkevps.skadnetwork - - - SKAdNetworkIdentifier - kbd757ywx3.skadnetwork - - - SKAdNetworkIdentifier - kbmxgpxpgc.skadnetwork - - - SKAdNetworkIdentifier - klf5c3l5u5.skadnetwork - - - SKAdNetworkIdentifier - krvm3zuq6h.skadnetwork - - - SKAdNetworkIdentifier - lr83yxwka7.skadnetwork - - - SKAdNetworkIdentifier - ludvb6z3bs.skadnetwork - - - SKAdNetworkIdentifier - m297p6643m.skadnetwork - - - SKAdNetworkIdentifier - m5mvw97r93.skadnetwork - - - SKAdNetworkIdentifier - m8dbw4sv7c.skadnetwork - - - SKAdNetworkIdentifier - mlmmfzh3r3.skadnetwork - - - SKAdNetworkIdentifier - mls7yz5dvl.skadnetwork - - - SKAdNetworkIdentifier - mp6xlyr22a.skadnetwork - - - SKAdNetworkIdentifier - mtkv5xtk9e.skadnetwork - - - SKAdNetworkIdentifier - n38lu8286q.skadnetwork - - - SKAdNetworkIdentifier - n66cz3y3bx.skadnetwork - - - SKAdNetworkIdentifier - n6fk4nfna4.skadnetwork - - - SKAdNetworkIdentifier - n9x2a789qt.skadnetwork - - - SKAdNetworkIdentifier - nzq8sh4pbs.skadnetwork - - - SKAdNetworkIdentifier - p78axxw29g.skadnetwork - - - SKAdNetworkIdentifier - ppxm28t8ap.skadnetwork - - - SKAdNetworkIdentifier - prcb7njmu6.skadnetwork - - - SKAdNetworkIdentifier - pwa73g5rt2.skadnetwork - - - SKAdNetworkIdentifier - pwdxu55a5a.skadnetwork - - - SKAdNetworkIdentifier - qqp299437r.skadnetwork - - - SKAdNetworkIdentifier - r45fhb6rf7.skadnetwork - - - SKAdNetworkIdentifier - rvh3l7un93.skadnetwork - - - SKAdNetworkIdentifier - rx5hdcabgc.skadnetwork - - - SKAdNetworkIdentifier - s39g8k73mm.skadnetwork - - - SKAdNetworkIdentifier - s69wq72ugq.skadnetwork - - - SKAdNetworkIdentifier - su67r6k2v3.skadnetwork - - - SKAdNetworkIdentifier - t38b2kh725.skadnetwork - - - SKAdNetworkIdentifier - tl55sbb4fm.skadnetwork - - - SKAdNetworkIdentifier - u679fj5vs4.skadnetwork - - - SKAdNetworkIdentifier - uw77j35x4d.skadnetwork - - - SKAdNetworkIdentifier - v4nxqhlyqp.skadnetwork - - - SKAdNetworkIdentifier - v72qych5uu.skadnetwork - - - SKAdNetworkIdentifier - v79kvwwj4g.skadnetwork - - - SKAdNetworkIdentifier - v9wttpbfk9.skadnetwork - - - SKAdNetworkIdentifier - vcra2ehyfk.skadnetwork - - - SKAdNetworkIdentifier - vutu7akeur.skadnetwork - - - SKAdNetworkIdentifier - w9q455wk68.skadnetwork - - - SKAdNetworkIdentifier - wg4vff78zm.skadnetwork - - - SKAdNetworkIdentifier - wzmmz9fp6w.skadnetwork - - - SKAdNetworkIdentifier - x44k69ngh6.skadnetwork - - - SKAdNetworkIdentifier - x5l83yy675.skadnetwork - - - SKAdNetworkIdentifier - x8jxxk4ff5.skadnetwork - - - SKAdNetworkIdentifier - x8uqf25wch.skadnetwork - - - SKAdNetworkIdentifier - xy9t38ct57.skadnetwork - - - SKAdNetworkIdentifier - y45688jllp.skadnetwork - - - SKAdNetworkIdentifier - y5ghdn5j9k.skadnetwork - - - SKAdNetworkIdentifier - yclnxrl5pm.skadnetwork - - - SKAdNetworkIdentifier - ydx93a7ass.skadnetwork - - - SKAdNetworkIdentifier - z24wtl6j62.skadnetwork - - - SKAdNetworkIdentifier - zmvfpc5aq8.skadnetwork - - - SKAdNetworkIdentifier - zq492l623r.skadnetwork - - diff --git a/packages/mediation/gma_mediation_applovin/example/pubspec.yaml b/packages/mediation/gma_mediation_applovin/example/pubspec.yaml index 95641604d..d3a1d40e5 100644 --- a/packages/mediation/gma_mediation_applovin/example/pubspec.yaml +++ b/packages/mediation/gma_mediation_applovin/example/pubspec.yaml @@ -5,7 +5,7 @@ description: "Demonstrates how to use the gma_mediation_applovin plugin." publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: '>=3.9.0 <4.0.0' + sdk: '>=3.10.0 <4.0.0' # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions @@ -17,7 +17,7 @@ dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 + google_mobile_ads: ^8.0.0 gma_mediation_applovin: # When depending on this package from a real application you should use: # gma_mediation_applovin: ^x.y.z diff --git a/packages/mediation/gma_mediation_applovin/ios/Classes/AppLovinSDKApi.g.swift b/packages/mediation/gma_mediation_applovin/ios/Classes/AppLovinSDKApi.g.swift index 0b22db8ed..693a5f5d1 100644 --- a/packages/mediation/gma_mediation_applovin/ios/Classes/AppLovinSDKApi.g.swift +++ b/packages/mediation/gma_mediation_applovin/ios/Classes/AppLovinSDKApi.g.swift @@ -1,4 +1,4 @@ -// Autogenerated from Pigeon (v22.7.2), do not edit directly. +// Autogenerated from Pigeon (v26.3.4), do not edit directly. // See also: https://pub.dev/packages/pigeon import Foundation @@ -15,9 +15,9 @@ import Foundation final class PigeonError: Error { let code: String let message: String? - let details: Any? + let details: Sendable? - init(code: String, message: String?, details: Any?) { + init(code: String, message: String?, details: Sendable?) { self.code = code self.message = message self.details = details @@ -50,7 +50,7 @@ private func wrapError(_ error: Any) -> [Any?] { } return [ "\(error)", - "\(type(of: error))", + "\(Swift.type(of: error))", "Stacktrace: \(Thread.callStackSymbols)", ] } diff --git a/packages/mediation/gma_mediation_applovin/ios/gma_mediation_applovin.podspec b/packages/mediation/gma_mediation_applovin/ios/gma_mediation_applovin.podspec index 24ef8baf7..5c3e533f6 100644 --- a/packages/mediation/gma_mediation_applovin/ios/gma_mediation_applovin.podspec +++ b/packages/mediation/gma_mediation_applovin/ios/gma_mediation_applovin.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_applovin' - s.version = '2.5.2' + s.version = '2.6.0' s.summary = 'Google Mobile Ads Mediation of AppLovin.' s.description = <<-DESC Mediation Adapter for AppLovin to use with Google Mobile Ads. @@ -16,11 +16,11 @@ Mediation Adapter for AppLovin to use with Google Mobile Ads. s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationAppLovin', '~> 13.5.0.0' + s.dependency 'GoogleMobileAdsMediationAppLovin', '~> 13.6.1.0' s.platform = :ios, '13.0' s.static_framework = true # Flutter.framework does not contain a i386 slice. s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } - s.swift_version = '5.0' + s.swift_version = '6.0' end diff --git a/packages/mediation/gma_mediation_applovin/lib/applovin_sdk_api.g.dart b/packages/mediation/gma_mediation_applovin/lib/applovin_sdk_api.g.dart index 7d14b8fb5..77a599bab 100644 --- a/packages/mediation/gma_mediation_applovin/lib/applovin_sdk_api.g.dart +++ b/packages/mediation/gma_mediation_applovin/lib/applovin_sdk_api.g.dart @@ -1,18 +1,37 @@ -// Autogenerated from Pigeon (v22.7.2), do not edit directly. +// Autogenerated from Pigeon (v26.3.4), do not edit directly. // See also: https://pub.dev/packages/pigeon -// ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import, no_leading_underscores_for_local_identifiers +// ignore_for_file: unused_import, unused_shown_name +// ignore_for_file: type=lint import 'dart:async'; -import 'dart:typed_data' show Float64List, Int32List, Int64List, Uint8List; +import 'dart:typed_data' show Float64List, Int32List, Int64List; -import 'package:flutter/foundation.dart' show ReadBuffer, WriteBuffer; import 'package:flutter/services.dart'; +import 'package:meta/meta.dart' show immutable, protected, visibleForTesting; -PlatformException _createConnectionError(String channelName) { - return PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel: "$channelName".', - ); +Object? _extractReplyValueOrThrow( + List? replyList, + String channelName, { + required bool isNullValid, +}) { + if (replyList == null) { + throw PlatformException( + code: 'channel-error', + message: 'Unable to establish connection on channel: "$channelName".', + ); + } else if (replyList.length > 1) { + throw PlatformException( + code: replyList[0]! as String, + message: replyList[1] as String?, + details: replyList[2], + ); + } else if (!isNullValid && (replyList.isNotEmpty && replyList[0] == null)) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } + return replyList.firstOrNull; } class _PigeonCodec extends StandardMessageCodec { @@ -45,8 +64,9 @@ class AppLovinSDKApi { BinaryMessenger? binaryMessenger, String messageChannelSuffix = '', }) : pigeonVar_binaryMessenger = binaryMessenger, - pigeonVar_messageChannelSuffix = - messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; + pigeonVar_messageChannelSuffix = messageChannelSuffix.isNotEmpty + ? '.$messageChannelSuffix' + : ''; final BinaryMessenger? pigeonVar_binaryMessenger; static const MessageCodec pigeonChannelCodec = _PigeonCodec(); @@ -55,52 +75,43 @@ class AppLovinSDKApi { /// Used to configure GDPR consent on the Android or iOS AppLovin SDK Future setHasUserConsent(bool hasUserConsent) async { - final String pigeonVar_channelName = + final pigeonVar_channelName = 'dev.flutter.pigeon.gma_mediation_applovin.AppLovinSDKApi.setHasUserConsent$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = - BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final List? pigeonVar_replyList = - await pigeonVar_channel.send([hasUserConsent]) - as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else { - return; - } + final pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [hasUserConsent], + ); + final pigeonVar_replyList = await pigeonVar_sendFuture as List?; + + _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: true, + ); } /// Used to opt out of the sale of personal information in AppLovin SDK. Future setDoNotSell(bool doNotSell) async { - final String pigeonVar_channelName = + final pigeonVar_channelName = 'dev.flutter.pigeon.gma_mediation_applovin.AppLovinSDKApi.setDoNotSell$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = - BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final List? pigeonVar_replyList = - await pigeonVar_channel.send([doNotSell]) as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else { - return; - } + final pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [doNotSell], + ); + final pigeonVar_replyList = await pigeonVar_sendFuture as List?; + + _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: true, + ); } } diff --git a/packages/mediation/gma_mediation_applovin/pubspec.yaml b/packages/mediation/gma_mediation_applovin/pubspec.yaml index b1bf8a53e..8ff3a0e4e 100644 --- a/packages/mediation/gma_mediation_applovin/pubspec.yaml +++ b/packages/mediation/gma_mediation_applovin/pubspec.yaml @@ -1,16 +1,16 @@ name: gma_mediation_applovin description: "Mediation Adapter that enables sending ad requests to the AppLovin ad network using the google_mobile_ads plugin." -version: 2.5.2 +version: 2.6.0 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_applovin environment: - sdk: '>=3.9.0 <4.0.0' - flutter: '>=3.35.1' + sdk: '>=3.10.0 <4.0.0' + flutter: '>=3.38.1' dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 + google_mobile_ads: ^8.0.0 plugin_platform_interface: ^2.1.8 dev_dependencies: @@ -18,7 +18,7 @@ dev_dependencies: flutter_test: sdk: flutter lint: ^2.3.0 - pigeon: ^22.7.2 + pigeon: ^26.3.4 flutter: plugin: From e2d9533b1c7ff86b67db6061c65114117c4fe016 Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Mon, 20 Apr 2026 20:48:38 -0700 Subject: [PATCH 185/251] Updating BidMachine Flutter mediation plugin to support the latest adapters (3.6.1.0, 3.6.0.0) PiperOrigin-RevId: 902964423 --- .../mediation/gma_mediation_bidmachine/CHANGELOG.md | 4 ++-- .../gma_mediation_bidmachine/android/build.gradle | 8 ++++---- .../ios/gma_mediation_bidmachine.podspec | 6 +++--- .../mediation/gma_mediation_bidmachine/pubspec.yaml | 10 +++++----- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md b/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md index 04f86c445..e208c3df8 100644 --- a/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md +++ b/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md @@ -1,8 +1,8 @@ ## BidMachine Flutter Mediation Adapter Changelog -#### Version 1.3.3 (In progress) - #### Version 1.3.2 (In progress) +- Updated minimum Flutter version to 3.38.1 +- Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 #### Version 1.3.1 - Supports [BidMachine Android adapter version 3.5.1.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/bidmachine/CHANGELOG.md#version-3501). diff --git a/packages/mediation/gma_mediation_bidmachine/android/build.gradle b/packages/mediation/gma_mediation_bidmachine/android/build.gradle index ebc6e93d4..a71cf0f72 100644 --- a/packages/mediation/gma_mediation_bidmachine/android/build.gradle +++ b/packages/mediation/gma_mediation_bidmachine/android/build.gradle @@ -1,8 +1,8 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_bidmachine" -version = "1.3.3" +version = "1.3.2" buildscript { - ext.kotlin_version = "2.2.21" + ext.kotlin_version = "2.3.0" repositories { google() mavenCentral() @@ -25,7 +25,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "3.5.1.2" + stringVersion = "3.6.1.0" } android { @@ -53,7 +53,7 @@ android { dependencies { implementation "com.google.ads.mediation:bidmachine:$stringVersion" - implementation 'com.google.android.gms:play-services-ads:24.9.0' + implementation 'com.google.android.gms:play-services-ads:25.1.0' testImplementation("org.jetbrains.kotlin:kotlin-test") testImplementation("org.mockito:mockito-core:5.20.0") } diff --git a/packages/mediation/gma_mediation_bidmachine/ios/gma_mediation_bidmachine.podspec b/packages/mediation/gma_mediation_bidmachine/ios/gma_mediation_bidmachine.podspec index 41e50c58a..5c9822e18 100644 --- a/packages/mediation/gma_mediation_bidmachine/ios/gma_mediation_bidmachine.podspec +++ b/packages/mediation/gma_mediation_bidmachine/ios/gma_mediation_bidmachine.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_bidmachine' - s.version = '1.3.3' + s.version = '1.3.2' s.summary = 'Google Mobile Ads Mediation of BidMachine.' s.description = <<-DESC Mediation Adapter for BidMachine to use with Google Mobile Ads. @@ -11,11 +11,11 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationBidMachine', '~> 3.5.1.2' + s.dependency 'GoogleMobileAdsMediationBidMachine', '~> 3.6.0.0' s.platform = :ios, '13.0' s.static_framework = true s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } - s.swift_version = '5.0' + s.swift_version = '6.0' end diff --git a/packages/mediation/gma_mediation_bidmachine/pubspec.yaml b/packages/mediation/gma_mediation_bidmachine/pubspec.yaml index 8f775c0db..96d08fe02 100644 --- a/packages/mediation/gma_mediation_bidmachine/pubspec.yaml +++ b/packages/mediation/gma_mediation_bidmachine/pubspec.yaml @@ -1,15 +1,15 @@ name: gma_mediation_bidmachine description: 'Mediation Adapter that enables sending ad requests to the BidMachine ad network using the google_mobile_ads plugin.' -version: 1.3.3 +version: 1.3.2 environment: - sdk: '>=3.9.0 <4.0.0' - flutter: '>=3.35.1' + sdk: '>=3.10.0 <4.0.0' + flutter: '>=3.38.1' dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 - plugin_platform_interface: ^2.0.2 + google_mobile_ads: ^8.0.0 + plugin_platform_interface: ^2.1.8 dev_dependencies: flutter_test: sdk: flutter From b83a46af562a4452db6bc6b41cbb1c3bbd6bba57 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Tue, 21 Apr 2026 15:02:10 -0700 Subject: [PATCH 186/251] Updating AppLovin Flutter mediation plugin to version 2.6.0 in the CHANGELOG PiperOrigin-RevId: 903443151 --- packages/mediation/gma_mediation_applovin/CHANGELOG.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/mediation/gma_mediation_applovin/CHANGELOG.md b/packages/mediation/gma_mediation_applovin/CHANGELOG.md index eb65d0d0d..941011334 100644 --- a/packages/mediation/gma_mediation_applovin/CHANGELOG.md +++ b/packages/mediation/gma_mediation_applovin/CHANGELOG.md @@ -1,8 +1,11 @@ ## AppLovin Flutter Mediation Adapter Changelog -#### Version 2.6.0 (In progress) -- Updated minimum Flutter version to 3.38.1 -- Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 +#### Version 2.6.0 +- Updated minimum Flutter version to 3.38.1. +- Updated to support Google Mobile Ads Flutter Plugin version 8.0.0. +- Supports [AppLovin Android adapter version 13.6.2.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/applovin/CHANGELOG.md#version-13620). +- Supports [AppLovin iOS adapter version 13.6.1.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/AppLovin/CHANGELOG.md#version-13610). +- Built and tested with the Google Mobile Ads Flutter Plugin version 8.0.0. #### Version 2.5.2 - Updated minimum Flutter version to 3.35.1 From b6b9a257f9e570406a0c7c2cf081f184073c8e1c Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Wed, 22 Apr 2026 09:28:43 -0700 Subject: [PATCH 187/251] Add `meta` to dependencies in gma_mediation_applovin. PiperOrigin-RevId: 903889697 --- packages/mediation/gma_mediation_applovin/pubspec.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/mediation/gma_mediation_applovin/pubspec.yaml b/packages/mediation/gma_mediation_applovin/pubspec.yaml index 8ff3a0e4e..4f294bea6 100644 --- a/packages/mediation/gma_mediation_applovin/pubspec.yaml +++ b/packages/mediation/gma_mediation_applovin/pubspec.yaml @@ -11,6 +11,7 @@ dependencies: flutter: sdk: flutter google_mobile_ads: ^8.0.0 + meta: ^1.17.0 plugin_platform_interface: ^2.1.8 dev_dependencies: From d44cecdc80360c4a05537c0c032c6a1f4efdce2b Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Thu, 23 Apr 2026 02:28:58 -0700 Subject: [PATCH 188/251] Updating InMobi Flutter mediation plugin to support the latest adapters (11.2.0.0, 11.2.0.0) PiperOrigin-RevId: 904327237 --- packages/mediation/gma_mediation_inmobi/CHANGELOG.md | 4 +++- .../mediation/gma_mediation_inmobi/android/build.gradle | 9 +++++---- .../mediation/gma_mediation_inmobi/example/pubspec.yaml | 4 ++-- .../ios/gma_mediation_inmobi.podspec | 6 +++--- packages/mediation/gma_mediation_inmobi/pubspec.yaml | 8 ++++---- 5 files changed, 17 insertions(+), 14 deletions(-) diff --git a/packages/mediation/gma_mediation_inmobi/CHANGELOG.md b/packages/mediation/gma_mediation_inmobi/CHANGELOG.md index 307c2fe8c..673a1222a 100644 --- a/packages/mediation/gma_mediation_inmobi/CHANGELOG.md +++ b/packages/mediation/gma_mediation_inmobi/CHANGELOG.md @@ -1,6 +1,8 @@ ## InMobi Flutter Mediation Adapter Changelog -#### Version 2.0.2 (In progress) +#### Version 2.1.0 (In progress) +- Updated minimum Flutter version to 3.38.1 +- Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 #### Version 2.0.1 - Updated minimum Flutter version to 3.35.1 diff --git a/packages/mediation/gma_mediation_inmobi/android/build.gradle b/packages/mediation/gma_mediation_inmobi/android/build.gradle index c02ccee11..a989680bc 100644 --- a/packages/mediation/gma_mediation_inmobi/android/build.gradle +++ b/packages/mediation/gma_mediation_inmobi/android/build.gradle @@ -1,8 +1,8 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_inmobi' -version = "2.0.2" +version = "2.1.0" buildscript { - ext.kotlin_version = '2.2.21' + ext.kotlin_version = '2.3.0' repositories { google() mavenCentral() @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "11.1.0.1" + stringVersion = "11.2.0.0" } android { @@ -50,11 +50,12 @@ android { } defaultConfig { - minSdkVersion 23 + minSdkVersion 24 } dependencies { implementation "com.google.ads.mediation:inmobi:$stringVersion" + implementation "com.google.android.gms:play-services-ads:25.1.0" testImplementation 'org.jetbrains.kotlin:kotlin-test' testImplementation 'org.mockito:mockito-core:5.5.0' } diff --git a/packages/mediation/gma_mediation_inmobi/example/pubspec.yaml b/packages/mediation/gma_mediation_inmobi/example/pubspec.yaml index 50eeb6419..a91bc221a 100644 --- a/packages/mediation/gma_mediation_inmobi/example/pubspec.yaml +++ b/packages/mediation/gma_mediation_inmobi/example/pubspec.yaml @@ -5,7 +5,7 @@ description: "Demonstrates how to use the gma_mediation_inmobi plugin." publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: '>=3.9.0 <4.0.0' + sdk: '>=3.10.0 <4.0.0' # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions @@ -17,7 +17,7 @@ dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 + google_mobile_ads: ^8.0.0 gma_mediation_inmobi: # When depending on this package from a real application you should use: # gma_mediation_inmobi: ^x.y.z diff --git a/packages/mediation/gma_mediation_inmobi/ios/gma_mediation_inmobi.podspec b/packages/mediation/gma_mediation_inmobi/ios/gma_mediation_inmobi.podspec index 91e480e95..2ac308bf5 100644 --- a/packages/mediation/gma_mediation_inmobi/ios/gma_mediation_inmobi.podspec +++ b/packages/mediation/gma_mediation_inmobi/ios/gma_mediation_inmobi.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_inmobi' - s.version = '2.0.2' + s.version = '2.1.0' s.summary = 'Google Mobile Ads Mediation of InMobi.' s.description = <<-DESC Mediation Adapter for InMobi to use with Google Mobile Ads. @@ -16,11 +16,11 @@ Mediation Adapter for InMobi to use with Google Mobile Ads. s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationInMobi', '~> 11.1.1.1' + s.dependency 'GoogleMobileAdsMediationInMobi', '~> 11.2.0.0' s.platform = :ios, '13.0' s.static_framework = true # Flutter.framework does not contain a i386 slice. s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } - s.swift_version = '5.0' + s.swift_version = '6.0' end diff --git a/packages/mediation/gma_mediation_inmobi/pubspec.yaml b/packages/mediation/gma_mediation_inmobi/pubspec.yaml index 6d1ecad09..2ca2a7be9 100644 --- a/packages/mediation/gma_mediation_inmobi/pubspec.yaml +++ b/packages/mediation/gma_mediation_inmobi/pubspec.yaml @@ -1,16 +1,16 @@ name: gma_mediation_inmobi description: "Mediation Adapter that enables sending ad requests to the InMobi ad network using the google_mobile_ads plugin." -version: 2.0.2 +version: 2.1.0 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_inmobi environment: - sdk: '>=3.9.0 <4.0.0' - flutter: '>=3.35.1' + sdk: '>=3.10.0 <4.0.0' + flutter: '>=3.38.1' dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 + google_mobile_ads: ^8.0.0 plugin_platform_interface: ^2.0.2 dev_dependencies: From a7e8d961d82b933cb407a0f1c74941b794ac088c Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Thu, 23 Apr 2026 02:29:15 -0700 Subject: [PATCH 189/251] Updating IronSource Flutter mediation plugin to support the latest adapters (9.4.0.0, 9.4.0.0.0) PiperOrigin-RevId: 904327362 --- .../gma_mediation_ironsource/CHANGELOG.md | 4 + .../android/build.gradle | 10 +- .../IronSourcePrivacyApi.g.kt | 118 +++++++++------ .../example/pubspec.yaml | 4 +- .../ios/Classes/IronSourcePrivacyApi.g.swift | 69 ++++++++- .../ios/gma_mediation_ironsource.podspec | 6 +- .../lib/ironsource_privacy_api.g.dart | 142 +++++++++++------- .../gma_mediation_ironsource/pubspec.yaml | 11 +- 8 files changed, 247 insertions(+), 117 deletions(-) diff --git a/packages/mediation/gma_mediation_ironsource/CHANGELOG.md b/packages/mediation/gma_mediation_ironsource/CHANGELOG.md index df552b962..3cc86b240 100644 --- a/packages/mediation/gma_mediation_ironsource/CHANGELOG.md +++ b/packages/mediation/gma_mediation_ironsource/CHANGELOG.md @@ -1,5 +1,9 @@ ## ironSource Flutter Mediation Adapter Changelog +#### Version 2.4.0 (In progress) +- Updated minimum Flutter version to 3.38.1 +- Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 + #### Version 2.3.0 - Supports [ironSource Android adapter version 9.3.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/ironsource/CHANGELOG.md#version-9300). - Supports [ironSource iOS adapter version 9.2.0.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/IronSource/CHANGELOG.md#version-92000). diff --git a/packages/mediation/gma_mediation_ironsource/android/build.gradle b/packages/mediation/gma_mediation_ironsource/android/build.gradle index 6e7f9082a..3c800417a 100644 --- a/packages/mediation/gma_mediation_ironsource/android/build.gradle +++ b/packages/mediation/gma_mediation_ironsource/android/build.gradle @@ -1,8 +1,8 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_ironsource' -version = "2.3.0" +version = "2.4.0" buildscript { - ext.kotlin_version = '2.2.21' + ext.kotlin_version = '2.3.0' repositories { google() mavenCentral() @@ -18,9 +18,6 @@ allprojects { repositories { google() mavenCentral() - maven { - url = uri("https://android-sdk.is.com/") - } } } @@ -28,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "9.3.0.0" + stringVersion = "9.4.0.0" } android { @@ -58,6 +55,7 @@ android { dependencies { implementation "com.google.ads.mediation:ironsource:$stringVersion" + implementation "com.google.android.gms:play-services-ads:25.1.0" testImplementation 'junit:junit:4.13.2' testImplementation 'androidx.test:core:1.5.0' testImplementation 'androidx.test:core-ktx:1.5.0' diff --git a/packages/mediation/gma_mediation_ironsource/android/src/main/kotlin/io/flutter/plugins/googlemobileads/mediation/gma_mediation_ironsource/IronSourcePrivacyApi.g.kt b/packages/mediation/gma_mediation_ironsource/android/src/main/kotlin/io/flutter/plugins/googlemobileads/mediation/gma_mediation_ironsource/IronSourcePrivacyApi.g.kt index cd60f4fe8..84a0f91aa 100644 --- a/packages/mediation/gma_mediation_ironsource/android/src/main/kotlin/io/flutter/plugins/googlemobileads/mediation/gma_mediation_ironsource/IronSourcePrivacyApi.g.kt +++ b/packages/mediation/gma_mediation_ironsource/android/src/main/kotlin/io/flutter/plugins/googlemobileads/mediation/gma_mediation_ironsource/IronSourcePrivacyApi.g.kt @@ -1,5 +1,6 @@ -// Autogenerated from Pigeon (v17.3.0), do not edit directly. +// Autogenerated from Pigeon (v26.3.4), do not edit directly. // See also: https://pub.dev/packages/pigeon +@file:Suppress("UNCHECKED_CAST", "ArrayInDataClass") package io.flutter.plugins.googlemobileads.mediation.gma_mediation_ironsource @@ -11,67 +12,93 @@ import io.flutter.plugin.common.StandardMessageCodec import java.io.ByteArrayOutputStream import java.nio.ByteBuffer -private fun wrapResult(result: Any?): List { - return listOf(result) -} +private object IronSourcePrivacyApiPigeonUtils { + + fun wrapResult(result: Any?): List { + return listOf(result) + } -private fun wrapError(exception: Throwable): List { - if (exception is IronSourcePrivacyError) { - return listOf( - exception.code, - exception.message, - exception.details - ) - } else { - return listOf( - exception.javaClass.simpleName, - exception.toString(), - "Cause: " + exception.cause + ", Stacktrace: " + Log.getStackTraceString(exception) - ) + fun wrapError(exception: Throwable): List { + return if (exception is IronSourcePrivacyError) { + listOf(exception.code, exception.message, exception.details) + } else { + listOf( + exception.javaClass.simpleName, + exception.toString(), + "Cause: " + exception.cause + ", Stacktrace: " + Log.getStackTraceString(exception), + ) + } } } /** * Error class for passing custom error details to Flutter via a thrown PlatformException. + * * @property code The error code. * @property message The error message. * @property details The error details. Must be a datatype supported by the api codec. */ -class IronSourcePrivacyError ( +class IronSourcePrivacyError( val code: String, override val message: String? = null, - val details: Any? = null -) : Throwable() + val details: Any? = null, +) : RuntimeException() + +private open class IronSourcePrivacyApiPigeonCodec : StandardMessageCodec() { + override fun readValueOfType(type: Byte, buffer: ByteBuffer): Any? { + return super.readValueOfType(type, buffer) + } + + override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { + super.writeValue(stream, value) + } +} + /** - * The generated classes set the channels to call the methods in the corresponding kotlin IronSourcePrivacyApi interface and swift IronSourcePrivacyApi protocol from the dart layer. + * The generated classes set the channels to call the methods in the corresponding kotlin + * IronSourcePrivacyApi interface and swift IronSourcePrivacyApi protocol from the dart layer. * * Generated interface from Pigeon that represents a handler of messages from Flutter. */ interface IronSourcePrivacyApi { fun setConsent(gdprConsent: Boolean) + fun setDoNotSell(doNotSell: Boolean) companion object { /** The codec used by IronSourcePrivacyApi. */ - val codec: MessageCodec by lazy { - StandardMessageCodec() - } - /** Sets up an instance of `IronSourcePrivacyApi` to handle messages through the `binaryMessenger`. */ - @Suppress("UNCHECKED_CAST") - fun setUp(binaryMessenger: BinaryMessenger, api: IronSourcePrivacyApi?) { + val codec: MessageCodec by lazy { IronSourcePrivacyApiPigeonCodec() } + + /** + * Sets up an instance of `IronSourcePrivacyApi` to handle messages through the + * `binaryMessenger`. + */ + @JvmOverloads + fun setUp( + binaryMessenger: BinaryMessenger, + api: IronSourcePrivacyApi?, + messageChannelSuffix: String = "", + ) { + val separatedMessageChannelSuffix = + if (messageChannelSuffix.isNotEmpty()) ".$messageChannelSuffix" else "" run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.gma_mediation_ironsource.IronSourcePrivacyApi.setConsent", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.gma_mediation_ironsource.IronSourcePrivacyApi.setConsent$separatedMessageChannelSuffix", + codec, + ) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val gdprConsentArg = args[0] as Boolean - var wrapped: List - try { - api.setConsent(gdprConsentArg) - wrapped = listOf(null) - } catch (exception: Throwable) { - wrapped = wrapError(exception) - } + val wrapped: List = + try { + api.setConsent(gdprConsentArg) + listOf(null) + } catch (exception: Throwable) { + IronSourcePrivacyApiPigeonUtils.wrapError(exception) + } reply.reply(wrapped) } } else { @@ -79,18 +106,23 @@ interface IronSourcePrivacyApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.gma_mediation_ironsource.IronSourcePrivacyApi.setDoNotSell", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.gma_mediation_ironsource.IronSourcePrivacyApi.setDoNotSell$separatedMessageChannelSuffix", + codec, + ) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val doNotSellArg = args[0] as Boolean - var wrapped: List - try { - api.setDoNotSell(doNotSellArg) - wrapped = listOf(null) - } catch (exception: Throwable) { - wrapped = wrapError(exception) - } + val wrapped: List = + try { + api.setDoNotSell(doNotSellArg) + listOf(null) + } catch (exception: Throwable) { + IronSourcePrivacyApiPigeonUtils.wrapError(exception) + } reply.reply(wrapped) } } else { diff --git a/packages/mediation/gma_mediation_ironsource/example/pubspec.yaml b/packages/mediation/gma_mediation_ironsource/example/pubspec.yaml index f97975851..2d6fdf3a6 100644 --- a/packages/mediation/gma_mediation_ironsource/example/pubspec.yaml +++ b/packages/mediation/gma_mediation_ironsource/example/pubspec.yaml @@ -5,7 +5,7 @@ description: "Demonstrates how to use the gma_mediation_ironsource plugin." publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: '>=3.9.0 <4.0.0' + sdk: '>=3.10.0 <4.0.0' # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions @@ -17,7 +17,7 @@ dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 + google_mobile_ads: ^8.0.0 gma_mediation_ironsource: # When depending on this package from a real application you should use: # gma_mediation_ironsource: ^x.y.z diff --git a/packages/mediation/gma_mediation_ironsource/ios/Classes/IronSourcePrivacyApi.g.swift b/packages/mediation/gma_mediation_ironsource/ios/Classes/IronSourcePrivacyApi.g.swift index 6132c4866..c1636bad2 100644 --- a/packages/mediation/gma_mediation_ironsource/ios/Classes/IronSourcePrivacyApi.g.swift +++ b/packages/mediation/gma_mediation_ironsource/ios/Classes/IronSourcePrivacyApi.g.swift @@ -1,4 +1,4 @@ -// Autogenerated from Pigeon (v17.3.0), do not edit directly. +// Autogenerated from Pigeon (v26.3.4), do not edit directly. // See also: https://pub.dev/packages/pigeon import Foundation @@ -11,11 +11,36 @@ import Foundation #error("Unsupported platform.") #endif +/// Error class for passing custom error details to Dart side. +final class PigeonError: Error { + let code: String + let message: String? + let details: Sendable? + + init(code: String, message: String?, details: Sendable?) { + self.code = code + self.message = message + self.details = details + } + + var localizedDescription: String { + return + "PigeonError(code: \(code), message: \(message ?? ""), details: \(details ?? "")" + } +} + private func wrapResult(_ result: Any?) -> [Any?] { return [result] } private func wrapError(_ error: Any) -> [Any?] { + if let pigeonError = error as? PigeonError { + return [ + pigeonError.code, + pigeonError.message, + pigeonError.details, + ] + } if let flutterError = error as? FlutterError { return [ flutterError.code, @@ -25,7 +50,7 @@ private func wrapError(_ error: Any) -> [Any?] { } return [ "\(error)", - "\(type(of: error))", + "\(Swift.type(of: error))", "Stacktrace: \(Thread.callStackSymbols)", ] } @@ -38,6 +63,28 @@ private func nilOrValue(_ value: Any?) -> T? { if value is NSNull { return nil } return value as! T? } + +private class IronSourcePrivacyApiPigeonCodecReader: FlutterStandardReader { +} + +private class IronSourcePrivacyApiPigeonCodecWriter: FlutterStandardWriter { +} + +private class IronSourcePrivacyApiPigeonCodecReaderWriter: FlutterStandardReaderWriter { + override func reader(with data: Data) -> FlutterStandardReader { + return IronSourcePrivacyApiPigeonCodecReader(data: data) + } + + override func writer(with data: NSMutableData) -> FlutterStandardWriter { + return IronSourcePrivacyApiPigeonCodecWriter(data: data) + } +} + +class IronSourcePrivacyApiPigeonCodec: FlutterStandardMessageCodec, @unchecked Sendable { + static let shared = IronSourcePrivacyApiPigeonCodec( + readerWriter: IronSourcePrivacyApiPigeonCodecReaderWriter()) +} + /// The generated classes set the channels to call the methods in the corresponding kotlin IronSourcePrivacyApi interface and swift IronSourcePrivacyApi protocol from the dart layer. /// /// Generated protocol from Pigeon that represents a handler of messages from Flutter. @@ -48,10 +95,17 @@ protocol IronSourcePrivacyApi { /// Generated setup class from Pigeon to handle messages through the `binaryMessenger`. class IronSourcePrivacyApiSetup { - /// The codec used by IronSourcePrivacyApi. + static var codec: FlutterStandardMessageCodec { IronSourcePrivacyApiPigeonCodec.shared } /// Sets up an instance of `IronSourcePrivacyApi` to handle messages through the `binaryMessenger`. - static func setUp(binaryMessenger: FlutterBinaryMessenger, api: IronSourcePrivacyApi?) { - let setConsentChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.gma_mediation_ironsource.IronSourcePrivacyApi.setConsent", binaryMessenger: binaryMessenger) + static func setUp( + binaryMessenger: FlutterBinaryMessenger, api: IronSourcePrivacyApi?, + messageChannelSuffix: String = "" + ) { + let channelSuffix = messageChannelSuffix.count > 0 ? ".\(messageChannelSuffix)" : "" + let setConsentChannel = FlutterBasicMessageChannel( + name: + "dev.flutter.pigeon.gma_mediation_ironsource.IronSourcePrivacyApi.setConsent\(channelSuffix)", + binaryMessenger: binaryMessenger, codec: codec) if let api = api { setConsentChannel.setMessageHandler { message, reply in let args = message as! [Any?] @@ -66,7 +120,10 @@ class IronSourcePrivacyApiSetup { } else { setConsentChannel.setMessageHandler(nil) } - let setDoNotSellChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.gma_mediation_ironsource.IronSourcePrivacyApi.setDoNotSell", binaryMessenger: binaryMessenger) + let setDoNotSellChannel = FlutterBasicMessageChannel( + name: + "dev.flutter.pigeon.gma_mediation_ironsource.IronSourcePrivacyApi.setDoNotSell\(channelSuffix)", + binaryMessenger: binaryMessenger, codec: codec) if let api = api { setDoNotSellChannel.setMessageHandler { message, reply in let args = message as! [Any?] diff --git a/packages/mediation/gma_mediation_ironsource/ios/gma_mediation_ironsource.podspec b/packages/mediation/gma_mediation_ironsource/ios/gma_mediation_ironsource.podspec index 608eabd03..97d4c7941 100644 --- a/packages/mediation/gma_mediation_ironsource/ios/gma_mediation_ironsource.podspec +++ b/packages/mediation/gma_mediation_ironsource/ios/gma_mediation_ironsource.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_ironsource' - s.version = '2.3.0' + s.version = '2.4.0' s.summary = 'Google Mobile Ads Mediation of ironSource.' s.description = <<-DESC Mediation Adapter for ironSource to use with Google Mobile Ads. @@ -16,11 +16,11 @@ Mediation Adapter for ironSource to use with Google Mobile Ads. s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationIronSource', '~>9.2.0.0.0' + s.dependency 'GoogleMobileAdsMediationIronSource', '~>9.4.0.0.0' s.platform = :ios, '13.0' s.static_framework = true # Flutter.framework does not contain a i386 slice. s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } - s.swift_version = '5.0' + s.swift_version = '6.0' end diff --git a/packages/mediation/gma_mediation_ironsource/lib/ironsource_privacy_api.g.dart b/packages/mediation/gma_mediation_ironsource/lib/ironsource_privacy_api.g.dart index b94a8be40..96af592bb 100644 --- a/packages/mediation/gma_mediation_ironsource/lib/ironsource_privacy_api.g.dart +++ b/packages/mediation/gma_mediation_ironsource/lib/ironsource_privacy_api.g.dart @@ -1,18 +1,58 @@ -// Autogenerated from Pigeon (v17.3.0), do not edit directly. +// Autogenerated from Pigeon (v26.3.4), do not edit directly. // See also: https://pub.dev/packages/pigeon -// ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import, no_leading_underscores_for_local_identifiers +// ignore_for_file: unused_import, unused_shown_name +// ignore_for_file: type=lint import 'dart:async'; -import 'dart:typed_data' show Float64List, Int32List, Int64List, Uint8List; +import 'dart:typed_data' show Float64List, Int32List, Int64List; -import 'package:flutter/foundation.dart' show ReadBuffer, WriteBuffer; import 'package:flutter/services.dart'; +import 'package:meta/meta.dart' show immutable, protected, visibleForTesting; -PlatformException _createConnectionError(String channelName) { - return PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel: "$channelName".', - ); +Object? _extractReplyValueOrThrow( + List? replyList, + String channelName, { + required bool isNullValid, +}) { + if (replyList == null) { + throw PlatformException( + code: 'channel-error', + message: 'Unable to establish connection on channel: "$channelName".', + ); + } else if (replyList.length > 1) { + throw PlatformException( + code: replyList[0]! as String, + message: replyList[1] as String?, + details: replyList[2], + ); + } else if (!isNullValid && (replyList.isNotEmpty && replyList[0] == null)) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } + return replyList.firstOrNull; +} + +class _PigeonCodec extends StandardMessageCodec { + const _PigeonCodec(); + @override + void writeValue(WriteBuffer buffer, Object? value) { + if (value is int) { + buffer.putUint8(4); + buffer.putInt64(value); + } else { + super.writeValue(buffer, value); + } + } + + @override + Object? readValueOfType(int type, ReadBuffer buffer) { + switch (type) { + default: + return super.readValueOfType(type, buffer); + } + } } /// The generated classes set the channels to call the methods in the corresponding kotlin IronSourcePrivacyApi interface and swift IronSourcePrivacyApi protocol from the dart layer. @@ -20,58 +60,56 @@ class IronSourcePrivacyApi { /// Constructor for [IronSourcePrivacyApi]. The [binaryMessenger] named argument is /// available for dependency injection. If it is left null, the default /// BinaryMessenger will be used which routes to the host platform. - IronSourcePrivacyApi({BinaryMessenger? binaryMessenger}) - : __pigeon_binaryMessenger = binaryMessenger; - final BinaryMessenger? __pigeon_binaryMessenger; + IronSourcePrivacyApi({ + BinaryMessenger? binaryMessenger, + String messageChannelSuffix = '', + }) : pigeonVar_binaryMessenger = binaryMessenger, + pigeonVar_messageChannelSuffix = messageChannelSuffix.isNotEmpty + ? '.$messageChannelSuffix' + : ''; + final BinaryMessenger? pigeonVar_binaryMessenger; - static const MessageCodec pigeonChannelCodec = - StandardMessageCodec(); + static const MessageCodec pigeonChannelCodec = _PigeonCodec(); + + final String pigeonVar_messageChannelSuffix; Future setConsent(bool gdprConsent) async { - const String __pigeon_channelName = - 'dev.flutter.pigeon.gma_mediation_ironsource.IronSourcePrivacyApi.setConsent'; - final BasicMessageChannel __pigeon_channel = - BasicMessageChannel( - __pigeon_channelName, + final pigeonVar_channelName = + 'dev.flutter.pigeon.gma_mediation_ironsource.IronSourcePrivacyApi.setConsent$pigeonVar_messageChannelSuffix'; + final pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, pigeonChannelCodec, - binaryMessenger: __pigeon_binaryMessenger, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [gdprConsent], + ); + final pigeonVar_replyList = await pigeonVar_sendFuture as List?; + + _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: true, ); - final List? __pigeon_replyList = - await __pigeon_channel.send([gdprConsent]) as List?; - if (__pigeon_replyList == null) { - throw _createConnectionError(__pigeon_channelName); - } else if (__pigeon_replyList.length > 1) { - throw PlatformException( - code: __pigeon_replyList[0]! as String, - message: __pigeon_replyList[1] as String?, - details: __pigeon_replyList[2], - ); - } else { - return; - } } Future setDoNotSell(bool doNotSell) async { - const String __pigeon_channelName = - 'dev.flutter.pigeon.gma_mediation_ironsource.IronSourcePrivacyApi.setDoNotSell'; - final BasicMessageChannel __pigeon_channel = - BasicMessageChannel( - __pigeon_channelName, + final pigeonVar_channelName = + 'dev.flutter.pigeon.gma_mediation_ironsource.IronSourcePrivacyApi.setDoNotSell$pigeonVar_messageChannelSuffix'; + final pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, pigeonChannelCodec, - binaryMessenger: __pigeon_binaryMessenger, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [doNotSell], + ); + final pigeonVar_replyList = await pigeonVar_sendFuture as List?; + + _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: true, ); - final List? __pigeon_replyList = - await __pigeon_channel.send([doNotSell]) as List?; - if (__pigeon_replyList == null) { - throw _createConnectionError(__pigeon_channelName); - } else if (__pigeon_replyList.length > 1) { - throw PlatformException( - code: __pigeon_replyList[0]! as String, - message: __pigeon_replyList[1] as String?, - details: __pigeon_replyList[2], - ); - } else { - return; - } } } diff --git a/packages/mediation/gma_mediation_ironsource/pubspec.yaml b/packages/mediation/gma_mediation_ironsource/pubspec.yaml index 720af5a39..d67ad169b 100644 --- a/packages/mediation/gma_mediation_ironsource/pubspec.yaml +++ b/packages/mediation/gma_mediation_ironsource/pubspec.yaml @@ -1,16 +1,17 @@ name: gma_mediation_ironsource description: "Mediation Adapter that enables sending ad requests to the ironSource ad network using the google_mobile_ads plugin." -version: 2.3.0 +version: 2.4.0 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_ironsource environment: - sdk: '>=3.9.0 <4.0.0' - flutter: '>=3.35.1' + sdk: '>=3.10.0 <4.0.0' + flutter: '>=3.38.1' dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 + google_mobile_ads: ^8.0.0 + meta: ^1.17.0 plugin_platform_interface: ^2.0.2 dev_dependencies: @@ -18,7 +19,7 @@ dev_dependencies: flutter_test: sdk: flutter lint: ^2.3.0 - pigeon: ^17.0.0 + pigeon: ^26.3.4 flutter: plugin: From 3b28e51866f4e9423f804aa5d445e7bc317247d6 Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Thu, 23 Apr 2026 02:29:46 -0700 Subject: [PATCH 190/251] Updating Liftoff Flutter mediation plugin to support the latest adapters (7.7.2.0, 7.7.1.0) PiperOrigin-RevId: 904327588 --- .../CHANGELOG.md | 4 + .../android/build.gradle | 7 +- .../LiftoffPrivacyApi.g.kt | 117 ++++++++------ .../example/android/build.gradle | 2 +- .../example/android/settings.gradle | 2 +- .../example/pubspec.yaml | 4 +- .../ios/Classes/LiftoffPrivacyApi.g.swift | 72 ++++++++- .../ios/gma_mediation_liftoffmonetize.podspec | 6 +- .../lib/liftoff_privacy_api.g.dart | 146 +++++++++++------- .../pubspec.yaml | 11 +- 10 files changed, 253 insertions(+), 118 deletions(-) diff --git a/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md b/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md index 683b7359c..34a5dfdbe 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md +++ b/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md @@ -1,5 +1,9 @@ ## Liftoff Monetize Flutter Mediation Adapter Changelog +#### Version 1.5.0 (In progress) +- Updated minimum Flutter version to 3.38.1 +- Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 + #### Version 1.4.3 * Supports [Liftoff Monetize Android adapter version 7.6.3.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/liftoffmonetize/CHANGELOG.md#version-7631). * Supports [Liftoff Monetize iOS adapter version 7.6.3.1](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/LiftoffMonetize/CHANGELOG.md#version-7631). diff --git a/packages/mediation/gma_mediation_liftoffmonetize/android/build.gradle b/packages/mediation/gma_mediation_liftoffmonetize/android/build.gradle index 759123ad9..7571907cc 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/android/build.gradle +++ b/packages/mediation/gma_mediation_liftoffmonetize/android/build.gradle @@ -1,8 +1,8 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_liftoffmonetize' -version = "1.4.3" +version = "1.5.0" buildscript { - ext.kotlin_version = '2.2.21' + ext.kotlin_version = '2.3.0' repositories { google() mavenCentral() @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "7.6.3.1" + stringVersion = "7.7.2.0" } android { @@ -55,6 +55,7 @@ android { dependencies { implementation "com.google.ads.mediation:vungle:$stringVersion" + implementation "com.google.android.gms:play-services-ads:25.1.0" testImplementation 'junit:junit:4.13.2' testImplementation 'androidx.test:core:1.5.0' testImplementation 'androidx.test:core-ktx:1.5.0' diff --git a/packages/mediation/gma_mediation_liftoffmonetize/android/src/main/kotlin/io/flutter/plugins/googlemobileads/mediation/gma_mediation_liftoffmonetize/LiftoffPrivacyApi.g.kt b/packages/mediation/gma_mediation_liftoffmonetize/android/src/main/kotlin/io/flutter/plugins/googlemobileads/mediation/gma_mediation_liftoffmonetize/LiftoffPrivacyApi.g.kt index 059e209ce..1fbdf48c3 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/android/src/main/kotlin/io/flutter/plugins/googlemobileads/mediation/gma_mediation_liftoffmonetize/LiftoffPrivacyApi.g.kt +++ b/packages/mediation/gma_mediation_liftoffmonetize/android/src/main/kotlin/io/flutter/plugins/googlemobileads/mediation/gma_mediation_liftoffmonetize/LiftoffPrivacyApi.g.kt @@ -1,5 +1,6 @@ -// Autogenerated from Pigeon (v17.0.0), do not edit directly. +// Autogenerated from Pigeon (v26.3.4), do not edit directly. // See also: https://pub.dev/packages/pigeon +@file:Suppress("UNCHECKED_CAST", "ArrayInDataClass") package io.flutter.plugins.googlemobileads.mediation.gma_mediation_liftoffmonetize @@ -11,70 +12,95 @@ import io.flutter.plugin.common.StandardMessageCodec import java.io.ByteArrayOutputStream import java.nio.ByteBuffer -private fun wrapResult(result: Any?): List { - return listOf(result) -} +private object LiftoffPrivacyApiPigeonUtils { + + fun wrapResult(result: Any?): List { + return listOf(result) + } -private fun wrapError(exception: Throwable): List { - if (exception is FlutterError) { - return listOf( - exception.code, - exception.message, - exception.details - ) - } else { - return listOf( - exception.javaClass.simpleName, - exception.toString(), - "Cause: " + exception.cause + ", Stacktrace: " + Log.getStackTraceString(exception) - ) + fun wrapError(exception: Throwable): List { + return if (exception is FlutterError) { + listOf(exception.code, exception.message, exception.details) + } else { + listOf( + exception.javaClass.simpleName, + exception.toString(), + "Cause: " + exception.cause + ", Stacktrace: " + Log.getStackTraceString(exception), + ) + } } } /** * Error class for passing custom error details to Flutter via a thrown PlatformException. + * * @property code The error code. * @property message The error message. * @property details The error details. Must be a datatype supported by the api codec. */ -class FlutterError ( +class FlutterError( val code: String, override val message: String? = null, - val details: Any? = null -) : Throwable() + val details: Any? = null, +) : RuntimeException() + +private open class LiftoffPrivacyApiPigeonCodec : StandardMessageCodec() { + override fun readValueOfType(type: Byte, buffer: ByteBuffer): Any? { + return super.readValueOfType(type, buffer) + } + + override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { + super.writeValue(stream, value) + } +} + /** - * The generated classes set the channels to call the methods in the corresponding kotlin LiftoffPrivacyApi interface and swift LiftoffPrivacyApi protocol from the dart layer. + * The generated classes set the channels to call the methods in the corresponding kotlin + * LiftoffPrivacyApi interface and swift LiftoffPrivacyApi protocol from the dart layer. * * Generated interface from Pigeon that represents a handler of messages from Flutter. */ interface LiftoffPrivacyApi { /** Used to configure GDPR status on the Android or iOS Liftoff Monetize SDK */ fun setGDPRStatus(optedIn: Boolean, consentMessageVersion: String?) + /** Used to configure CCPA consent on the Android or iOS Liftoff Monetize SDK */ fun setCCPAStatus(optedIn: Boolean) companion object { /** The codec used by LiftoffPrivacyApi. */ - val codec: MessageCodec by lazy { - StandardMessageCodec() - } - /** Sets up an instance of `LiftoffPrivacyApi` to handle messages through the `binaryMessenger`. */ - @Suppress("UNCHECKED_CAST") - fun setUp(binaryMessenger: BinaryMessenger, api: LiftoffPrivacyApi?) { + val codec: MessageCodec by lazy { LiftoffPrivacyApiPigeonCodec() } + + /** + * Sets up an instance of `LiftoffPrivacyApi` to handle messages through the `binaryMessenger`. + */ + @JvmOverloads + fun setUp( + binaryMessenger: BinaryMessenger, + api: LiftoffPrivacyApi?, + messageChannelSuffix: String = "", + ) { + val separatedMessageChannelSuffix = + if (messageChannelSuffix.isNotEmpty()) ".$messageChannelSuffix" else "" run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.gma_mediation_liftoffmonetize.LiftoffPrivacyApi.setGDPRStatus", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.gma_mediation_liftoffmonetize.LiftoffPrivacyApi.setGDPRStatus$separatedMessageChannelSuffix", + codec, + ) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val optedInArg = args[0] as Boolean val consentMessageVersionArg = args[1] as String? - var wrapped: List - try { - api.setGDPRStatus(optedInArg, consentMessageVersionArg) - wrapped = listOf(null) - } catch (exception: Throwable) { - wrapped = wrapError(exception) - } + val wrapped: List = + try { + api.setGDPRStatus(optedInArg, consentMessageVersionArg) + listOf(null) + } catch (exception: Throwable) { + LiftoffPrivacyApiPigeonUtils.wrapError(exception) + } reply.reply(wrapped) } } else { @@ -82,18 +108,23 @@ interface LiftoffPrivacyApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.gma_mediation_liftoffmonetize.LiftoffPrivacyApi.setCCPAStatus", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.gma_mediation_liftoffmonetize.LiftoffPrivacyApi.setCCPAStatus$separatedMessageChannelSuffix", + codec, + ) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val optedInArg = args[0] as Boolean - var wrapped: List - try { - api.setCCPAStatus(optedInArg) - wrapped = listOf(null) - } catch (exception: Throwable) { - wrapped = wrapError(exception) - } + val wrapped: List = + try { + api.setCCPAStatus(optedInArg) + listOf(null) + } catch (exception: Throwable) { + LiftoffPrivacyApiPigeonUtils.wrapError(exception) + } reply.reply(wrapped) } } else { diff --git a/packages/mediation/gma_mediation_liftoffmonetize/example/android/build.gradle b/packages/mediation/gma_mediation_liftoffmonetize/example/android/build.gradle index 7bdfd2321..c80f6d9f8 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/example/android/build.gradle +++ b/packages/mediation/gma_mediation_liftoffmonetize/example/android/build.gradle @@ -1,5 +1,5 @@ buildscript { - ext.kotlin_version = '2.2.21' + ext.kotlin_version = '2.3.0' repositories { google() mavenCentral() diff --git a/packages/mediation/gma_mediation_liftoffmonetize/example/android/settings.gradle b/packages/mediation/gma_mediation_liftoffmonetize/example/android/settings.gradle index ca273881f..c2a643b9f 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/example/android/settings.gradle +++ b/packages/mediation/gma_mediation_liftoffmonetize/example/android/settings.gradle @@ -24,7 +24,7 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" id "com.android.application" version "8.13.1" apply false - id 'org.jetbrains.kotlin.android' version '2.2.21' apply false + id 'org.jetbrains.kotlin.android' version '2.3.0' apply false } include ":app" diff --git a/packages/mediation/gma_mediation_liftoffmonetize/example/pubspec.yaml b/packages/mediation/gma_mediation_liftoffmonetize/example/pubspec.yaml index 5124354c4..4f2018244 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/example/pubspec.yaml +++ b/packages/mediation/gma_mediation_liftoffmonetize/example/pubspec.yaml @@ -5,7 +5,7 @@ description: "Demonstrates how to use the gma_mediation_liftoffmonetize plugin." publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: '>=3.9.0 <4.0.0' + sdk: '>=3.10.0 <4.0.0' # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions @@ -17,7 +17,7 @@ dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 + google_mobile_ads: ^8.0.0 gma_mediation_liftoffmonetize: # When depending on this package from a real application you should use: # gma_mediation_liftoffmonetize: ^x.y.z diff --git a/packages/mediation/gma_mediation_liftoffmonetize/ios/Classes/LiftoffPrivacyApi.g.swift b/packages/mediation/gma_mediation_liftoffmonetize/ios/Classes/LiftoffPrivacyApi.g.swift index 9c84145d3..c7607b16c 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/ios/Classes/LiftoffPrivacyApi.g.swift +++ b/packages/mediation/gma_mediation_liftoffmonetize/ios/Classes/LiftoffPrivacyApi.g.swift @@ -1,4 +1,4 @@ -// Autogenerated from Pigeon (v17.0.0), do not edit directly. +// Autogenerated from Pigeon (v26.3.4), do not edit directly. // See also: https://pub.dev/packages/pigeon import Foundation @@ -11,11 +11,36 @@ import Foundation #error("Unsupported platform.") #endif +/// Error class for passing custom error details to Dart side. +final class PigeonError: Error { + let code: String + let message: String? + let details: Sendable? + + init(code: String, message: String?, details: Sendable?) { + self.code = code + self.message = message + self.details = details + } + + var localizedDescription: String { + return + "PigeonError(code: \(code), message: \(message ?? ""), details: \(details ?? "")" + } +} + private func wrapResult(_ result: Any?) -> [Any?] { return [result] } private func wrapError(_ error: Any) -> [Any?] { + if let pigeonError = error as? PigeonError { + return [ + pigeonError.code, + pigeonError.message, + pigeonError.details, + ] + } if let flutterError = error as? FlutterError { return [ flutterError.code, @@ -25,7 +50,7 @@ private func wrapError(_ error: Any) -> [Any?] { } return [ "\(error)", - "\(type(of: error))", + "\(Swift.type(of: error))", "Stacktrace: \(Thread.callStackSymbols)", ] } @@ -38,6 +63,28 @@ private func nilOrValue(_ value: Any?) -> T? { if value is NSNull { return nil } return value as! T? } + +private class LiftoffPrivacyApiPigeonCodecReader: FlutterStandardReader { +} + +private class LiftoffPrivacyApiPigeonCodecWriter: FlutterStandardWriter { +} + +private class LiftoffPrivacyApiPigeonCodecReaderWriter: FlutterStandardReaderWriter { + override func reader(with data: Data) -> FlutterStandardReader { + return LiftoffPrivacyApiPigeonCodecReader(data: data) + } + + override func writer(with data: NSMutableData) -> FlutterStandardWriter { + return LiftoffPrivacyApiPigeonCodecWriter(data: data) + } +} + +class LiftoffPrivacyApiPigeonCodec: FlutterStandardMessageCodec, @unchecked Sendable { + static let shared = LiftoffPrivacyApiPigeonCodec( + readerWriter: LiftoffPrivacyApiPigeonCodecReaderWriter()) +} + /// The generated classes set the channels to call the methods in the corresponding kotlin LiftoffPrivacyApi interface and swift LiftoffPrivacyApi protocol from the dart layer. /// /// Generated protocol from Pigeon that represents a handler of messages from Flutter. @@ -50,18 +97,26 @@ protocol LiftoffPrivacyApi { /// Generated setup class from Pigeon to handle messages through the `binaryMessenger`. class LiftoffPrivacyApiSetup { - /// The codec used by LiftoffPrivacyApi. + static var codec: FlutterStandardMessageCodec { LiftoffPrivacyApiPigeonCodec.shared } /// Sets up an instance of `LiftoffPrivacyApi` to handle messages through the `binaryMessenger`. - static func setUp(binaryMessenger: FlutterBinaryMessenger, api: LiftoffPrivacyApi?) { + static func setUp( + binaryMessenger: FlutterBinaryMessenger, api: LiftoffPrivacyApi?, + messageChannelSuffix: String = "" + ) { + let channelSuffix = messageChannelSuffix.count > 0 ? ".\(messageChannelSuffix)" : "" /// Used to configure GDPR status on the Android or iOS Liftoff Monetize SDK - let setGDPRStatusChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.gma_mediation_liftoffmonetize.LiftoffPrivacyApi.setGDPRStatus", binaryMessenger: binaryMessenger) + let setGDPRStatusChannel = FlutterBasicMessageChannel( + name: + "dev.flutter.pigeon.gma_mediation_liftoffmonetize.LiftoffPrivacyApi.setGDPRStatus\(channelSuffix)", + binaryMessenger: binaryMessenger, codec: codec) if let api = api { setGDPRStatusChannel.setMessageHandler { message, reply in let args = message as! [Any?] let optedInArg = args[0] as! Bool let consentMessageVersionArg: String? = nilOrValue(args[1]) do { - try api.setGDPRStatus(optedIn: optedInArg, consentMessageVersion: consentMessageVersionArg) + try api.setGDPRStatus( + optedIn: optedInArg, consentMessageVersion: consentMessageVersionArg) reply(wrapResult(nil)) } catch { reply(wrapError(error)) @@ -71,7 +126,10 @@ class LiftoffPrivacyApiSetup { setGDPRStatusChannel.setMessageHandler(nil) } /// Used to configure CCPA consent on the Android or iOS Liftoff Monetize SDK - let setCCPAStatusChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.gma_mediation_liftoffmonetize.LiftoffPrivacyApi.setCCPAStatus", binaryMessenger: binaryMessenger) + let setCCPAStatusChannel = FlutterBasicMessageChannel( + name: + "dev.flutter.pigeon.gma_mediation_liftoffmonetize.LiftoffPrivacyApi.setCCPAStatus\(channelSuffix)", + binaryMessenger: binaryMessenger, codec: codec) if let api = api { setCCPAStatusChannel.setMessageHandler { message, reply in let args = message as! [Any?] diff --git a/packages/mediation/gma_mediation_liftoffmonetize/ios/gma_mediation_liftoffmonetize.podspec b/packages/mediation/gma_mediation_liftoffmonetize/ios/gma_mediation_liftoffmonetize.podspec index 5060ef337..1164c809e 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/ios/gma_mediation_liftoffmonetize.podspec +++ b/packages/mediation/gma_mediation_liftoffmonetize/ios/gma_mediation_liftoffmonetize.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_liftoffmonetize' - s.version = '1.4.3' + s.version = '1.5.0' s.summary = 'Google Mobile Ads Mediation of Liftoff Monetize.' s.description = <<-DESC Mediation Adapter for Liftoff Monetize to use with Google Mobile Ads. @@ -15,12 +15,12 @@ Mediation Adapter for Liftoff Monetize to use with Google Mobile Ads. s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.public_header_files = 'Public/**/*.h' - s.dependency 'GoogleMobileAdsMediationVungle', '~>7.6.3.1' + s.dependency 'GoogleMobileAdsMediationVungle', '~>7.7.1.0' s.dependency 'Flutter' s.platform = :ios, '13.0' s.static_framework = true # Flutter.framework does not contain a i386 slice. s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } - s.swift_version = '5.0' + s.swift_version = '6.0' end diff --git a/packages/mediation/gma_mediation_liftoffmonetize/lib/liftoff_privacy_api.g.dart b/packages/mediation/gma_mediation_liftoffmonetize/lib/liftoff_privacy_api.g.dart index 6803cb6eb..1278b13fa 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/lib/liftoff_privacy_api.g.dart +++ b/packages/mediation/gma_mediation_liftoffmonetize/lib/liftoff_privacy_api.g.dart @@ -1,18 +1,58 @@ -// Autogenerated from Pigeon (v17.0.0), do not edit directly. +// Autogenerated from Pigeon (v26.3.4), do not edit directly. // See also: https://pub.dev/packages/pigeon -// ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import, no_leading_underscores_for_local_identifiers +// ignore_for_file: unused_import, unused_shown_name +// ignore_for_file: type=lint import 'dart:async'; -import 'dart:typed_data' show Float64List, Int32List, Int64List, Uint8List; +import 'dart:typed_data' show Float64List, Int32List, Int64List; -import 'package:flutter/foundation.dart' show ReadBuffer, WriteBuffer; import 'package:flutter/services.dart'; +import 'package:meta/meta.dart' show immutable, protected, visibleForTesting; -PlatformException _createConnectionError(String channelName) { - return PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel: "$channelName".', - ); +Object? _extractReplyValueOrThrow( + List? replyList, + String channelName, { + required bool isNullValid, +}) { + if (replyList == null) { + throw PlatformException( + code: 'channel-error', + message: 'Unable to establish connection on channel: "$channelName".', + ); + } else if (replyList.length > 1) { + throw PlatformException( + code: replyList[0]! as String, + message: replyList[1] as String?, + details: replyList[2], + ); + } else if (!isNullValid && (replyList.isNotEmpty && replyList[0] == null)) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } + return replyList.firstOrNull; +} + +class _PigeonCodec extends StandardMessageCodec { + const _PigeonCodec(); + @override + void writeValue(WriteBuffer buffer, Object? value) { + if (value is int) { + buffer.putUint8(4); + buffer.putInt64(value); + } else { + super.writeValue(buffer, value); + } + } + + @override + Object? readValueOfType(int type, ReadBuffer buffer) { + switch (type) { + default: + return super.readValueOfType(type, buffer); + } + } } /// The generated classes set the channels to call the methods in the corresponding kotlin LiftoffPrivacyApi interface and swift LiftoffPrivacyApi protocol from the dart layer. @@ -20,61 +60,61 @@ class LiftoffPrivacyApi { /// Constructor for [LiftoffPrivacyApi]. The [binaryMessenger] named argument is /// available for dependency injection. If it is left null, the default /// BinaryMessenger will be used which routes to the host platform. - LiftoffPrivacyApi({BinaryMessenger? binaryMessenger}) - : __pigeon_binaryMessenger = binaryMessenger; - final BinaryMessenger? __pigeon_binaryMessenger; + LiftoffPrivacyApi({ + BinaryMessenger? binaryMessenger, + String messageChannelSuffix = '', + }) : pigeonVar_binaryMessenger = binaryMessenger, + pigeonVar_messageChannelSuffix = messageChannelSuffix.isNotEmpty + ? '.$messageChannelSuffix' + : ''; + final BinaryMessenger? pigeonVar_binaryMessenger; - static const MessageCodec pigeonChannelCodec = - StandardMessageCodec(); + static const MessageCodec pigeonChannelCodec = _PigeonCodec(); + + final String pigeonVar_messageChannelSuffix; /// Used to configure GDPR status on the Android or iOS Liftoff Monetize SDK Future setGDPRStatus( - bool optedIn, String? consentMessageVersion) async { - const String __pigeon_channelName = - 'dev.flutter.pigeon.gma_mediation_liftoffmonetize.LiftoffPrivacyApi.setGDPRStatus'; - final BasicMessageChannel __pigeon_channel = - BasicMessageChannel( - __pigeon_channelName, + bool optedIn, + String? consentMessageVersion, + ) async { + final pigeonVar_channelName = + 'dev.flutter.pigeon.gma_mediation_liftoffmonetize.LiftoffPrivacyApi.setGDPRStatus$pigeonVar_messageChannelSuffix'; + final pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, pigeonChannelCodec, - binaryMessenger: __pigeon_binaryMessenger, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [optedIn, consentMessageVersion], + ); + final pigeonVar_replyList = await pigeonVar_sendFuture as List?; + + _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: true, ); - final List? __pigeon_replyList = await __pigeon_channel - .send([optedIn, consentMessageVersion]) as List?; - if (__pigeon_replyList == null) { - throw _createConnectionError(__pigeon_channelName); - } else if (__pigeon_replyList.length > 1) { - throw PlatformException( - code: __pigeon_replyList[0]! as String, - message: __pigeon_replyList[1] as String?, - details: __pigeon_replyList[2], - ); - } else { - return; - } } /// Used to configure CCPA consent on the Android or iOS Liftoff Monetize SDK Future setCCPAStatus(bool optedIn) async { - const String __pigeon_channelName = - 'dev.flutter.pigeon.gma_mediation_liftoffmonetize.LiftoffPrivacyApi.setCCPAStatus'; - final BasicMessageChannel __pigeon_channel = - BasicMessageChannel( - __pigeon_channelName, + final pigeonVar_channelName = + 'dev.flutter.pigeon.gma_mediation_liftoffmonetize.LiftoffPrivacyApi.setCCPAStatus$pigeonVar_messageChannelSuffix'; + final pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, pigeonChannelCodec, - binaryMessenger: __pigeon_binaryMessenger, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [optedIn], + ); + final pigeonVar_replyList = await pigeonVar_sendFuture as List?; + + _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: true, ); - final List? __pigeon_replyList = - await __pigeon_channel.send([optedIn]) as List?; - if (__pigeon_replyList == null) { - throw _createConnectionError(__pigeon_channelName); - } else if (__pigeon_replyList.length > 1) { - throw PlatformException( - code: __pigeon_replyList[0]! as String, - message: __pigeon_replyList[1] as String?, - details: __pigeon_replyList[2], - ); - } else { - return; - } } } diff --git a/packages/mediation/gma_mediation_liftoffmonetize/pubspec.yaml b/packages/mediation/gma_mediation_liftoffmonetize/pubspec.yaml index 5645b5130..2868b46e3 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/pubspec.yaml +++ b/packages/mediation/gma_mediation_liftoffmonetize/pubspec.yaml @@ -1,16 +1,17 @@ name: gma_mediation_liftoffmonetize description: "Mediation Adapter that enables sending ad requests to the LiftoffMonetize ad network using the google_mobile_ads plugin." -version: 1.4.3 +version: 1.5.0 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_liftoffmonetize environment: - sdk: '>=3.9.0 <4.0.0' - flutter: '>=3.35.1' + sdk: '>=3.10.0 <4.0.0' + flutter: '>=3.38.1' dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 + google_mobile_ads: ^8.0.0 + meta: ^1.17.0 plugin_platform_interface: ^2.0.2 dev_dependencies: @@ -18,7 +19,7 @@ dev_dependencies: flutter_test: sdk: flutter lint: ^2.3.0 - pigeon: ^17.0.0 + pigeon: ^26.3.4 flutter: plugin: From d66d490026fc3b35cd97eaf24e2b8939ecbafe85 Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Thu, 23 Apr 2026 02:33:19 -0700 Subject: [PATCH 191/251] Updating Chartboost Flutter mediation plugin to support the latest adapters (9.11.1.1, 9.11.0.3) PiperOrigin-RevId: 904329131 --- .../gma_mediation_chartboost/CHANGELOG.md | 4 + .../android/build.gradle | 9 +- .../ChartboostSDKApi.g.kt | 81 ++++++++++++++ .../example/pubspec.yaml | 4 +- .../ios/Classes/ChartboostSDKApi.g.swift | 104 ++++++++++++++++++ .../ios/gma_mediation_chartboost.podspec | 4 +- .../lib/chartboost_sdk_api.g.dart | 75 +++++++++++++ .../gma_mediation_chartboost/pubspec.yaml | 11 +- 8 files changed, 279 insertions(+), 13 deletions(-) create mode 100644 packages/mediation/gma_mediation_chartboost/android/src/main/kotlin/io/flutter/plugins/googlemobileads/mediation/gma_mediation_chartboost/ChartboostSDKApi.g.kt create mode 100644 packages/mediation/gma_mediation_chartboost/ios/Classes/ChartboostSDKApi.g.swift create mode 100644 packages/mediation/gma_mediation_chartboost/lib/chartboost_sdk_api.g.dart diff --git a/packages/mediation/gma_mediation_chartboost/CHANGELOG.md b/packages/mediation/gma_mediation_chartboost/CHANGELOG.md index 061d48678..77da75a3a 100644 --- a/packages/mediation/gma_mediation_chartboost/CHANGELOG.md +++ b/packages/mediation/gma_mediation_chartboost/CHANGELOG.md @@ -1,5 +1,9 @@ ## Chartboost Flutter Mediation Adapter Changelog +#### Version 1.4.2 (In progress) +- Updated minimum Flutter version to 3.38.1 +- Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 + #### Version 1.4.1 - Supports [Chartboost Android adapter version 9.11.1.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/chartboost/CHANGELOG.md#version-91110). - Supports [Chartboost iOS adapter version 9.11.0.3](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Chartboost/CHANGELOG.md#version-91103). diff --git a/packages/mediation/gma_mediation_chartboost/android/build.gradle b/packages/mediation/gma_mediation_chartboost/android/build.gradle index 1c80f27c6..8112c9b84 100644 --- a/packages/mediation/gma_mediation_chartboost/android/build.gradle +++ b/packages/mediation/gma_mediation_chartboost/android/build.gradle @@ -1,8 +1,8 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_chartboost" -version = "1.4.1" +version = "1.4.2" buildscript { - ext.kotlin_version = "2.2.21" + ext.kotlin_version = "2.3.0" repositories { google() mavenCentral() @@ -28,7 +28,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "9.11.1.0" + stringVersion = "9.11.1.1" } android { @@ -53,11 +53,12 @@ android { } defaultConfig { - minSdk = 23 + minSdk = 24 } dependencies { implementation("com.google.ads.mediation:chartboost:$stringVersion") + implementation("com.google.android.gms:play-services-ads:25.1.0") testImplementation("org.jetbrains.kotlin:kotlin-test") testImplementation("org.mockito:mockito-core:5.5.0") } diff --git a/packages/mediation/gma_mediation_chartboost/android/src/main/kotlin/io/flutter/plugins/googlemobileads/mediation/gma_mediation_chartboost/ChartboostSDKApi.g.kt b/packages/mediation/gma_mediation_chartboost/android/src/main/kotlin/io/flutter/plugins/googlemobileads/mediation/gma_mediation_chartboost/ChartboostSDKApi.g.kt new file mode 100644 index 000000000..a4e4a223b --- /dev/null +++ b/packages/mediation/gma_mediation_chartboost/android/src/main/kotlin/io/flutter/plugins/googlemobileads/mediation/gma_mediation_chartboost/ChartboostSDKApi.g.kt @@ -0,0 +1,81 @@ +// Autogenerated from Pigeon (v26.3.4), do not edit directly. +// See also: https://pub.dev/packages/pigeon +@file:Suppress("UNCHECKED_CAST", "ArrayInDataClass") + +package io.flutter.plugins.googlemobileads.mediation.gma_mediation_chartboost + +import android.util.Log +import io.flutter.plugin.common.BinaryMessenger +import io.flutter.plugin.common.MessageCodec +import io.flutter.plugin.common.StandardMessageCodec +import java.io.ByteArrayOutputStream +import java.nio.ByteBuffer + +private object ChartboostSDKApiPigeonUtils { + + fun wrapResult(result: Any?): List { + return listOf(result) + } + + fun wrapError(exception: Throwable): List { + return if (exception is FlutterError) { + listOf(exception.code, exception.message, exception.details) + } else { + listOf( + exception.javaClass.simpleName, + exception.toString(), + "Cause: " + exception.cause + ", Stacktrace: " + Log.getStackTraceString(exception), + ) + } + } +} + +/** + * Error class for passing custom error details to Flutter via a thrown PlatformException. + * + * @property code The error code. + * @property message The error message. + * @property details The error details. Must be a datatype supported by the api codec. + */ +class FlutterError( + val code: String, + override val message: String? = null, + val details: Any? = null, +) : RuntimeException() + +private open class ChartboostSDKApiPigeonCodec : StandardMessageCodec() { + override fun readValueOfType(type: Byte, buffer: ByteBuffer): Any? { + return super.readValueOfType(type, buffer) + } + + override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { + super.writeValue(stream, value) + } +} + +/** + * The generated classes set the channels to call the methods in the corresponding kotlin + * ChartboostSDKApi interface and swift ChartboostSDKApi protocol from the dart layer. + * + * Generated interface from Pigeon that represents a handler of messages from Flutter. + */ +interface ChartboostSDKApi { + + companion object { + /** The codec used by ChartboostSDKApi. */ + val codec: MessageCodec by lazy { ChartboostSDKApiPigeonCodec() } + + /** + * Sets up an instance of `ChartboostSDKApi` to handle messages through the `binaryMessenger`. + */ + @JvmOverloads + fun setUp( + binaryMessenger: BinaryMessenger, + api: ChartboostSDKApi?, + messageChannelSuffix: String = "", + ) { + val separatedMessageChannelSuffix = + if (messageChannelSuffix.isNotEmpty()) ".$messageChannelSuffix" else "" + } + } +} diff --git a/packages/mediation/gma_mediation_chartboost/example/pubspec.yaml b/packages/mediation/gma_mediation_chartboost/example/pubspec.yaml index 3b0fa5252..79ced8ca7 100644 --- a/packages/mediation/gma_mediation_chartboost/example/pubspec.yaml +++ b/packages/mediation/gma_mediation_chartboost/example/pubspec.yaml @@ -5,7 +5,7 @@ description: "Demonstrates how to use the gma_mediation_chartboost plugin." publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: ^3.9.0 + sdk: ^3.10.0 # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions @@ -17,7 +17,7 @@ dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 + google_mobile_ads: ^8.0.0 gma_mediation_chartboost: # When depending on this package from a real application you should use: # gma_mediation_chartboost: ^x.y.z diff --git a/packages/mediation/gma_mediation_chartboost/ios/Classes/ChartboostSDKApi.g.swift b/packages/mediation/gma_mediation_chartboost/ios/Classes/ChartboostSDKApi.g.swift new file mode 100644 index 000000000..4cb3e0bb7 --- /dev/null +++ b/packages/mediation/gma_mediation_chartboost/ios/Classes/ChartboostSDKApi.g.swift @@ -0,0 +1,104 @@ +// Autogenerated from Pigeon (v26.3.4), do not edit directly. +// See also: https://pub.dev/packages/pigeon + +import Foundation + +#if os(iOS) + import Flutter +#elseif os(macOS) + import FlutterMacOS +#else + #error("Unsupported platform.") +#endif + +/// Error class for passing custom error details to Dart side. +final class PigeonError: Error { + let code: String + let message: String? + let details: Sendable? + + init(code: String, message: String?, details: Sendable?) { + self.code = code + self.message = message + self.details = details + } + + var localizedDescription: String { + return + "PigeonError(code: \(code), message: \(message ?? ""), details: \(details ?? "")" + } +} + +private func wrapResult(_ result: Any?) -> [Any?] { + return [result] +} + +private func wrapError(_ error: Any) -> [Any?] { + if let pigeonError = error as? PigeonError { + return [ + pigeonError.code, + pigeonError.message, + pigeonError.details, + ] + } + if let flutterError = error as? FlutterError { + return [ + flutterError.code, + flutterError.message, + flutterError.details, + ] + } + return [ + "\(error)", + "\(Swift.type(of: error))", + "Stacktrace: \(Thread.callStackSymbols)", + ] +} + +private func isNullish(_ value: Any?) -> Bool { + return value is NSNull || value == nil +} + +private func nilOrValue(_ value: Any?) -> T? { + if value is NSNull { return nil } + return value as! T? +} + +private class ChartboostSDKApiPigeonCodecReader: FlutterStandardReader { +} + +private class ChartboostSDKApiPigeonCodecWriter: FlutterStandardWriter { +} + +private class ChartboostSDKApiPigeonCodecReaderWriter: FlutterStandardReaderWriter { + override func reader(with data: Data) -> FlutterStandardReader { + return ChartboostSDKApiPigeonCodecReader(data: data) + } + + override func writer(with data: NSMutableData) -> FlutterStandardWriter { + return ChartboostSDKApiPigeonCodecWriter(data: data) + } +} + +class ChartboostSDKApiPigeonCodec: FlutterStandardMessageCodec, @unchecked Sendable { + static let shared = ChartboostSDKApiPigeonCodec( + readerWriter: ChartboostSDKApiPigeonCodecReaderWriter()) +} + +/// The generated classes set the channels to call the methods in the corresponding kotlin ChartboostSDKApi interface and swift ChartboostSDKApi protocol from the dart layer. +/// +/// Generated protocol from Pigeon that represents a handler of messages from Flutter. +protocol ChartboostSDKApi { +} + +/// Generated setup class from Pigeon to handle messages through the `binaryMessenger`. +class ChartboostSDKApiSetup { + static var codec: FlutterStandardMessageCodec { ChartboostSDKApiPigeonCodec.shared } + /// Sets up an instance of `ChartboostSDKApi` to handle messages through the `binaryMessenger`. + static func setUp( + binaryMessenger: FlutterBinaryMessenger, api: ChartboostSDKApi?, + messageChannelSuffix: String = "" + ) { + let channelSuffix = messageChannelSuffix.count > 0 ? ".\(messageChannelSuffix)" : "" + } +} diff --git a/packages/mediation/gma_mediation_chartboost/ios/gma_mediation_chartboost.podspec b/packages/mediation/gma_mediation_chartboost/ios/gma_mediation_chartboost.podspec index a321bb4ce..a86174e73 100644 --- a/packages/mediation/gma_mediation_chartboost/ios/gma_mediation_chartboost.podspec +++ b/packages/mediation/gma_mediation_chartboost/ios/gma_mediation_chartboost.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_chartboost' - s.version = '1.4.1' + s.version = '1.4.2' s.summary = 'Google Mobile Ads Mediation of Chartboost.' s.description = <<-DESC Mediation Adapter for Chartboost to use with Google Mobile Ads. @@ -16,6 +16,6 @@ Pod::Spec.new do |s| s.static_framework = true s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } - s.swift_version = '5.0' + s.swift_version = '6.0' end diff --git a/packages/mediation/gma_mediation_chartboost/lib/chartboost_sdk_api.g.dart b/packages/mediation/gma_mediation_chartboost/lib/chartboost_sdk_api.g.dart new file mode 100644 index 000000000..778c48656 --- /dev/null +++ b/packages/mediation/gma_mediation_chartboost/lib/chartboost_sdk_api.g.dart @@ -0,0 +1,75 @@ +// Autogenerated from Pigeon (v26.3.4), do not edit directly. +// See also: https://pub.dev/packages/pigeon +// ignore_for_file: unused_import, unused_shown_name +// ignore_for_file: type=lint + +import 'dart:async'; +import 'dart:typed_data' show Float64List, Int32List, Int64List; + +import 'package:flutter/services.dart'; +import 'package:meta/meta.dart' show immutable, protected, visibleForTesting; + +Object? _extractReplyValueOrThrow( + List? replyList, + String channelName, { + required bool isNullValid, +}) { + if (replyList == null) { + throw PlatformException( + code: 'channel-error', + message: 'Unable to establish connection on channel: "$channelName".', + ); + } else if (replyList.length > 1) { + throw PlatformException( + code: replyList[0]! as String, + message: replyList[1] as String?, + details: replyList[2], + ); + } else if (!isNullValid && (replyList.isNotEmpty && replyList[0] == null)) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } + return replyList.firstOrNull; +} + +class _PigeonCodec extends StandardMessageCodec { + const _PigeonCodec(); + @override + void writeValue(WriteBuffer buffer, Object? value) { + if (value is int) { + buffer.putUint8(4); + buffer.putInt64(value); + } else { + super.writeValue(buffer, value); + } + } + + @override + Object? readValueOfType(int type, ReadBuffer buffer) { + switch (type) { + default: + return super.readValueOfType(type, buffer); + } + } +} + +/// The generated classes set the channels to call the methods in the corresponding kotlin ChartboostSDKApi interface and swift ChartboostSDKApi protocol from the dart layer. +class ChartboostSDKApi { + /// Constructor for [ChartboostSDKApi]. The [binaryMessenger] named argument is + /// available for dependency injection. If it is left null, the default + /// BinaryMessenger will be used which routes to the host platform. + ChartboostSDKApi({ + BinaryMessenger? binaryMessenger, + String messageChannelSuffix = '', + }) : pigeonVar_binaryMessenger = binaryMessenger, + pigeonVar_messageChannelSuffix = messageChannelSuffix.isNotEmpty + ? '.$messageChannelSuffix' + : ''; + final BinaryMessenger? pigeonVar_binaryMessenger; + + static const MessageCodec pigeonChannelCodec = _PigeonCodec(); + + final String pigeonVar_messageChannelSuffix; +} diff --git a/packages/mediation/gma_mediation_chartboost/pubspec.yaml b/packages/mediation/gma_mediation_chartboost/pubspec.yaml index dc6850ad1..8c2000cfd 100644 --- a/packages/mediation/gma_mediation_chartboost/pubspec.yaml +++ b/packages/mediation/gma_mediation_chartboost/pubspec.yaml @@ -1,21 +1,22 @@ name: gma_mediation_chartboost description: 'Mediation Adapter that enables sending ad requests to the Chartboost ad network using the google_mobile_ads plugin.' -version: 1.4.1 +version: 1.4.2 environment: - sdk: '>=3.9.0 <4.0.0' - flutter: '>=3.35.1' + sdk: '>=3.10.0 <4.0.0' + flutter: '>=3.38.1' dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 + google_mobile_ads: ^8.0.0 + meta: ^1.17.0 plugin_platform_interface: ^2.0.2 dev_dependencies: flutter_lints: ^6.0.0 flutter_test: sdk: flutter lint: ^2.3.0 - pigeon: ^22.6.2 + pigeon: ^26.3.4 flutter: plugin: platforms: From e85d4c033e5b02a394385eb5d5dc4557f4e5d276 Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Thu, 23 Apr 2026 02:41:19 -0700 Subject: [PATCH 192/251] Updating DTExchange Flutter mediation plugin to support the latest adapters (8.4.4.0, 8.4.6.0) PiperOrigin-RevId: 904333158 --- .../gma_mediation_dtexchange/CHANGELOG.md | 4 + .../android/build.gradle | 7 +- .../DTExchangePrivacyApi.g.kt | 161 +++++++++----- .../example/pubspec.yaml | 4 +- .../ios/Classes/DTExchangePrivacyApi.g.swift | 59 ++++- .../ios/gma_mediation_dtexchange.podspec | 6 +- .../lib/dtexchange_privacy_api.g.dart | 209 ++++++++++-------- .../gma_mediation_dtexchange/pubspec.yaml | 11 +- 8 files changed, 287 insertions(+), 174 deletions(-) diff --git a/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md b/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md index 53b8d3963..8f2314e2d 100644 --- a/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md +++ b/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md @@ -1,5 +1,9 @@ ## DT Exchange Flutter Mediation Adapter Changelog +#### Version 1.3.4 (In progress) +- Updated minimum Flutter version to 3.38.1 +- Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 + #### Version 1.3.3 * Supports [DT Exchange Android adapter version 8.4.2.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/dtexchange/CHANGELOG.md#version-8421). * Supports [DT Exchange iOS adapter version 8.4.3.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/DTExchange/CHANGELOG.md#version-8430). diff --git a/packages/mediation/gma_mediation_dtexchange/android/build.gradle b/packages/mediation/gma_mediation_dtexchange/android/build.gradle index 8c41d986e..495aa1127 100644 --- a/packages/mediation/gma_mediation_dtexchange/android/build.gradle +++ b/packages/mediation/gma_mediation_dtexchange/android/build.gradle @@ -1,8 +1,8 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_dtexchange' -version = "1.3.3" +version = "1.3.4" buildscript { - ext.kotlin_version = '2.2.21' + ext.kotlin_version = '2.3.0' repositories { google() mavenCentral() @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "8.4.2.1" + stringVersion = "8.4.4.0" } android { @@ -55,6 +55,7 @@ android { dependencies { implementation "com.google.ads.mediation:fyber:$stringVersion" + implementation 'com.google.android.gms:play-services-ads:25.1.0' testImplementation 'junit:junit:4.13.2' testImplementation 'androidx.test:core:1.5.0' testImplementation 'androidx.test:core-ktx:1.5.0' diff --git a/packages/mediation/gma_mediation_dtexchange/android/src/main/kotlin/io/flutter/plugins/googlemobileads/mediation/gma_mediation_dtexchange/DTExchangePrivacyApi.g.kt b/packages/mediation/gma_mediation_dtexchange/android/src/main/kotlin/io/flutter/plugins/googlemobileads/mediation/gma_mediation_dtexchange/DTExchangePrivacyApi.g.kt index ba689dcf9..726f26aae 100644 --- a/packages/mediation/gma_mediation_dtexchange/android/src/main/kotlin/io/flutter/plugins/googlemobileads/mediation/gma_mediation_dtexchange/DTExchangePrivacyApi.g.kt +++ b/packages/mediation/gma_mediation_dtexchange/android/src/main/kotlin/io/flutter/plugins/googlemobileads/mediation/gma_mediation_dtexchange/DTExchangePrivacyApi.g.kt @@ -1,4 +1,4 @@ -// Autogenerated from Pigeon (v19.0.0), do not edit directly. +// Autogenerated from Pigeon (v26.3.4), do not edit directly. // See also: https://pub.dev/packages/pigeon @file:Suppress("UNCHECKED_CAST", "ArrayInDataClass") @@ -12,72 +12,103 @@ import io.flutter.plugin.common.StandardMessageCodec import java.io.ByteArrayOutputStream import java.nio.ByteBuffer -private fun wrapResult(result: Any?): List { - return listOf(result) -} +private object DTExchangePrivacyApiPigeonUtils { + + fun wrapResult(result: Any?): List { + return listOf(result) + } -private fun wrapError(exception: Throwable): List { - return if (exception is FlutterError) { - listOf( - exception.code, - exception.message, - exception.details - ) - } else { - listOf( - exception.javaClass.simpleName, - exception.toString(), - "Cause: " + exception.cause + ", Stacktrace: " + Log.getStackTraceString(exception) - ) + fun wrapError(exception: Throwable): List { + return if (exception is FlutterError) { + listOf(exception.code, exception.message, exception.details) + } else { + listOf( + exception.javaClass.simpleName, + exception.toString(), + "Cause: " + exception.cause + ", Stacktrace: " + Log.getStackTraceString(exception), + ) + } } } /** * Error class for passing custom error details to Flutter via a thrown PlatformException. + * * @property code The error code. * @property message The error message. * @property details The error details. Must be a datatype supported by the api codec. */ -class FlutterError ( +class FlutterError( val code: String, override val message: String? = null, - val details: Any? = null -) : Throwable() + val details: Any? = null, +) : RuntimeException() + +private open class DTExchangePrivacyApiPigeonCodec : StandardMessageCodec() { + override fun readValueOfType(type: Byte, buffer: ByteBuffer): Any? { + return super.readValueOfType(type, buffer) + } + + override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { + super.writeValue(stream, value) + } +} + /** - * The generated classes set the channels to call the methods in the corresponding kotlin DTExchangePrivacyApi interface and swift DTExchangePrivacyApi protocol from the dart layer. + * The generated classes set the channels to call the methods in the corresponding kotlin + * DTExchangePrivacyApi interface and swift DTExchangePrivacyApi protocol from the dart layer. * * Generated interface from Pigeon that represents a handler of messages from Flutter. */ interface DTExchangePrivacyApi { /** Used to configure LGDP on the Android or iOS DTExchange SDK. */ fun setLgpdConsent(wasConsentGiven: Boolean) + /** Used to clear the LGDP flag on the Android or iOS DTExchange SDK. */ fun clearLgpdConsentData() - /** Used to configure consent to Sell Personal Information on the Android or iOS DTExchange SDK. */ + + /** + * Used to configure consent to Sell Personal Information on the Android or iOS DTExchange SDK. + */ fun setUSPrivacyString(usPrivacyString: String) + /** Used to clear the US Privacy flag on the Android or iOS DTExchange SDK. */ fun clearUSPrivacyString() companion object { /** The codec used by DTExchangePrivacyApi. */ - val codec: MessageCodec by lazy { - StandardMessageCodec() - } - /** Sets up an instance of `DTExchangePrivacyApi` to handle messages through the `binaryMessenger`. */ - fun setUp(binaryMessenger: BinaryMessenger, api: DTExchangePrivacyApi?, messageChannelSuffix: String = "") { - val separatedMessageChannelSuffix = if (messageChannelSuffix.isNotEmpty()) ".$messageChannelSuffix" else "" + val codec: MessageCodec by lazy { DTExchangePrivacyApiPigeonCodec() } + + /** + * Sets up an instance of `DTExchangePrivacyApi` to handle messages through the + * `binaryMessenger`. + */ + @JvmOverloads + fun setUp( + binaryMessenger: BinaryMessenger, + api: DTExchangePrivacyApi?, + messageChannelSuffix: String = "", + ) { + val separatedMessageChannelSuffix = + if (messageChannelSuffix.isNotEmpty()) ".$messageChannelSuffix" else "" run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.gma_mediation_dtexchange.DTExchangePrivacyApi.setLgpdConsent$separatedMessageChannelSuffix", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.gma_mediation_dtexchange.DTExchangePrivacyApi.setLgpdConsent$separatedMessageChannelSuffix", + codec, + ) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val wasConsentGivenArg = args[0] as Boolean - val wrapped: List = try { - api.setLgpdConsent(wasConsentGivenArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.setLgpdConsent(wasConsentGivenArg) + listOf(null) + } catch (exception: Throwable) { + DTExchangePrivacyApiPigeonUtils.wrapError(exception) + } reply.reply(wrapped) } } else { @@ -85,15 +116,21 @@ interface DTExchangePrivacyApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.gma_mediation_dtexchange.DTExchangePrivacyApi.clearLgpdConsentData$separatedMessageChannelSuffix", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.gma_mediation_dtexchange.DTExchangePrivacyApi.clearLgpdConsentData$separatedMessageChannelSuffix", + codec, + ) if (api != null) { channel.setMessageHandler { _, reply -> - val wrapped: List = try { - api.clearLgpdConsentData() - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.clearLgpdConsentData() + listOf(null) + } catch (exception: Throwable) { + DTExchangePrivacyApiPigeonUtils.wrapError(exception) + } reply.reply(wrapped) } } else { @@ -101,17 +138,23 @@ interface DTExchangePrivacyApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.gma_mediation_dtexchange.DTExchangePrivacyApi.setUSPrivacyString$separatedMessageChannelSuffix", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.gma_mediation_dtexchange.DTExchangePrivacyApi.setUSPrivacyString$separatedMessageChannelSuffix", + codec, + ) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val usPrivacyStringArg = args[0] as String - val wrapped: List = try { - api.setUSPrivacyString(usPrivacyStringArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.setUSPrivacyString(usPrivacyStringArg) + listOf(null) + } catch (exception: Throwable) { + DTExchangePrivacyApiPigeonUtils.wrapError(exception) + } reply.reply(wrapped) } } else { @@ -119,15 +162,21 @@ interface DTExchangePrivacyApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.gma_mediation_dtexchange.DTExchangePrivacyApi.clearUSPrivacyString$separatedMessageChannelSuffix", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.gma_mediation_dtexchange.DTExchangePrivacyApi.clearUSPrivacyString$separatedMessageChannelSuffix", + codec, + ) if (api != null) { channel.setMessageHandler { _, reply -> - val wrapped: List = try { - api.clearUSPrivacyString() - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.clearUSPrivacyString() + listOf(null) + } catch (exception: Throwable) { + DTExchangePrivacyApiPigeonUtils.wrapError(exception) + } reply.reply(wrapped) } } else { diff --git a/packages/mediation/gma_mediation_dtexchange/example/pubspec.yaml b/packages/mediation/gma_mediation_dtexchange/example/pubspec.yaml index e3087e7ff..a3b4f7a2b 100644 --- a/packages/mediation/gma_mediation_dtexchange/example/pubspec.yaml +++ b/packages/mediation/gma_mediation_dtexchange/example/pubspec.yaml @@ -5,7 +5,7 @@ description: "Demonstrates how to use the gma_mediation_dtexchange plugin." publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: '>=3.9.0 <4.0.0' + sdk: '>=3.10.0 <4.0.0' # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions @@ -17,7 +17,7 @@ dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 + google_mobile_ads: ^8.0.0 gma_mediation_dtexchange: # When depending on this package from a real application you should use: # gma_mediation_dtexchange: ^x.y.z diff --git a/packages/mediation/gma_mediation_dtexchange/ios/Classes/DTExchangePrivacyApi.g.swift b/packages/mediation/gma_mediation_dtexchange/ios/Classes/DTExchangePrivacyApi.g.swift index ef5dd6be6..de08ad8af 100644 --- a/packages/mediation/gma_mediation_dtexchange/ios/Classes/DTExchangePrivacyApi.g.swift +++ b/packages/mediation/gma_mediation_dtexchange/ios/Classes/DTExchangePrivacyApi.g.swift @@ -1,4 +1,4 @@ -// Autogenerated from Pigeon (v19.0.0), do not edit directly. +// Autogenerated from Pigeon (v26.3.4), do not edit directly. // See also: https://pub.dev/packages/pigeon import Foundation @@ -15,9 +15,9 @@ import Foundation final class PigeonError: Error { let code: String let message: String? - let details: Any? + let details: Sendable? - init(code: String, message: String?, details: Any?) { + init(code: String, message: String?, details: Sendable?) { self.code = code self.message = message self.details = details @@ -26,7 +26,7 @@ final class PigeonError: Error { var localizedDescription: String { return "PigeonError(code: \(code), message: \(message ?? ""), details: \(details ?? "")" - } + } } private func wrapResult(_ result: Any?) -> [Any?] { @@ -50,7 +50,7 @@ private func wrapError(_ error: Any) -> [Any?] { } return [ "\(error)", - "\(type(of: error))", + "\(Swift.type(of: error))", "Stacktrace: \(Thread.callStackSymbols)", ] } @@ -63,6 +63,28 @@ private func nilOrValue(_ value: Any?) -> T? { if value is NSNull { return nil } return value as! T? } + +private class DTExchangePrivacyApiPigeonCodecReader: FlutterStandardReader { +} + +private class DTExchangePrivacyApiPigeonCodecWriter: FlutterStandardWriter { +} + +private class DTExchangePrivacyApiPigeonCodecReaderWriter: FlutterStandardReaderWriter { + override func reader(with data: Data) -> FlutterStandardReader { + return DTExchangePrivacyApiPigeonCodecReader(data: data) + } + + override func writer(with data: NSMutableData) -> FlutterStandardWriter { + return DTExchangePrivacyApiPigeonCodecWriter(data: data) + } +} + +class DTExchangePrivacyApiPigeonCodec: FlutterStandardMessageCodec, @unchecked Sendable { + static let shared = DTExchangePrivacyApiPigeonCodec( + readerWriter: DTExchangePrivacyApiPigeonCodecReaderWriter()) +} + /// The generated classes set the channels to call the methods in the corresponding kotlin DTExchangePrivacyApi interface and swift DTExchangePrivacyApi protocol from the dart layer. /// /// Generated protocol from Pigeon that represents a handler of messages from Flutter. @@ -79,12 +101,18 @@ protocol DTExchangePrivacyApi { /// Generated setup class from Pigeon to handle messages through the `binaryMessenger`. class DTExchangePrivacyApiSetup { - /// The codec used by DTExchangePrivacyApi. + static var codec: FlutterStandardMessageCodec { DTExchangePrivacyApiPigeonCodec.shared } /// Sets up an instance of `DTExchangePrivacyApi` to handle messages through the `binaryMessenger`. - static func setUp(binaryMessenger: FlutterBinaryMessenger, api: DTExchangePrivacyApi?, messageChannelSuffix: String = "") { + static func setUp( + binaryMessenger: FlutterBinaryMessenger, api: DTExchangePrivacyApi?, + messageChannelSuffix: String = "" + ) { let channelSuffix = messageChannelSuffix.count > 0 ? ".\(messageChannelSuffix)" : "" /// Used to configure LGDP on the Android or iOS DTExchange SDK. - let setLgpdConsentChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.gma_mediation_dtexchange.DTExchangePrivacyApi.setLgpdConsent\(channelSuffix)", binaryMessenger: binaryMessenger) + let setLgpdConsentChannel = FlutterBasicMessageChannel( + name: + "dev.flutter.pigeon.gma_mediation_dtexchange.DTExchangePrivacyApi.setLgpdConsent\(channelSuffix)", + binaryMessenger: binaryMessenger, codec: codec) if let api = api { setLgpdConsentChannel.setMessageHandler { message, reply in let args = message as! [Any?] @@ -100,7 +128,10 @@ class DTExchangePrivacyApiSetup { setLgpdConsentChannel.setMessageHandler(nil) } /// Used to clear the LGDP flag on the Android or iOS DTExchange SDK. - let clearLgpdConsentDataChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.gma_mediation_dtexchange.DTExchangePrivacyApi.clearLgpdConsentData\(channelSuffix)", binaryMessenger: binaryMessenger) + let clearLgpdConsentDataChannel = FlutterBasicMessageChannel( + name: + "dev.flutter.pigeon.gma_mediation_dtexchange.DTExchangePrivacyApi.clearLgpdConsentData\(channelSuffix)", + binaryMessenger: binaryMessenger, codec: codec) if let api = api { clearLgpdConsentDataChannel.setMessageHandler { _, reply in do { @@ -114,7 +145,10 @@ class DTExchangePrivacyApiSetup { clearLgpdConsentDataChannel.setMessageHandler(nil) } /// Used to configure consent to Sell Personal Information on the Android or iOS DTExchange SDK. - let setUSPrivacyStringChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.gma_mediation_dtexchange.DTExchangePrivacyApi.setUSPrivacyString\(channelSuffix)", binaryMessenger: binaryMessenger) + let setUSPrivacyStringChannel = FlutterBasicMessageChannel( + name: + "dev.flutter.pigeon.gma_mediation_dtexchange.DTExchangePrivacyApi.setUSPrivacyString\(channelSuffix)", + binaryMessenger: binaryMessenger, codec: codec) if let api = api { setUSPrivacyStringChannel.setMessageHandler { message, reply in let args = message as! [Any?] @@ -130,7 +164,10 @@ class DTExchangePrivacyApiSetup { setUSPrivacyStringChannel.setMessageHandler(nil) } /// Used to clear the US Privacy flag on the Android or iOS DTExchange SDK. - let clearUSPrivacyStringChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.gma_mediation_dtexchange.DTExchangePrivacyApi.clearUSPrivacyString\(channelSuffix)", binaryMessenger: binaryMessenger) + let clearUSPrivacyStringChannel = FlutterBasicMessageChannel( + name: + "dev.flutter.pigeon.gma_mediation_dtexchange.DTExchangePrivacyApi.clearUSPrivacyString\(channelSuffix)", + binaryMessenger: binaryMessenger, codec: codec) if let api = api { clearUSPrivacyStringChannel.setMessageHandler { _, reply in do { diff --git a/packages/mediation/gma_mediation_dtexchange/ios/gma_mediation_dtexchange.podspec b/packages/mediation/gma_mediation_dtexchange/ios/gma_mediation_dtexchange.podspec index d051bb4f2..d7a20b4f3 100644 --- a/packages/mediation/gma_mediation_dtexchange/ios/gma_mediation_dtexchange.podspec +++ b/packages/mediation/gma_mediation_dtexchange/ios/gma_mediation_dtexchange.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_dtexchange' - s.version = '1.3.3' + s.version = '1.3.4' s.summary = 'Google Mobile Ads Mediation of DT Exchange.' s.description = <<-DESC Mediation Adapter for DT Exchange to use with Google Mobile Ads. @@ -16,10 +16,10 @@ Mediation Adapter for DT Exchange to use with Google Mobile Ads. s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationFyber', '~> 8.4.3.0' + s.dependency 'GoogleMobileAdsMediationFyber', '~> 8.4.6.0' s.platform = :ios, '13.0' s.static_framework = true # Flutter.framework does not contain a i386 slice. s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } - s.swift_version = '5.0' + s.swift_version = '6.0' end diff --git a/packages/mediation/gma_mediation_dtexchange/lib/dtexchange_privacy_api.g.dart b/packages/mediation/gma_mediation_dtexchange/lib/dtexchange_privacy_api.g.dart index 19917f254..7b7e2f9ad 100644 --- a/packages/mediation/gma_mediation_dtexchange/lib/dtexchange_privacy_api.g.dart +++ b/packages/mediation/gma_mediation_dtexchange/lib/dtexchange_privacy_api.g.dart @@ -1,18 +1,58 @@ -// Autogenerated from Pigeon (v19.0.0), do not edit directly. +// Autogenerated from Pigeon (v26.3.4), do not edit directly. // See also: https://pub.dev/packages/pigeon -// ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import, no_leading_underscores_for_local_identifiers +// ignore_for_file: unused_import, unused_shown_name +// ignore_for_file: type=lint import 'dart:async'; -import 'dart:typed_data' show Float64List, Int32List, Int64List, Uint8List; +import 'dart:typed_data' show Float64List, Int32List, Int64List; -import 'package:flutter/foundation.dart' show ReadBuffer, WriteBuffer; import 'package:flutter/services.dart'; +import 'package:meta/meta.dart' show immutable, protected, visibleForTesting; -PlatformException _createConnectionError(String channelName) { - return PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel: "$channelName".', - ); +Object? _extractReplyValueOrThrow( + List? replyList, + String channelName, { + required bool isNullValid, +}) { + if (replyList == null) { + throw PlatformException( + code: 'channel-error', + message: 'Unable to establish connection on channel: "$channelName".', + ); + } else if (replyList.length > 1) { + throw PlatformException( + code: replyList[0]! as String, + message: replyList[1] as String?, + details: replyList[2], + ); + } else if (!isNullValid && (replyList.isNotEmpty && replyList[0] == null)) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } + return replyList.firstOrNull; +} + +class _PigeonCodec extends StandardMessageCodec { + const _PigeonCodec(); + @override + void writeValue(WriteBuffer buffer, Object? value) { + if (value is int) { + buffer.putUint8(4); + buffer.putInt64(value); + } else { + super.writeValue(buffer, value); + } + } + + @override + Object? readValueOfType(int type, ReadBuffer buffer) { + switch (type) { + default: + return super.readValueOfType(type, buffer); + } + } } /// The generated classes set the channels to call the methods in the corresponding kotlin DTExchangePrivacyApi interface and swift DTExchangePrivacyApi protocol from the dart layer. @@ -20,115 +60,96 @@ class DTExchangePrivacyApi { /// Constructor for [DTExchangePrivacyApi]. The [binaryMessenger] named argument is /// available for dependency injection. If it is left null, the default /// BinaryMessenger will be used which routes to the host platform. - DTExchangePrivacyApi( - {BinaryMessenger? binaryMessenger, String messageChannelSuffix = ''}) - : __pigeon_binaryMessenger = binaryMessenger, - __pigeon_messageChannelSuffix = - messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; - final BinaryMessenger? __pigeon_binaryMessenger; + DTExchangePrivacyApi({ + BinaryMessenger? binaryMessenger, + String messageChannelSuffix = '', + }) : pigeonVar_binaryMessenger = binaryMessenger, + pigeonVar_messageChannelSuffix = messageChannelSuffix.isNotEmpty + ? '.$messageChannelSuffix' + : ''; + final BinaryMessenger? pigeonVar_binaryMessenger; - static const MessageCodec pigeonChannelCodec = - StandardMessageCodec(); + static const MessageCodec pigeonChannelCodec = _PigeonCodec(); - final String __pigeon_messageChannelSuffix; + final String pigeonVar_messageChannelSuffix; /// Used to configure LGDP on the Android or iOS DTExchange SDK. Future setLgpdConsent(bool wasConsentGiven) async { - final String __pigeon_channelName = - 'dev.flutter.pigeon.gma_mediation_dtexchange.DTExchangePrivacyApi.setLgpdConsent$__pigeon_messageChannelSuffix'; - final BasicMessageChannel __pigeon_channel = - BasicMessageChannel( - __pigeon_channelName, + final pigeonVar_channelName = + 'dev.flutter.pigeon.gma_mediation_dtexchange.DTExchangePrivacyApi.setLgpdConsent$pigeonVar_messageChannelSuffix'; + final pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, pigeonChannelCodec, - binaryMessenger: __pigeon_binaryMessenger, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [wasConsentGiven], + ); + final pigeonVar_replyList = await pigeonVar_sendFuture as List?; + + _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: true, ); - final List? __pigeon_replyList = await __pigeon_channel - .send([wasConsentGiven]) as List?; - if (__pigeon_replyList == null) { - throw _createConnectionError(__pigeon_channelName); - } else if (__pigeon_replyList.length > 1) { - throw PlatformException( - code: __pigeon_replyList[0]! as String, - message: __pigeon_replyList[1] as String?, - details: __pigeon_replyList[2], - ); - } else { - return; - } } /// Used to clear the LGDP flag on the Android or iOS DTExchange SDK. Future clearLgpdConsentData() async { - final String __pigeon_channelName = - 'dev.flutter.pigeon.gma_mediation_dtexchange.DTExchangePrivacyApi.clearLgpdConsentData$__pigeon_messageChannelSuffix'; - final BasicMessageChannel __pigeon_channel = - BasicMessageChannel( - __pigeon_channelName, + final pigeonVar_channelName = + 'dev.flutter.pigeon.gma_mediation_dtexchange.DTExchangePrivacyApi.clearLgpdConsentData$pigeonVar_messageChannelSuffix'; + final pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, pigeonChannelCodec, - binaryMessenger: __pigeon_binaryMessenger, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); + final pigeonVar_replyList = await pigeonVar_sendFuture as List?; + + _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: true, ); - final List? __pigeon_replyList = - await __pigeon_channel.send(null) as List?; - if (__pigeon_replyList == null) { - throw _createConnectionError(__pigeon_channelName); - } else if (__pigeon_replyList.length > 1) { - throw PlatformException( - code: __pigeon_replyList[0]! as String, - message: __pigeon_replyList[1] as String?, - details: __pigeon_replyList[2], - ); - } else { - return; - } } /// Used to configure consent to Sell Personal Information on the Android or iOS DTExchange SDK. Future setUSPrivacyString(String usPrivacyString) async { - final String __pigeon_channelName = - 'dev.flutter.pigeon.gma_mediation_dtexchange.DTExchangePrivacyApi.setUSPrivacyString$__pigeon_messageChannelSuffix'; - final BasicMessageChannel __pigeon_channel = - BasicMessageChannel( - __pigeon_channelName, + final pigeonVar_channelName = + 'dev.flutter.pigeon.gma_mediation_dtexchange.DTExchangePrivacyApi.setUSPrivacyString$pigeonVar_messageChannelSuffix'; + final pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, pigeonChannelCodec, - binaryMessenger: __pigeon_binaryMessenger, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [usPrivacyString], + ); + final pigeonVar_replyList = await pigeonVar_sendFuture as List?; + + _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: true, ); - final List? __pigeon_replyList = await __pigeon_channel - .send([usPrivacyString]) as List?; - if (__pigeon_replyList == null) { - throw _createConnectionError(__pigeon_channelName); - } else if (__pigeon_replyList.length > 1) { - throw PlatformException( - code: __pigeon_replyList[0]! as String, - message: __pigeon_replyList[1] as String?, - details: __pigeon_replyList[2], - ); - } else { - return; - } } /// Used to clear the US Privacy flag on the Android or iOS DTExchange SDK. Future clearUSPrivacyString() async { - final String __pigeon_channelName = - 'dev.flutter.pigeon.gma_mediation_dtexchange.DTExchangePrivacyApi.clearUSPrivacyString$__pigeon_messageChannelSuffix'; - final BasicMessageChannel __pigeon_channel = - BasicMessageChannel( - __pigeon_channelName, + final pigeonVar_channelName = + 'dev.flutter.pigeon.gma_mediation_dtexchange.DTExchangePrivacyApi.clearUSPrivacyString$pigeonVar_messageChannelSuffix'; + final pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, pigeonChannelCodec, - binaryMessenger: __pigeon_binaryMessenger, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); + final pigeonVar_replyList = await pigeonVar_sendFuture as List?; + + _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: true, ); - final List? __pigeon_replyList = - await __pigeon_channel.send(null) as List?; - if (__pigeon_replyList == null) { - throw _createConnectionError(__pigeon_channelName); - } else if (__pigeon_replyList.length > 1) { - throw PlatformException( - code: __pigeon_replyList[0]! as String, - message: __pigeon_replyList[1] as String?, - details: __pigeon_replyList[2], - ); - } else { - return; - } } } diff --git a/packages/mediation/gma_mediation_dtexchange/pubspec.yaml b/packages/mediation/gma_mediation_dtexchange/pubspec.yaml index 767c9104d..606ef4741 100644 --- a/packages/mediation/gma_mediation_dtexchange/pubspec.yaml +++ b/packages/mediation/gma_mediation_dtexchange/pubspec.yaml @@ -1,16 +1,17 @@ name: gma_mediation_dtexchange description: "Mediation Adapter that enables sending ad requests to the DT Exchange ad network using the google_mobile_ads plugin." -version: 1.3.3 +version: 1.3.4 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_dtexchange environment: - sdk: '>=3.9.0 <4.0.0' - flutter: '>=3.35.1' + sdk: '>=3.10.0 <4.0.0' + flutter: '>=3.38.1' dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 + google_mobile_ads: ^8.0.0 + meta: ^1.17.0 plugin_platform_interface: ^2.0.2 dev_dependencies: @@ -18,7 +19,7 @@ dev_dependencies: flutter_test: sdk: flutter lint: ^2.3.0 - pigeon: ^19.0.0 + pigeon: ^26.3.4 flutter: plugin: From 94ca3a7c6b528aa92a95153ff1a98755603fb94d Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Fri, 24 Apr 2026 10:06:32 -0700 Subject: [PATCH 193/251] Updating BidMachine Flutter adapter version to 1.3.2 in the mediation developer docs. PiperOrigin-RevId: 905092475 --- packages/mediation/gma_mediation_bidmachine/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md b/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md index e208c3df8..7b0a372ed 100644 --- a/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md +++ b/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md @@ -1,8 +1,11 @@ ## BidMachine Flutter Mediation Adapter Changelog -#### Version 1.3.2 (In progress) +#### Version 1.3.2 - Updated minimum Flutter version to 3.38.1 - Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 +- Supports [BidMachine Android adapter version 3.6.1.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/bidmachine/CHANGELOG.md#version-3610). +- Supports [BidMachine iOS adapter version 3.6.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/BidMachine/CHANGELOG.md#version-3600). +- Built and tested with the Google Mobile Ads Flutter Plugin version 8.0.0. #### Version 1.3.1 - Supports [BidMachine Android adapter version 3.5.1.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/bidmachine/CHANGELOG.md#version-3501). From 2f202f23d7368f6456a001371de28a72f833aa0e Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Fri, 24 Apr 2026 10:17:15 -0700 Subject: [PATCH 194/251] Updating DT Exchange Flutter adapter version to 1.3.4 in the mediation developer docs. PiperOrigin-RevId: 905098273 --- packages/mediation/gma_mediation_dtexchange/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md b/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md index 8f2314e2d..cf68af3bd 100644 --- a/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md +++ b/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md @@ -1,8 +1,11 @@ ## DT Exchange Flutter Mediation Adapter Changelog -#### Version 1.3.4 (In progress) +#### Version 1.3.4 - Updated minimum Flutter version to 3.38.1 - Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 +* Supports [DT Exchange Android adapter version 8.4.4.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/dtexchange/CHANGELOG.md#version-8440). +* Supports [DT Exchange iOS adapter version 8.4.6.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/DTExchange/CHANGELOG.md#version-8460). +* Built and tested with the Google Mobile Ads Flutter Plugin version 8.0.0. #### Version 1.3.3 * Supports [DT Exchange Android adapter version 8.4.2.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/dtexchange/CHANGELOG.md#version-8421). From cb7dbc330b6b4496765c06416ff94f8bbfc56745 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Fri, 24 Apr 2026 10:18:07 -0700 Subject: [PATCH 195/251] Updating ironSource Flutter adapter version to 2.4.0 in the mediation developer docs. PiperOrigin-RevId: 905098680 --- packages/mediation/gma_mediation_ironsource/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_ironsource/CHANGELOG.md b/packages/mediation/gma_mediation_ironsource/CHANGELOG.md index 3cc86b240..3db2ab266 100644 --- a/packages/mediation/gma_mediation_ironsource/CHANGELOG.md +++ b/packages/mediation/gma_mediation_ironsource/CHANGELOG.md @@ -1,8 +1,11 @@ ## ironSource Flutter Mediation Adapter Changelog -#### Version 2.4.0 (In progress) +#### Version 2.4.0 - Updated minimum Flutter version to 3.38.1 - Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 +- Supports [ironSource Android adapter version 9.4.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/ironsource/CHANGELOG.md#version-9400). +- Supports [ironSource iOS adapter version 9.4.0.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/IronSource/CHANGELOG.md#version-94000). +- Built and tested with the Google Mobile Ads Flutter Plugin version 8.0.0. #### Version 2.3.0 - Supports [ironSource Android adapter version 9.3.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/ironsource/CHANGELOG.md#version-9300). From 06bd3aa2ba7e93c1b67081e830ab74995372dde2 Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Fri, 24 Apr 2026 11:26:08 -0700 Subject: [PATCH 196/251] Updating Line Flutter mediation plugin to support the latest adapters (3.1.0.0, 3.0.1.0) PiperOrigin-RevId: 905134482 --- packages/mediation/gma_mediation_line/CHANGELOG.md | 6 +++--- .../mediation/gma_mediation_line/android/build.gradle | 9 +++++---- .../mediation/gma_mediation_line/example/pubspec.yaml | 4 ++-- .../gma_mediation_line/ios/gma_mediation_line.podspec | 4 ++-- packages/mediation/gma_mediation_line/pubspec.yaml | 8 ++++---- 5 files changed, 16 insertions(+), 15 deletions(-) diff --git a/packages/mediation/gma_mediation_line/CHANGELOG.md b/packages/mediation/gma_mediation_line/CHANGELOG.md index d366c1326..e054a9eb0 100644 --- a/packages/mediation/gma_mediation_line/CHANGELOG.md +++ b/packages/mediation/gma_mediation_line/CHANGELOG.md @@ -1,8 +1,8 @@ ## Line Flutter Mediation Adapter Changelog -#### Version 2.0.2 (In progress) - -#### Version 2.0.1 (In progress) +#### Version 2.1.0 (In progress) +- Updated minimum Flutter version to 3.38.1 +- Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 #### Version 2.0.0 - Updated minimum Flutter version to 3.35.1 diff --git a/packages/mediation/gma_mediation_line/android/build.gradle b/packages/mediation/gma_mediation_line/android/build.gradle index d4e866108..0c3cab15d 100644 --- a/packages/mediation/gma_mediation_line/android/build.gradle +++ b/packages/mediation/gma_mediation_line/android/build.gradle @@ -1,8 +1,8 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_line" -version = "2.0.2" +version = "2.1.0" buildscript { - ext.kotlin_version = "2.2.21" + ext.kotlin_version = "2.3.0" repositories { google() mavenCentral() @@ -25,7 +25,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "3.0.1.1" + stringVersion = "3.1.0.0" } android { @@ -50,11 +50,12 @@ android { } defaultConfig { - minSdk = 23 + minSdk = 24 } dependencies { implementation("com.google.ads.mediation:line:$stringVersion") + implementation("com.google.android.gms:play-services-ads:25.1.0") testImplementation("org.jetbrains.kotlin:kotlin-test") testImplementation("org.mockito:mockito-core:5.5.0") } diff --git a/packages/mediation/gma_mediation_line/example/pubspec.yaml b/packages/mediation/gma_mediation_line/example/pubspec.yaml index a61fd105e..5adb074c2 100644 --- a/packages/mediation/gma_mediation_line/example/pubspec.yaml +++ b/packages/mediation/gma_mediation_line/example/pubspec.yaml @@ -5,7 +5,7 @@ description: "Demonstrates how to use the gma_mediation_line plugin." publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: ^3.9.0 + sdk: ^3.10.0 # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions @@ -17,7 +17,7 @@ dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 + google_mobile_ads: ^8.0.0 gma_mediation_line: # When depending on this package from a real application you should use: # gma_mediation_line: ^x.y.z diff --git a/packages/mediation/gma_mediation_line/ios/gma_mediation_line.podspec b/packages/mediation/gma_mediation_line/ios/gma_mediation_line.podspec index 9f2fce951..eb654cb24 100644 --- a/packages/mediation/gma_mediation_line/ios/gma_mediation_line.podspec +++ b/packages/mediation/gma_mediation_line/ios/gma_mediation_line.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_line' - s.version = '2.0.2' + s.version = '2.1.0' s.summary = 'Google Mobile Ads Mediation of Line.' s.description = <<-DESC Mediation Adapter for Line to use with Google Mobile Ads. @@ -16,6 +16,6 @@ Pod::Spec.new do |s| s.static_framework = true s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } - s.swift_version = '5.0' + s.swift_version = '6.0' end diff --git a/packages/mediation/gma_mediation_line/pubspec.yaml b/packages/mediation/gma_mediation_line/pubspec.yaml index 6fc0d7e12..e0e1c5364 100644 --- a/packages/mediation/gma_mediation_line/pubspec.yaml +++ b/packages/mediation/gma_mediation_line/pubspec.yaml @@ -1,14 +1,14 @@ name: gma_mediation_line description: 'Mediation Adapter that enables sending ad requests to the Line ad network using the google_mobile_ads plugin.' -version: 2.0.2 +version: 2.1.0 environment: - sdk: '>=3.9.0 <4.0.0' - flutter: '>=3.35.1' + sdk: '>=3.10.0 <4.0.0' + flutter: '>=3.38.1' dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 + google_mobile_ads: ^8.0.0 plugin_platform_interface: ^2.0.2 dev_dependencies: flutter_test: From e3178b0acbf148270db5be8ba31f38675705aa35 Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Fri, 24 Apr 2026 11:33:34 -0700 Subject: [PATCH 197/251] Updating Maio Flutter mediation plugin to support the latest adapters (2.0.8.2, 2.2.1.1) PiperOrigin-RevId: 905138172 --- packages/mediation/gma_mediation_maio/CHANGELOG.md | 2 ++ packages/mediation/gma_mediation_maio/android/build.gradle | 5 +++-- packages/mediation/gma_mediation_maio/example/pubspec.yaml | 4 ++-- .../gma_mediation_maio/ios/gma_mediation_maio.podspec | 4 ++-- packages/mediation/gma_mediation_maio/pubspec.yaml | 6 +++--- 5 files changed, 12 insertions(+), 9 deletions(-) diff --git a/packages/mediation/gma_mediation_maio/CHANGELOG.md b/packages/mediation/gma_mediation_maio/CHANGELOG.md index 65c73b521..2ee4e9dbd 100644 --- a/packages/mediation/gma_mediation_maio/CHANGELOG.md +++ b/packages/mediation/gma_mediation_maio/CHANGELOG.md @@ -1,6 +1,8 @@ ## maio Flutter Mediation Adapter Changelog #### Version 1.1.4 (In progress) +- Updated minimum Flutter version to 3.38.1 +- Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 #### Version 1.1.3 - Supports [maio Android adapter version 2.0.7.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/maio/CHANGELOG.md#version-2070). diff --git a/packages/mediation/gma_mediation_maio/android/build.gradle b/packages/mediation/gma_mediation_maio/android/build.gradle index 46771b052..5008709d6 100644 --- a/packages/mediation/gma_mediation_maio/android/build.gradle +++ b/packages/mediation/gma_mediation_maio/android/build.gradle @@ -2,7 +2,7 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_maio" version = "1.1.4" buildscript { - ext.kotlin_version = "2.2.21" + ext.kotlin_version = "2.3.0" repositories { google() mavenCentral() @@ -25,7 +25,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "2.0.8.1" + stringVersion = "2.0.8.2" } android { @@ -53,6 +53,7 @@ android { dependencies { implementation("com.google.ads.mediation:maio:$stringVersion") + implementation("com.google.android.gms:play-services-ads:25.1.0") testImplementation("org.jetbrains.kotlin:kotlin-test") testImplementation("org.mockito:mockito-core:5.5.0") } diff --git a/packages/mediation/gma_mediation_maio/example/pubspec.yaml b/packages/mediation/gma_mediation_maio/example/pubspec.yaml index b98ecb352..e9395e597 100644 --- a/packages/mediation/gma_mediation_maio/example/pubspec.yaml +++ b/packages/mediation/gma_mediation_maio/example/pubspec.yaml @@ -5,7 +5,7 @@ description: "Demonstrates how to use the gma_mediation_maio plugin." publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: ^3.9.0 + sdk: ^3.10.0 # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions @@ -17,7 +17,7 @@ dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 + google_mobile_ads: ^8.0.0 gma_mediation_maio: # When depending on this package from a real application you should use: # gma_mediation_maio: ^x.y.z diff --git a/packages/mediation/gma_mediation_maio/ios/gma_mediation_maio.podspec b/packages/mediation/gma_mediation_maio/ios/gma_mediation_maio.podspec index 279b4203d..b7097038c 100644 --- a/packages/mediation/gma_mediation_maio/ios/gma_mediation_maio.podspec +++ b/packages/mediation/gma_mediation_maio/ios/gma_mediation_maio.podspec @@ -11,11 +11,11 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationMaio', '~>2.2.1.0' + s.dependency 'GoogleMobileAdsMediationMaio', '~>2.2.1.1' s.platform = :ios, '13.0' s.static_framework = true s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } - s.swift_version = '5.0' + s.swift_version = '6.0' end diff --git a/packages/mediation/gma_mediation_maio/pubspec.yaml b/packages/mediation/gma_mediation_maio/pubspec.yaml index 82f415da5..23a6e88e1 100644 --- a/packages/mediation/gma_mediation_maio/pubspec.yaml +++ b/packages/mediation/gma_mediation_maio/pubspec.yaml @@ -3,12 +3,12 @@ description: 'Mediation Adapter that enables sending ad requests to the maio ad network using the google_mobile_ads plugin.' version: 1.1.4 environment: - sdk: '>=3.9.0 <4.0.0' - flutter: '>=3.35.1' + sdk: '>=3.10.0 <4.0.0' + flutter: '>=3.38.1' dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 + google_mobile_ads: ^8.0.0 plugin_platform_interface: ^2.0.2 dev_dependencies: flutter_test: From 9882b5da0c5eabe37cca61c1e9af911a589dcfce Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Fri, 24 Apr 2026 11:34:21 -0700 Subject: [PATCH 198/251] Updating Meta Flutter mediation plugin to support the latest adapters (6.21.0.2, 6.21.1.0) PiperOrigin-RevId: 905138592 --- packages/mediation/gma_mediation_meta/CHANGELOG.md | 2 ++ packages/mediation/gma_mediation_meta/android/build.gradle | 7 ++++--- .../gma_mediation_meta/example/android/build.gradle | 2 +- .../gma_mediation_meta/example/android/settings.gradle | 2 +- packages/mediation/gma_mediation_meta/example/pubspec.yaml | 4 ++-- .../gma_mediation_meta/ios/gma_mediation_meta.podspec | 2 +- packages/mediation/gma_mediation_meta/pubspec.yaml | 6 +++--- 7 files changed, 14 insertions(+), 11 deletions(-) diff --git a/packages/mediation/gma_mediation_meta/CHANGELOG.md b/packages/mediation/gma_mediation_meta/CHANGELOG.md index 5f7edfa5c..5e358f217 100644 --- a/packages/mediation/gma_mediation_meta/CHANGELOG.md +++ b/packages/mediation/gma_mediation_meta/CHANGELOG.md @@ -1,6 +1,8 @@ ## Meta Audience Network Flutter Mediation Adapter Changelog #### Version 1.5.2 (In progress) +- Updated minimum Flutter version to 3.38.1 +- Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 #### Version 1.5.1 * Updated minimum Flutter version to 3.35.1 diff --git a/packages/mediation/gma_mediation_meta/android/build.gradle b/packages/mediation/gma_mediation_meta/android/build.gradle index b3986f526..85761cde4 100644 --- a/packages/mediation/gma_mediation_meta/android/build.gradle +++ b/packages/mediation/gma_mediation_meta/android/build.gradle @@ -2,7 +2,7 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_meta' version = "1.5.2" buildscript { - ext.kotlin_version = '2.2.21' + ext.kotlin_version = '2.3.0' repositories { google() mavenCentral() @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "6.21.0.1" + stringVersion = "6.21.0.2" } android { @@ -50,11 +50,12 @@ android { } defaultConfig { - minSdkVersion 23 + minSdk 24 } dependencies { implementation "com.google.ads.mediation:facebook:$stringVersion" + implementation("com.google.android.gms:play-services-ads:25.1.0") testImplementation 'org.jetbrains.kotlin:kotlin-test' testImplementation 'org.mockito:mockito-core:5.5.0' } diff --git a/packages/mediation/gma_mediation_meta/example/android/build.gradle b/packages/mediation/gma_mediation_meta/example/android/build.gradle index 7bdfd2321..c80f6d9f8 100644 --- a/packages/mediation/gma_mediation_meta/example/android/build.gradle +++ b/packages/mediation/gma_mediation_meta/example/android/build.gradle @@ -1,5 +1,5 @@ buildscript { - ext.kotlin_version = '2.2.21' + ext.kotlin_version = '2.3.0' repositories { google() mavenCentral() diff --git a/packages/mediation/gma_mediation_meta/example/android/settings.gradle b/packages/mediation/gma_mediation_meta/example/android/settings.gradle index dd253afc0..83dddb1ca 100644 --- a/packages/mediation/gma_mediation_meta/example/android/settings.gradle +++ b/packages/mediation/gma_mediation_meta/example/android/settings.gradle @@ -24,7 +24,7 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" id "com.android.application" version "8.13.1" apply false - id "org.jetbrains.kotlin.android" version "2.2.21" apply false + id "org.jetbrains.kotlin.android" version "2.3.0" apply false } include ":app" diff --git a/packages/mediation/gma_mediation_meta/example/pubspec.yaml b/packages/mediation/gma_mediation_meta/example/pubspec.yaml index 93c46b847..c3888ddd5 100644 --- a/packages/mediation/gma_mediation_meta/example/pubspec.yaml +++ b/packages/mediation/gma_mediation_meta/example/pubspec.yaml @@ -5,7 +5,7 @@ description: "Demonstrates how to use the gma_mediation_meta plugin." publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: '>=3.9.0 <4.0.0' + sdk: '>=3.10.0 <4.0.0' # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions @@ -17,7 +17,7 @@ dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 + google_mobile_ads: ^8.0.0 gma_mediation_meta: # When depending on this package from a real application you should use: # gma_mediation_meta: ^x.y.z diff --git a/packages/mediation/gma_mediation_meta/ios/gma_mediation_meta.podspec b/packages/mediation/gma_mediation_meta/ios/gma_mediation_meta.podspec index b6ae49a5f..2bb63df08 100644 --- a/packages/mediation/gma_mediation_meta/ios/gma_mediation_meta.podspec +++ b/packages/mediation/gma_mediation_meta/ios/gma_mediation_meta.podspec @@ -22,5 +22,5 @@ Mediation Adapter for Meta Audience Network to use with Google Mobile Ads. # Flutter.framework does not contain a i386 slice. s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } - s.swift_version = '5.0' + s.swift_version = '6.0' end diff --git a/packages/mediation/gma_mediation_meta/pubspec.yaml b/packages/mediation/gma_mediation_meta/pubspec.yaml index caa6fdcc6..2316938cd 100644 --- a/packages/mediation/gma_mediation_meta/pubspec.yaml +++ b/packages/mediation/gma_mediation_meta/pubspec.yaml @@ -4,13 +4,13 @@ version: 1.5.2 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_meta environment: - sdk: '>=3.9.0 <4.0.0' - flutter: '>=3.35.1' + sdk: '>=3.10.0 <4.0.0' + flutter: '>=3.38.1' dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 + google_mobile_ads: ^8.0.0 plugin_platform_interface: ^2.0.2 dev_dependencies: From 2e1a4b4ac8e03b1dcfa5eeafb51d7027beafeb58 Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Fri, 24 Apr 2026 11:34:32 -0700 Subject: [PATCH 199/251] Updating Mintegral Flutter mediation plugin to support the latest adapters (17.1.41.0, 8.1.1.0) PiperOrigin-RevId: 905138685 --- packages/mediation/gma_mediation_mintegral/CHANGELOG.md | 6 +++--- .../gma_mediation_mintegral/android/build.gradle | 7 ++++--- .../example/android/settings.gradle | 2 +- .../gma_mediation_mintegral/example/pubspec.yaml | 4 ++-- .../ios/gma_mediation_mintegral.podspec | 6 +++--- packages/mediation/gma_mediation_mintegral/pubspec.yaml | 8 ++++---- 6 files changed, 17 insertions(+), 16 deletions(-) diff --git a/packages/mediation/gma_mediation_mintegral/CHANGELOG.md b/packages/mediation/gma_mediation_mintegral/CHANGELOG.md index e4206f741..59fd05575 100644 --- a/packages/mediation/gma_mediation_mintegral/CHANGELOG.md +++ b/packages/mediation/gma_mediation_mintegral/CHANGELOG.md @@ -1,8 +1,8 @@ ## Mintegral Flutter Mediation Adapter Changelog -#### Version 2.0.5 (In progress) - -#### Version 2.0.4 (In progress) +#### Version 2.1.0 (In progress) +- Updated minimum Flutter version to 3.38.1 +- Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 #### Version 2.0.3 - Supports [Mintegral Android adapter version 17.0.61.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/mintegral/CHANGELOG.md#version-170610). diff --git a/packages/mediation/gma_mediation_mintegral/android/build.gradle b/packages/mediation/gma_mediation_mintegral/android/build.gradle index 71708b937..4e70fb36c 100644 --- a/packages/mediation/gma_mediation_mintegral/android/build.gradle +++ b/packages/mediation/gma_mediation_mintegral/android/build.gradle @@ -1,8 +1,8 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_mintegral' -version = "2.0.5" +version = "2.1.0" buildscript { - ext.kotlin_version = '2.2.21' + ext.kotlin_version = '2.3.0' repositories { google() mavenCentral() @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "17.0.91.0" + stringVersion = "17.1.41.0" } android { @@ -55,6 +55,7 @@ android { dependencies { implementation "com.google.ads.mediation:mintegral:$stringVersion" + implementation "com.google.android.gms:play-services-ads:25.1.0" testImplementation 'org.jetbrains.kotlin:kotlin-test' testImplementation 'org.mockito:mockito-core:5.5.0' } diff --git a/packages/mediation/gma_mediation_mintegral/example/android/settings.gradle b/packages/mediation/gma_mediation_mintegral/example/android/settings.gradle index a512319b9..85dfa981b 100644 --- a/packages/mediation/gma_mediation_mintegral/example/android/settings.gradle +++ b/packages/mediation/gma_mediation_mintegral/example/android/settings.gradle @@ -20,7 +20,7 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" id "com.android.application" version "8.13.1" apply false - id "org.jetbrains.kotlin.android" version "2.2.21" apply false + id "org.jetbrains.kotlin.android" version "2.3.0" apply false } include ":app" diff --git a/packages/mediation/gma_mediation_mintegral/example/pubspec.yaml b/packages/mediation/gma_mediation_mintegral/example/pubspec.yaml index fa2dfb7fc..70d747aa3 100644 --- a/packages/mediation/gma_mediation_mintegral/example/pubspec.yaml +++ b/packages/mediation/gma_mediation_mintegral/example/pubspec.yaml @@ -5,7 +5,7 @@ description: "Demonstrates how to use the gma_mediation_mintegral plugin." publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: '>=3.9.0 <4.0.0' + sdk: '>=3.10.0 <4.0.0' # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions @@ -17,7 +17,7 @@ dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 + google_mobile_ads: ^8.0.0 gma_mediation_mintegral: # When depending on this package from a real application you should use: # gma_mediation_mintegral: ^x.y.z diff --git a/packages/mediation/gma_mediation_mintegral/ios/gma_mediation_mintegral.podspec b/packages/mediation/gma_mediation_mintegral/ios/gma_mediation_mintegral.podspec index 5f87cbb5b..6057fb0d4 100644 --- a/packages/mediation/gma_mediation_mintegral/ios/gma_mediation_mintegral.podspec +++ b/packages/mediation/gma_mediation_mintegral/ios/gma_mediation_mintegral.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_mintegral' - s.version = '2.0.5' + s.version = '2.1.0' s.summary = 'Google Mobile Ads Mediation of Mintegral.' s.description = <<-DESC Mediation Adapter for Mintegral to use with Google Mobile Ads. @@ -16,11 +16,11 @@ Mediation Adapter for Mintegral to use with Google Mobile Ads. s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationMintegral', '~>8.0.8.0' + s.dependency 'GoogleMobileAdsMediationMintegral', '~>8.1.1.0' s.platform = :ios, '13.0' s.static_framework = true # Flutter.framework does not contain a i386 slice. s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } - s.swift_version = '5.0' + s.swift_version = '6.0' end diff --git a/packages/mediation/gma_mediation_mintegral/pubspec.yaml b/packages/mediation/gma_mediation_mintegral/pubspec.yaml index 60e7545cf..e88aedd0c 100644 --- a/packages/mediation/gma_mediation_mintegral/pubspec.yaml +++ b/packages/mediation/gma_mediation_mintegral/pubspec.yaml @@ -1,16 +1,16 @@ name: gma_mediation_mintegral description: "Mediation Adapter that enables sending ad requests to the Mintegral ad network using the google_mobile_ads plugin." -version: 2.0.5 +version: 2.1.0 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_mintegral environment: - sdk: '>=3.9.0 <4.0.0' - flutter: '>=3.35.1' + sdk: '>=3.10.0 <4.0.0' + flutter: '>=3.38.1' dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 + google_mobile_ads: ^8.0.0 plugin_platform_interface: ^2.0.2 dev_dependencies: From 6597f4600c73f16623a2af3776ba8c0df08003cf Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Fri, 24 Apr 2026 11:35:06 -0700 Subject: [PATCH 200/251] Updating Pangle Flutter mediation plugin to support the latest adapters (7.9.1.3.0, 7.9.0.8.0) PiperOrigin-RevId: 905139028 --- packages/mediation/gma_mediation_pangle/CHANGELOG.md | 4 ++-- .../mediation/gma_mediation_pangle/android/build.gradle | 5 +++-- .../mediation/gma_mediation_pangle/example/pubspec.yaml | 4 ++-- .../gma_mediation_pangle/ios/gma_mediation_pangle.podspec | 4 ++-- packages/mediation/gma_mediation_pangle/pubspec.yaml | 6 +++--- 5 files changed, 12 insertions(+), 11 deletions(-) diff --git a/packages/mediation/gma_mediation_pangle/CHANGELOG.md b/packages/mediation/gma_mediation_pangle/CHANGELOG.md index d83071243..e3b0e25c7 100644 --- a/packages/mediation/gma_mediation_pangle/CHANGELOG.md +++ b/packages/mediation/gma_mediation_pangle/CHANGELOG.md @@ -1,8 +1,8 @@ ## Pangle Flutter Mediation Adapter Changelog #### Version 3.6.0 (In progress) - -#### Version 3.5.4 (In progress) +- Updated minimum Flutter version to 3.38.1 +- Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 #### Version 3.5.3 - Supports [Pangle Android adapter version 7.8.5.2.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/pangle/CHANGELOG.md#version-78520). diff --git a/packages/mediation/gma_mediation_pangle/android/build.gradle b/packages/mediation/gma_mediation_pangle/android/build.gradle index 615318400..18f624ce7 100644 --- a/packages/mediation/gma_mediation_pangle/android/build.gradle +++ b/packages/mediation/gma_mediation_pangle/android/build.gradle @@ -2,7 +2,7 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_pangle' version = "3.6.0" buildscript { - ext.kotlin_version = '2.2.21' + ext.kotlin_version = '2.3.0' repositories { google() mavenCentral() @@ -28,7 +28,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "7.9.0.9.0" + stringVersion = "7.9.1.3.0" } android { @@ -58,6 +58,7 @@ android { dependencies { implementation "com.google.ads.mediation:pangle:$stringVersion" + implementation 'com.google.android.gms:play-services-ads:25.1.0' testImplementation 'org.jetbrains.kotlin:kotlin-test' testImplementation 'org.mockito:mockito-core:5.20.0' } diff --git a/packages/mediation/gma_mediation_pangle/example/pubspec.yaml b/packages/mediation/gma_mediation_pangle/example/pubspec.yaml index e85b0b699..6b1a820ae 100644 --- a/packages/mediation/gma_mediation_pangle/example/pubspec.yaml +++ b/packages/mediation/gma_mediation_pangle/example/pubspec.yaml @@ -5,7 +5,7 @@ description: "Demonstrates how to use the gma_mediation_pangle plugin." publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: '>=3.9.0 <4.0.0' + sdk: '>=3.10.0 <4.0.0' # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions @@ -17,7 +17,7 @@ dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 + google_mobile_ads: ^8.0.0 gma_mediation_pangle: # When depending on this package from a real application you should use: # gma_mediation_pangle: ^x.y.z diff --git a/packages/mediation/gma_mediation_pangle/ios/gma_mediation_pangle.podspec b/packages/mediation/gma_mediation_pangle/ios/gma_mediation_pangle.podspec index 19b91b63a..70e261769 100644 --- a/packages/mediation/gma_mediation_pangle/ios/gma_mediation_pangle.podspec +++ b/packages/mediation/gma_mediation_pangle/ios/gma_mediation_pangle.podspec @@ -16,11 +16,11 @@ Pod::Spec.new do |s| s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationPangle', '~> 7.9.0.6.0' + s.dependency 'GoogleMobileAdsMediationPangle', '~> 7.9.0.8.0' s.platform = :ios, '13.0' s.static_framework = true # Flutter.framework does not contain a i386 slice. s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } - s.swift_version = '5.0' + s.swift_version = '6.0' end diff --git a/packages/mediation/gma_mediation_pangle/pubspec.yaml b/packages/mediation/gma_mediation_pangle/pubspec.yaml index 44fd06786..622bf1da1 100644 --- a/packages/mediation/gma_mediation_pangle/pubspec.yaml +++ b/packages/mediation/gma_mediation_pangle/pubspec.yaml @@ -4,13 +4,13 @@ version: 3.6.0 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_pangle environment: - sdk: '>=3.9.0 <4.0.0' - flutter: '>=3.35.1' + sdk: '>=3.10.0 <4.0.0' + flutter: '>=3.38.1' dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 + google_mobile_ads: ^8.0.0 plugin_platform_interface: ^2.0.2 dev_dependencies: From f4dfaf1a42c995689edf82876d38c7cf6092303b Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Fri, 24 Apr 2026 11:35:58 -0700 Subject: [PATCH 201/251] Updating myTarget Flutter mediation plugin to support the latest adapters PiperOrigin-RevId: 905139513 --- packages/mediation/gma_mediation_mytarget/CHANGELOG.md | 2 ++ .../gma_mediation_mytarget/android/build.gradle | 5 +++-- .../example/android/settings.gradle.kts | 2 +- .../gma_mediation_mytarget/example/pubspec.yaml | 4 ++-- .../ios/gma_mediation_mytarget.podspec | 2 +- packages/mediation/gma_mediation_mytarget/pubspec.yaml | 9 +++++---- 6 files changed, 14 insertions(+), 10 deletions(-) diff --git a/packages/mediation/gma_mediation_mytarget/CHANGELOG.md b/packages/mediation/gma_mediation_mytarget/CHANGELOG.md index 30981bb43..eaade1fd6 100644 --- a/packages/mediation/gma_mediation_mytarget/CHANGELOG.md +++ b/packages/mediation/gma_mediation_mytarget/CHANGELOG.md @@ -1,6 +1,8 @@ ## myTarget Flutter Mediation Adapter Changelog #### Version 1.9.0 (In progress) +- Updated minimum Flutter version to 3.38.1 +- Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 #### Version 1.8.0 * Supports [myTarget Android adapter version 5.27.4.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/mytarget/CHANGELOG.md#version-52741). diff --git a/packages/mediation/gma_mediation_mytarget/android/build.gradle b/packages/mediation/gma_mediation_mytarget/android/build.gradle index bbf19a144..36741b903 100644 --- a/packages/mediation/gma_mediation_mytarget/android/build.gradle +++ b/packages/mediation/gma_mediation_mytarget/android/build.gradle @@ -2,7 +2,7 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_mytarget" version = "1.9.0" buildscript { - ext.kotlin_version = "2.2.21" + ext.kotlin_version = "2.3.0" repositories { google() mavenCentral() @@ -48,11 +48,12 @@ android { } defaultConfig { - minSdk = 23 + minSdk = 24 } dependencies { implementation("com.google.ads.mediation:mytarget:$stringVersion") + implementation("com.google.android.gms:play-services-ads:25.1.0") testImplementation("org.jetbrains.kotlin:kotlin-test") testImplementation("org.mockito:mockito-core:5.5.0") } diff --git a/packages/mediation/gma_mediation_mytarget/example/android/settings.gradle.kts b/packages/mediation/gma_mediation_mytarget/example/android/settings.gradle.kts index 4eac8be0d..e6fb0ee57 100644 --- a/packages/mediation/gma_mediation_mytarget/example/android/settings.gradle.kts +++ b/packages/mediation/gma_mediation_mytarget/example/android/settings.gradle.kts @@ -19,7 +19,7 @@ pluginManagement { plugins { id("dev.flutter.flutter-plugin-loader") version "1.0.0" id("com.android.application") version "8.13.1" apply false - id("org.jetbrains.kotlin.android") version "2.2.21" apply false + id("org.jetbrains.kotlin.android") version "2.3.0" apply false } include(":app") diff --git a/packages/mediation/gma_mediation_mytarget/example/pubspec.yaml b/packages/mediation/gma_mediation_mytarget/example/pubspec.yaml index 9cdc93016..f90c0298b 100644 --- a/packages/mediation/gma_mediation_mytarget/example/pubspec.yaml +++ b/packages/mediation/gma_mediation_mytarget/example/pubspec.yaml @@ -5,7 +5,7 @@ description: "Demonstrates how to use the gma_mediation_mytarget plugin." publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: ^3.9.0 + sdk: ^3.10.0 # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions @@ -17,7 +17,7 @@ dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 + google_mobile_ads: ^8.0.0 gma_mediation_mytarget: # When depending on this package from a real application you should use: # gma_mediation_mytarget: ^x.y.z diff --git a/packages/mediation/gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec b/packages/mediation/gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec index 567327c2e..4f586ca54 100644 --- a/packages/mediation/gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec +++ b/packages/mediation/gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec @@ -16,6 +16,6 @@ Pod::Spec.new do |s| s.static_framework = true s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } - s.swift_version = '5.0' + s.swift_version = '6.0' end diff --git a/packages/mediation/gma_mediation_mytarget/pubspec.yaml b/packages/mediation/gma_mediation_mytarget/pubspec.yaml index f41b762de..48bca1d6e 100644 --- a/packages/mediation/gma_mediation_mytarget/pubspec.yaml +++ b/packages/mediation/gma_mediation_mytarget/pubspec.yaml @@ -3,19 +3,20 @@ description: 'Mediation Adapter that enables sending ad requests to the mytarget ad network using the google_mobile_ads plugin.' version: 1.9.0 environment: - sdk: ^3.9.0 - flutter: '>=3.35.1' + sdk: ^3.10.0 + flutter: '>=3.38.1' dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 + google_mobile_ads: ^8.0.0 + meta: ^1.17.0 plugin_platform_interface: ^2.0.2 dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^6.0.0 lint: ^2.6.1 - pigeon: ^24.2.1 + pigeon: ^26.3.4 flutter: plugin: platforms: From c46091423b24df82a2ce4bc1918c6b279bd90102 Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Fri, 24 Apr 2026 11:51:22 -0700 Subject: [PATCH 202/251] Updating Moloco Flutter mediation plugin to support the latest adapters (4.7.0.0, 4.5.1.0) PiperOrigin-RevId: 905147819 --- packages/mediation/gma_mediation_moloco/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_moloco/android/build.gradle | 5 +++-- .../gma_mediation_moloco/example/android/settings.gradle | 2 +- .../mediation/gma_mediation_moloco/example/pubspec.yaml | 4 ++-- .../ios/gma_mediation_moloco.podspec | 4 ++-- packages/mediation/gma_mediation_moloco/pubspec.yaml | 9 +++++---- 6 files changed, 15 insertions(+), 11 deletions(-) diff --git a/packages/mediation/gma_mediation_moloco/CHANGELOG.md b/packages/mediation/gma_mediation_moloco/CHANGELOG.md index f66b7fedf..4bf896714 100644 --- a/packages/mediation/gma_mediation_moloco/CHANGELOG.md +++ b/packages/mediation/gma_mediation_moloco/CHANGELOG.md @@ -1,6 +1,8 @@ ## Moloco Flutter Mediation Adapter Changelog #### Version 3.4.0 (In progress) +- Updated minimum Flutter version to 3.38.1 +- Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 #### Version 3.3.0 - Supports [Moloco Android adapter version 4.5.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/moloco/CHANGELOG.md#version-4500). diff --git a/packages/mediation/gma_mediation_moloco/android/build.gradle b/packages/mediation/gma_mediation_moloco/android/build.gradle index be9288a95..fbff689ed 100644 --- a/packages/mediation/gma_mediation_moloco/android/build.gradle +++ b/packages/mediation/gma_mediation_moloco/android/build.gradle @@ -2,7 +2,7 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_moloco" version = "3.4.0" buildscript { - ext.kotlin_version = "2.2.21" + ext.kotlin_version = "2.3.0" repositories { google() mavenCentral() @@ -25,7 +25,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "4.6.0.0" + stringVersion = "4.7.0.0" } android { @@ -53,6 +53,7 @@ android { dependencies { implementation("com.google.ads.mediation:moloco:$stringVersion") + implementation("com.google.android.gms:play-services-ads:25.1.0") testImplementation 'junit:junit:4.13.2' testImplementation 'androidx.test:core:1.6.1' testImplementation 'androidx.test:core-ktx:1.6.1' diff --git a/packages/mediation/gma_mediation_moloco/example/android/settings.gradle b/packages/mediation/gma_mediation_moloco/example/android/settings.gradle index d7f1a0449..2aa16be1b 100644 --- a/packages/mediation/gma_mediation_moloco/example/android/settings.gradle +++ b/packages/mediation/gma_mediation_moloco/example/android/settings.gradle @@ -19,7 +19,7 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" id "com.android.application" version "8.13.1" apply false - id "org.jetbrains.kotlin.android" version "2.2.21" apply false + id "org.jetbrains.kotlin.android" version "2.3.0" apply false } include ":app" diff --git a/packages/mediation/gma_mediation_moloco/example/pubspec.yaml b/packages/mediation/gma_mediation_moloco/example/pubspec.yaml index e9434ca32..a825ec795 100644 --- a/packages/mediation/gma_mediation_moloco/example/pubspec.yaml +++ b/packages/mediation/gma_mediation_moloco/example/pubspec.yaml @@ -5,7 +5,7 @@ description: "Demonstrates how to use the gma_mediation_moloco plugin." publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: ^3.9.0 + sdk: ^3.10.0 # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions @@ -17,7 +17,7 @@ dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 + google_mobile_ads: ^8.0.0 gma_mediation_moloco: # When depending on this package from a real application you should use: # gma_mediation_moloco: ^x.y.z diff --git a/packages/mediation/gma_mediation_moloco/ios/gma_mediation_moloco.podspec b/packages/mediation/gma_mediation_moloco/ios/gma_mediation_moloco.podspec index 682abb325..1184d5d7d 100644 --- a/packages/mediation/gma_mediation_moloco/ios/gma_mediation_moloco.podspec +++ b/packages/mediation/gma_mediation_moloco/ios/gma_mediation_moloco.podspec @@ -11,11 +11,11 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationMoloco', '~> 4.4.1.0' + s.dependency 'GoogleMobileAdsMediationMoloco', '~> 4.5.1.0' s.platform = :ios, '13.0' s.static_framework = true s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } - s.swift_version = '5.0' + s.swift_version = '6.0' end diff --git a/packages/mediation/gma_mediation_moloco/pubspec.yaml b/packages/mediation/gma_mediation_moloco/pubspec.yaml index 8e26200f1..6958cf39f 100644 --- a/packages/mediation/gma_mediation_moloco/pubspec.yaml +++ b/packages/mediation/gma_mediation_moloco/pubspec.yaml @@ -3,19 +3,20 @@ description: 'Mediation Adapter that enables sending ad requests to the Moloco ad network using the google_mobile_ads plugin.' version: 3.4.0 environment: - sdk: '>=3.9.0 <4.0.0' - flutter: '>=3.35.1' + sdk: '>=3.10.0 <4.0.0' + flutter: '>=3.38.1' dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 + google_mobile_ads: ^8.0.0 + meta: ^1.17.0 plugin_platform_interface: ^2.0.2 dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^6.0.0 lint: ^2.4.0 - pigeon: ^24.1.1 + pigeon: ^26.3.4 flutter: plugin: platforms: From 126299009687f9d6e622d2df622bf1cf77952298 Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Mon, 27 Apr 2026 06:00:13 -0700 Subject: [PATCH 203/251] Updating PubMatic Flutter mediation plugin to support the latest adapters (5.0.0.1, 5.0.1.0) PiperOrigin-RevId: 906309207 --- packages/mediation/gma_mediation_pubmatic/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_pubmatic/android/build.gradle | 6 +++--- .../example/android/settings.gradle.kts | 2 +- .../mediation/gma_mediation_pubmatic/example/pubspec.yaml | 4 ++-- .../ios/gma_mediation_pubmatic.podspec | 4 ++-- packages/mediation/gma_mediation_pubmatic/pubspec.yaml | 6 +++--- 6 files changed, 13 insertions(+), 11 deletions(-) diff --git a/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md b/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md index 0fbe48b14..e9b60aabc 100644 --- a/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md +++ b/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md @@ -1,6 +1,8 @@ ## Pubmatic Flutter Mediation Adapter Changelog #### Version 2.0.0 (In progress) +- Updated minimum Flutter version to 3.38.1 +- Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 #### Version 1.6.0 - Supports [PubMatic Android adapter version 4.12.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/pubmatic/CHANGELOG.md#version-41200). diff --git a/packages/mediation/gma_mediation_pubmatic/android/build.gradle b/packages/mediation/gma_mediation_pubmatic/android/build.gradle index d71f329f6..4cafee980 100644 --- a/packages/mediation/gma_mediation_pubmatic/android/build.gradle +++ b/packages/mediation/gma_mediation_pubmatic/android/build.gradle @@ -2,7 +2,7 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_pubmatic" version = "2.0.0" buildscript { - ext.kotlin_version = "2.2.21" + ext.kotlin_version = "2.3.0" repositories { google() mavenCentral() @@ -25,7 +25,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "5.0.0.0" + stringVersion = "5.0.0.1" } android { @@ -53,7 +53,7 @@ android { dependencies { implementation "com.google.ads.mediation:pubmatic:$stringVersion" - implementation 'com.google.android.gms:play-services-ads:24.9.0' + implementation 'com.google.android.gms:play-services-ads:25.1.0' testImplementation("org.jetbrains.kotlin:kotlin-test") testImplementation("org.mockito:mockito-core:5.5.0") } diff --git a/packages/mediation/gma_mediation_pubmatic/example/android/settings.gradle.kts b/packages/mediation/gma_mediation_pubmatic/example/android/settings.gradle.kts index 4eac8be0d..e6fb0ee57 100644 --- a/packages/mediation/gma_mediation_pubmatic/example/android/settings.gradle.kts +++ b/packages/mediation/gma_mediation_pubmatic/example/android/settings.gradle.kts @@ -19,7 +19,7 @@ pluginManagement { plugins { id("dev.flutter.flutter-plugin-loader") version "1.0.0" id("com.android.application") version "8.13.1" apply false - id("org.jetbrains.kotlin.android") version "2.2.21" apply false + id("org.jetbrains.kotlin.android") version "2.3.0" apply false } include(":app") diff --git a/packages/mediation/gma_mediation_pubmatic/example/pubspec.yaml b/packages/mediation/gma_mediation_pubmatic/example/pubspec.yaml index 607e83000..8cdc0da75 100644 --- a/packages/mediation/gma_mediation_pubmatic/example/pubspec.yaml +++ b/packages/mediation/gma_mediation_pubmatic/example/pubspec.yaml @@ -5,7 +5,7 @@ description: "Demonstrates how to use the gma_mediation_pubmatic plugin." publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: ^3.9.0 + sdk: ^3.10.0 # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions @@ -17,7 +17,7 @@ dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 + google_mobile_ads: ^8.0.0 gma_mediation_pubmatic: # When depending on this package from a real application you should use: # gma_mediation_pubmatic: ^x.y.z diff --git a/packages/mediation/gma_mediation_pubmatic/ios/gma_mediation_pubmatic.podspec b/packages/mediation/gma_mediation_pubmatic/ios/gma_mediation_pubmatic.podspec index 0ba7e01a6..71ecff828 100644 --- a/packages/mediation/gma_mediation_pubmatic/ios/gma_mediation_pubmatic.podspec +++ b/packages/mediation/gma_mediation_pubmatic/ios/gma_mediation_pubmatic.podspec @@ -11,11 +11,11 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationPubMatic', '~> 5.0.0.0' + s.dependency 'GoogleMobileAdsMediationPubMatic', '~> 5.0.1.0' s.platform = :ios, '13.0' s.static_framework = true s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } - s.swift_version = '5.0' + s.swift_version = '6.0' end diff --git a/packages/mediation/gma_mediation_pubmatic/pubspec.yaml b/packages/mediation/gma_mediation_pubmatic/pubspec.yaml index 18bda95ec..a0ad85cc7 100644 --- a/packages/mediation/gma_mediation_pubmatic/pubspec.yaml +++ b/packages/mediation/gma_mediation_pubmatic/pubspec.yaml @@ -3,12 +3,12 @@ description: 'Mediation Adapter that enables sending ad requests to the Pubmatic ad network using the google_mobile_ads plugin.' version: 2.0.0 environment: - sdk: '>=3.9.0 <4.0.0' - flutter: '>=3.35.1' + sdk: '>=3.10.0 <4.0.0' + flutter: '>=3.38.1' dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 + google_mobile_ads: ^8.0.0 plugin_platform_interface: ^2.0.2 dev_dependencies: flutter_test: From 747aeabaf0e99181806fb6a220beca7589a2fe7b Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Mon, 27 Apr 2026 06:08:16 -0700 Subject: [PATCH 204/251] Updating UnityAds Flutter mediation plugin to support the latest adapters (4.17.0.0, 4.17.0.0) PiperOrigin-RevId: 906312924 --- .../gma_mediation_unity/CHANGELOG.md | 4 + .../gma_mediation_unity/android/build.gradle | 9 +- .../gma_mediation_unity/UnityPrivacyApi.g.kt | 118 ++++++++------ .../example/android/build.gradle | 2 +- .../example/android/settings.gradle | 2 +- .../gma_mediation_unity/example/pubspec.yaml | 4 +- .../ios/Classes/UnityPrivacyApi.g.swift | 66 +++++++- .../ios/gma_mediation_unity.podspec | 6 +- .../lib/unity_privacy_api.g.dart | 145 +++++++++++------- .../gma_mediation_unity/pubspec.yaml | 11 +- 10 files changed, 245 insertions(+), 122 deletions(-) diff --git a/packages/mediation/gma_mediation_unity/CHANGELOG.md b/packages/mediation/gma_mediation_unity/CHANGELOG.md index 052aee877..e225e4960 100644 --- a/packages/mediation/gma_mediation_unity/CHANGELOG.md +++ b/packages/mediation/gma_mediation_unity/CHANGELOG.md @@ -1,5 +1,9 @@ ## Unity Ads Flutter Mediation Adapter Changelog +#### Version 1.7.0 (In progress) +- Updated minimum Flutter version to 3.38.1 +- Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 + #### Version 1.6.5 - Supports [Unity Android adapter version 4.16.6.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/unity/CHANGELOG.md#version-41660). - Supports [Unity iOS adapter version 4.16.6.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Unity/CHANGELOG.md#version-41660). diff --git a/packages/mediation/gma_mediation_unity/android/build.gradle b/packages/mediation/gma_mediation_unity/android/build.gradle index 79b5fc8be..aa48e665a 100644 --- a/packages/mediation/gma_mediation_unity/android/build.gradle +++ b/packages/mediation/gma_mediation_unity/android/build.gradle @@ -1,8 +1,8 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_unity' -version = "1.6.5" +version = "1.7.0" buildscript { - ext.kotlin_version = '2.2.21' + ext.kotlin_version = '2.3.0' repositories { google() mavenCentral() @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "4.16.6.0" + stringVersion = "4.17.0.0" } android { @@ -55,8 +55,9 @@ android { } dependencies { - implementation 'com.unity3d.ads:unity-ads:4.16.3' + implementation 'com.unity3d.ads:unity-ads:4.17.0' implementation "com.google.ads.mediation:unity:$stringVersion" + implementation 'com.google.android.gms:play-services-ads:25.1.0' testImplementation 'junit:junit:4.13.2' testImplementation 'androidx.test:core:1.5.0' testImplementation 'androidx.test:core-ktx:1.5.0' diff --git a/packages/mediation/gma_mediation_unity/android/src/main/kotlin/io/flutter/plugins/googlemobileads/mediation/gma_mediation_unity/UnityPrivacyApi.g.kt b/packages/mediation/gma_mediation_unity/android/src/main/kotlin/io/flutter/plugins/googlemobileads/mediation/gma_mediation_unity/UnityPrivacyApi.g.kt index 67743bf89..fac242cd3 100644 --- a/packages/mediation/gma_mediation_unity/android/src/main/kotlin/io/flutter/plugins/googlemobileads/mediation/gma_mediation_unity/UnityPrivacyApi.g.kt +++ b/packages/mediation/gma_mediation_unity/android/src/main/kotlin/io/flutter/plugins/googlemobileads/mediation/gma_mediation_unity/UnityPrivacyApi.g.kt @@ -1,5 +1,6 @@ -// Autogenerated from Pigeon (v18.0.0), do not edit directly. +// Autogenerated from Pigeon (v26.3.4), do not edit directly. // See also: https://pub.dev/packages/pigeon +@file:Suppress("UNCHECKED_CAST", "ArrayInDataClass") package io.flutter.plugins.googlemobileads.mediation.gma_mediation_unity @@ -11,70 +12,94 @@ import io.flutter.plugin.common.StandardMessageCodec import java.io.ByteArrayOutputStream import java.nio.ByteBuffer -private fun wrapResult(result: Any?): List { - return listOf(result) -} +private object UnityPrivacyApiPigeonUtils { + + fun wrapResult(result: Any?): List { + return listOf(result) + } -private fun wrapError(exception: Throwable): List { - if (exception is FlutterError) { - return listOf( - exception.code, - exception.message, - exception.details - ) - } else { - return listOf( - exception.javaClass.simpleName, - exception.toString(), - "Cause: " + exception.cause + ", Stacktrace: " + Log.getStackTraceString(exception) - ) + fun wrapError(exception: Throwable): List { + return if (exception is FlutterError) { + listOf(exception.code, exception.message, exception.details) + } else { + listOf( + exception.javaClass.simpleName, + exception.toString(), + "Cause: " + exception.cause + ", Stacktrace: " + Log.getStackTraceString(exception), + ) + } } } /** * Error class for passing custom error details to Flutter via a thrown PlatformException. + * * @property code The error code. * @property message The error message. * @property details The error details. Must be a datatype supported by the api codec. */ -class FlutterError ( +class FlutterError( val code: String, override val message: String? = null, - val details: Any? = null -) : Throwable() + val details: Any? = null, +) : RuntimeException() + +private open class UnityPrivacyApiPigeonCodec : StandardMessageCodec() { + override fun readValueOfType(type: Byte, buffer: ByteBuffer): Any? { + return super.readValueOfType(type, buffer) + } + + override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { + super.writeValue(stream, value) + } +} + /** - * The generated classes set the channels to call the methods in the corresponding kotlin UnityPrivacyApi interface and swift UnityPrivacyApi protocol from the dart layer. + * The generated classes set the channels to call the methods in the corresponding kotlin + * UnityPrivacyApi interface and swift UnityPrivacyApi protocol from the dart layer. * * Generated interface from Pigeon that represents a handler of messages from Flutter. */ interface UnityPrivacyApi { /** Used to configure GDPR consent on the Android or iOS Unity SDK */ fun setGDPRConsent(gdprConsent: Boolean) + /** Used to configure CCPA consent on the Android or iOS Unity SDK */ fun setCCPAConsent(ccpaConsent: Boolean) companion object { /** The codec used by UnityPrivacyApi. */ - val codec: MessageCodec by lazy { - StandardMessageCodec() - } - /** Sets up an instance of `UnityPrivacyApi` to handle messages through the `binaryMessenger`. */ - @Suppress("UNCHECKED_CAST") - fun setUp(binaryMessenger: BinaryMessenger, api: UnityPrivacyApi?, messageChannelSuffix: String = "") { - val separatedMessageChannelSuffix = if (messageChannelSuffix.isNotEmpty()) ".$messageChannelSuffix" else "" + val codec: MessageCodec by lazy { UnityPrivacyApiPigeonCodec() } + + /** + * Sets up an instance of `UnityPrivacyApi` to handle messages through the `binaryMessenger`. + */ + @JvmOverloads + fun setUp( + binaryMessenger: BinaryMessenger, + api: UnityPrivacyApi?, + messageChannelSuffix: String = "", + ) { + val separatedMessageChannelSuffix = + if (messageChannelSuffix.isNotEmpty()) ".$messageChannelSuffix" else "" run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.gma_mediation_unity.UnityPrivacyApi.setGDPRConsent$separatedMessageChannelSuffix", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.gma_mediation_unity.UnityPrivacyApi.setGDPRConsent$separatedMessageChannelSuffix", + codec, + ) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val gdprConsentArg = args[0] as Boolean - var wrapped: List - try { - api.setGDPRConsent(gdprConsentArg) - wrapped = listOf(null) - } catch (exception: Throwable) { - wrapped = wrapError(exception) - } + val wrapped: List = + try { + api.setGDPRConsent(gdprConsentArg) + listOf(null) + } catch (exception: Throwable) { + UnityPrivacyApiPigeonUtils.wrapError(exception) + } reply.reply(wrapped) } } else { @@ -82,18 +107,23 @@ interface UnityPrivacyApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.gma_mediation_unity.UnityPrivacyApi.setCCPAConsent$separatedMessageChannelSuffix", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.gma_mediation_unity.UnityPrivacyApi.setCCPAConsent$separatedMessageChannelSuffix", + codec, + ) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val ccpaConsentArg = args[0] as Boolean - var wrapped: List - try { - api.setCCPAConsent(ccpaConsentArg) - wrapped = listOf(null) - } catch (exception: Throwable) { - wrapped = wrapError(exception) - } + val wrapped: List = + try { + api.setCCPAConsent(ccpaConsentArg) + listOf(null) + } catch (exception: Throwable) { + UnityPrivacyApiPigeonUtils.wrapError(exception) + } reply.reply(wrapped) } } else { diff --git a/packages/mediation/gma_mediation_unity/example/android/build.gradle b/packages/mediation/gma_mediation_unity/example/android/build.gradle index 7bdfd2321..c80f6d9f8 100644 --- a/packages/mediation/gma_mediation_unity/example/android/build.gradle +++ b/packages/mediation/gma_mediation_unity/example/android/build.gradle @@ -1,5 +1,5 @@ buildscript { - ext.kotlin_version = '2.2.21' + ext.kotlin_version = '2.3.0' repositories { google() mavenCentral() diff --git a/packages/mediation/gma_mediation_unity/example/android/settings.gradle b/packages/mediation/gma_mediation_unity/example/android/settings.gradle index ca273881f..c2a643b9f 100644 --- a/packages/mediation/gma_mediation_unity/example/android/settings.gradle +++ b/packages/mediation/gma_mediation_unity/example/android/settings.gradle @@ -24,7 +24,7 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" id "com.android.application" version "8.13.1" apply false - id 'org.jetbrains.kotlin.android' version '2.2.21' apply false + id 'org.jetbrains.kotlin.android' version '2.3.0' apply false } include ":app" diff --git a/packages/mediation/gma_mediation_unity/example/pubspec.yaml b/packages/mediation/gma_mediation_unity/example/pubspec.yaml index 46b1141d5..77df1a3e5 100644 --- a/packages/mediation/gma_mediation_unity/example/pubspec.yaml +++ b/packages/mediation/gma_mediation_unity/example/pubspec.yaml @@ -5,13 +5,13 @@ description: "Demonstrates how to use the gma_mediation_unity plugin." publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: '>=3.9.0 <4.0.0' + sdk: '>=3.10.0 <4.0.0' dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 + google_mobile_ads: ^8.0.0 gma_mediation_unity: path: ../ diff --git a/packages/mediation/gma_mediation_unity/ios/Classes/UnityPrivacyApi.g.swift b/packages/mediation/gma_mediation_unity/ios/Classes/UnityPrivacyApi.g.swift index ebce44e88..71593f1c5 100644 --- a/packages/mediation/gma_mediation_unity/ios/Classes/UnityPrivacyApi.g.swift +++ b/packages/mediation/gma_mediation_unity/ios/Classes/UnityPrivacyApi.g.swift @@ -1,4 +1,4 @@ -// Autogenerated from Pigeon (v18.0.0), do not edit directly. +// Autogenerated from Pigeon (v26.3.4), do not edit directly. // See also: https://pub.dev/packages/pigeon import Foundation @@ -11,11 +11,36 @@ import Foundation #error("Unsupported platform.") #endif +/// Error class for passing custom error details to Dart side. +final class PigeonError: Error { + let code: String + let message: String? + let details: Sendable? + + init(code: String, message: String?, details: Sendable?) { + self.code = code + self.message = message + self.details = details + } + + var localizedDescription: String { + return + "PigeonError(code: \(code), message: \(message ?? ""), details: \(details ?? "")" + } +} + private func wrapResult(_ result: Any?) -> [Any?] { return [result] } private func wrapError(_ error: Any) -> [Any?] { + if let pigeonError = error as? PigeonError { + return [ + pigeonError.code, + pigeonError.message, + pigeonError.details, + ] + } if let flutterError = error as? FlutterError { return [ flutterError.code, @@ -25,7 +50,7 @@ private func wrapError(_ error: Any) -> [Any?] { } return [ "\(error)", - "\(type(of: error))", + "\(Swift.type(of: error))", "Stacktrace: \(Thread.callStackSymbols)", ] } @@ -38,6 +63,28 @@ private func nilOrValue(_ value: Any?) -> T? { if value is NSNull { return nil } return value as! T? } + +private class UnityPrivacyApiPigeonCodecReader: FlutterStandardReader { +} + +private class UnityPrivacyApiPigeonCodecWriter: FlutterStandardWriter { +} + +private class UnityPrivacyApiPigeonCodecReaderWriter: FlutterStandardReaderWriter { + override func reader(with data: Data) -> FlutterStandardReader { + return UnityPrivacyApiPigeonCodecReader(data: data) + } + + override func writer(with data: NSMutableData) -> FlutterStandardWriter { + return UnityPrivacyApiPigeonCodecWriter(data: data) + } +} + +class UnityPrivacyApiPigeonCodec: FlutterStandardMessageCodec, @unchecked Sendable { + static let shared = UnityPrivacyApiPigeonCodec( + readerWriter: UnityPrivacyApiPigeonCodecReaderWriter()) +} + /// The generated classes set the channels to call the methods in the corresponding kotlin UnityPrivacyApi interface and swift UnityPrivacyApi protocol from the dart layer. /// /// Generated protocol from Pigeon that represents a handler of messages from Flutter. @@ -50,12 +97,17 @@ protocol UnityPrivacyApi { /// Generated setup class from Pigeon to handle messages through the `binaryMessenger`. class UnityPrivacyApiSetup { - /// The codec used by UnityPrivacyApi. + static var codec: FlutterStandardMessageCodec { UnityPrivacyApiPigeonCodec.shared } /// Sets up an instance of `UnityPrivacyApi` to handle messages through the `binaryMessenger`. - static func setUp(binaryMessenger: FlutterBinaryMessenger, api: UnityPrivacyApi?, messageChannelSuffix: String = "") { + static func setUp( + binaryMessenger: FlutterBinaryMessenger, api: UnityPrivacyApi?, + messageChannelSuffix: String = "" + ) { let channelSuffix = messageChannelSuffix.count > 0 ? ".\(messageChannelSuffix)" : "" /// Used to configure GDPR consent on the Android or iOS Unity SDK - let setGDPRConsentChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.gma_mediation_unity.UnityPrivacyApi.setGDPRConsent\(channelSuffix)", binaryMessenger: binaryMessenger) + let setGDPRConsentChannel = FlutterBasicMessageChannel( + name: "dev.flutter.pigeon.gma_mediation_unity.UnityPrivacyApi.setGDPRConsent\(channelSuffix)", + binaryMessenger: binaryMessenger, codec: codec) if let api = api { setGDPRConsentChannel.setMessageHandler { message, reply in let args = message as! [Any?] @@ -71,7 +123,9 @@ class UnityPrivacyApiSetup { setGDPRConsentChannel.setMessageHandler(nil) } /// Used to configure CCPA consent on the Android or iOS Unity SDK - let setCCPAConsentChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.gma_mediation_unity.UnityPrivacyApi.setCCPAConsent\(channelSuffix)", binaryMessenger: binaryMessenger) + let setCCPAConsentChannel = FlutterBasicMessageChannel( + name: "dev.flutter.pigeon.gma_mediation_unity.UnityPrivacyApi.setCCPAConsent\(channelSuffix)", + binaryMessenger: binaryMessenger, codec: codec) if let api = api { setCCPAConsentChannel.setMessageHandler { message, reply in let args = message as! [Any?] diff --git a/packages/mediation/gma_mediation_unity/ios/gma_mediation_unity.podspec b/packages/mediation/gma_mediation_unity/ios/gma_mediation_unity.podspec index 485f619f3..b2671c46b 100644 --- a/packages/mediation/gma_mediation_unity/ios/gma_mediation_unity.podspec +++ b/packages/mediation/gma_mediation_unity/ios/gma_mediation_unity.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_unity' - s.version = '1.6.5' + s.version = '1.7.0' s.summary = 'Google Mobile Ads Mediation of Unity Ads.' s.description = <<-DESC Mediation Adapter for Unity Ads to use with Google Mobile Ads. @@ -16,12 +16,12 @@ Mediation Adapter for Unity Ads to use with Google Mobile Ads. s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationUnity', '~>4.16.6.0' + s.dependency 'GoogleMobileAdsMediationUnity', '~>4.17.0.0' s.platform = :ios, '13.0' s.static_framework = true # Flutter.framework does not contain a i386 slice. s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } - s.swift_version = '5.0' + s.swift_version = '6.0' end diff --git a/packages/mediation/gma_mediation_unity/lib/unity_privacy_api.g.dart b/packages/mediation/gma_mediation_unity/lib/unity_privacy_api.g.dart index 776272d66..e1bc2fa19 100644 --- a/packages/mediation/gma_mediation_unity/lib/unity_privacy_api.g.dart +++ b/packages/mediation/gma_mediation_unity/lib/unity_privacy_api.g.dart @@ -1,18 +1,58 @@ -// Autogenerated from Pigeon (v18.0.0), do not edit directly. +// Autogenerated from Pigeon (v26.3.4), do not edit directly. // See also: https://pub.dev/packages/pigeon -// ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import, no_leading_underscores_for_local_identifiers +// ignore_for_file: unused_import, unused_shown_name +// ignore_for_file: type=lint import 'dart:async'; -import 'dart:typed_data' show Float64List, Int32List, Int64List, Uint8List; +import 'dart:typed_data' show Float64List, Int32List, Int64List; -import 'package:flutter/foundation.dart' show ReadBuffer, WriteBuffer; import 'package:flutter/services.dart'; +import 'package:meta/meta.dart' show immutable, protected, visibleForTesting; -PlatformException _createConnectionError(String channelName) { - return PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel: "$channelName".', - ); +Object? _extractReplyValueOrThrow( + List? replyList, + String channelName, { + required bool isNullValid, +}) { + if (replyList == null) { + throw PlatformException( + code: 'channel-error', + message: 'Unable to establish connection on channel: "$channelName".', + ); + } else if (replyList.length > 1) { + throw PlatformException( + code: replyList[0]! as String, + message: replyList[1] as String?, + details: replyList[2], + ); + } else if (!isNullValid && (replyList.isNotEmpty && replyList[0] == null)) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } + return replyList.firstOrNull; +} + +class _PigeonCodec extends StandardMessageCodec { + const _PigeonCodec(); + @override + void writeValue(WriteBuffer buffer, Object? value) { + if (value is int) { + buffer.putUint8(4); + buffer.putInt64(value); + } else { + super.writeValue(buffer, value); + } + } + + @override + Object? readValueOfType(int type, ReadBuffer buffer) { + switch (type) { + default: + return super.readValueOfType(type, buffer); + } + } } /// The generated classes set the channels to call the methods in the corresponding kotlin UnityPrivacyApi interface and swift UnityPrivacyApi protocol from the dart layer. @@ -20,65 +60,58 @@ class UnityPrivacyApi { /// Constructor for [UnityPrivacyApi]. The [binaryMessenger] named argument is /// available for dependency injection. If it is left null, the default /// BinaryMessenger will be used which routes to the host platform. - UnityPrivacyApi( - {BinaryMessenger? binaryMessenger, String messageChannelSuffix = ''}) - : __pigeon_binaryMessenger = binaryMessenger, - __pigeon_messageChannelSuffix = - messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; - final BinaryMessenger? __pigeon_binaryMessenger; + UnityPrivacyApi({ + BinaryMessenger? binaryMessenger, + String messageChannelSuffix = '', + }) : pigeonVar_binaryMessenger = binaryMessenger, + pigeonVar_messageChannelSuffix = messageChannelSuffix.isNotEmpty + ? '.$messageChannelSuffix' + : ''; + final BinaryMessenger? pigeonVar_binaryMessenger; - static const MessageCodec pigeonChannelCodec = - StandardMessageCodec(); + static const MessageCodec pigeonChannelCodec = _PigeonCodec(); - final String __pigeon_messageChannelSuffix; + final String pigeonVar_messageChannelSuffix; /// Used to configure GDPR consent on the Android or iOS Unity SDK Future setGDPRConsent(bool gdprConsent) async { - final String __pigeon_channelName = - 'dev.flutter.pigeon.gma_mediation_unity.UnityPrivacyApi.setGDPRConsent$__pigeon_messageChannelSuffix'; - final BasicMessageChannel __pigeon_channel = - BasicMessageChannel( - __pigeon_channelName, + final pigeonVar_channelName = + 'dev.flutter.pigeon.gma_mediation_unity.UnityPrivacyApi.setGDPRConsent$pigeonVar_messageChannelSuffix'; + final pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, pigeonChannelCodec, - binaryMessenger: __pigeon_binaryMessenger, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [gdprConsent], + ); + final pigeonVar_replyList = await pigeonVar_sendFuture as List?; + + _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: true, ); - final List? __pigeon_replyList = - await __pigeon_channel.send([gdprConsent]) as List?; - if (__pigeon_replyList == null) { - throw _createConnectionError(__pigeon_channelName); - } else if (__pigeon_replyList.length > 1) { - throw PlatformException( - code: __pigeon_replyList[0]! as String, - message: __pigeon_replyList[1] as String?, - details: __pigeon_replyList[2], - ); - } else { - return; - } } /// Used to configure CCPA consent on the Android or iOS Unity SDK Future setCCPAConsent(bool ccpaConsent) async { - final String __pigeon_channelName = - 'dev.flutter.pigeon.gma_mediation_unity.UnityPrivacyApi.setCCPAConsent$__pigeon_messageChannelSuffix'; - final BasicMessageChannel __pigeon_channel = - BasicMessageChannel( - __pigeon_channelName, + final pigeonVar_channelName = + 'dev.flutter.pigeon.gma_mediation_unity.UnityPrivacyApi.setCCPAConsent$pigeonVar_messageChannelSuffix'; + final pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, pigeonChannelCodec, - binaryMessenger: __pigeon_binaryMessenger, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [ccpaConsent], + ); + final pigeonVar_replyList = await pigeonVar_sendFuture as List?; + + _extractReplyValueOrThrow( + pigeonVar_replyList, + pigeonVar_channelName, + isNullValid: true, ); - final List? __pigeon_replyList = - await __pigeon_channel.send([ccpaConsent]) as List?; - if (__pigeon_replyList == null) { - throw _createConnectionError(__pigeon_channelName); - } else if (__pigeon_replyList.length > 1) { - throw PlatformException( - code: __pigeon_replyList[0]! as String, - message: __pigeon_replyList[1] as String?, - details: __pigeon_replyList[2], - ); - } else { - return; - } } } diff --git a/packages/mediation/gma_mediation_unity/pubspec.yaml b/packages/mediation/gma_mediation_unity/pubspec.yaml index 99f9d792c..65280a58c 100644 --- a/packages/mediation/gma_mediation_unity/pubspec.yaml +++ b/packages/mediation/gma_mediation_unity/pubspec.yaml @@ -1,16 +1,17 @@ name: gma_mediation_unity description: "Mediation Adapter that enables sending ad requests to the Unity ad network using the google_mobile_ads plugin." -version: 1.6.5 +version: 1.7.0 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_unity environment: - sdk: '>=3.9.0 <4.0.0' - flutter: '>=3.27.0' + sdk: '>=3.10.0 <4.0.0' + flutter: '>=3.38.1' dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 + google_mobile_ads: ^8.0.0 + meta: ^1.17.0 plugin_platform_interface: ^2.0.2 dev_dependencies: @@ -18,7 +19,7 @@ dev_dependencies: flutter_test: sdk: flutter lint: ^2.3.0 - pigeon: ^18.0.0 + pigeon: ^26.3.4 flutter: plugin: From a3c0edc9fabbc620dc260d9e6b713069e78e7d63 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Wed, 29 Apr 2026 07:49:17 -0700 Subject: [PATCH 205/251] Update META Flutter Adapter version to 1.5.2 PiperOrigin-RevId: 907586271 --- packages/mediation/gma_mediation_meta/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_meta/CHANGELOG.md b/packages/mediation/gma_mediation_meta/CHANGELOG.md index 5e358f217..283fb223c 100644 --- a/packages/mediation/gma_mediation_meta/CHANGELOG.md +++ b/packages/mediation/gma_mediation_meta/CHANGELOG.md @@ -1,8 +1,11 @@ ## Meta Audience Network Flutter Mediation Adapter Changelog -#### Version 1.5.2 (In progress) +#### Version 1.5.2 - Updated minimum Flutter version to 3.38.1 - Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 +* Supports [Meta Audience Network Android adapter version 6.21.0.2](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/meta/CHANGELOG.md#version-62102). +* Supports [Meta Audience Network iOS adapter version 6.21.1.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Meta/CHANGELOG.md#version-62110). +* Built and tested with the Google Mobile Ads Flutter Plugin version 8.0.0. #### Version 1.5.1 * Updated minimum Flutter version to 3.35.1 From 90ad87d586d81de52e8070ca84b990cb09f81893 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Wed, 29 Apr 2026 07:50:14 -0700 Subject: [PATCH 206/251] Update Line Flutter Adapter version to 2.1.0 PiperOrigin-RevId: 907586654 --- packages/mediation/gma_mediation_line/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_line/CHANGELOG.md b/packages/mediation/gma_mediation_line/CHANGELOG.md index e054a9eb0..208527dc7 100644 --- a/packages/mediation/gma_mediation_line/CHANGELOG.md +++ b/packages/mediation/gma_mediation_line/CHANGELOG.md @@ -1,8 +1,11 @@ ## Line Flutter Mediation Adapter Changelog -#### Version 2.1.0 (In progress) +#### Version 2.1.0 - Updated minimum Flutter version to 3.38.1 - Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 +- Supports [Line Android adapter version 3.1.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/line/CHANGELOG.md#version-3100). +- Supports [Line iOS adapter version 3.0.1.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Line/CHANGELOG.md#version-3010). +- Built and tested with the Google Mobile Ads Flutter Plugin version 8.0.0 #### Version 2.0.0 - Updated minimum Flutter version to 3.35.1 From 44f7e87515795e82f70b4bf471948f1fc5eaa450 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Wed, 29 Apr 2026 08:04:25 -0700 Subject: [PATCH 207/251] Update Molocco Flutter Adapter version to 3.4.0 PiperOrigin-RevId: 907592673 --- packages/mediation/gma_mediation_moloco/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_moloco/CHANGELOG.md b/packages/mediation/gma_mediation_moloco/CHANGELOG.md index 4bf896714..6f8447213 100644 --- a/packages/mediation/gma_mediation_moloco/CHANGELOG.md +++ b/packages/mediation/gma_mediation_moloco/CHANGELOG.md @@ -1,8 +1,11 @@ ## Moloco Flutter Mediation Adapter Changelog -#### Version 3.4.0 (In progress) +#### Version 3.4.0 - Updated minimum Flutter version to 3.38.1 - Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 +- Supports [Moloco Android adapter version 4.7.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/moloco/CHANGELOG.md#version-4700). +- Supports [Moloco iOS adapter version 4.5.1.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Moloco/CHANGELOG.md#version-4510). +- Built and tested with the Google Mobile Ads Flutter Plugin version 8.0.0. #### Version 3.3.0 - Supports [Moloco Android adapter version 4.5.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/moloco/CHANGELOG.md#version-4500). From 87d6e17965d628385829e0b4a1e92fdf61138298 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Wed, 29 Apr 2026 13:06:39 -0700 Subject: [PATCH 208/251] Updating InMobi Flutter mediation plugin version to 2.1.0 in the CHANGELOG PiperOrigin-RevId: 907739488 --- packages/mediation/gma_mediation_inmobi/CHANGELOG.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/mediation/gma_mediation_inmobi/CHANGELOG.md b/packages/mediation/gma_mediation_inmobi/CHANGELOG.md index 673a1222a..c01f03705 100644 --- a/packages/mediation/gma_mediation_inmobi/CHANGELOG.md +++ b/packages/mediation/gma_mediation_inmobi/CHANGELOG.md @@ -1,8 +1,11 @@ ## InMobi Flutter Mediation Adapter Changelog -#### Version 2.1.0 (In progress) -- Updated minimum Flutter version to 3.38.1 -- Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 +#### Version 2.1.0 +- Updated minimum Flutter version to 3.38.1. +- Updated to support Google Mobile Ads Flutter Plugin version 8.0.0. +- Supports [inMobi Android adapter version 11.2.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/inmobi/CHANGELOG.md#version-11200). +- Supports [inMobi iOS adapter version 11.2.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/InMobi/CHANGELOG.md#version-11200). +- Built and tested with the Google Mobile Ads Flutter Plugin version 8.0.0. #### Version 2.0.1 - Updated minimum Flutter version to 3.35.1 From 9a6da496acf6f80cc5973a8b03bc4978bd4ff2b8 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Fri, 1 May 2026 03:31:06 -0700 Subject: [PATCH 209/251] Updating Pubmatic Flutter Adapter to version 2.0.0 PiperOrigin-RevId: 908644235 --- packages/mediation/gma_mediation_pubmatic/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md b/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md index e9b60aabc..fda4ff60e 100644 --- a/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md +++ b/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md @@ -1,8 +1,11 @@ ## Pubmatic Flutter Mediation Adapter Changelog -#### Version 2.0.0 (In progress) +#### Version 2.0.0 - Updated minimum Flutter version to 3.38.1 - Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 +- Supports [PubMatic Android adapter version 5.0.0.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/pubmatic/CHANGELOG.md#version-5001). +- Supports [PubMatic iOS adapter version 5.0.1.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/PubMatic/CHANGELOG.md#version-5010). +- Built and tested with the Google Mobile Ads Flutter Plugin version 8.0.0. #### Version 1.6.0 - Supports [PubMatic Android adapter version 4.12.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/pubmatic/CHANGELOG.md#version-41200). From 95455e7288b37d3ff6b50b60e0e01ea87ce1b8a6 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Fri, 1 May 2026 13:13:10 -0700 Subject: [PATCH 210/251] Updating Chartboost Flutter mediation plugin to version 1.4.2 in the CHANGELOG PiperOrigin-RevId: 908866162 --- packages/mediation/gma_mediation_chartboost/CHANGELOG.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/mediation/gma_mediation_chartboost/CHANGELOG.md b/packages/mediation/gma_mediation_chartboost/CHANGELOG.md index 77da75a3a..d0c8846df 100644 --- a/packages/mediation/gma_mediation_chartboost/CHANGELOG.md +++ b/packages/mediation/gma_mediation_chartboost/CHANGELOG.md @@ -1,8 +1,11 @@ ## Chartboost Flutter Mediation Adapter Changelog -#### Version 1.4.2 (In progress) -- Updated minimum Flutter version to 3.38.1 -- Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 +#### Version 1.4.2 +- Updated minimum Flutter version to 3.38.1. +- Updated to support Google Mobile Ads Flutter Plugin version 8.0.0. +- Supports [Chartboost Android adapter version 9.11.1.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/chartboost/CHANGELOG.md#version-91111). +- Supports [Chartboost iOS adapter version 9.11.0.3](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Chartboost/CHANGELOG.md#version-91103). +- Built and tested with the Google Mobile Ads Flutter Plugin version 8.0.0. #### Version 1.4.1 - Supports [Chartboost Android adapter version 9.11.1.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/chartboost/CHANGELOG.md#version-91110). From bf558e43663555164c4f562de7f98cdfb54c6798 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Fri, 1 May 2026 13:38:53 -0700 Subject: [PATCH 211/251] Updating maio Flutter mediation plugin version to 1.1.4 in the CHANGELOG PiperOrigin-RevId: 908877704 --- packages/mediation/gma_mediation_maio/CHANGELOG.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/mediation/gma_mediation_maio/CHANGELOG.md b/packages/mediation/gma_mediation_maio/CHANGELOG.md index 2ee4e9dbd..bdc41e2ce 100644 --- a/packages/mediation/gma_mediation_maio/CHANGELOG.md +++ b/packages/mediation/gma_mediation_maio/CHANGELOG.md @@ -1,8 +1,11 @@ ## maio Flutter Mediation Adapter Changelog -#### Version 1.1.4 (In progress) -- Updated minimum Flutter version to 3.38.1 -- Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 +#### Version 1.1.4 +- Updated minimum Flutter version to 3.38.1. +- Updated to support Google Mobile Ads Flutter Plugin version 8.0.0. +- Supports [maio Android adapter version 2.0.8.2](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/maio/CHANGELOG.md#version-2082). +- Supports [maio iOS adapter version 2.2.1.1](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Maio/CHANGELOG.md#version-2211). +- Built and tested with the Google Mobile Ads Flutter Plugin version 8.0.0. #### Version 1.1.3 - Supports [maio Android adapter version 2.0.7.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/maio/CHANGELOG.md#version-2070). From ad569c145b0cdf55468e4b2ab90366a1429e5118 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Fri, 1 May 2026 14:24:11 -0700 Subject: [PATCH 212/251] Updating Pangle Flutter mediation plugin version to 3.6.0 in the CHANGELOG PiperOrigin-RevId: 908897913 --- packages/mediation/gma_mediation_pangle/CHANGELOG.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/mediation/gma_mediation_pangle/CHANGELOG.md b/packages/mediation/gma_mediation_pangle/CHANGELOG.md index e3b0e25c7..a97740c10 100644 --- a/packages/mediation/gma_mediation_pangle/CHANGELOG.md +++ b/packages/mediation/gma_mediation_pangle/CHANGELOG.md @@ -1,8 +1,11 @@ ## Pangle Flutter Mediation Adapter Changelog -#### Version 3.6.0 (In progress) -- Updated minimum Flutter version to 3.38.1 -- Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 +#### Version 3.6.0 +- Updated minimum Flutter version to 3.38.1. +- Updated to support Google Mobile Ads Flutter Plugin version 8.0.0. +- Supports [Pangle Android adapter version 7.9.1.3.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/pangle/CHANGELOG.md#version-79130). +- Supports [Pangle iOS adapter version 7.9.0.8.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Pangle/CHANGELOG.md#version-79080). +- Built and tested with the Google Mobile Ads Flutter Plugin version 8.0.0. #### Version 3.5.3 - Supports [Pangle Android adapter version 7.8.5.2.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/pangle/CHANGELOG.md#version-78520). From f7c0da71dc0c40353c183ebf28877b865f112835 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Fri, 1 May 2026 14:45:44 -0700 Subject: [PATCH 213/251] Updating myTarget Flutter mediation plugin version to 1.9.0 in the CHANGELOG PiperOrigin-RevId: 908907385 --- packages/mediation/gma_mediation_mytarget/CHANGELOG.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/mediation/gma_mediation_mytarget/CHANGELOG.md b/packages/mediation/gma_mediation_mytarget/CHANGELOG.md index eaade1fd6..ef040bd72 100644 --- a/packages/mediation/gma_mediation_mytarget/CHANGELOG.md +++ b/packages/mediation/gma_mediation_mytarget/CHANGELOG.md @@ -1,8 +1,11 @@ ## myTarget Flutter Mediation Adapter Changelog -#### Version 1.9.0 (In progress) -- Updated minimum Flutter version to 3.38.1 -- Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 +#### Version 1.9.0 +- Updated minimum Flutter version to 3.38.1. +- Updated to support Google Mobile Ads Flutter Plugin version 8.0.0. +- Supports [myTarget Android adapter version 5.27.4.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/mytarget/CHANGELOG.md#version-52741). +- Supports [myTarget iOS adapter version 5.39.1.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/MyTarget/CHANGELOG.md#version-53910). +- Built and tested with the Google Mobile Ads Flutter Plugin version 8.0.0. #### Version 1.8.0 * Supports [myTarget Android adapter version 5.27.4.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/mytarget/CHANGELOG.md#version-52741). From 1bcecb834d9eda7f46296c38516a2afbb2db44ae Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Fri, 1 May 2026 15:22:19 -0700 Subject: [PATCH 214/251] Updating Liftoff Monetize Flutter mediation plugin version to 1.5.0 in the CHANGELOG PiperOrigin-RevId: 908925390 --- .../mediation/gma_mediation_liftoffmonetize/CHANGELOG.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md b/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md index 34a5dfdbe..e16d0ff79 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md +++ b/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md @@ -1,8 +1,11 @@ ## Liftoff Monetize Flutter Mediation Adapter Changelog -#### Version 1.5.0 (In progress) -- Updated minimum Flutter version to 3.38.1 -- Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 +#### Version 1.5.0 +- Updated minimum Flutter version to 3.38.1. +- Updated to support Google Mobile Ads Flutter Plugin version 8.0.0. +- Supports [Liftoff Monetize Android adapter version 7.7.2.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/liftoffmonetize/CHANGELOG.md#version-7720). +- Supports [Liftoff Monetize iOS adapter version 7.7.1.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/LiftoffMonetize/CHANGELOG.md#version-7710). +- Built and tested with the Google Mobile Ads Flutter Plugin version 8.0.0. #### Version 1.4.3 * Supports [Liftoff Monetize Android adapter version 7.6.3.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/liftoffmonetize/CHANGELOG.md#version-7631). From 23ad8625ed19ae386722d0be6bd92b26b49b8ec1 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Tue, 5 May 2026 13:08:04 -0700 Subject: [PATCH 215/251] Updating Mintegral Flutter mediation plugin version to 2.1.0 in the CHANGELOG PiperOrigin-RevId: 910867743 --- packages/mediation/gma_mediation_mintegral/CHANGELOG.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/mediation/gma_mediation_mintegral/CHANGELOG.md b/packages/mediation/gma_mediation_mintegral/CHANGELOG.md index 59fd05575..86494bca9 100644 --- a/packages/mediation/gma_mediation_mintegral/CHANGELOG.md +++ b/packages/mediation/gma_mediation_mintegral/CHANGELOG.md @@ -1,8 +1,11 @@ ## Mintegral Flutter Mediation Adapter Changelog -#### Version 2.1.0 (In progress) -- Updated minimum Flutter version to 3.38.1 -- Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 +#### Version 2.1.0 +- Updated minimum Flutter version to 3.38.1. +- Updated to support Google Mobile Ads Flutter Plugin version 8.0.0. +- Supports [Mintegral Android adapter version 17.1.41.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/mintegral/CHANGELOG.md#version-171410). +- Supports [Mintegral iOS adapter version 8.1.1.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Mintegral/CHANGELOG.md#version-8110). +- Built and tested with the Google Mobile Ads Flutter Plugin version 8.0.0. #### Version 2.0.3 - Supports [Mintegral Android adapter version 17.0.61.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/mintegral/CHANGELOG.md#version-170610). From c8490e49c4f7e14f8bc906a5d54d293e57807d6d Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Tue, 5 May 2026 13:30:57 -0700 Subject: [PATCH 216/251] Updating Unity Ads Flutter mediation plugin version to 1.7.0 in the CHANGELOG PiperOrigin-RevId: 910880791 --- packages/mediation/gma_mediation_unity/CHANGELOG.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/mediation/gma_mediation_unity/CHANGELOG.md b/packages/mediation/gma_mediation_unity/CHANGELOG.md index e225e4960..122972e32 100644 --- a/packages/mediation/gma_mediation_unity/CHANGELOG.md +++ b/packages/mediation/gma_mediation_unity/CHANGELOG.md @@ -1,8 +1,11 @@ ## Unity Ads Flutter Mediation Adapter Changelog -#### Version 1.7.0 (In progress) -- Updated minimum Flutter version to 3.38.1 -- Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 +#### Version 1.7.0 +- Updated minimum Flutter version to 3.38.1. +- Updated to support Google Mobile Ads Flutter Plugin version 8.0.0. +- Supports [Unity Android adapter version 4.17.0.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/unity/CHANGELOG.md#version-41700). +- Supports [Unity iOS adapter version 4.17.0.0](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/Unity/CHANGELOG.md#version-41700). +- Built and tested with the Google Mobile Ads Flutter Plugin version 8.0.0. #### Version 1.6.5 - Supports [Unity Android adapter version 4.16.6.0](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/unity/CHANGELOG.md#version-41660). From 6afc62aa08671019d4200bd3d13680de9ef4c06c Mon Sep 17 00:00:00 2001 From: Justin Malandruccolo Date: Wed, 13 May 2026 14:10:03 -0400 Subject: [PATCH 217/251] Added UIScene support to samples (#1430) * Added UIScene support to app open sample * Add UIScene support to Banner Example * Added interstitial * Added native template * Added rewarded * Added rewarded interstitial * Added native platform support * Added license --- .../ios/Runner/AppDelegate.swift | 7 +++-- .../app_open_example/ios/Runner/Info.plist | 21 ++++++++++++++ .../ios/Runner/AppDelegate.swift | 23 +++++++++++++-- .../banner_example/ios/Runner/Info.plist | 21 ++++++++++++++ .../ios/Runner/AppDelegate.swift | 21 ++++++++++++-- .../ios/Runner/Info.plist | 21 ++++++++++++++ .../ios/Runner/AppDelegate.swift | 29 ++++++++++++++++--- .../ios/Runner/Info.plist | 21 ++++++++++++++ .../ios/Runner/AppDelegate.swift | 21 ++++++++++++-- .../ios/Runner/Info.plist | 21 ++++++++++++++ .../ios/Runner/AppDelegate.swift | 21 ++++++++++++-- .../rewarded_example/ios/Runner/Info.plist | 21 ++++++++++++++ .../ios/Runner/AppDelegate.swift | 21 ++++++++++++-- .../ios/Runner/Info.plist | 21 ++++++++++++++ 14 files changed, 273 insertions(+), 17 deletions(-) diff --git a/samples/admob/app_open_example/ios/Runner/AppDelegate.swift b/samples/admob/app_open_example/ios/Runner/AppDelegate.swift index d3fd5e617..1bc2b81f7 100644 --- a/samples/admob/app_open_example/ios/Runner/AppDelegate.swift +++ b/samples/admob/app_open_example/ios/Runner/AppDelegate.swift @@ -16,12 +16,15 @@ import UIKit import Flutter @main -@objc class AppDelegate: FlutterAppDelegate { +@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate { override func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { - GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } + + func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) { + GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry) + } } diff --git a/samples/admob/app_open_example/ios/Runner/Info.plist b/samples/admob/app_open_example/ios/Runner/Info.plist index ea9198030..1ddbc529a 100644 --- a/samples/admob/app_open_example/ios/Runner/Info.plist +++ b/samples/admob/app_open_example/ios/Runner/Info.plist @@ -28,6 +28,27 @@ LaunchScreen UIMainStoryboardFile Main + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneClassName + UIWindowScene + UISceneDelegateClassName + FlutterSceneDelegate + UISceneConfigurationName + flutter + UISceneStoryboardFile + Main + + + + UISupportedInterfaceOrientations UIInterfaceOrientationPortrait diff --git a/samples/admob/banner_example/ios/Runner/AppDelegate.swift b/samples/admob/banner_example/ios/Runner/AppDelegate.swift index 70693e4a8..1bc2b81f7 100644 --- a/samples/admob/banner_example/ios/Runner/AppDelegate.swift +++ b/samples/admob/banner_example/ios/Runner/AppDelegate.swift @@ -1,13 +1,30 @@ +// Copyright 2021 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import UIKit import Flutter -@UIApplicationMain -@objc class AppDelegate: FlutterAppDelegate { +@main +@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate { override func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { - GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } + + func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) { + GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry) + } } diff --git a/samples/admob/banner_example/ios/Runner/Info.plist b/samples/admob/banner_example/ios/Runner/Info.plist index f7baeaab2..0266075d9 100644 --- a/samples/admob/banner_example/ios/Runner/Info.plist +++ b/samples/admob/banner_example/ios/Runner/Info.plist @@ -28,6 +28,27 @@ LaunchScreen UIMainStoryboardFile Main + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneClassName + UIWindowScene + UISceneDelegateClassName + FlutterSceneDelegate + UISceneConfigurationName + flutter + UISceneStoryboardFile + Main + + + + UISupportedInterfaceOrientations UIInterfaceOrientationPortrait diff --git a/samples/admob/interstitial_example/ios/Runner/AppDelegate.swift b/samples/admob/interstitial_example/ios/Runner/AppDelegate.swift index b63630348..1bc2b81f7 100644 --- a/samples/admob/interstitial_example/ios/Runner/AppDelegate.swift +++ b/samples/admob/interstitial_example/ios/Runner/AppDelegate.swift @@ -1,13 +1,30 @@ +// Copyright 2021 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import UIKit import Flutter @main -@objc class AppDelegate: FlutterAppDelegate { +@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate { override func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { - GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } + + func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) { + GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry) + } } diff --git a/samples/admob/interstitial_example/ios/Runner/Info.plist b/samples/admob/interstitial_example/ios/Runner/Info.plist index bde98268e..d1eae1fe5 100644 --- a/samples/admob/interstitial_example/ios/Runner/Info.plist +++ b/samples/admob/interstitial_example/ios/Runner/Info.plist @@ -28,6 +28,27 @@ LaunchScreen UIMainStoryboardFile Main + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneClassName + UIWindowScene + UISceneDelegateClassName + FlutterSceneDelegate + UISceneConfigurationName + flutter + UISceneStoryboardFile + Main + + + + UISupportedInterfaceOrientations UIInterfaceOrientationPortrait diff --git a/samples/admob/native_platform_example/ios/Runner/AppDelegate.swift b/samples/admob/native_platform_example/ios/Runner/AppDelegate.swift index 4e33a3010..d0c50101f 100644 --- a/samples/admob/native_platform_example/ios/Runner/AppDelegate.swift +++ b/samples/admob/native_platform_example/ios/Runner/AppDelegate.swift @@ -1,3 +1,17 @@ +// Copyright 2021 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import UIKit import Flutter @@ -61,15 +75,22 @@ import Flutter } @main -@objc class AppDelegate: FlutterAppDelegate { +@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate { override func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { - GeneratedPluginRegistrant.register(with: self) + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } - FLTGoogleMobileAdsPlugin.registerNativeAdFactory(self, factoryId: "adFactoryExample", nativeAdFactory: NativeAdFactoryExample()) + func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) { + GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry) - return super.application(application, didFinishLaunchingWithOptions: launchOptions) + FLTGoogleMobileAdsPlugin.registerNativeAdFactory( + engineBridge.pluginRegistry, + factoryId: "adFactoryExample", + nativeAdFactory: NativeAdFactoryExample() + ) } } + diff --git a/samples/admob/native_platform_example/ios/Runner/Info.plist b/samples/admob/native_platform_example/ios/Runner/Info.plist index 07558cff2..238ec96cd 100644 --- a/samples/admob/native_platform_example/ios/Runner/Info.plist +++ b/samples/admob/native_platform_example/ios/Runner/Info.plist @@ -30,6 +30,27 @@ LaunchScreen UIMainStoryboardFile Main + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneClassName + UIWindowScene + UISceneDelegateClassName + FlutterSceneDelegate + UISceneConfigurationName + flutter + UISceneStoryboardFile + Main + + + + UISupportedInterfaceOrientations UIInterfaceOrientationPortrait diff --git a/samples/admob/native_template_example/ios/Runner/AppDelegate.swift b/samples/admob/native_template_example/ios/Runner/AppDelegate.swift index b63630348..1bc2b81f7 100644 --- a/samples/admob/native_template_example/ios/Runner/AppDelegate.swift +++ b/samples/admob/native_template_example/ios/Runner/AppDelegate.swift @@ -1,13 +1,30 @@ +// Copyright 2021 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import UIKit import Flutter @main -@objc class AppDelegate: FlutterAppDelegate { +@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate { override func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { - GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } + + func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) { + GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry) + } } diff --git a/samples/admob/native_template_example/ios/Runner/Info.plist b/samples/admob/native_template_example/ios/Runner/Info.plist index aaaf52730..6164d79bd 100644 --- a/samples/admob/native_template_example/ios/Runner/Info.plist +++ b/samples/admob/native_template_example/ios/Runner/Info.plist @@ -34,6 +34,27 @@ LaunchScreen UIMainStoryboardFile Main + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneClassName + UIWindowScene + UISceneDelegateClassName + FlutterSceneDelegate + UISceneConfigurationName + flutter + UISceneStoryboardFile + Main + + + + UISupportedInterfaceOrientations UIInterfaceOrientationPortrait diff --git a/samples/admob/rewarded_example/ios/Runner/AppDelegate.swift b/samples/admob/rewarded_example/ios/Runner/AppDelegate.swift index b63630348..1bc2b81f7 100644 --- a/samples/admob/rewarded_example/ios/Runner/AppDelegate.swift +++ b/samples/admob/rewarded_example/ios/Runner/AppDelegate.swift @@ -1,13 +1,30 @@ +// Copyright 2021 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import UIKit import Flutter @main -@objc class AppDelegate: FlutterAppDelegate { +@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate { override func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { - GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } + + func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) { + GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry) + } } diff --git a/samples/admob/rewarded_example/ios/Runner/Info.plist b/samples/admob/rewarded_example/ios/Runner/Info.plist index be2661556..df328e1cd 100644 --- a/samples/admob/rewarded_example/ios/Runner/Info.plist +++ b/samples/admob/rewarded_example/ios/Runner/Info.plist @@ -28,6 +28,27 @@ LaunchScreen UIMainStoryboardFile Main + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneClassName + UIWindowScene + UISceneDelegateClassName + FlutterSceneDelegate + UISceneConfigurationName + flutter + UISceneStoryboardFile + Main + + + + UISupportedInterfaceOrientations UIInterfaceOrientationPortrait diff --git a/samples/admob/rewarded_interstitial_example/ios/Runner/AppDelegate.swift b/samples/admob/rewarded_interstitial_example/ios/Runner/AppDelegate.swift index b63630348..1bc2b81f7 100644 --- a/samples/admob/rewarded_interstitial_example/ios/Runner/AppDelegate.swift +++ b/samples/admob/rewarded_interstitial_example/ios/Runner/AppDelegate.swift @@ -1,13 +1,30 @@ +// Copyright 2021 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + import UIKit import Flutter @main -@objc class AppDelegate: FlutterAppDelegate { +@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate { override func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { - GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } + + func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) { + GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry) + } } diff --git a/samples/admob/rewarded_interstitial_example/ios/Runner/Info.plist b/samples/admob/rewarded_interstitial_example/ios/Runner/Info.plist index dfbb6c5b3..a66bf60d0 100644 --- a/samples/admob/rewarded_interstitial_example/ios/Runner/Info.plist +++ b/samples/admob/rewarded_interstitial_example/ios/Runner/Info.plist @@ -28,6 +28,27 @@ LaunchScreen UIMainStoryboardFile Main + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneClassName + UIWindowScene + UISceneDelegateClassName + FlutterSceneDelegate + UISceneConfigurationName + flutter + UISceneStoryboardFile + Main + + + + UISupportedInterfaceOrientations UIInterfaceOrientationPortrait From 5637854eb1213c9db8892e5c3ca42fcb93c4dd96 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 May 2026 22:50:58 -0700 Subject: [PATCH 218/251] Bump styfle/cancel-workflow-action from 0.13.0 to 0.13.1 (#1424) Bumps [styfle/cancel-workflow-action](https://github.com/styfle/cancel-workflow-action) from 0.13.0 to 0.13.1. - [Release notes](https://github.com/styfle/cancel-workflow-action/releases) - [Commits](https://github.com/styfle/cancel-workflow-action/compare/0.13.0...0.13.1) --- updated-dependencies: - dependency-name: styfle/cancel-workflow-action dependency-version: 0.13.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/cancel.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cancel.yaml b/.github/workflows/cancel.yaml index 6d1cd29ee..b41ac8c8f 100644 --- a/.github/workflows/cancel.yaml +++ b/.github/workflows/cancel.yaml @@ -20,7 +20,7 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 3 steps: - - uses: styfle/cancel-workflow-action@0.13.0 + - uses: styfle/cancel-workflow-action@0.13.1 with: workflow_id: 5958127 access_token: ${{ github.token }} From 724becfe866924948a81131309b007f099dbc38f Mon Sep 17 00:00:00 2001 From: Aldo Becerril Date: Mon, 18 May 2026 10:30:43 -0700 Subject: [PATCH 219/251] Updating iMobile Flutter mediation plugin to support the latest adapters (2.3.2.3, 2.3.4.6) PiperOrigin-RevId: 917308988 --- packages/mediation/gma_mediation_imobile/CHANGELOG.md | 6 ++---- .../mediation/gma_mediation_imobile/android/build.gradle | 9 +++++---- .../mediation/gma_mediation_imobile/example/pubspec.yaml | 4 ++-- .../ios/gma_mediation_imobile.podspec | 6 +++--- packages/mediation/gma_mediation_imobile/pubspec.yaml | 8 ++++---- 5 files changed, 16 insertions(+), 17 deletions(-) diff --git a/packages/mediation/gma_mediation_imobile/CHANGELOG.md b/packages/mediation/gma_mediation_imobile/CHANGELOG.md index c138f98dc..d1b467495 100644 --- a/packages/mediation/gma_mediation_imobile/CHANGELOG.md +++ b/packages/mediation/gma_mediation_imobile/CHANGELOG.md @@ -1,10 +1,8 @@ ## i-mobile Flutter Mediation Adapter Changelog -#### Version 1.0.4 (In progress) - #### Version 1.0.3 (In progress) -- Updated minimum Flutter version to 3.35.1 -- Updated to support Google Mobile Ads Flutter Plugin version 7.0.0 +- Updated minimum Flutter version to 3.38.1 +- Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 #### Version 1.0.2 * Supports [i-mobile Android adapter version 2.3.2.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/imobile/CHANGELOG.md#version-2321). diff --git a/packages/mediation/gma_mediation_imobile/android/build.gradle b/packages/mediation/gma_mediation_imobile/android/build.gradle index 2a1d30a89..bd83a1937 100644 --- a/packages/mediation/gma_mediation_imobile/android/build.gradle +++ b/packages/mediation/gma_mediation_imobile/android/build.gradle @@ -1,8 +1,8 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_imobile" -version = "1.0.4" +version = "1.0.3" buildscript { - ext.kotlin_version = "2.2.21" + ext.kotlin_version = "2.3.0" repositories { google() mavenCentral() @@ -25,7 +25,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "2.3.2.1" + stringVersion = "2.3.2.3" } android { @@ -48,11 +48,12 @@ android { } defaultConfig { - minSdk = 23 + minSdk = 24 } dependencies { implementation("com.google.ads.mediation:imobile:$stringVersion") + implementation("com.google.android.gms:play-services-ads:25.1.0") testImplementation("org.jetbrains.kotlin:kotlin-test") testImplementation("org.mockito:mockito-core:5.5.0") } diff --git a/packages/mediation/gma_mediation_imobile/example/pubspec.yaml b/packages/mediation/gma_mediation_imobile/example/pubspec.yaml index 777470090..14daccce8 100644 --- a/packages/mediation/gma_mediation_imobile/example/pubspec.yaml +++ b/packages/mediation/gma_mediation_imobile/example/pubspec.yaml @@ -5,7 +5,7 @@ description: "Demonstrates how to use the gma_mediation_imobile plugin." publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: - sdk: ^3.9.0 + sdk: ^3.10.0 # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions @@ -17,7 +17,7 @@ dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 + google_mobile_ads: ^8.0.0 gma_mediation_imobile: # When depending on this package from a real application you should use: # gma_mediation_imobile: ^x.y.z diff --git a/packages/mediation/gma_mediation_imobile/ios/gma_mediation_imobile.podspec b/packages/mediation/gma_mediation_imobile/ios/gma_mediation_imobile.podspec index e3cd9d9cd..e83680852 100644 --- a/packages/mediation/gma_mediation_imobile/ios/gma_mediation_imobile.podspec +++ b/packages/mediation/gma_mediation_imobile/ios/gma_mediation_imobile.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_imobile' - s.version = '1.0.4' + s.version = '1.0.3' s.summary = 'Google Mobile Ads Mediation of imobile.' s.description = <<-DESC Mediation Adapter for imobile to use with Google Mobile Ads. @@ -11,11 +11,11 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationIMobile', '~> 2.3.4.5' + s.dependency 'GoogleMobileAdsMediationIMobile', '~> 2.3.4.6' s.platform = :ios, '13.0' s.static_framework = true s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } - s.swift_version = '5.0' + s.swift_version = '6.0' end diff --git a/packages/mediation/gma_mediation_imobile/pubspec.yaml b/packages/mediation/gma_mediation_imobile/pubspec.yaml index df66b9f09..610f0cd95 100644 --- a/packages/mediation/gma_mediation_imobile/pubspec.yaml +++ b/packages/mediation/gma_mediation_imobile/pubspec.yaml @@ -1,14 +1,14 @@ name: gma_mediation_imobile description: 'Mediation Adapter that enables sending ad requests to the imobile ad network using the google_mobile_ads plugin.' -version: 1.0.4 +version: 1.0.3 environment: - sdk: '>=3.9.0 <4.0.0' - flutter: '>=3.35.1' + sdk: '>=3.10.0 <4.0.0' + flutter: '>=3.38.1' dependencies: flutter: sdk: flutter - google_mobile_ads: ^7.0.0 + google_mobile_ads: ^8.0.0 plugin_platform_interface: ^2.0.2 dev_dependencies: flutter_test: From 1bba6cd8a601d68bc21719084b4aabbe03ea792a Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 18 May 2026 14:48:01 -0700 Subject: [PATCH 220/251] Updating Pangle Flutter mediation plugin to support the latest adapters (8.0.0.4.0, 7.9.1.1.1) PiperOrigin-RevId: 917437876 --- packages/mediation/gma_mediation_pangle/CHANGELOG.md | 2 ++ packages/mediation/gma_mediation_pangle/android/build.gradle | 4 ++-- .../gma_mediation_pangle/ios/gma_mediation_pangle.podspec | 4 ++-- packages/mediation/gma_mediation_pangle/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_pangle/CHANGELOG.md b/packages/mediation/gma_mediation_pangle/CHANGELOG.md index a97740c10..866c23de3 100644 --- a/packages/mediation/gma_mediation_pangle/CHANGELOG.md +++ b/packages/mediation/gma_mediation_pangle/CHANGELOG.md @@ -1,5 +1,7 @@ ## Pangle Flutter Mediation Adapter Changelog +#### Version 4.0.0 (In progress) + #### Version 3.6.0 - Updated minimum Flutter version to 3.38.1. - Updated to support Google Mobile Ads Flutter Plugin version 8.0.0. diff --git a/packages/mediation/gma_mediation_pangle/android/build.gradle b/packages/mediation/gma_mediation_pangle/android/build.gradle index 18f624ce7..5e88540dc 100644 --- a/packages/mediation/gma_mediation_pangle/android/build.gradle +++ b/packages/mediation/gma_mediation_pangle/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_pangle' -version = "3.6.0" +version = "4.0.0" buildscript { ext.kotlin_version = '2.3.0' @@ -28,7 +28,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "7.9.1.3.0" + stringVersion = "8.0.0.4.0" } android { diff --git a/packages/mediation/gma_mediation_pangle/ios/gma_mediation_pangle.podspec b/packages/mediation/gma_mediation_pangle/ios/gma_mediation_pangle.podspec index 70e261769..6b1f08a8d 100644 --- a/packages/mediation/gma_mediation_pangle/ios/gma_mediation_pangle.podspec +++ b/packages/mediation/gma_mediation_pangle/ios/gma_mediation_pangle.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_pangle' - s.version = '3.6.0' + s.version = '4.0.0' s.summary = 'Google Mobile Ads Mediation of Pangle.' s.description = <<-DESC Mediation Adapter for Pangle to use with Google Mobile Ads. @@ -16,7 +16,7 @@ Pod::Spec.new do |s| s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationPangle', '~> 7.9.0.8.0' + s.dependency 'GoogleMobileAdsMediationPangle', '~> 7.9.1.1.1' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_pangle/pubspec.yaml b/packages/mediation/gma_mediation_pangle/pubspec.yaml index 622bf1da1..8ae3d52c1 100644 --- a/packages/mediation/gma_mediation_pangle/pubspec.yaml +++ b/packages/mediation/gma_mediation_pangle/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_pangle description: "Mediation Adapter that enables sending ad requests to the Pangle ad network using the google_mobile_ads plugin." -version: 3.6.0 +version: 4.0.0 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_pangle environment: From 87424d6b094af46f89d1171e51f9977ec270178e Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 18 May 2026 14:50:05 -0700 Subject: [PATCH 221/251] Updating IronSource Flutter mediation plugin to support the latest adapters (9.4.2.0, 9.4.1.0.0) PiperOrigin-RevId: 917438927 --- packages/mediation/gma_mediation_ironsource/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_ironsource/android/build.gradle | 4 ++-- .../ios/gma_mediation_ironsource.podspec | 4 ++-- packages/mediation/gma_mediation_ironsource/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_ironsource/CHANGELOG.md b/packages/mediation/gma_mediation_ironsource/CHANGELOG.md index 3db2ab266..2ab4b23d0 100644 --- a/packages/mediation/gma_mediation_ironsource/CHANGELOG.md +++ b/packages/mediation/gma_mediation_ironsource/CHANGELOG.md @@ -1,5 +1,7 @@ ## ironSource Flutter Mediation Adapter Changelog +#### Version 2.4.1 (In progress) + #### Version 2.4.0 - Updated minimum Flutter version to 3.38.1 - Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 diff --git a/packages/mediation/gma_mediation_ironsource/android/build.gradle b/packages/mediation/gma_mediation_ironsource/android/build.gradle index 3c800417a..cd0bf86cf 100644 --- a/packages/mediation/gma_mediation_ironsource/android/build.gradle +++ b/packages/mediation/gma_mediation_ironsource/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_ironsource' -version = "2.4.0" +version = "2.4.1" buildscript { ext.kotlin_version = '2.3.0' @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "9.4.0.0" + stringVersion = "9.4.2.0" } android { diff --git a/packages/mediation/gma_mediation_ironsource/ios/gma_mediation_ironsource.podspec b/packages/mediation/gma_mediation_ironsource/ios/gma_mediation_ironsource.podspec index 97d4c7941..9ba205ae7 100644 --- a/packages/mediation/gma_mediation_ironsource/ios/gma_mediation_ironsource.podspec +++ b/packages/mediation/gma_mediation_ironsource/ios/gma_mediation_ironsource.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_ironsource' - s.version = '2.4.0' + s.version = '2.4.1' s.summary = 'Google Mobile Ads Mediation of ironSource.' s.description = <<-DESC Mediation Adapter for ironSource to use with Google Mobile Ads. @@ -16,7 +16,7 @@ Mediation Adapter for ironSource to use with Google Mobile Ads. s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationIronSource', '~>9.4.0.0.0' + s.dependency 'GoogleMobileAdsMediationIronSource', '~>9.4.1.0.0' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_ironsource/pubspec.yaml b/packages/mediation/gma_mediation_ironsource/pubspec.yaml index d67ad169b..b03ec1dfb 100644 --- a/packages/mediation/gma_mediation_ironsource/pubspec.yaml +++ b/packages/mediation/gma_mediation_ironsource/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_ironsource description: "Mediation Adapter that enables sending ad requests to the ironSource ad network using the google_mobile_ads plugin." -version: 2.4.0 +version: 2.4.1 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_ironsource environment: From 1e38d4551d7e886806b780716a39ac9ea837a4a4 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 18 May 2026 14:51:46 -0700 Subject: [PATCH 222/251] Updating Meta Flutter mediation plugin to support the latest adapters (6.21.0.3, 6.21.1.1) PiperOrigin-RevId: 917439797 --- packages/mediation/gma_mediation_meta/CHANGELOG.md | 2 ++ packages/mediation/gma_mediation_meta/android/build.gradle | 4 ++-- .../gma_mediation_meta/ios/gma_mediation_meta.podspec | 4 ++-- packages/mediation/gma_mediation_meta/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_meta/CHANGELOG.md b/packages/mediation/gma_mediation_meta/CHANGELOG.md index 283fb223c..ed83a6e94 100644 --- a/packages/mediation/gma_mediation_meta/CHANGELOG.md +++ b/packages/mediation/gma_mediation_meta/CHANGELOG.md @@ -1,5 +1,7 @@ ## Meta Audience Network Flutter Mediation Adapter Changelog +#### Version 1.5.3 (In progress) + #### Version 1.5.2 - Updated minimum Flutter version to 3.38.1 - Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 diff --git a/packages/mediation/gma_mediation_meta/android/build.gradle b/packages/mediation/gma_mediation_meta/android/build.gradle index 85761cde4..09e2805af 100644 --- a/packages/mediation/gma_mediation_meta/android/build.gradle +++ b/packages/mediation/gma_mediation_meta/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_meta' -version = "1.5.2" +version = "1.5.3" buildscript { ext.kotlin_version = '2.3.0' @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "6.21.0.2" + stringVersion = "6.21.0.3" } android { diff --git a/packages/mediation/gma_mediation_meta/ios/gma_mediation_meta.podspec b/packages/mediation/gma_mediation_meta/ios/gma_mediation_meta.podspec index 2bb63df08..ab8aba46f 100644 --- a/packages/mediation/gma_mediation_meta/ios/gma_mediation_meta.podspec +++ b/packages/mediation/gma_mediation_meta/ios/gma_mediation_meta.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_meta' - s.version = '1.5.2' + s.version = '1.5.3' s.summary = 'Google Mobile Ads Mediation of Meta Audience Network.' s.description = <<-DESC Mediation Adapter for Meta Audience Network to use with Google Mobile Ads. @@ -16,7 +16,7 @@ Mediation Adapter for Meta Audience Network to use with Google Mobile Ads. s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationFacebook', '~> 6.21.1.0' + s.dependency 'GoogleMobileAdsMediationFacebook', '~> 6.21.1.1' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_meta/pubspec.yaml b/packages/mediation/gma_mediation_meta/pubspec.yaml index 2316938cd..92fd94cd5 100644 --- a/packages/mediation/gma_mediation_meta/pubspec.yaml +++ b/packages/mediation/gma_mediation_meta/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_meta description: "Mediation Adapter that enables sending ad requests to the Meta Audience Network ad network using the google_mobile_ads plugin." -version: 1.5.2 +version: 1.5.3 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_meta environment: From 353eb3aec403aae8ac94713ad63adc5e53a38fb8 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 18 May 2026 14:53:04 -0700 Subject: [PATCH 223/251] Updating AppLovin Flutter mediation plugin to support the latest adapters (13.6.2.0, 13.6.2.0) PiperOrigin-RevId: 917440431 --- packages/mediation/gma_mediation_applovin/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_applovin/android/build.gradle | 2 +- .../gma_mediation_applovin/ios/gma_mediation_applovin.podspec | 4 ++-- packages/mediation/gma_mediation_applovin/pubspec.yaml | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/mediation/gma_mediation_applovin/CHANGELOG.md b/packages/mediation/gma_mediation_applovin/CHANGELOG.md index 941011334..cef741c15 100644 --- a/packages/mediation/gma_mediation_applovin/CHANGELOG.md +++ b/packages/mediation/gma_mediation_applovin/CHANGELOG.md @@ -1,5 +1,7 @@ ## AppLovin Flutter Mediation Adapter Changelog +#### Version 2.6.1 (In progress) + #### Version 2.6.0 - Updated minimum Flutter version to 3.38.1. - Updated to support Google Mobile Ads Flutter Plugin version 8.0.0. diff --git a/packages/mediation/gma_mediation_applovin/android/build.gradle b/packages/mediation/gma_mediation_applovin/android/build.gradle index 202af56f7..e17dd2462 100644 --- a/packages/mediation/gma_mediation_applovin/android/build.gradle +++ b/packages/mediation/gma_mediation_applovin/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_applovin' -version = "2.6.0" +version = "2.6.1" buildscript { ext.kotlin_version = '2.3.0' diff --git a/packages/mediation/gma_mediation_applovin/ios/gma_mediation_applovin.podspec b/packages/mediation/gma_mediation_applovin/ios/gma_mediation_applovin.podspec index 5c3e533f6..8d67c7064 100644 --- a/packages/mediation/gma_mediation_applovin/ios/gma_mediation_applovin.podspec +++ b/packages/mediation/gma_mediation_applovin/ios/gma_mediation_applovin.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_applovin' - s.version = '2.6.0' + s.version = '2.6.1' s.summary = 'Google Mobile Ads Mediation of AppLovin.' s.description = <<-DESC Mediation Adapter for AppLovin to use with Google Mobile Ads. @@ -16,7 +16,7 @@ Mediation Adapter for AppLovin to use with Google Mobile Ads. s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationAppLovin', '~> 13.6.1.0' + s.dependency 'GoogleMobileAdsMediationAppLovin', '~> 13.6.2.0' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_applovin/pubspec.yaml b/packages/mediation/gma_mediation_applovin/pubspec.yaml index 4f294bea6..22a0b0c41 100644 --- a/packages/mediation/gma_mediation_applovin/pubspec.yaml +++ b/packages/mediation/gma_mediation_applovin/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_applovin description: "Mediation Adapter that enables sending ad requests to the AppLovin ad network using the google_mobile_ads plugin." -version: 2.6.0 +version: 2.6.1 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_applovin environment: From d84545eb33c51e7f873d529e92e6705b17cb322b Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 18 May 2026 14:54:29 -0700 Subject: [PATCH 224/251] Updating Chartboost Flutter mediation plugin to support the latest adapters (9.12.0.0, 9.12.0.0) PiperOrigin-RevId: 917441156 --- packages/mediation/gma_mediation_chartboost/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_chartboost/android/build.gradle | 4 ++-- .../ios/gma_mediation_chartboost.podspec | 4 ++-- packages/mediation/gma_mediation_chartboost/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_chartboost/CHANGELOG.md b/packages/mediation/gma_mediation_chartboost/CHANGELOG.md index d0c8846df..9c0a0f891 100644 --- a/packages/mediation/gma_mediation_chartboost/CHANGELOG.md +++ b/packages/mediation/gma_mediation_chartboost/CHANGELOG.md @@ -1,5 +1,7 @@ ## Chartboost Flutter Mediation Adapter Changelog +#### Version 1.5.0 (In progress) + #### Version 1.4.2 - Updated minimum Flutter version to 3.38.1. - Updated to support Google Mobile Ads Flutter Plugin version 8.0.0. diff --git a/packages/mediation/gma_mediation_chartboost/android/build.gradle b/packages/mediation/gma_mediation_chartboost/android/build.gradle index 8112c9b84..913247ccd 100644 --- a/packages/mediation/gma_mediation_chartboost/android/build.gradle +++ b/packages/mediation/gma_mediation_chartboost/android/build.gradle @@ -1,5 +1,5 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_chartboost" -version = "1.4.2" +version = "1.5.0" buildscript { ext.kotlin_version = "2.3.0" @@ -28,7 +28,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "9.11.1.1" + stringVersion = "9.12.0.0" } android { diff --git a/packages/mediation/gma_mediation_chartboost/ios/gma_mediation_chartboost.podspec b/packages/mediation/gma_mediation_chartboost/ios/gma_mediation_chartboost.podspec index a86174e73..fc97ed2d7 100644 --- a/packages/mediation/gma_mediation_chartboost/ios/gma_mediation_chartboost.podspec +++ b/packages/mediation/gma_mediation_chartboost/ios/gma_mediation_chartboost.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_chartboost' - s.version = '1.4.2' + s.version = '1.5.0' s.summary = 'Google Mobile Ads Mediation of Chartboost.' s.description = <<-DESC Mediation Adapter for Chartboost to use with Google Mobile Ads. @@ -11,7 +11,7 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationChartboost', '~>9.11.0.3' + s.dependency 'GoogleMobileAdsMediationChartboost', '~>9.12.0.0' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_chartboost/pubspec.yaml b/packages/mediation/gma_mediation_chartboost/pubspec.yaml index 8c2000cfd..6d65fedeb 100644 --- a/packages/mediation/gma_mediation_chartboost/pubspec.yaml +++ b/packages/mediation/gma_mediation_chartboost/pubspec.yaml @@ -1,7 +1,7 @@ name: gma_mediation_chartboost description: 'Mediation Adapter that enables sending ad requests to the Chartboost ad network using the google_mobile_ads plugin.' -version: 1.4.2 +version: 1.5.0 environment: sdk: '>=3.10.0 <4.0.0' flutter: '>=3.38.1' From 2d85fe53ba954c09fa5097a853fd81cebe367703 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 18 May 2026 14:56:40 -0700 Subject: [PATCH 225/251] Updating BidMachine Flutter mediation plugin to support the latest adapters (3.7.0.0, 3.6.1.1) PiperOrigin-RevId: 917442170 --- packages/mediation/gma_mediation_bidmachine/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_bidmachine/android/build.gradle | 4 ++-- .../ios/gma_mediation_bidmachine.podspec | 4 ++-- packages/mediation/gma_mediation_bidmachine/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md b/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md index 7b0a372ed..f91a9effe 100644 --- a/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md +++ b/packages/mediation/gma_mediation_bidmachine/CHANGELOG.md @@ -1,5 +1,7 @@ ## BidMachine Flutter Mediation Adapter Changelog +#### Version 1.4.0 (In progress) + #### Version 1.3.2 - Updated minimum Flutter version to 3.38.1 - Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 diff --git a/packages/mediation/gma_mediation_bidmachine/android/build.gradle b/packages/mediation/gma_mediation_bidmachine/android/build.gradle index a71cf0f72..74dd0602f 100644 --- a/packages/mediation/gma_mediation_bidmachine/android/build.gradle +++ b/packages/mediation/gma_mediation_bidmachine/android/build.gradle @@ -1,5 +1,5 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_bidmachine" -version = "1.3.2" +version = "1.4.0" buildscript { ext.kotlin_version = "2.3.0" @@ -25,7 +25,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "3.6.1.0" + stringVersion = "3.7.0.0" } android { diff --git a/packages/mediation/gma_mediation_bidmachine/ios/gma_mediation_bidmachine.podspec b/packages/mediation/gma_mediation_bidmachine/ios/gma_mediation_bidmachine.podspec index 5c9822e18..fdc237f7a 100644 --- a/packages/mediation/gma_mediation_bidmachine/ios/gma_mediation_bidmachine.podspec +++ b/packages/mediation/gma_mediation_bidmachine/ios/gma_mediation_bidmachine.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_bidmachine' - s.version = '1.3.2' + s.version = '1.4.0' s.summary = 'Google Mobile Ads Mediation of BidMachine.' s.description = <<-DESC Mediation Adapter for BidMachine to use with Google Mobile Ads. @@ -11,7 +11,7 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationBidMachine', '~> 3.6.0.0' + s.dependency 'GoogleMobileAdsMediationBidMachine', '~> 3.6.1.1' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_bidmachine/pubspec.yaml b/packages/mediation/gma_mediation_bidmachine/pubspec.yaml index 96d08fe02..7ebb4e856 100644 --- a/packages/mediation/gma_mediation_bidmachine/pubspec.yaml +++ b/packages/mediation/gma_mediation_bidmachine/pubspec.yaml @@ -1,7 +1,7 @@ name: gma_mediation_bidmachine description: 'Mediation Adapter that enables sending ad requests to the BidMachine ad network using the google_mobile_ads plugin.' -version: 1.3.2 +version: 1.4.0 environment: sdk: '>=3.10.0 <4.0.0' flutter: '>=3.38.1' From 9a7a1bfdb28a73aed10c3391998ce92efb851c07 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 18 May 2026 14:57:33 -0700 Subject: [PATCH 226/251] Updating MyTarget Flutter mediation plugin to support the latest adapters (5.47.1.0, 5.42.1.0) PiperOrigin-RevId: 917442591 --- packages/mediation/gma_mediation_mytarget/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_mytarget/android/build.gradle | 4 ++-- .../gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec | 4 ++-- packages/mediation/gma_mediation_mytarget/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_mytarget/CHANGELOG.md b/packages/mediation/gma_mediation_mytarget/CHANGELOG.md index ef040bd72..25d429174 100644 --- a/packages/mediation/gma_mediation_mytarget/CHANGELOG.md +++ b/packages/mediation/gma_mediation_mytarget/CHANGELOG.md @@ -1,5 +1,7 @@ ## myTarget Flutter Mediation Adapter Changelog +#### Version 1.10.0 (In progress) + #### Version 1.9.0 - Updated minimum Flutter version to 3.38.1. - Updated to support Google Mobile Ads Flutter Plugin version 8.0.0. diff --git a/packages/mediation/gma_mediation_mytarget/android/build.gradle b/packages/mediation/gma_mediation_mytarget/android/build.gradle index 36741b903..b586982de 100644 --- a/packages/mediation/gma_mediation_mytarget/android/build.gradle +++ b/packages/mediation/gma_mediation_mytarget/android/build.gradle @@ -1,5 +1,5 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_mytarget" -version = "1.9.0" +version = "1.10.0" buildscript { ext.kotlin_version = "2.3.0" @@ -25,7 +25,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "5.45.3.0" + stringVersion = "5.47.1.0" } android { diff --git a/packages/mediation/gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec b/packages/mediation/gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec index 4f586ca54..8298f7a07 100644 --- a/packages/mediation/gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec +++ b/packages/mediation/gma_mediation_mytarget/ios/gma_mediation_mytarget.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_mytarget' - s.version = '1.9.0' + s.version = '1.10.0' s.summary = 'Google Mobile Ads Mediation of mytarget.' s.description = <<-DESC Mediation Adapter for mytarget to use with Google Mobile Ads. @@ -11,7 +11,7 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationMyTarget', '~>5.40.0.0' + s.dependency 'GoogleMobileAdsMediationMyTarget', '~>5.42.1.0' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_mytarget/pubspec.yaml b/packages/mediation/gma_mediation_mytarget/pubspec.yaml index 48bca1d6e..facce0a3d 100644 --- a/packages/mediation/gma_mediation_mytarget/pubspec.yaml +++ b/packages/mediation/gma_mediation_mytarget/pubspec.yaml @@ -1,7 +1,7 @@ name: gma_mediation_mytarget description: 'Mediation Adapter that enables sending ad requests to the mytarget ad network using the google_mobile_ads plugin.' -version: 1.9.0 +version: 1.10.0 environment: sdk: ^3.10.0 flutter: '>=3.38.1' From 9ac55bf0b27c4ba66884add2082eaf4a74ba707e Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 18 May 2026 15:00:26 -0700 Subject: [PATCH 227/251] Updating Moloco Flutter mediation plugin to support the latest adapters (4.8.0.0, 4.6.1.1) PiperOrigin-RevId: 917443901 --- packages/mediation/gma_mediation_moloco/CHANGELOG.md | 2 ++ packages/mediation/gma_mediation_moloco/android/build.gradle | 4 ++-- .../gma_mediation_moloco/ios/gma_mediation_moloco.podspec | 4 ++-- packages/mediation/gma_mediation_moloco/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_moloco/CHANGELOG.md b/packages/mediation/gma_mediation_moloco/CHANGELOG.md index 6f8447213..8da44adab 100644 --- a/packages/mediation/gma_mediation_moloco/CHANGELOG.md +++ b/packages/mediation/gma_mediation_moloco/CHANGELOG.md @@ -1,5 +1,7 @@ ## Moloco Flutter Mediation Adapter Changelog +#### Version 3.5.0 (In progress) + #### Version 3.4.0 - Updated minimum Flutter version to 3.38.1 - Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 diff --git a/packages/mediation/gma_mediation_moloco/android/build.gradle b/packages/mediation/gma_mediation_moloco/android/build.gradle index fbff689ed..6d21e4ed1 100644 --- a/packages/mediation/gma_mediation_moloco/android/build.gradle +++ b/packages/mediation/gma_mediation_moloco/android/build.gradle @@ -1,5 +1,5 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_moloco" -version = "3.4.0" +version = "3.5.0" buildscript { ext.kotlin_version = "2.3.0" @@ -25,7 +25,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "4.7.0.0" + stringVersion = "4.8.0.0" } android { diff --git a/packages/mediation/gma_mediation_moloco/ios/gma_mediation_moloco.podspec b/packages/mediation/gma_mediation_moloco/ios/gma_mediation_moloco.podspec index 1184d5d7d..2b78abdbc 100644 --- a/packages/mediation/gma_mediation_moloco/ios/gma_mediation_moloco.podspec +++ b/packages/mediation/gma_mediation_moloco/ios/gma_mediation_moloco.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_moloco' - s.version = '3.4.0' + s.version = '3.5.0' s.summary = 'Google Mobile Ads Mediation of Moloco.' s.description = <<-DESC Mediation Adapter for Moloco to use with Google Mobile Ads. @@ -11,7 +11,7 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationMoloco', '~> 4.5.1.0' + s.dependency 'GoogleMobileAdsMediationMoloco', '~> 4.6.1.1' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_moloco/pubspec.yaml b/packages/mediation/gma_mediation_moloco/pubspec.yaml index 6958cf39f..f92f2ad11 100644 --- a/packages/mediation/gma_mediation_moloco/pubspec.yaml +++ b/packages/mediation/gma_mediation_moloco/pubspec.yaml @@ -1,7 +1,7 @@ name: gma_mediation_moloco description: 'Mediation Adapter that enables sending ad requests to the Moloco ad network using the google_mobile_ads plugin.' -version: 3.4.0 +version: 3.5.0 environment: sdk: '>=3.10.0 <4.0.0' flutter: '>=3.38.1' From efe9aed752c5c2393995b2bcaaa5c01e21b71669 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 18 May 2026 15:01:48 -0700 Subject: [PATCH 228/251] Updating PubMatic Flutter mediation plugin to support the latest adapters (5.1.1.0, 5.1.0.1) PiperOrigin-RevId: 917444567 --- packages/mediation/gma_mediation_pubmatic/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_pubmatic/android/build.gradle | 4 ++-- .../gma_mediation_pubmatic/ios/gma_mediation_pubmatic.podspec | 4 ++-- packages/mediation/gma_mediation_pubmatic/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md b/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md index fda4ff60e..d1f83ae84 100644 --- a/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md +++ b/packages/mediation/gma_mediation_pubmatic/CHANGELOG.md @@ -1,5 +1,7 @@ ## Pubmatic Flutter Mediation Adapter Changelog +#### Version 2.1.0 (In progress) + #### Version 2.0.0 - Updated minimum Flutter version to 3.38.1 - Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 diff --git a/packages/mediation/gma_mediation_pubmatic/android/build.gradle b/packages/mediation/gma_mediation_pubmatic/android/build.gradle index 4cafee980..7672cceb5 100644 --- a/packages/mediation/gma_mediation_pubmatic/android/build.gradle +++ b/packages/mediation/gma_mediation_pubmatic/android/build.gradle @@ -1,5 +1,5 @@ group = "io.flutter.plugins.googlemobileads.mediation.gma_mediation_pubmatic" -version = "2.0.0" +version = "2.1.0" buildscript { ext.kotlin_version = "2.3.0" @@ -25,7 +25,7 @@ apply plugin: "com.android.library" apply plugin: "kotlin-android" ext { - stringVersion = "5.0.0.1" + stringVersion = "5.1.1.0" } android { diff --git a/packages/mediation/gma_mediation_pubmatic/ios/gma_mediation_pubmatic.podspec b/packages/mediation/gma_mediation_pubmatic/ios/gma_mediation_pubmatic.podspec index 71ecff828..d5a54ab24 100644 --- a/packages/mediation/gma_mediation_pubmatic/ios/gma_mediation_pubmatic.podspec +++ b/packages/mediation/gma_mediation_pubmatic/ios/gma_mediation_pubmatic.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'gma_mediation_pubmatic' - s.version = '2.0.0' + s.version = '2.1.0' s.summary = 'Google Mobile Ads Mediation of Pubmatic.' s.description = <<-DESC Mediation Adapter for Pubmatic to use with Google Mobile Ads. @@ -11,7 +11,7 @@ Pod::Spec.new do |s| s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationPubMatic', '~> 5.0.1.0' + s.dependency 'GoogleMobileAdsMediationPubMatic', '~> 5.1.0.1' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_pubmatic/pubspec.yaml b/packages/mediation/gma_mediation_pubmatic/pubspec.yaml index a0ad85cc7..8e5580cff 100644 --- a/packages/mediation/gma_mediation_pubmatic/pubspec.yaml +++ b/packages/mediation/gma_mediation_pubmatic/pubspec.yaml @@ -1,7 +1,7 @@ name: gma_mediation_pubmatic description: 'Mediation Adapter that enables sending ad requests to the Pubmatic ad network using the google_mobile_ads plugin.' -version: 2.0.0 +version: 2.1.0 environment: sdk: '>=3.10.0 <4.0.0' flutter: '>=3.38.1' From d79eb8896933b9e2bfeaab59c89e35e7320cde66 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 18 May 2026 15:02:46 -0700 Subject: [PATCH 229/251] Updating Liftoff Flutter mediation plugin to support the latest adapters (7.7.4.0, 7.7.2.1) PiperOrigin-RevId: 917445127 --- packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md | 2 ++ .../gma_mediation_liftoffmonetize/android/build.gradle | 4 ++-- .../ios/gma_mediation_liftoffmonetize.podspec | 4 ++-- packages/mediation/gma_mediation_liftoffmonetize/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md b/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md index e16d0ff79..092d685dc 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md +++ b/packages/mediation/gma_mediation_liftoffmonetize/CHANGELOG.md @@ -1,5 +1,7 @@ ## Liftoff Monetize Flutter Mediation Adapter Changelog +#### Version 1.5.1 (In progress) + #### Version 1.5.0 - Updated minimum Flutter version to 3.38.1. - Updated to support Google Mobile Ads Flutter Plugin version 8.0.0. diff --git a/packages/mediation/gma_mediation_liftoffmonetize/android/build.gradle b/packages/mediation/gma_mediation_liftoffmonetize/android/build.gradle index 7571907cc..7251370a0 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/android/build.gradle +++ b/packages/mediation/gma_mediation_liftoffmonetize/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_liftoffmonetize' -version = "1.5.0" +version = "1.5.1" buildscript { ext.kotlin_version = '2.3.0' @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "7.7.2.0" + stringVersion = "7.7.4.0" } android { diff --git a/packages/mediation/gma_mediation_liftoffmonetize/ios/gma_mediation_liftoffmonetize.podspec b/packages/mediation/gma_mediation_liftoffmonetize/ios/gma_mediation_liftoffmonetize.podspec index 1164c809e..0e51e241e 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/ios/gma_mediation_liftoffmonetize.podspec +++ b/packages/mediation/gma_mediation_liftoffmonetize/ios/gma_mediation_liftoffmonetize.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_liftoffmonetize' - s.version = '1.5.0' + s.version = '1.5.1' s.summary = 'Google Mobile Ads Mediation of Liftoff Monetize.' s.description = <<-DESC Mediation Adapter for Liftoff Monetize to use with Google Mobile Ads. @@ -15,7 +15,7 @@ Mediation Adapter for Liftoff Monetize to use with Google Mobile Ads. s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.public_header_files = 'Public/**/*.h' - s.dependency 'GoogleMobileAdsMediationVungle', '~>7.7.1.0' + s.dependency 'GoogleMobileAdsMediationVungle', '~>7.7.2.1' s.dependency 'Flutter' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_liftoffmonetize/pubspec.yaml b/packages/mediation/gma_mediation_liftoffmonetize/pubspec.yaml index 2868b46e3..9e9709b4a 100644 --- a/packages/mediation/gma_mediation_liftoffmonetize/pubspec.yaml +++ b/packages/mediation/gma_mediation_liftoffmonetize/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_liftoffmonetize description: "Mediation Adapter that enables sending ad requests to the LiftoffMonetize ad network using the google_mobile_ads plugin." -version: 1.5.0 +version: 1.5.1 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_liftoffmonetize environment: From 5b71df6f576264c5dfe095872448cda1ae20386f Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 18 May 2026 15:05:01 -0700 Subject: [PATCH 230/251] Updating DTExchange Flutter mediation plugin to support the latest adapters (8.4.5.0, 8.4.7.1) PiperOrigin-RevId: 917446274 --- packages/mediation/gma_mediation_dtexchange/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_dtexchange/android/build.gradle | 4 ++-- .../ios/gma_mediation_dtexchange.podspec | 4 ++-- packages/mediation/gma_mediation_dtexchange/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md b/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md index cf68af3bd..9ce2afe80 100644 --- a/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md +++ b/packages/mediation/gma_mediation_dtexchange/CHANGELOG.md @@ -1,5 +1,7 @@ ## DT Exchange Flutter Mediation Adapter Changelog +#### Version 1.3.5 (In progress) + #### Version 1.3.4 - Updated minimum Flutter version to 3.38.1 - Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 diff --git a/packages/mediation/gma_mediation_dtexchange/android/build.gradle b/packages/mediation/gma_mediation_dtexchange/android/build.gradle index 495aa1127..76afe3c8f 100644 --- a/packages/mediation/gma_mediation_dtexchange/android/build.gradle +++ b/packages/mediation/gma_mediation_dtexchange/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_dtexchange' -version = "1.3.4" +version = "1.3.5" buildscript { ext.kotlin_version = '2.3.0' @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "8.4.4.0" + stringVersion = "8.4.5.0" } android { diff --git a/packages/mediation/gma_mediation_dtexchange/ios/gma_mediation_dtexchange.podspec b/packages/mediation/gma_mediation_dtexchange/ios/gma_mediation_dtexchange.podspec index d7a20b4f3..6bb9aa49f 100644 --- a/packages/mediation/gma_mediation_dtexchange/ios/gma_mediation_dtexchange.podspec +++ b/packages/mediation/gma_mediation_dtexchange/ios/gma_mediation_dtexchange.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_dtexchange' - s.version = '1.3.4' + s.version = '1.3.5' s.summary = 'Google Mobile Ads Mediation of DT Exchange.' s.description = <<-DESC Mediation Adapter for DT Exchange to use with Google Mobile Ads. @@ -16,7 +16,7 @@ Mediation Adapter for DT Exchange to use with Google Mobile Ads. s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationFyber', '~> 8.4.6.0' + s.dependency 'GoogleMobileAdsMediationFyber', '~> 8.4.7.1' s.platform = :ios, '13.0' s.static_framework = true # Flutter.framework does not contain a i386 slice. diff --git a/packages/mediation/gma_mediation_dtexchange/pubspec.yaml b/packages/mediation/gma_mediation_dtexchange/pubspec.yaml index 606ef4741..c91945c9e 100644 --- a/packages/mediation/gma_mediation_dtexchange/pubspec.yaml +++ b/packages/mediation/gma_mediation_dtexchange/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_dtexchange description: "Mediation Adapter that enables sending ad requests to the DT Exchange ad network using the google_mobile_ads plugin." -version: 1.3.4 +version: 1.3.5 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_dtexchange environment: From b08bb0b053d872b67f4454146194b7082e4b626b Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 18 May 2026 15:06:13 -0700 Subject: [PATCH 231/251] Updating UnityAds Flutter mediation plugin to support the latest adapters (4.18.0.0, 4.18.0.0) PiperOrigin-RevId: 917446925 --- packages/mediation/gma_mediation_unity/CHANGELOG.md | 2 ++ packages/mediation/gma_mediation_unity/android/build.gradle | 4 ++-- .../gma_mediation_unity/ios/gma_mediation_unity.podspec | 4 ++-- packages/mediation/gma_mediation_unity/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_unity/CHANGELOG.md b/packages/mediation/gma_mediation_unity/CHANGELOG.md index 122972e32..b1d2e2a37 100644 --- a/packages/mediation/gma_mediation_unity/CHANGELOG.md +++ b/packages/mediation/gma_mediation_unity/CHANGELOG.md @@ -1,5 +1,7 @@ ## Unity Ads Flutter Mediation Adapter Changelog +#### Version 1.8.0 (In progress) + #### Version 1.7.0 - Updated minimum Flutter version to 3.38.1. - Updated to support Google Mobile Ads Flutter Plugin version 8.0.0. diff --git a/packages/mediation/gma_mediation_unity/android/build.gradle b/packages/mediation/gma_mediation_unity/android/build.gradle index aa48e665a..4b88dac7c 100644 --- a/packages/mediation/gma_mediation_unity/android/build.gradle +++ b/packages/mediation/gma_mediation_unity/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_unity' -version = "1.7.0" +version = "1.8.0" buildscript { ext.kotlin_version = '2.3.0' @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "4.17.0.0" + stringVersion = "4.18.0.0" } android { diff --git a/packages/mediation/gma_mediation_unity/ios/gma_mediation_unity.podspec b/packages/mediation/gma_mediation_unity/ios/gma_mediation_unity.podspec index b2671c46b..5d7c951bc 100644 --- a/packages/mediation/gma_mediation_unity/ios/gma_mediation_unity.podspec +++ b/packages/mediation/gma_mediation_unity/ios/gma_mediation_unity.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_unity' - s.version = '1.7.0' + s.version = '1.8.0' s.summary = 'Google Mobile Ads Mediation of Unity Ads.' s.description = <<-DESC Mediation Adapter for Unity Ads to use with Google Mobile Ads. @@ -16,7 +16,7 @@ Mediation Adapter for Unity Ads to use with Google Mobile Ads. s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationUnity', '~>4.17.0.0' + s.dependency 'GoogleMobileAdsMediationUnity', '~>4.18.0.0' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_unity/pubspec.yaml b/packages/mediation/gma_mediation_unity/pubspec.yaml index 65280a58c..965ab5eb7 100644 --- a/packages/mediation/gma_mediation_unity/pubspec.yaml +++ b/packages/mediation/gma_mediation_unity/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_unity description: "Mediation Adapter that enables sending ad requests to the Unity ad network using the google_mobile_ads plugin." -version: 1.7.0 +version: 1.8.0 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_unity environment: From 870fa407b4f323b82a1eaeccfb4a52bf0a48d615 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Mon, 18 May 2026 15:07:20 -0700 Subject: [PATCH 232/251] Updating Mintegral Flutter mediation plugin to support the latest adapters (17.1.61.0, 8.1.3.1) PiperOrigin-RevId: 917447451 --- packages/mediation/gma_mediation_mintegral/CHANGELOG.md | 2 ++ .../mediation/gma_mediation_mintegral/android/build.gradle | 4 ++-- .../ios/gma_mediation_mintegral.podspec | 4 ++-- packages/mediation/gma_mediation_mintegral/pubspec.yaml | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/mediation/gma_mediation_mintegral/CHANGELOG.md b/packages/mediation/gma_mediation_mintegral/CHANGELOG.md index 86494bca9..3459aa49d 100644 --- a/packages/mediation/gma_mediation_mintegral/CHANGELOG.md +++ b/packages/mediation/gma_mediation_mintegral/CHANGELOG.md @@ -1,5 +1,7 @@ ## Mintegral Flutter Mediation Adapter Changelog +#### Version 2.1.1 (In progress) + #### Version 2.1.0 - Updated minimum Flutter version to 3.38.1. - Updated to support Google Mobile Ads Flutter Plugin version 8.0.0. diff --git a/packages/mediation/gma_mediation_mintegral/android/build.gradle b/packages/mediation/gma_mediation_mintegral/android/build.gradle index 4e70fb36c..af54b3f1e 100644 --- a/packages/mediation/gma_mediation_mintegral/android/build.gradle +++ b/packages/mediation/gma_mediation_mintegral/android/build.gradle @@ -1,5 +1,5 @@ group 'io.flutter.plugins.googlemobileads.mediation.gma_mediation_mintegral' -version = "2.1.0" +version = "2.1.1" buildscript { ext.kotlin_version = '2.3.0' @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' ext { - stringVersion = "17.1.41.0" + stringVersion = "17.1.61.0" } android { diff --git a/packages/mediation/gma_mediation_mintegral/ios/gma_mediation_mintegral.podspec b/packages/mediation/gma_mediation_mintegral/ios/gma_mediation_mintegral.podspec index 6057fb0d4..1cd188c39 100644 --- a/packages/mediation/gma_mediation_mintegral/ios/gma_mediation_mintegral.podspec +++ b/packages/mediation/gma_mediation_mintegral/ios/gma_mediation_mintegral.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'gma_mediation_mintegral' - s.version = '2.1.0' + s.version = '2.1.1' s.summary = 'Google Mobile Ads Mediation of Mintegral.' s.description = <<-DESC Mediation Adapter for Mintegral to use with Google Mobile Ads. @@ -16,7 +16,7 @@ Mediation Adapter for Mintegral to use with Google Mobile Ads. s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h' s.dependency 'Flutter' - s.dependency 'GoogleMobileAdsMediationMintegral', '~>8.1.1.0' + s.dependency 'GoogleMobileAdsMediationMintegral', '~>8.1.3.1' s.platform = :ios, '13.0' s.static_framework = true diff --git a/packages/mediation/gma_mediation_mintegral/pubspec.yaml b/packages/mediation/gma_mediation_mintegral/pubspec.yaml index e88aedd0c..ce32c1f8f 100644 --- a/packages/mediation/gma_mediation_mintegral/pubspec.yaml +++ b/packages/mediation/gma_mediation_mintegral/pubspec.yaml @@ -1,6 +1,6 @@ name: gma_mediation_mintegral description: "Mediation Adapter that enables sending ad requests to the Mintegral ad network using the google_mobile_ads plugin." -version: 2.1.0 +version: 2.1.1 repository: https://github.com/googleads/googleads-mobile-flutter/tree/main/packages/mediation/gma_mediation_mintegral environment: From ea369fadb7f956074a6f7d1ede630ca3f5384b49 Mon Sep 17 00:00:00 2001 From: Mobile Ads Developer Relations Date: Wed, 20 May 2026 10:50:10 -0700 Subject: [PATCH 233/251] Update I-mobile Flutter Adapter version to 1.0.3 PiperOrigin-RevId: 918535470 --- packages/mediation/gma_mediation_imobile/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/mediation/gma_mediation_imobile/CHANGELOG.md b/packages/mediation/gma_mediation_imobile/CHANGELOG.md index d1b467495..5a8a0204f 100644 --- a/packages/mediation/gma_mediation_imobile/CHANGELOG.md +++ b/packages/mediation/gma_mediation_imobile/CHANGELOG.md @@ -1,8 +1,11 @@ ## i-mobile Flutter Mediation Adapter Changelog -#### Version 1.0.3 (In progress) +#### Version 1.0.3 - Updated minimum Flutter version to 3.38.1 - Updated to support Google Mobile Ads Flutter Plugin version 8.0.0 +* Supports [i-mobile Android adapter version 2.3.2.3](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/imobile/CHANGELOG.md#version-2323). +* Supports [i-mobile iOS adapter version 2.3.4.6](https://github.com/googleads/googleads-mobile-ios-mediation/blob/main/adapters/I-Mobile/CHANGELOG.md#version-2346). +* Built and tested with the Google Mobile Ads Flutter Plugin version 8.0.0. #### Version 1.0.2 * Supports [i-mobile Android adapter version 2.3.2.1](https://github.com/googleads/googleads-mobile-android-mediation/blob/main/ThirdPartyAdapters/imobile/CHANGELOG.md#version-2321). From d18b6c3d37c5d999edbdc7761efe474f47821466 Mon Sep 17 00:00:00 2001 From: LTphantom Date: Wed, 27 May 2026 11:29:25 -0700 Subject: [PATCH 234/251] Adding Next Gen GMA SDK for Android (#1434) * Updated classes in the main src folder * Split play services Classes * Updated src folder name to useNextGenSdk * Native Ads fix * Fixed Android tests * Fixed iOS tests * Fixed samples * Cleaned mediation sample * Fixed Info.plist * Fixed Runner.scheme --- .../google_mobile_ads/android/build.gradle | 33 +- .../ads/nativetemplates/TemplateView.java | 295 ++++++ .../googlemobileads/AdInstanceManager.java | 245 +++++ .../googlemobileads/BannerAdCreator.java | 34 + .../FluidAdManagerBannerAd.java | 124 +++ .../plugins/googlemobileads/FlutterAd.java | 397 +++++++++ .../googlemobileads/FlutterAdInspector.java | 37 + .../googlemobileads/FlutterAdListener.java | 135 +++ .../googlemobileads/FlutterAdLoader.java | 122 +++ .../FlutterAdManagerAdRequest.java | 185 ++++ .../FlutterAdManagerBannerAd.java | 40 + .../FlutterAdManagerInterstitialAd.java | 45 + .../googlemobileads/FlutterAdRequest.java | 409 +++++++++ .../googlemobileads/FlutterAdSize.java | 200 +++++ .../googlemobileads/FlutterAdapterStatus.java | 92 ++ .../googlemobileads/FlutterAppOpenAd.java | 130 +++ .../googlemobileads/FlutterBannerAd.java | 165 ++++ .../FlutterFullScreenContentCallback.java | 66 ++ .../FlutterInitializationListener.java | 54 ++ .../FlutterInitializationStatus.java | 44 + .../FlutterInterstitialAd.java | 120 +++ .../FlutterMobileAdsWrapper.java | 136 +++ .../googlemobileads/FlutterNativeAd.java | 271 ++++++ .../FlutterRequestConfiguration.java | 205 +++++ .../googlemobileads/FlutterRewardedAd.java | 213 +++++ .../FlutterRewardedInterstitialAd.java | 186 ++++ .../FlutterServerSideVerificationOptions.java | 64 ++ .../googlemobileads/NativeAdFactory.java | 40 + .../res/layout/gnt_medium_template_view.xml | 231 +++++ .../res/layout/gnt_small_template_view.xml | 189 ++++ .../googlemobileads/AdMessageCodec.java | 8 +- .../FlutterMediationExtras.java | 1 + .../GoogleMobileAdsPlugin.java | 106 +-- .../UserMessagingPlatformManager.java | 1 + .../ads/nativetemplates/TemplateView.java | 0 .../googlemobileads/AdInstanceManager.java | 0 .../googlemobileads/BannerAdCreator.java | 0 .../FluidAdManagerBannerAd.java | 0 .../plugins/googlemobileads/FlutterAd.java | 0 .../googlemobileads/FlutterAdInspector.java | 34 + .../googlemobileads/FlutterAdListener.java | 0 .../googlemobileads/FlutterAdLoader.java | 0 .../FlutterAdManagerAdRequest.java | 0 .../FlutterAdManagerBannerAd.java | 0 .../FlutterAdManagerInterstitialAd.java | 0 .../googlemobileads/FlutterAdRequest.java | 0 .../googlemobileads/FlutterAdSize.java | 0 .../googlemobileads/FlutterAdapterStatus.java | 0 .../googlemobileads/FlutterAppOpenAd.java | 0 .../googlemobileads/FlutterBannerAd.java | 0 .../FlutterFullScreenContentCallback.java | 0 .../FlutterInitializationListener.java | 52 ++ .../FlutterInitializationStatus.java | 0 .../FlutterInterstitialAd.java | 0 .../FlutterMobileAdsWrapper.java | 1 - .../googlemobileads/FlutterNativeAd.java | 1 - .../FlutterPaidEventListener.java | 0 .../FlutterRequestConfiguration.java | 163 ++++ .../googlemobileads/FlutterRewardedAd.java | 0 .../FlutterRewardedInterstitialAd.java | 0 .../FlutterServerSideVerificationOptions.java | 0 .../googlemobileads/NativeAdFactory.java | 40 + .../res/layout/gnt_medium_template_view.xml | 0 .../res/layout/gnt_small_template_view.xml | 0 .../googlemobileads/FlutterNativeAdTest.java | 11 +- .../googlemobileads/GoogleMobileAdsTest.java | 4 +- .../example/android/app/build.gradle | 31 +- .../googlemobileadsexample/MainActivity.java | 2 +- .../NativeAdFactoryExample.java | 114 +++ .../nextgengma/res/layout/my_native_ad.xml | 131 +++ .../NativeAdFactoryExample.java | 2 +- .../res/layout/my_native_ad.xml | 0 .../example/android/gradle.properties | 4 + .../ios/Runner.xcodeproj/project.pbxproj | 87 +- .../ios/RunnerTests/FLTAdRequestTest.m | 4 +- .../example/ios/RunnerTests/FLTAdUtilTest.m | 4 +- .../ios/RunnerTests/FLTAppOpenAdTest.m | 4 +- .../example/ios/RunnerTests/FLTBannerAdTest.m | 4 +- .../ios/RunnerTests/FLTFluidGAMBannerAdTest.m | 4 +- .../ios/RunnerTests/FLTGAMAdRequestTest.m | 4 +- .../ios/RunnerTests/FLTGAMBannerAdTest.m | 4 +- .../RunnerTests/FLTGamInterstitialAdTest.m | 4 +- .../ios/RunnerTests/FLTGoogleMobileAdsTest.m | 12 +- .../ios/RunnerTests/FLTInterstitialAdTest.m | 4 +- .../example/ios/RunnerTests/FLTNativeAdTest.m | 6 +- .../ios/RunnerTests/FLTRewardedAdTest.m | 4 +- .../FLTRewardedInterstitialAdTest.m | 4 +- .../FLTUserMessagingPlatformManagerTest.m | 4 +- ...FLTUserMessagingPlatformReaderWriterTest.m | 2 +- .../FLTNativeTemplateColorTest.m | 2 +- .../FLTNativeTemplateFontStyleTest.m | 2 +- .../FLTNativeTemplateStyleTest.m | 8 +- .../FLTNativeTemplateTextStyleTest.m | 2 +- .../FLTNativeTemplateTypeTest.m | 2 +- .../example/lib/reusable_inline_example.dart | 2 +- .../ios/Flutter/AppFrameworkInfo.plist | 2 - .../ios/Runner.xcodeproj/project.pbxproj | 128 ++- .../xcshareddata/xcschemes/Runner.xcscheme | 99 ++ .../ios/Runner/AppDelegate.m | 2 +- .../mediation_example/ios/Runner/Info.plist | 843 +++++++++++++----- .../MyFLTMediationNetworkExtrasProvider.h | 2 +- samples/admob/mediation_example/pubspec.yaml | 4 +- .../ios/Flutter/AppFrameworkInfo.plist | 2 - .../admob/native_platform_example/ios/Podfile | 2 +- .../ios/Runner.xcodeproj/project.pbxproj | 57 +- .../xcshareddata/xcschemes/Runner.xcscheme | 21 +- .../ios/Runner/Runner-Bridging-Header.h | 2 +- 107 files changed, 6015 insertions(+), 535 deletions(-) create mode 100644 packages/google_mobile_ads/android/src/adsNextGenSdk/java/com/google/android/ads/nativetemplates/TemplateView.java create mode 100644 packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/AdInstanceManager.java create mode 100644 packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/BannerAdCreator.java create mode 100644 packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FluidAdManagerBannerAd.java create mode 100644 packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAd.java create mode 100644 packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAdInspector.java create mode 100644 packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAdListener.java create mode 100644 packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAdLoader.java create mode 100644 packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAdManagerAdRequest.java create mode 100644 packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAdManagerBannerAd.java create mode 100644 packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAdManagerInterstitialAd.java create mode 100644 packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAdRequest.java create mode 100644 packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAdSize.java create mode 100644 packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAdapterStatus.java create mode 100644 packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAppOpenAd.java create mode 100644 packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterBannerAd.java create mode 100644 packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterFullScreenContentCallback.java create mode 100644 packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterInitializationListener.java create mode 100644 packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterInitializationStatus.java create mode 100644 packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterInterstitialAd.java create mode 100644 packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterMobileAdsWrapper.java create mode 100644 packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterNativeAd.java create mode 100644 packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterRequestConfiguration.java create mode 100644 packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterRewardedAd.java create mode 100644 packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterRewardedInterstitialAd.java create mode 100644 packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterServerSideVerificationOptions.java create mode 100644 packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/NativeAdFactory.java create mode 100644 packages/google_mobile_ads/android/src/adsNextGenSdk/res/layout/gnt_medium_template_view.xml create mode 100644 packages/google_mobile_ads/android/src/adsNextGenSdk/res/layout/gnt_small_template_view.xml rename packages/google_mobile_ads/android/src/{main => playServices}/java/com/google/android/ads/nativetemplates/TemplateView.java (100%) rename packages/google_mobile_ads/android/src/{main => playServices}/java/io/flutter/plugins/googlemobileads/AdInstanceManager.java (100%) rename packages/google_mobile_ads/android/src/{main => playServices}/java/io/flutter/plugins/googlemobileads/BannerAdCreator.java (100%) rename packages/google_mobile_ads/android/src/{main => playServices}/java/io/flutter/plugins/googlemobileads/FluidAdManagerBannerAd.java (100%) rename packages/google_mobile_ads/android/src/{main => playServices}/java/io/flutter/plugins/googlemobileads/FlutterAd.java (100%) create mode 100644 packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterAdInspector.java rename packages/google_mobile_ads/android/src/{main => playServices}/java/io/flutter/plugins/googlemobileads/FlutterAdListener.java (100%) rename packages/google_mobile_ads/android/src/{main => playServices}/java/io/flutter/plugins/googlemobileads/FlutterAdLoader.java (100%) rename packages/google_mobile_ads/android/src/{main => playServices}/java/io/flutter/plugins/googlemobileads/FlutterAdManagerAdRequest.java (100%) rename packages/google_mobile_ads/android/src/{main => playServices}/java/io/flutter/plugins/googlemobileads/FlutterAdManagerBannerAd.java (100%) rename packages/google_mobile_ads/android/src/{main => playServices}/java/io/flutter/plugins/googlemobileads/FlutterAdManagerInterstitialAd.java (100%) rename packages/google_mobile_ads/android/src/{main => playServices}/java/io/flutter/plugins/googlemobileads/FlutterAdRequest.java (100%) rename packages/google_mobile_ads/android/src/{main => playServices}/java/io/flutter/plugins/googlemobileads/FlutterAdSize.java (100%) rename packages/google_mobile_ads/android/src/{main => playServices}/java/io/flutter/plugins/googlemobileads/FlutterAdapterStatus.java (100%) rename packages/google_mobile_ads/android/src/{main => playServices}/java/io/flutter/plugins/googlemobileads/FlutterAppOpenAd.java (100%) rename packages/google_mobile_ads/android/src/{main => playServices}/java/io/flutter/plugins/googlemobileads/FlutterBannerAd.java (100%) rename packages/google_mobile_ads/android/src/{main => playServices}/java/io/flutter/plugins/googlemobileads/FlutterFullScreenContentCallback.java (100%) create mode 100644 packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterInitializationListener.java rename packages/google_mobile_ads/android/src/{main => playServices}/java/io/flutter/plugins/googlemobileads/FlutterInitializationStatus.java (100%) rename packages/google_mobile_ads/android/src/{main => playServices}/java/io/flutter/plugins/googlemobileads/FlutterInterstitialAd.java (100%) rename packages/google_mobile_ads/android/src/{main => playServices}/java/io/flutter/plugins/googlemobileads/FlutterMobileAdsWrapper.java (99%) rename packages/google_mobile_ads/android/src/{main => playServices}/java/io/flutter/plugins/googlemobileads/FlutterNativeAd.java (99%) rename packages/google_mobile_ads/android/src/{main => playServices}/java/io/flutter/plugins/googlemobileads/FlutterPaidEventListener.java (100%) create mode 100644 packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterRequestConfiguration.java rename packages/google_mobile_ads/android/src/{main => playServices}/java/io/flutter/plugins/googlemobileads/FlutterRewardedAd.java (100%) rename packages/google_mobile_ads/android/src/{main => playServices}/java/io/flutter/plugins/googlemobileads/FlutterRewardedInterstitialAd.java (100%) rename packages/google_mobile_ads/android/src/{main => playServices}/java/io/flutter/plugins/googlemobileads/FlutterServerSideVerificationOptions.java (100%) create mode 100644 packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/NativeAdFactory.java rename packages/google_mobile_ads/android/src/{main => playServices}/res/layout/gnt_medium_template_view.xml (100%) rename packages/google_mobile_ads/android/src/{main => playServices}/res/layout/gnt_small_template_view.xml (100%) create mode 100644 packages/google_mobile_ads/example/android/app/src/nextgengma/java/io/flutter/plugins/googlemobileadsexample/NativeAdFactoryExample.java create mode 100644 packages/google_mobile_ads/example/android/app/src/nextgengma/res/layout/my_native_ad.xml rename packages/google_mobile_ads/example/android/app/src/{main => playservices}/java/io/flutter/plugins/googlemobileadsexample/NativeAdFactoryExample.java (98%) rename packages/google_mobile_ads/example/android/app/src/{main => playservices}/res/layout/my_native_ad.xml (100%) create mode 100644 samples/admob/mediation_example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme diff --git a/packages/google_mobile_ads/android/build.gradle b/packages/google_mobile_ads/android/build.gradle index 14c700f93..0d0676286 100644 --- a/packages/google_mobile_ads/android/build.gradle +++ b/packages/google_mobile_ads/android/build.gradle @@ -25,6 +25,18 @@ rootProject.allprojects { apply plugin: 'com.android.library' android { + def dartEnvironmentVariables = [] + if (project.hasProperty('dart-defines')) { + dartEnvironmentVariables = project.property('dart-defines') + .split(',') + .collectEntries { entry -> + def pair = new String(entry.decodeBase64(), 'UTF-8').split('=') + [(pair.first()): pair.last()] + } + } + + def useNextGenSdk = dartEnvironmentVariables.USE_NEXT_GEN_SDK ? dartEnvironmentVariables.USE_NEXT_GEN_SDK : false + compileSdk 36 if (project.android.hasProperty('namespace')) { @@ -37,8 +49,27 @@ android { lintOptions { disable 'InvalidPackage' } + sourceSets.named("main") { + java.srcDirs("src/main/java") + if (useNextGenSdk) { + java.srcDirs("src/adsNextGenSdk/java") + } else { + java.srcDirs("src/playServices/java") + } + + res.srcDirs("src/main/res") + if (useNextGenSdk) { + res.srcDirs("src/adsNextGenSdk/res") + } else { + res.srcDirs("src/playServices/res") + } + } dependencies { - api 'com.google.android.gms:play-services-ads:25.1.0' + if (useNextGenSdk) { + api 'com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:1.0.1' + } else { + api 'com.google.android.gms:play-services-ads:25.1.0' + } implementation 'com.google.android.ump:user-messaging-platform:4.0.0' implementation 'androidx.constraintlayout:constraintlayout:2.2.1' implementation 'androidx.lifecycle:lifecycle-process:2.10.0' diff --git a/packages/google_mobile_ads/android/src/adsNextGenSdk/java/com/google/android/ads/nativetemplates/TemplateView.java b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/com/google/android/ads/nativetemplates/TemplateView.java new file mode 100644 index 000000000..1319a2d57 --- /dev/null +++ b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/com/google/android/ads/nativetemplates/TemplateView.java @@ -0,0 +1,295 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package com.google.android.ads.nativetemplates; + +import android.content.Context; +import android.content.res.TypedArray; +import android.graphics.Typeface; +import android.graphics.drawable.Drawable; +import android.text.TextUtils; +import android.util.AttributeSet; +import android.view.LayoutInflater; +import android.widget.Button; +import android.widget.FrameLayout; +import android.widget.ImageView; +import android.widget.RatingBar; +import android.widget.TextView; +import androidx.annotation.Nullable; +import androidx.constraintlayout.widget.ConstraintLayout; +import com.google.android.libraries.ads.mobile.sdk.common.Image; +import com.google.android.libraries.ads.mobile.sdk.nativead.MediaView; +import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAd; +import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdView; +import io.flutter.plugins.googlemobileads.R; + +/** Base class for a template view. */ +public final class TemplateView extends FrameLayout { + + private int templateType; + private NativeTemplateStyle styles; + private NativeAd nativeAd; + private NativeAdView nativeAdView; + + private TextView primaryView; + private TextView secondaryView; + private RatingBar ratingBar; + private TextView tertiaryView; + private ImageView iconView; + private MediaView mediaView; + private Button callToActionView; + private ConstraintLayout background; + + private static final String MEDIUM_TEMPLATE = "medium_template"; + private static final String SMALL_TEMPLATE = "small_template"; + + public TemplateView(Context context) { + super(context); + } + + public TemplateView(Context context, @Nullable AttributeSet attrs) { + super(context, attrs); + initView(context, attrs); + } + + public TemplateView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + initView(context, attrs); + } + + public TemplateView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { + super(context, attrs, defStyleAttr, defStyleRes); + initView(context, attrs); + } + + public void setStyles(NativeTemplateStyle styles) { + this.styles = styles; + this.applyStyles(); + } + + public NativeAdView getNativeAdView() { + return nativeAdView; + } + + private void applyStyles() { + + Drawable mainBackground = styles.getMainBackgroundColor(); + if (mainBackground != null) { + background.setBackground(mainBackground); + if (primaryView != null) { + primaryView.setBackground(mainBackground); + } + if (secondaryView != null) { + secondaryView.setBackground(mainBackground); + } + if (tertiaryView != null) { + tertiaryView.setBackground(mainBackground); + } + } + + Typeface primary = styles.getPrimaryTextTypeface(); + if (primary != null && primaryView != null) { + primaryView.setTypeface(primary); + } + + Typeface secondary = styles.getSecondaryTextTypeface(); + if (secondary != null && secondaryView != null) { + secondaryView.setTypeface(secondary); + } + + Typeface tertiary = styles.getTertiaryTextTypeface(); + if (tertiary != null && tertiaryView != null) { + tertiaryView.setTypeface(tertiary); + } + + Typeface ctaTypeface = styles.getCallToActionTextTypeface(); + if (ctaTypeface != null && callToActionView != null) { + callToActionView.setTypeface(ctaTypeface); + } + + if (styles.getPrimaryTextTypefaceColor() != null && primaryView != null) { + primaryView.setTextColor(styles.getPrimaryTextTypefaceColor()); + } + + if (styles.getSecondaryTextTypefaceColor() != null && secondaryView != null) { + secondaryView.setTextColor(styles.getSecondaryTextTypefaceColor()); + } + + if (styles.getTertiaryTextTypefaceColor() != null && tertiaryView != null) { + tertiaryView.setTextColor(styles.getTertiaryTextTypefaceColor()); + } + + if (styles.getCallToActionTypefaceColor() != null && callToActionView != null) { + callToActionView.setTextColor(styles.getCallToActionTypefaceColor()); + } + + float ctaTextSize = styles.getCallToActionTextSize(); + if (ctaTextSize > 0 && callToActionView != null) { + callToActionView.setTextSize(ctaTextSize); + } + + float primaryTextSize = styles.getPrimaryTextSize(); + if (primaryTextSize > 0 && primaryView != null) { + primaryView.setTextSize(primaryTextSize); + } + + float secondaryTextSize = styles.getSecondaryTextSize(); + if (secondaryTextSize > 0 && secondaryView != null) { + secondaryView.setTextSize(secondaryTextSize); + } + + float tertiaryTextSize = styles.getTertiaryTextSize(); + if (tertiaryTextSize > 0 && tertiaryView != null) { + tertiaryView.setTextSize(tertiaryTextSize); + } + + Drawable ctaBackground = styles.getCallToActionBackgroundColor(); + if (ctaBackground != null && callToActionView != null) { + callToActionView.setBackground(ctaBackground); + } + + Drawable primaryBackground = styles.getPrimaryTextBackgroundColor(); + if (primaryBackground != null && primaryView != null) { + primaryView.setBackground(primaryBackground); + } + + Drawable secondaryBackground = styles.getSecondaryTextBackgroundColor(); + if (secondaryBackground != null && secondaryView != null) { + secondaryView.setBackground(secondaryBackground); + } + + Drawable tertiaryBackground = styles.getTertiaryTextBackgroundColor(); + if (tertiaryBackground != null && tertiaryView != null) { + tertiaryView.setBackground(tertiaryBackground); + } + + invalidate(); + requestLayout(); + } + + private boolean adHasOnlyStore(NativeAd nativeAd) { + String store = nativeAd.getStore(); + String advertiser = nativeAd.getAdvertiser(); + return !TextUtils.isEmpty(store) && TextUtils.isEmpty(advertiser); + } + + public void setNativeAd(NativeAd nativeAd) { + this.nativeAd = nativeAd; + + String store = nativeAd.getStore(); + String advertiser = nativeAd.getAdvertiser(); + String headline = nativeAd.getHeadline(); + String body = nativeAd.getBody(); + String cta = nativeAd.getCallToAction(); + Double starRating = nativeAd.getStarRating(); + Image icon = nativeAd.getIcon(); + + String secondaryText; + + nativeAdView.setCallToActionView(callToActionView); + nativeAdView.setHeadlineView(primaryView); + secondaryView.setVisibility(VISIBLE); + if (adHasOnlyStore(nativeAd)) { + nativeAdView.setStoreView(secondaryView); + secondaryText = store; + } else if (!TextUtils.isEmpty(advertiser)) { + nativeAdView.setAdvertiserView(secondaryView); + secondaryText = advertiser; + } else { + secondaryText = ""; + } + + primaryView.setText(headline); + callToActionView.setText(cta); + + // Set the secondary view to be the star rating if available. + if (starRating != null && starRating > 0) { + secondaryView.setVisibility(GONE); + ratingBar.setVisibility(VISIBLE); + ratingBar.setRating(starRating.floatValue()); + + nativeAdView.setStarRatingView(ratingBar); + } else { + secondaryView.setText(secondaryText); + secondaryView.setVisibility(VISIBLE); + ratingBar.setVisibility(GONE); + } + + if (icon != null) { + iconView.setVisibility(VISIBLE); + iconView.setImageDrawable(icon.getDrawable()); + } else { + iconView.setVisibility(GONE); + } + + if (tertiaryView != null) { + tertiaryView.setText(body); + nativeAdView.setBodyView(tertiaryView); + } + + nativeAdView.registerNativeAd(nativeAd, mediaView); + } + + /** + * To prevent memory leaks, make sure to destroy your ad when you don't need it anymore. This + * method does not destroy the template view. + * https://developers.google.com/admob/android/native-unified#destroy_ad + */ + public void destroyNativeAd() { + nativeAd.destroy(); + } + + public String getTemplateTypeName() { + if (templateType == R.layout.gnt_medium_template_view) { + return MEDIUM_TEMPLATE; + } else if (templateType == R.layout.gnt_small_template_view) { + return SMALL_TEMPLATE; + } + return ""; + } + + private void initView(Context context, AttributeSet attributeSet) { + + TypedArray attributes = + context.getTheme().obtainStyledAttributes(attributeSet, R.styleable.TemplateView, 0, 0); + + try { + templateType = + attributes.getResourceId( + R.styleable.TemplateView_gnt_template_type, R.layout.gnt_medium_template_view); + } finally { + attributes.recycle(); + } + LayoutInflater inflater = + (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + inflater.inflate(templateType, this); + } + + @Override + public void onFinishInflate() { + super.onFinishInflate(); + nativeAdView = (NativeAdView) findViewById(R.id.native_ad_view); + primaryView = (TextView) findViewById(R.id.primary); + secondaryView = (TextView) findViewById(R.id.secondary); + tertiaryView = (TextView) findViewById(R.id.body); + + ratingBar = (RatingBar) findViewById(R.id.rating_bar); + ratingBar.setEnabled(false); + + callToActionView = (Button) findViewById(R.id.cta); + iconView = (ImageView) findViewById(R.id.icon); + mediaView = (MediaView) findViewById(R.id.media_view); + background = (ConstraintLayout) findViewById(R.id.background); + } +} diff --git a/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/AdInstanceManager.java b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/AdInstanceManager.java new file mode 100644 index 000000000..9210784e6 --- /dev/null +++ b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/AdInstanceManager.java @@ -0,0 +1,245 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package io.flutter.plugins.googlemobileads; + +import android.app.Activity; +import android.os.Handler; +import android.os.Looper; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import com.google.android.gms.ads.AdError; +import com.google.android.libraries.ads.mobile.sdk.common.ResponseInfo; +import io.flutter.plugin.common.MethodChannel; +import io.flutter.plugins.googlemobileads.FlutterAd.FlutterAdError; +import io.flutter.plugins.googlemobileads.FlutterAd.FlutterResponseInfo; +import java.util.HashMap; +import java.util.Map; + +/** + * Maintains reference to ad instances for the {@link + * io.flutter.plugins.googlemobileads.GoogleMobileAdsPlugin}. + * + *

When an Ad is loaded from Dart, an equivalent ad object is created and maintained here to + * provide access until the ad is disposed. + */ +class AdInstanceManager { + @Nullable private Activity activity; + + @NonNull private final Map ads; + @NonNull private final MethodChannel channel; + + /** + * Initializes the ad instance manager. We only need a method channel to start loading ads, but an + * activity must be present in order to attach any ads to the view hierarchy. + */ + AdInstanceManager(@NonNull MethodChannel channel) { + this.channel = channel; + this.ads = new HashMap<>(); + } + + void setActivity(@Nullable Activity activity) { + this.activity = activity; + } + + @Nullable + Activity getActivity() { + return activity; + } + + @Nullable + FlutterAd adForId(int id) { + return ads.get(id); + } + + @Nullable + Integer adIdFor(@NonNull FlutterAd ad) { + for (Integer adId : ads.keySet()) { + if (ads.get(adId) == ad) { + return adId; + } + } + return null; + } + + void trackAd(@NonNull FlutterAd ad, int adId) { + if (ads.get(adId) != null) { + throw new IllegalArgumentException( + String.format("Ad for following adId already exists: %d", adId)); + } + ads.put(adId, ad); + } + + void disposeAd(int adId) { + if (!ads.containsKey(adId)) { + return; + } + FlutterAd ad = ads.get(adId); + if (ad != null) { + ad.dispose(); + } + ads.remove(adId); + } + + void disposeAllAds() { + for (Map.Entry entry : ads.entrySet()) { + if (entry.getValue() != null) { + entry.getValue().dispose(); + } + } + ads.clear(); + } + + void onAdLoaded(int adId, @Nullable ResponseInfo responseInfo) { + Map arguments = new HashMap<>(); + arguments.put("adId", adId); + arguments.put("eventName", "onAdLoaded"); + FlutterResponseInfo flutterResponseInfo = + (responseInfo == null) ? null : new FlutterResponseInfo(responseInfo); + arguments.put("responseInfo", flutterResponseInfo); + invokeOnAdEvent(arguments); + } + + void onAdFailedToLoad(int adId, @NonNull FlutterAd.FlutterLoadAdError error) { + Map arguments = new HashMap<>(); + arguments.put("adId", adId); + arguments.put("eventName", "onAdFailedToLoad"); + arguments.put("loadAdError", error); + invokeOnAdEvent(arguments); + } + + void onAppEvent(int adId, @NonNull String name, @NonNull String data) { + Map arguments = new HashMap<>(); + arguments.put("adId", adId); + arguments.put("eventName", "onAppEvent"); + arguments.put("name", name); + arguments.put("data", data); + invokeOnAdEvent(arguments); + } + + void onAdImpression(int id) { + Map arguments = new HashMap<>(); + arguments.put("adId", id); + arguments.put("eventName", "onAdImpression"); + invokeOnAdEvent(arguments); + } + + void onAdClicked(int id) { + Map arguments = new HashMap<>(); + arguments.put("adId", id); + arguments.put("eventName", "onAdClicked"); + invokeOnAdEvent(arguments); + } + + void onAdOpened(int adId) { + Map arguments = new HashMap<>(); + arguments.put("adId", adId); + arguments.put("eventName", "onAdOpened"); + invokeOnAdEvent(arguments); + } + + void onAdClosed(int adId) { + Map arguments = new HashMap<>(); + arguments.put("adId", adId); + arguments.put("eventName", "onAdClosed"); + invokeOnAdEvent(arguments); + } + + void onRewardedAdUserEarnedReward(int adId, @NonNull FlutterRewardedAd.FlutterRewardItem reward) { + final Map arguments = new HashMap<>(); + arguments.put("adId", adId); + arguments.put("eventName", "onRewardedAdUserEarnedReward"); + arguments.put("rewardItem", reward); + invokeOnAdEvent(arguments); + } + + void onRewardedInterstitialAdUserEarnedReward( + int adId, @NonNull FlutterRewardedAd.FlutterRewardItem reward) { + final Map arguments = new HashMap<>(); + arguments.put("adId", adId); + arguments.put("eventName", "onRewardedInterstitialAdUserEarnedReward"); + arguments.put("rewardItem", reward); + invokeOnAdEvent(arguments); + } + + void onPaidEvent(@NonNull FlutterAd ad, @NonNull FlutterAdValue adValue) { + final Map arguments = new HashMap<>(); + arguments.put("adId", adIdFor(ad)); + arguments.put("eventName", "onPaidEvent"); + arguments.put("valueMicros", adValue.valueMicros); + arguments.put("precision", adValue.precisionType); + arguments.put("currencyCode", adValue.currencyCode); + invokeOnAdEvent(arguments); + } + + void onFailedToShowFullScreenContent(int adId, @NonNull AdError error) { + final Map arguments = new HashMap<>(); + arguments.put("adId", adId); + arguments.put("eventName", "onFailedToShowFullScreenContent"); + arguments.put("error", new FlutterAdError(error)); + invokeOnAdEvent(arguments); + } + + void onAdShowedFullScreenContent(int adId) { + final Map arguments = new HashMap<>(); + arguments.put("adId", adId); + arguments.put("eventName", "onAdShowedFullScreenContent"); + invokeOnAdEvent(arguments); + } + + void onAdDismissedFullScreenContent(int adId) { + final Map arguments = new HashMap<>(); + arguments.put("adId", adId); + arguments.put("eventName", "onAdDismissedFullScreenContent"); + invokeOnAdEvent(arguments); + } + + void onAdMetadataChanged(int adId) { + final Map arguments = new HashMap<>(); + arguments.put("adId", adId); + arguments.put("eventName", "onAdMetadataChanged"); + invokeOnAdEvent(arguments); + } + + void onFluidAdHeightChanged(int adId, int height) { + final Map arguments = new HashMap<>(); + arguments.put("adId", adId); + arguments.put("eventName", "onFluidAdHeightChanged"); + arguments.put("height", height); + invokeOnAdEvent(arguments); + } + + boolean showAdWithId(int id) { + final FlutterAd.FlutterOverlayAd ad = (FlutterAd.FlutterOverlayAd) adForId(id); + + if (ad == null) { + return false; + } + + ad.show(); + return true; + } + + /** Invoke the method channel using the UI thread. Otherwise the message gets silently dropped. */ + private void invokeOnAdEvent(final Map arguments) { + new Handler(Looper.getMainLooper()) + .post( + new Runnable() { + @Override + public void run() { + channel.invokeMethod("onAdEvent", arguments); + } + }); + } +} diff --git a/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/BannerAdCreator.java b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/BannerAdCreator.java new file mode 100644 index 000000000..4e1918318 --- /dev/null +++ b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/BannerAdCreator.java @@ -0,0 +1,34 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package io.flutter.plugins.googlemobileads; + +import android.content.Context; +import androidx.annotation.NonNull; +import com.google.android.libraries.ads.mobile.sdk.banner.AdView; + +/** Creates AdView and AdManagerAdViews for banner ads. */ +public class BannerAdCreator { + + @NonNull private final Context context; + + public BannerAdCreator(@NonNull Context context) { + this.context = context; + } + + /** Create a new {@link AdView}. */ + public AdView createAdView() { + return new AdView(context); + } +} diff --git a/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FluidAdManagerBannerAd.java b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FluidAdManagerBannerAd.java new file mode 100644 index 000000000..6de58d098 --- /dev/null +++ b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FluidAdManagerBannerAd.java @@ -0,0 +1,124 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package io.flutter.plugins.googlemobileads; + +import android.util.Log; +import android.view.View; +import android.view.View.OnLayoutChangeListener; +import android.view.ViewGroup; +import android.widget.ScrollView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.VisibleForTesting; +import com.google.android.libraries.ads.mobile.sdk.banner.AdSize; +import io.flutter.plugin.platform.PlatformView; + +/** A subclass of {@link FlutterAdManagerBannerAd} specifically for fluid ad size. */ +final class FluidAdManagerBannerAd extends FlutterBannerAd { + + private static final String TAG = "FluidAdManagerBannerAd"; + + @Nullable private ViewGroup containerView; + + private int height = -1; + + FluidAdManagerBannerAd( + int adId, + @NonNull AdInstanceManager manager, + @NonNull String adUnitId, + @NonNull FlutterAdManagerAdRequest request, // Kept for compatibility + @NonNull BannerAdCreator bannerAdCreator) { + super( + adId, + manager, + adUnitId, + request, + new FlutterAdSize(AdSize.FLUID), + bannerAdCreator); + } + + @Override + public void onAdLoaded() { + if (adView != null && bannerAd != null) { + adView.addOnLayoutChangeListener( + new OnLayoutChangeListener() { + @Override + public void onLayoutChange( + View v, + int left, + int top, + int right, + int bottom, + int oldLeft, + int oldTop, + int oldRight, + int oldBottom) { + // Forward the new height to its container. + int newHeight = v.getMeasuredHeight(); + if (newHeight != height) { + manager.onFluidAdHeightChanged(adId, newHeight); + } + height = newHeight; + } + }); + manager.onAdLoaded(adId, bannerAd.getResponseInfo()); + } + } + + @Nullable + @Override + public PlatformView getPlatformView() { + if (adView == null) { + return null; + } + if (containerView != null) { + return new FlutterPlatformView(containerView); + } + // Place the ad view inside a scroll view. This allows the height of the ad view to overflow + // its container so we can calculate the height and send it back to flutter. + ScrollView scrollView = createContainerView(); + if (scrollView == null) { + return null; + } + scrollView.setClipChildren(false); + scrollView.setVerticalScrollBarEnabled(false); + scrollView.setHorizontalScrollBarEnabled(false); + containerView = scrollView; + containerView.addView(adView); + return new FlutterPlatformView(adView); + } + + @Nullable + @VisibleForTesting + ScrollView createContainerView() { + if (manager.getActivity() == null) { + Log.e(TAG, "Tried to create container view before plugin is attached to an activity."); + return null; + } + return new ScrollView(manager.getActivity()); + } + + @Override + void dispose() { + if (adView != null) { + adView.destroy(); + adView = null; + } + if (containerView != null) { + containerView.removeAllViews(); + containerView = null; + } + } +} diff --git a/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAd.java b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAd.java new file mode 100644 index 000000000..a6fd9b86b --- /dev/null +++ b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAd.java @@ -0,0 +1,397 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package io.flutter.plugins.googlemobileads; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import com.google.android.gms.ads.AdError; +import com.google.android.libraries.ads.mobile.sdk.common.AdSourceResponseInfo; +import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError; +import com.google.android.libraries.ads.mobile.sdk.common.MediationAdError; +import com.google.android.libraries.ads.mobile.sdk.common.ResponseInfo; +import io.flutter.plugin.platform.PlatformView; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +abstract class FlutterAd { + + protected final int adId; + + FlutterAd(int adId) { + this.adId = adId; + } + + /** A {@link FlutterAd} that is overlaid on top of a running application. */ + abstract static class FlutterOverlayAd extends FlutterAd { + abstract void show(); + + abstract void setImmersiveMode(boolean immersiveModeEnabled); + + FlutterOverlayAd(int adId) { + super(adId); + } + } + + /** A wrapper around {@link ResponseInfo}. */ + static class FlutterResponseInfo { + + @Nullable private final String responseId; + @Nullable private final String mediationAdapterClassName; + @NonNull private final List adapterResponses; + @Nullable private final FlutterAdapterResponseInfo loadedAdapterResponseInfo; + @NonNull private final Map responseExtras; + + FlutterResponseInfo(@NonNull ResponseInfo responseInfo) { + this.responseId = responseInfo.getResponseId(); + this.mediationAdapterClassName = responseInfo.getAdapterClassName(); + final List adapterResponseInfos = new ArrayList<>(); + for (AdSourceResponseInfo adapterInfo : responseInfo.getAdSourceResponses()) { + adapterResponseInfos.add(new FlutterAdapterResponseInfo(adapterInfo)); + } + this.adapterResponses = adapterResponseInfos; + if (responseInfo.getLoadedAdSourceResponseInfo() != null) { + this.loadedAdapterResponseInfo = + new FlutterAdapterResponseInfo(responseInfo.getLoadedAdSourceResponseInfo()); + } else { + this.loadedAdapterResponseInfo = null; + } + Map extras = new HashMap<>(); + if (responseInfo.getResponseExtras() != null) { + for (String key : responseInfo.getResponseExtras().keySet()) { + String value = responseInfo.getResponseExtras().getString(key); + extras.put(key, value); + } + } + + this.responseExtras = extras; + } + + FlutterResponseInfo( + @Nullable String responseId, + @Nullable String mediationAdapterClassName, + @NonNull List adapterResponseInfos, + @Nullable FlutterAdapterResponseInfo loadedAdapterResponseInfo, + @NonNull Map responseExtras) { + this.responseId = responseId; + this.mediationAdapterClassName = mediationAdapterClassName; + this.adapterResponses = adapterResponseInfos; + this.loadedAdapterResponseInfo = loadedAdapterResponseInfo; + this.responseExtras = responseExtras; + } + + @Nullable + String getResponseId() { + return responseId; + } + + @Nullable + String getMediationAdapterClassName() { + return mediationAdapterClassName; + } + + @NonNull + List getAdapterResponses() { + return adapterResponses; + } + + @Nullable + FlutterAdapterResponseInfo getLoadedAdapterResponseInfo() { + return loadedAdapterResponseInfo; + } + + @NonNull + Map getResponseExtras() { + return responseExtras; + } + + @Override + public boolean equals(@Nullable Object obj) { + if (obj == this) { + return true; + } else if (!(obj instanceof FlutterResponseInfo)) { + return false; + } + + FlutterResponseInfo that = (FlutterResponseInfo) obj; + return Objects.equals(responseId, that.responseId) + && Objects.equals(mediationAdapterClassName, that.mediationAdapterClassName) + && Objects.equals(adapterResponses, that.adapterResponses) + && Objects.equals(loadedAdapterResponseInfo, that.loadedAdapterResponseInfo); + } + + @Override + public int hashCode() { + return Objects.hash( + responseId, mediationAdapterClassName, adapterResponses, loadedAdapterResponseInfo); + } + } + + /** A wrapper for {@link AdapterResponseInfo}. */ + static class FlutterAdapterResponseInfo { + + @NonNull private final String adapterClassName; + private final long latencyMillis; + @NonNull private final String description; + @NonNull private final Map adUnitMapping; + @Nullable private FlutterAdError error; + @NonNull private final String adSourceName; + @NonNull private final String adSourceId; + @NonNull private final String adSourceInstanceName; + @NonNull private final String adSourceInstanceId; + + FlutterAdapterResponseInfo(@NonNull AdSourceResponseInfo responseInfo) { + this.adapterClassName = responseInfo.getAdapterClassName(); + this.latencyMillis = responseInfo.getLatencyMillis(); + this.description = responseInfo.toString(); + if (responseInfo.getCredentials() != null) { + this.adUnitMapping = new HashMap<>(); + for (String key : responseInfo.getCredentials().keySet()) { + adUnitMapping.put(key, responseInfo.getCredentials().getString(key)); + } + } else { + adUnitMapping = new HashMap<>(); + } + if (responseInfo.getAdError() != null) { + this.error = new FlutterAdError(responseInfo.getAdError()); + } + adSourceName = responseInfo.getName(); + adSourceId = responseInfo.getId(); + adSourceInstanceName = responseInfo.getInstanceName(); + adSourceInstanceId = responseInfo.getInstanceId(); + } + + FlutterAdapterResponseInfo( + @NonNull String adapterClassName, + long latencyMillis, + @NonNull String description, + @NonNull Map adUnitMapping, + @Nullable FlutterAdError error, + @NonNull String adSourceName, + @NonNull String adSourceId, + @NonNull String adSourceInstanceName, + @NonNull String adSourceInstanceId) { + this.adapterClassName = adapterClassName; + this.latencyMillis = latencyMillis; + this.description = description; + this.adUnitMapping = adUnitMapping; + this.error = error; + this.adSourceName = adSourceName; + this.adSourceId = adSourceId; + this.adSourceInstanceName = adSourceInstanceName; + this.adSourceInstanceId = adSourceInstanceId; + } + + @NonNull + public String getAdapterClassName() { + return adapterClassName; + } + + public long getLatencyMillis() { + return latencyMillis; + } + + @NonNull + public String getDescription() { + return description; + } + + @NonNull + public Map getAdUnitMapping() { + return adUnitMapping; + } + + @Nullable + public FlutterAdError getError() { + return error; + } + + @NonNull + public String getAdSourceName() { + return adSourceName; + } + + @NonNull + public String getAdSourceId() { + return adSourceId; + } + + @NonNull + public String getAdSourceInstanceName() { + return adSourceInstanceName; + } + + @NonNull + public String getAdSourceInstanceId() { + return adSourceInstanceId; + } + + @Override + public boolean equals(@Nullable Object obj) { + if (obj == this) { + return true; + } else if (!(obj instanceof FlutterAdapterResponseInfo)) { + return false; + } + + final FlutterAdapterResponseInfo that = (FlutterAdapterResponseInfo) obj; + return Objects.equals(adapterClassName, that.adapterClassName) + && latencyMillis == that.latencyMillis + && Objects.equals(description, that.description) + && Objects.equals(error, that.error) + && Objects.equals(adUnitMapping, that.adUnitMapping) + && Objects.equals(adSourceName, that.adSourceName) + && Objects.equals(adSourceId, that.adSourceId) + && Objects.equals(adSourceInstanceName, that.adSourceInstanceName) + && Objects.equals(adSourceInstanceId, that.adSourceInstanceId); + } + + @Override + public int hashCode() { + return Objects.hash( + adapterClassName, + latencyMillis, + description, + error, + adSourceName, + adSourceId, + adSourceInstanceName, + adSourceInstanceId); + } + } + + /** Wrapper for {@link AdError}. */ + static class FlutterAdError { + final int code; + @NonNull final String domain; + @NonNull final String message; + + FlutterAdError(@NonNull AdError error) { + code = error.getCode(); + domain = error.getDomain(); + message = error.getMessage(); + } + + FlutterAdError(@NonNull MediationAdError error) { + code = error.component1(); + domain = error.getDomain(); + message = error.getMessage(); + } + + FlutterAdError(int code, @NonNull String domain, @NonNull String message) { + this.code = code; + this.domain = domain; + this.message = message; + } + + @Override + public boolean equals(Object object) { + if (this == object) { + return true; + } else if (!(object instanceof FlutterAdError)) { + return false; + } + + final FlutterAdError that = (FlutterAdError) object; + + if (code != that.code) { + return false; + } else if (!domain.equals(that.domain)) { + return false; + } + return message.equals(that.message); + } + + @Override + public int hashCode() { + return Objects.hash(code, domain, message); + } + } + + /** Wrapper for {@link LoadAdError}. */ + static class FlutterLoadAdError { + final int code; + @NonNull final String domain; + @NonNull final String message; + @Nullable FlutterResponseInfo responseInfo; + + FlutterLoadAdError(@NonNull LoadAdError error) { + code = error.getCode().getValue(); + message = error.getMessage(); + + if (error.getResponseInfo() != null) { + responseInfo = new FlutterResponseInfo(error.getResponseInfo()); + domain = responseInfo.getMediationAdapterClassName(); + } else { + domain = "com.google.android.libraries.ads.mobile.sdk"; + } + } + + FlutterLoadAdError( + int code, + @NonNull String domain, + @NonNull String message, + @Nullable FlutterResponseInfo responseInfo) { + this.code = code; + this.domain = domain; + this.message = message; + this.responseInfo = responseInfo; + } + + @Override + public boolean equals(Object object) { + if (this == object) { + return true; + } else if (!(object instanceof FlutterLoadAdError)) { + return false; + } + + final FlutterLoadAdError that = (FlutterLoadAdError) object; + + if (code != that.code) { + return false; + } else if (!domain.equals(that.domain)) { + return false; + } else if (!Objects.equals(responseInfo, that.responseInfo)) { + return false; + } + return message.equals(that.message); + } + + @Override + public int hashCode() { + return Objects.hash(code, domain, message, responseInfo); + } + } + + abstract void load(); + + /** + * Gets the PlatformView for the ad. Default behavior is to return null. Should be overridden by + * ads with platform views, such as banner and native ads. + */ + @Nullable + PlatformView getPlatformView() { + return null; + }; + + /** + * Invoked when dispose() is called on the corresponding Flutter ad object. This perform any + * necessary cleanup. + */ + abstract void dispose(); +} diff --git a/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAdInspector.java b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAdInspector.java new file mode 100644 index 000000000..f3099e1fc --- /dev/null +++ b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAdInspector.java @@ -0,0 +1,37 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package io.flutter.plugins.googlemobileads; + +import android.content.Context; +import io.flutter.plugin.common.MethodChannel.Result; + +public final class FlutterAdInspector { + public static void openAdInspector( + Context context, FlutterMobileAdsWrapper flutterMobileAds, Result result) { + flutterMobileAds.openAdInspector( + context, + adInspectorError -> { + if (adInspectorError != null) { + String errorCode = Integer.toString(adInspectorError.getCode().getValue()); + result.error( + errorCode, + adInspectorError.getMessage(), + "com.google.android.libraries.ads.mobile.sdk"); + } else { + result.success(null); + } + }); + } +} diff --git a/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAdListener.java b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAdListener.java new file mode 100644 index 000000000..cbc8565cd --- /dev/null +++ b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAdListener.java @@ -0,0 +1,135 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package io.flutter.plugins.googlemobileads; + +import androidx.annotation.NonNull; +import com.google.android.libraries.ads.mobile.sdk.banner.BannerAd; +import com.google.android.libraries.ads.mobile.sdk.banner.BannerAdEventCallback; +import com.google.android.libraries.ads.mobile.sdk.common.AdLoadCallback; +import com.google.android.libraries.ads.mobile.sdk.common.FullScreenContentError; +import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError; +import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAd; +import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdEventCallback; +import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdLoaderCallback; +import java.lang.ref.WeakReference; + +/** Callback type to notify when an ad successfully loads. */ +interface FlutterAdLoadedListener { + void onAdLoaded(); +} + +abstract class FlutterAdListener implements AdLoadCallback { + protected final int adId; + @NonNull protected final AdInstanceManager manager; + + FlutterAdListener(int adId, @NonNull AdInstanceManager manager) { + this.adId = adId; + this.manager = manager; + } + + @Override + public void onAdFailedToLoad(LoadAdError loadAdError) { + manager.onAdFailedToLoad(adId, new FlutterAd.FlutterLoadAdError(loadAdError)); + } +} + +/** + * Ad listener for banner ads. Does not override onAdClicked(), since that is only for native ads. + */ +class FlutterBannerAdListener extends FlutterAdListener implements BannerAdEventCallback { + + @NonNull final WeakReference adLoadedListenerWeakReference; + + FlutterBannerAdListener( + int adId, @NonNull AdInstanceManager manager, FlutterAdLoadedListener adLoadedListener) { + super(adId, manager); + adLoadedListenerWeakReference = new WeakReference<>(adLoadedListener); + } + + @Override + public void onAdLoaded(@NonNull BannerAd ad) { + if (adLoadedListenerWeakReference.get() != null) { + adLoadedListenerWeakReference.get().onAdLoaded(); + } + } + + @Override + public void onAdImpression() { + manager.onAdImpression(adId); + } + + @Override + public void onAdClicked() { + manager.onAdClicked(adId); + } +} + +/** Listener for native ads. */ +class FlutterNativeAdListener implements NativeAdEventCallback { + private final int adId; + @NonNull private final AdInstanceManager manager; + + FlutterNativeAdListener(int adId, AdInstanceManager manager) { + this.adId = adId; + this.manager = manager; + } + + @Override + public void onAdShowedFullScreenContent() { + manager.onAdOpened(adId); + } + + @Override + public void onAdDismissedFullScreenContent() { + manager.onAdClosed(adId); + } + + @Override + public void onAdFailedToShowFullScreenContent(FullScreenContentError fullScreenContentError) {} + + @Override + public void onAdImpression() { + manager.onAdImpression(adId); + } + + @Override + public void onAdClicked() { + manager.onAdClicked(adId); + } +} + +/** {@link NativeAdLoaderCallback} for native ads. */ +class FlutterNativeAdLoadedListener implements NativeAdLoaderCallback { + + private final WeakReference nativeAdWeakReference; + + FlutterNativeAdLoadedListener(FlutterNativeAd flutterNativeAd) { + nativeAdWeakReference = new WeakReference<>(flutterNativeAd); + } + + @Override + public void onNativeAdLoaded(@NonNull NativeAd nativeAd) { + if (nativeAdWeakReference.get() != null) { + nativeAdWeakReference.get().onNativeAdLoaded(nativeAd); + } + } + + @Override + public void onAdFailedToLoad(LoadAdError loadAdError) { + if (nativeAdWeakReference.get() != null) { + nativeAdWeakReference.get().onNativeAdFailed(loadAdError); + } + } +} diff --git a/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAdLoader.java b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAdLoader.java new file mode 100644 index 000000000..7be103afe --- /dev/null +++ b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAdLoader.java @@ -0,0 +1,122 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package io.flutter.plugins.googlemobileads; + +import android.content.Context; +import android.util.Log; +import androidx.annotation.NonNull; +import com.google.android.gms.ads.nativead.NativeAdOptions; +import com.google.android.libraries.ads.mobile.sdk.appopen.AppOpenAd; +import com.google.android.libraries.ads.mobile.sdk.common.AdLoadCallback; +import com.google.android.libraries.ads.mobile.sdk.common.AdRequest; +import com.google.android.libraries.ads.mobile.sdk.common.VideoOptions; +import com.google.android.libraries.ads.mobile.sdk.interstitial.InterstitialAd; +import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAd.NativeAdType; +import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdLoader; +import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdLoaderCallback; +import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdRequest; +import com.google.android.libraries.ads.mobile.sdk.rewarded.RewardedAd; +import com.google.android.libraries.ads.mobile.sdk.rewardedinterstitial.RewardedInterstitialAd; +import java.util.List; + +/** + * A wrapper around load methods in GMA. This exists mainly to make the Android code more testable. + */ +public class FlutterAdLoader { + + @NonNull private final Context context; + + public FlutterAdLoader(@NonNull Context context) { + this.context = context; + } + + /** Load an app open ad. */ + public void loadAppOpen( + @NonNull AdRequest adRequest, @NonNull AdLoadCallback loadCallback) { + AppOpenAd.load(adRequest, loadCallback); + } + + /** Load an ad manager app open ad. */ + public void loadAdManagerAppOpen( + @NonNull AdRequest adRequest, @NonNull AdLoadCallback loadCallback) { + loadAppOpen(adRequest, loadCallback); + } + + /** Load an interstitial ad. */ + public void loadInterstitial( + @NonNull AdRequest adRequest, @NonNull AdLoadCallback loadCallback) { + InterstitialAd.load(adRequest, loadCallback); + } + + /** Load an ad manager interstitial ad. */ + public void loadAdManagerInterstitial( + @NonNull AdRequest adRequest, @NonNull AdLoadCallback loadCallback) { + loadInterstitial(adRequest, loadCallback); + } + + /** Load a rewarded ad. */ + public void loadRewarded( + @NonNull AdRequest adRequest, @NonNull AdLoadCallback loadCallback) { + RewardedAd.load(adRequest, loadCallback); + } + + /** Load a rewarded interstitial ad. */ + public void loadRewardedInterstitial( + @NonNull AdRequest adRequest, @NonNull AdLoadCallback loadCallback) { + RewardedInterstitialAd.load(adRequest, loadCallback); + } + + /** Load an ad manager rewarded ad. */ + public void loadAdManagerRewarded( + @NonNull AdRequest adRequest, @NonNull AdLoadCallback loadCallback) { + loadRewarded(adRequest, loadCallback); + } + + /** Load an ad manager rewarded interstitial ad. */ + public void loadAdManagerRewardedInterstitial( + @NonNull AdRequest adRequest, @NonNull AdLoadCallback loadCallback) { + loadRewardedInterstitial(adRequest, loadCallback); + } + + /** Load a native ad. */ + public void loadNativeAd( + @NonNull String adUnitId, + @NonNull NativeAdLoaderCallback nativeAdLoaderCallback, + @NonNull NativeAdOptions nativeAdOptions) { + VideoOptions videoOptions = + nativeAdOptions.getVideoOptions() == null + ? new VideoOptions.Builder().build() + : new VideoOptions.Builder() + .setClickToExpandRequested( + nativeAdOptions.getVideoOptions().getClickToExpandRequested()) + .setCustomControlsRequested( + nativeAdOptions.getVideoOptions().getCustomControlsRequested()) + .setStartMuted(nativeAdOptions.getVideoOptions().getStartMuted()) + .build(); + NativeAdLoader.load( + new NativeAdRequest.Builder(adUnitId, List.of(NativeAdType.NATIVE)) + .setVideoOptions(videoOptions) + .build(), + nativeAdLoaderCallback); + } + + /** Load an ad manager native ad. */ + public void loadAdManagerNativeAd( + @NonNull String adUnitId, + @NonNull NativeAdLoaderCallback nativeAdLoaderCallback, + @NonNull NativeAdOptions nativeAdOptions) { + loadNativeAd(adUnitId, nativeAdLoaderCallback, nativeAdOptions); + } +} diff --git a/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAdManagerAdRequest.java b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAdManagerAdRequest.java new file mode 100644 index 000000000..da53ddd1a --- /dev/null +++ b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAdManagerAdRequest.java @@ -0,0 +1,185 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package io.flutter.plugins.googlemobileads; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import com.google.android.libraries.ads.mobile.sdk.banner.AdSize; +import com.google.android.libraries.ads.mobile.sdk.banner.BannerAdRequest; +import com.google.android.libraries.ads.mobile.sdk.common.AdRequest; +import com.google.errorprone.annotations.CanIgnoreReturnValue; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** + * Instantiates and serializes {@link AdRequest} for + * the Google Mobile Ads Plugin. + */ +class FlutterAdManagerAdRequest extends FlutterAdRequest { + + @Nullable private final Map customTargeting; + @Nullable private final Map> customTargetingLists; + @Nullable private final String publisherProvidedId; + + static class Builder extends FlutterAdRequest.Builder { + + @Nullable private Map customTargeting; + @Nullable private Map> customTargetingLists; + @Nullable private String publisherProvidedId; + + @CanIgnoreReturnValue + public Builder setCustomTargeting(@Nullable Map customTargeting) { + this.customTargeting = customTargeting; + return this; + } + + @CanIgnoreReturnValue + public Builder setCustomTargetingLists( + @Nullable Map> customTargetingLists) { + this.customTargetingLists = customTargetingLists; + return this; + } + + @CanIgnoreReturnValue + public Builder setPublisherProvidedId(@Nullable String publisherProvidedId) { + this.publisherProvidedId = publisherProvidedId; + return this; + } + + @Override + FlutterAdManagerAdRequest build() { + return new FlutterAdManagerAdRequest( + getKeywords(), + getContentUrl(), + customTargeting, + customTargetingLists, + getNonPersonalizedAds(), + getNeighboringContentUrls(), + getHttpTimeoutMillis(), + publisherProvidedId, + getMediationExtrasIdentifier(), + getMediationNetworkExtrasProvider(), + getAdMobExtras(), + getRequestAgent(), + getMediationExtras()); + } + } + + @SuppressWarnings("deprecation") // Keeping for compatibility + private FlutterAdManagerAdRequest( + @Nullable List keywords, + @Nullable String contentUrl, + @Nullable Map customTargeting, + @Nullable Map> customTargetingLists, + @Nullable Boolean nonPersonalizedAds, + @Nullable List neighboringContentUrls, + @Nullable Integer httpTimeoutMillis, + @Nullable String publisherProvidedId, + @Nullable String mediationExtrasIdentifier, + @Nullable MediationNetworkExtrasProvider mediationNetworkExtrasProvider, + @Nullable Map adMobExtras, + @NonNull String requestAgent, + @Nullable List mediationExtras) { + super( + keywords, + contentUrl, + nonPersonalizedAds, + neighboringContentUrls, + httpTimeoutMillis, + mediationExtrasIdentifier, + mediationNetworkExtrasProvider, + adMobExtras, + requestAgent, + mediationExtras); + this.customTargeting = customTargeting; + this.customTargetingLists = customTargetingLists; + this.publisherProvidedId = publisherProvidedId; + } + + AdRequest asAdManagerAdRequest(String adUnitId) { + final AdRequest.Builder builder = new AdRequest.Builder(adUnitId); + updateAdRequestBuilder(builder, adUnitId); + + if (customTargeting != null) { + for (final Map.Entry entry : customTargeting.entrySet()) { + builder.putCustomTargeting(entry.getKey(), entry.getValue()); + } + } + if (customTargetingLists != null) { + for (final Map.Entry> entry : customTargetingLists.entrySet()) { + builder.putCustomTargeting(entry.getKey(), entry.getValue()); + } + } + if (publisherProvidedId != null) { + builder.setPublisherProvidedId(publisherProvidedId); + } + return builder.build(); + } + + @Override + protected BannerAdRequest.Builder toBannerAdRequestBuilder(String adUnitId, + List allSizes) { + BannerAdRequest.Builder builder = super.toBannerAdRequestBuilder(adUnitId, allSizes); + if (customTargeting != null) { + for (final Map.Entry entry : customTargeting.entrySet()) { + builder.putCustomTargeting(entry.getKey(), entry.getValue()); + } + } + if (customTargetingLists != null) { + for (final Map.Entry> entry : customTargetingLists.entrySet()) { + builder.putCustomTargeting(entry.getKey(), entry.getValue()); + } + } + if (publisherProvidedId != null) { + builder.setPublisherProvidedId(publisherProvidedId); + } + return builder; + } + + @Nullable + protected Map getCustomTargeting() { + return customTargeting; + } + + @Nullable + protected Map> getCustomTargetingLists() { + return customTargetingLists; + } + + @Nullable + protected String getPublisherProvidedId() { + return publisherProvidedId; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } else if (!(o instanceof FlutterAdManagerAdRequest)) { + return false; + } + + FlutterAdManagerAdRequest request = (FlutterAdManagerAdRequest) o; + return super.equals(o) + && Objects.equals(customTargeting, request.customTargeting) + && Objects.equals(customTargetingLists, request.customTargetingLists); + } + + @Override + public int hashCode() { + return Objects.hash(super.hashCode(), customTargeting, customTargetingLists); + } +} diff --git a/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAdManagerBannerAd.java b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAdManagerBannerAd.java new file mode 100644 index 000000000..b35fdb86e --- /dev/null +++ b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAdManagerBannerAd.java @@ -0,0 +1,40 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package io.flutter.plugins.googlemobileads; + +import androidx.annotation.NonNull; +import java.util.List; + +/** + * Wrapper around {@link com.google.android.libraries.ads.mobile.sdk.banner.AdView} for the Google Mobile + * Ads Plugin. + */ +class FlutterAdManagerBannerAd extends FlutterBannerAd { + /** + * Constructs a `FlutterAdManagerBannerAd`. + * + *

Call `load()` to instantiate the `AdView` and load the `AdRequest`. `getView()` will return + * null only until `load` is called. + */ + public FlutterAdManagerBannerAd( + int adId, + @NonNull AdInstanceManager manager, + @NonNull String adUnitId, + @NonNull List sizes, + FlutterAdManagerAdRequest flutterAdRequest, + @NonNull BannerAdCreator bannerAdCreator) { + super(adId, manager, adUnitId, flutterAdRequest, sizes, bannerAdCreator); + } +} diff --git a/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAdManagerInterstitialAd.java b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAdManagerInterstitialAd.java new file mode 100644 index 000000000..75c6396db --- /dev/null +++ b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAdManagerInterstitialAd.java @@ -0,0 +1,45 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package io.flutter.plugins.googlemobileads; + +import androidx.annotation.NonNull; + +/** + * Wrapper around {@link com.google.android.gms.ads.admanager.AdManagerInterstitialAd} for the + * Google Mobile Ads Plugin. + */ +class FlutterAdManagerInterstitialAd extends FlutterInterstitialAd { + private static final String TAG = "FltGAMInterstitialAd"; + + + /** + * Constructs a `FlutterAdManagerInterstitialAd`. + * + *

Call `load()` to instantiate the `AdView` and load the `AdRequest`. `getView()` will return + * null only until `load` is called. + */ + public FlutterAdManagerInterstitialAd( + int adId, + @NonNull AdInstanceManager manager, + @NonNull String adUnitId, + @NonNull FlutterAdManagerAdRequest request, + @NonNull FlutterAdLoader flutterAdLoader) { + super(adId, manager, adUnitId, request, flutterAdLoader); + } + + void onAppEvent(@NonNull String name, @NonNull String data) { + manager.onAppEvent(adId, name, data); + } +} diff --git a/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAdRequest.java b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAdRequest.java new file mode 100644 index 000000000..95ccf9b56 --- /dev/null +++ b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAdRequest.java @@ -0,0 +1,409 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package io.flutter.plugins.googlemobileads; + +import android.os.Bundle; +import android.util.Pair; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import com.google.android.gms.ads.mediation.MediationExtrasReceiver; +import com.google.android.gms.ads.mediation.admob.AdMobAdapter; +import com.google.android.libraries.ads.mobile.sdk.banner.AdSize; +import com.google.android.libraries.ads.mobile.sdk.banner.BannerAdRequest; +import com.google.android.libraries.ads.mobile.sdk.common.AdRequest; +import com.google.errorprone.annotations.CanIgnoreReturnValue; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Objects; + +class FlutterAdRequest { + @Nullable private final List keywords; + @Nullable private final String contentUrl; + @Nullable private final Boolean nonPersonalizedAds; + @Nullable private final List neighboringContentUrls; + @Nullable private final Integer httpTimeoutMillis; + @Nullable private final String mediationExtrasIdentifier; + + @SuppressWarnings("deprecation") // Keeping for compatibility + @Nullable + private final MediationNetworkExtrasProvider mediationNetworkExtrasProvider; + + @Nullable private final Map adMobExtras; + @NonNull private final String requestAgent; + @Nullable private final List mediationExtras; + + protected static class Builder { + @Nullable private List keywords; + @Nullable private String contentUrl; + @Nullable private Boolean nonPersonalizedAds; + @Nullable private List neighboringContentUrls; + @Nullable private Integer httpTimeoutMillis; + @Nullable private String mediationExtrasIdentifier; + + @SuppressWarnings("deprecation") // Keeping for compatibility + @Nullable + private MediationNetworkExtrasProvider mediationNetworkExtrasProvider; + + @Nullable private Map adMobExtras; + @NonNull private String requestAgent; + + @Nullable private List mediationExtras; + + @CanIgnoreReturnValue + Builder setRequestAgent(String requestAgent) { + this.requestAgent = requestAgent; + return this; + } + + @CanIgnoreReturnValue + Builder setKeywords(@Nullable List keywords) { + this.keywords = keywords; + return this; + } + + @CanIgnoreReturnValue + Builder setContentUrl(@Nullable String contentUrl) { + this.contentUrl = contentUrl; + return this; + } + + @CanIgnoreReturnValue + Builder setNonPersonalizedAds(@Nullable Boolean nonPersonalizedAds) { + this.nonPersonalizedAds = nonPersonalizedAds; + return this; + } + + @CanIgnoreReturnValue + Builder setNeighboringContentUrls(@Nullable List neighboringContentUrls) { + this.neighboringContentUrls = neighboringContentUrls; + return this; + } + + @CanIgnoreReturnValue + Builder setHttpTimeoutMillis(@Nullable Integer httpTimeoutMillis) { + this.httpTimeoutMillis = httpTimeoutMillis; + return this; + } + + @CanIgnoreReturnValue + Builder setMediationNetworkExtrasIdentifier(@Nullable String mediationExtrasIdentifier) { + this.mediationExtrasIdentifier = mediationExtrasIdentifier; + return this; + } + + @CanIgnoreReturnValue + @SuppressWarnings("deprecation") // Keeping for compatibility + Builder setMediationNetworkExtrasProvider( + @Nullable MediationNetworkExtrasProvider mediationNetworkExtrasProvider) { + this.mediationNetworkExtrasProvider = mediationNetworkExtrasProvider; + return this; + } + + @CanIgnoreReturnValue + Builder setAdMobExtras(@Nullable Map adMobExtras) { + this.adMobExtras = adMobExtras; + return this; + } + + @CanIgnoreReturnValue + Builder setMediationExtras(@Nullable List mediationExtras) { + this.mediationExtras = mediationExtras; + return this; + } + + @Nullable + protected List getKeywords() { + return keywords; + } + + @Nullable + protected String getContentUrl() { + return contentUrl; + } + + @Nullable + protected Boolean getNonPersonalizedAds() { + return nonPersonalizedAds; + } + + @Nullable + protected List getNeighboringContentUrls() { + return neighboringContentUrls; + } + + @Nullable + protected Integer getHttpTimeoutMillis() { + return httpTimeoutMillis; + } + + @Nullable + protected String getMediationExtrasIdentifier() { + return mediationExtrasIdentifier; + } + + @SuppressWarnings("deprecation") // Keeping for compatibility + @Nullable + protected MediationNetworkExtrasProvider getMediationNetworkExtrasProvider() { + return mediationNetworkExtrasProvider; + } + + @Nullable + protected Map getAdMobExtras() { + return adMobExtras; + } + + @NonNull + protected String getRequestAgent() { + return requestAgent; + } + + @Nullable + protected List getMediationExtras() { + return mediationExtras; + } + + FlutterAdRequest build() { + return new FlutterAdRequest( + keywords, + contentUrl, + nonPersonalizedAds, + neighboringContentUrls, + httpTimeoutMillis, + mediationExtrasIdentifier, + mediationNetworkExtrasProvider, + adMobExtras, + requestAgent, + mediationExtras); + } + } + + @SuppressWarnings("deprecation") // Keeping for compatibility + protected FlutterAdRequest( + @Nullable List keywords, + @Nullable String contentUrl, + @Nullable Boolean nonPersonalizedAds, + @Nullable List neighboringContentUrls, + @Nullable Integer httpTimeoutMillis, + @Nullable String mediationExtrasIdentifier, + @Nullable MediationNetworkExtrasProvider mediationNetworkExtrasProvider, + @Nullable Map adMobExtras, + String requestAgent, + @Nullable List mediationExtras) { + this.keywords = keywords; + this.contentUrl = contentUrl; + this.nonPersonalizedAds = nonPersonalizedAds; + this.neighboringContentUrls = neighboringContentUrls; + this.httpTimeoutMillis = httpTimeoutMillis; + this.mediationExtrasIdentifier = mediationExtrasIdentifier; + this.mediationNetworkExtrasProvider = mediationNetworkExtrasProvider; + this.adMobExtras = adMobExtras; + this.requestAgent = requestAgent; + this.mediationExtras = mediationExtras; + } + + /** Adds network extras to the ad request builder, if any. */ + private void addNetworkExtras( + AdRequest.Builder builder, String adUnitId) { + Map, Bundle> networkExtras = new HashMap<>(); + if (mediationExtras != null) { + for (FlutterMediationExtras flutterExtras : mediationExtras) { + Pair, Bundle> pair = + flutterExtras.getMediationExtras(); + networkExtras.put(pair.first, pair.second); + } + } else if (mediationNetworkExtrasProvider != null) { + Map, Bundle> providedExtras = + mediationNetworkExtrasProvider.getMediationExtras(adUnitId, mediationExtrasIdentifier); + networkExtras.putAll(providedExtras); + } + + if (adMobExtras != null && !adMobExtras.isEmpty()) { + Bundle adMobBundle = new Bundle(); + for (Map.Entry extra : adMobExtras.entrySet()) { + adMobBundle.putString(extra.getKey(), extra.getValue()); + } + networkExtras.put(AdMobAdapter.class, adMobBundle); + } + + if (nonPersonalizedAds != null && nonPersonalizedAds) { + Bundle adMobBundle = networkExtras.get(AdMobAdapter.class); + if (adMobBundle == null) { + adMobBundle = new Bundle(); + } + adMobBundle.putString("npa", "1"); + networkExtras.put(AdMobAdapter.class, adMobBundle); + } + + for (Entry, Bundle> entry : networkExtras.entrySet()) { + builder.putAdSourceExtrasBundle(entry.getKey(), entry.getValue()); + } + } + + /** Updates the {@link AdRequest.Builder} with the properties in this {@link FlutterAdRequest}. */ + protected AdRequest.Builder updateAdRequestBuilder(AdRequest.Builder builder, String adUnitId) { + if (keywords != null) { + for (final String keyword : keywords) { + builder.addKeyword(keyword); + } + } + if (contentUrl != null) { + builder.setContentUrl(contentUrl); + } + addNetworkExtras(builder, adUnitId); + if (neighboringContentUrls != null) { + builder.setNeighboringContentUrls(new HashSet(neighboringContentUrls)); + } + builder.setRequestAgent(requestAgent); + return builder; + } + + protected BannerAdRequest.Builder toBannerAdRequestBuilder(String adUnitId, List allSizes) { + BannerAdRequest.Builder builder = new BannerAdRequest.Builder(adUnitId, allSizes); + if (keywords != null) { + for (final String keyword : keywords) { + builder.addKeyword(keyword); + } + } + if (contentUrl != null) { + builder.setContentUrl(contentUrl); + } + + Map, Bundle> networkExtras = new HashMap<>(); + if (mediationExtras != null) { + for (FlutterMediationExtras flutterExtras : mediationExtras) { + Pair, Bundle> pair = + flutterExtras.getMediationExtras(); + networkExtras.put(pair.first, pair.second); + } + } else if (mediationNetworkExtrasProvider != null) { + Map, Bundle> providedExtras = + mediationNetworkExtrasProvider.getMediationExtras(adUnitId, mediationExtrasIdentifier); + networkExtras.putAll(providedExtras); + } + + if (adMobExtras != null && !adMobExtras.isEmpty()) { + Bundle adMobBundle = new Bundle(); + for (Map.Entry extra : adMobExtras.entrySet()) { + adMobBundle.putString(extra.getKey(), extra.getValue()); + } + networkExtras.put(AdMobAdapter.class, adMobBundle); + } + + if (nonPersonalizedAds != null && nonPersonalizedAds) { + Bundle adMobBundle = networkExtras.get(AdMobAdapter.class); + if (adMobBundle == null) { + adMobBundle = new Bundle(); + } + adMobBundle.putString("npa", "1"); + networkExtras.put(AdMobAdapter.class, adMobBundle); + } + + for (Entry, Bundle> entry : networkExtras.entrySet()) { + builder.putAdSourceExtrasBundle(entry.getKey(), entry.getValue()); + } + + if (neighboringContentUrls != null) { + builder.setNeighboringContentUrls(new HashSet(neighboringContentUrls)); + } + builder.setRequestAgent(requestAgent); + return builder; + } + + AdRequest asAdRequest(String adUnitId) { + return ((AdRequest.Builder) updateAdRequestBuilder(new AdRequest.Builder(adUnitId), adUnitId)) + .build(); + } + + @Nullable + protected List getKeywords() { + return keywords; + } + + @Nullable + protected String getContentUrl() { + return contentUrl; + } + + @Nullable + protected Boolean getNonPersonalizedAds() { + return nonPersonalizedAds; + } + + @Nullable + protected List getNeighboringContentUrls() { + return neighboringContentUrls; + } + + @Nullable + protected Integer getHttpTimeoutMillis() { + return httpTimeoutMillis; + } + + @Nullable + protected String getMediationExtrasIdentifier() { + return mediationExtrasIdentifier; + } + + @Nullable + protected Map getAdMobExtras() { + return adMobExtras; + } + + @NonNull + protected String getRequestAgent() { + return requestAgent; + } + + @Nullable + protected List getMediationExtras() { + return mediationExtras; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } else if (!(o instanceof FlutterAdRequest)) { + return false; + } + + FlutterAdRequest request = (FlutterAdRequest) o; + return Objects.equals(keywords, request.keywords) + && Objects.equals(contentUrl, request.contentUrl) + && Objects.equals(nonPersonalizedAds, request.nonPersonalizedAds) + && Objects.equals(neighboringContentUrls, request.neighboringContentUrls) + && Objects.equals(httpTimeoutMillis, request.httpTimeoutMillis) + && Objects.equals(mediationExtrasIdentifier, request.mediationExtrasIdentifier) + && Objects.equals(mediationNetworkExtrasProvider, request.mediationNetworkExtrasProvider) + && Objects.equals(adMobExtras, request.adMobExtras) + && Objects.equals(mediationExtras, request.mediationExtras); + } + + @Override + public int hashCode() { + return Objects.hash( + keywords, + contentUrl, + nonPersonalizedAds, + neighboringContentUrls, + httpTimeoutMillis, + mediationExtrasIdentifier, + mediationNetworkExtrasProvider, + mediationExtras); + } +} diff --git a/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAdSize.java b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAdSize.java new file mode 100644 index 000000000..536d7e92a --- /dev/null +++ b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAdSize.java @@ -0,0 +1,200 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package io.flutter.plugins.googlemobileads; + +import android.content.Context; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import com.google.android.libraries.ads.mobile.sdk.banner.AdSize; + +class FlutterAdSize { + @NonNull final AdSize size; + final int width; + final int height; + + /** Wrapper around static methods for {@link com.google.android.gms.ads.AdSize}. */ + static class AdSizeFactory { + + @SuppressWarnings("deprecation") + AdSize getPortraitAnchoredAdaptiveBannerAdSize(Context context, int width) { + return AdSize.getPortraitAnchoredAdaptiveBannerAdSize(context, width); + } + + @SuppressWarnings("deprecation") + AdSize getLandscapeAnchoredAdaptiveBannerAdSize(Context context, int width) { + return AdSize.getLandscapeAnchoredAdaptiveBannerAdSize(context, width); + } + + @SuppressWarnings("deprecation") + AdSize getCurrentOrientationAnchoredAdaptiveBannerAdSize(Context context, int width) { + return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(context, width); + } + + AdSize getLargePortraitAnchoredAdaptiveBannerAdSize(Context context, int width) { + return AdSize.getLargePortraitAnchoredAdaptiveBannerAdSize(context, width); + } + + AdSize getLargeLandscapeAnchoredAdaptiveBannerAdSize(Context context, int width) { + return AdSize.getLargeLandscapeAnchoredAdaptiveBannerAdSize(context, width); + } + + AdSize getLargeAnchoredAdaptiveBannerAdSize(Context context, int width) { + return AdSize.getLargeAnchoredAdaptiveBannerAdSize(context, width); + } + + AdSize getCurrentOrientationInlineAdaptiveBannerAdSize(Context context, int width) { + return AdSize.getCurrentOrientationInlineAdaptiveBannerAdSize(context, width); + } + + AdSize getLandscapeInlineAdaptiveBannerAdSize(Context context, int width) { + return AdSize.getLandscapeInlineAdaptiveBannerAdSize(context, width); + } + + AdSize getPortraitInlineAdaptiveBannerAdSize(Context context, int width) { + return AdSize.getPortraitInlineAdaptiveBannerAdSize(context, width); + } + + AdSize getInlineAdaptiveBannerAdSize(int width, int maxHeight) { + return AdSize.getInlineAdaptiveBannerAdSize(width, maxHeight); + } + } + + static class AnchoredAdaptiveBannerAdSize extends FlutterAdSize { + final String orientation; + + @NonNull + private static AdSize getAdSize( + @NonNull Context context, + @NonNull AdSizeFactory factory, + @Nullable String orientation, + int width, + boolean isLarge) { + if (orientation == null) { + if (isLarge) { + return factory.getLargeAnchoredAdaptiveBannerAdSize(context, width); + } + return factory.getCurrentOrientationAnchoredAdaptiveBannerAdSize(context, width); + } else if (orientation.equals("portrait")) { + if (isLarge) { + return factory.getLargePortraitAnchoredAdaptiveBannerAdSize(context, width); + } + return factory.getPortraitAnchoredAdaptiveBannerAdSize(context, width); + } else if (orientation.equals("landscape")) { + if (isLarge) { + return factory.getLargeLandscapeAnchoredAdaptiveBannerAdSize(context, width); + } + return factory.getLandscapeAnchoredAdaptiveBannerAdSize(context, width); + } else { + throw new IllegalArgumentException("Unexpected value for orientation: " + orientation); + } + } + + AnchoredAdaptiveBannerAdSize( + @NonNull Context context, + @NonNull AdSizeFactory factory, + @Nullable String orientation, + int width, + boolean isLarge) { + super(getAdSize(context, factory, orientation, width, isLarge)); + this.orientation = orientation; + } + } + + static class SmartBannerAdSize extends FlutterAdSize { + + @SuppressWarnings("deprecation") // Smart banner is already deprecated in Dart. + SmartBannerAdSize() { + super(AdSize.FLUID); + } + } + + static class FluidAdSize extends FlutterAdSize { + + FluidAdSize() { + super(AdSize.FLUID); + } + } + + static class InlineAdaptiveBannerAdSize extends FlutterAdSize { + + @Nullable final Integer orientation; + @Nullable final Integer maxHeight; + + private static AdSize getAdSize( + @NonNull AdSizeFactory adSizeFactory, + @NonNull Context context, + int width, + @Nullable Integer orientation, + @Nullable Integer maxHeight) { + if (orientation != null) { + return orientation == 0 + ? adSizeFactory.getPortraitInlineAdaptiveBannerAdSize(context, width) + : adSizeFactory.getLandscapeInlineAdaptiveBannerAdSize(context, width); + } else if (maxHeight != null) { + return adSizeFactory.getInlineAdaptiveBannerAdSize(width, maxHeight); + } else { + return adSizeFactory.getCurrentOrientationInlineAdaptiveBannerAdSize(context, width); + } + } + + InlineAdaptiveBannerAdSize( + @NonNull AdSizeFactory adSizeFactory, + @NonNull Context context, + int width, + @Nullable Integer orientation, + @Nullable Integer maxHeight) { + super(getAdSize(adSizeFactory, context, width, orientation, maxHeight)); + this.orientation = orientation; + this.maxHeight = maxHeight; + } + } + + FlutterAdSize(int width, int height) { + this(new AdSize(width, height)); + } + + FlutterAdSize(@NonNull AdSize size) { + this.size = size; + this.width = size.getWidth(); + this.height = size.getHeight(); + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } else if (!(o instanceof FlutterAdSize)) { + return false; + } + + final FlutterAdSize that = (FlutterAdSize) o; + + if (width != that.width) { + return false; + } + return height == that.height; + } + + @Override + public int hashCode() { + int result = width; + result = 31 * result + height; + return result; + } + + public AdSize getAdSize() { + return size; + } +} diff --git a/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAdapterStatus.java b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAdapterStatus.java new file mode 100644 index 000000000..edc906106 --- /dev/null +++ b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAdapterStatus.java @@ -0,0 +1,92 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package io.flutter.plugins.googlemobileads; + +import androidx.annotation.NonNull; +import com.google.android.libraries.ads.mobile.sdk.initialization.AdapterStatus; + +/** + * Wrapper around {@link com.google.android.gms.ads.initialization.AdapterStatus} for the Flutter + * Google Mobile Ads Plugin. + */ +class FlutterAdapterStatus { + @NonNull final AdapterInitializationState state; + @NonNull final String description; + @NonNull final Number latency; + + /** + * Represents {@link com.google.android.gms.ads.initialization.AdapterStatus.State} for the + * Flutter Google Mobile Ads Plugin. + */ + enum AdapterInitializationState { + NOT_READY, + READY + } + + FlutterAdapterStatus( + @NonNull AdapterInitializationState state, + @NonNull String description, + @NonNull Number latency) { + this.state = state; + this.description = description; + this.latency = latency; + } + + FlutterAdapterStatus(@NonNull AdapterStatus status) { + switch (status.getInitializationState()) { + case NOT_STARTED: + case FAILED: + case INITIALIZING: + case TIMED_OUT: + this.state = AdapterInitializationState.NOT_READY; + break; + case COMPLETE: + this.state = AdapterInitializationState.READY; + break; + default: + final String message = + String.format("Unable to handle state: %s", status.getInitializationState()); + throw new IllegalArgumentException(message); + } + + this.description = status.getDescription(); + this.latency = status.getLatency(); + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } else if (!(o instanceof FlutterAdapterStatus)) { + return false; + } + + final FlutterAdapterStatus that = (FlutterAdapterStatus) o; + if (state != that.state) { + return false; + } else if (!description.equals(that.description)) { + return false; + } + return latency.equals(that.latency); + } + + @Override + public int hashCode() { + int result = state.hashCode(); + result = 31 * result + description.hashCode(); + result = 31 * result + latency.hashCode(); + return result; + } +} diff --git a/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAppOpenAd.java b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAppOpenAd.java new file mode 100644 index 000000000..3f43cf8b3 --- /dev/null +++ b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterAppOpenAd.java @@ -0,0 +1,130 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package io.flutter.plugins.googlemobileads; + +import android.util.Log; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import com.google.android.libraries.ads.mobile.sdk.appopen.AppOpenAd; +import com.google.android.libraries.ads.mobile.sdk.appopen.AppOpenAdEventCallback; +import com.google.android.libraries.ads.mobile.sdk.common.AdLoadCallback; +import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError; +import io.flutter.util.Preconditions; +import java.lang.ref.WeakReference; + +/** A wrapper for {@link com.google.android.gms.ads.appopen.AppOpenAd}. */ +class FlutterAppOpenAd extends FlutterAd.FlutterOverlayAd { + + private static final String TAG = "FlutterAppOpenAd"; + + @NonNull private final AdInstanceManager manager; + @NonNull private final String adUnitId; + @Nullable private final FlutterAdRequest request; + @Nullable private final FlutterAdManagerAdRequest adManagerAdRequest; + @Nullable private AppOpenAd ad; + @NonNull private final FlutterAdLoader flutterAdLoader; + + FlutterAppOpenAd( + int adId, + @NonNull AdInstanceManager manager, + @NonNull String adUnitId, + @Nullable FlutterAdRequest request, + @Nullable FlutterAdManagerAdRequest adManagerAdRequest, + @NonNull FlutterAdLoader flutterAdLoader) { + super(adId); + Preconditions.checkState( + request != null || adManagerAdRequest != null, + "One of request and adManagerAdRequest must be non-null."); + this.manager = manager; + this.adUnitId = adUnitId; + this.request = request; + this.adManagerAdRequest = adManagerAdRequest; + this.flutterAdLoader = flutterAdLoader; + } + + @Override + void load() { + if (request != null) { + flutterAdLoader.loadAppOpen( + request.asAdRequest(adUnitId), new DelegatingAppOpenAdLoadCallback(this)); + } else if (adManagerAdRequest != null) { + flutterAdLoader.loadAdManagerAppOpen( + adManagerAdRequest.asAdManagerAdRequest(adUnitId), + new DelegatingAppOpenAdLoadCallback(this)); + } + } + + private void onAdLoaded(@NonNull AppOpenAd ad) { + this.ad = ad; + manager.onAdLoaded(adId, ad.getResponseInfo()); + } + + private void onAdFailedToLoad(@NonNull LoadAdError loadAdError) { + manager.onAdFailedToLoad(adId, new FlutterLoadAdError(loadAdError)); + } + + @Override + void show() { + if (ad == null) { + Log.w(TAG, "Tried to show app open ad before it was loaded"); + return; + } + if (manager.getActivity() == null) { + Log.e(TAG, "Tried to show app open ad before activity was bound to the plugin."); + return; + } + ad.setAdEventCallback(new DelegatingAppOpenAdLoadCallback(this)); + ad.show(manager.getActivity()); + } + + @Override + void setImmersiveMode(boolean immersiveModeEnabled) { + if (ad == null) { + Log.w(TAG, "Tried to set immersive mode on app open ad before it was loaded"); + return; + } + ad.setImmersiveMode(immersiveModeEnabled); + } + + @Override + void dispose() { + ad = null; + } + + /** An AppOpenAdLoadCallback that just forwards events to a delegate. */ + private static final class DelegatingAppOpenAdLoadCallback + implements AdLoadCallback, AppOpenAdEventCallback { + + private final WeakReference delegate; + + DelegatingAppOpenAdLoadCallback(FlutterAppOpenAd delegate) { + this.delegate = new WeakReference<>(delegate); + } + + @Override + public void onAdLoaded(@NonNull AppOpenAd appOpenAd) { + if (delegate.get() != null) { + delegate.get().onAdLoaded(appOpenAd); + } + } + + @Override + public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) { + if (delegate.get() != null) { + delegate.get().onAdFailedToLoad(loadAdError); + } + } + } +} diff --git a/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterBannerAd.java b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterBannerAd.java new file mode 100644 index 000000000..9f9fc992d --- /dev/null +++ b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterBannerAd.java @@ -0,0 +1,165 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package io.flutter.plugins.googlemobileads; + +import android.app.Activity; +import android.util.Log; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import com.google.android.libraries.ads.mobile.sdk.banner.AdSize; +import com.google.android.libraries.ads.mobile.sdk.banner.AdView; +import com.google.android.libraries.ads.mobile.sdk.banner.BannerAd; +import com.google.android.libraries.ads.mobile.sdk.banner.BannerAdRequest; +import com.google.android.libraries.ads.mobile.sdk.common.AdLoadCallback; +import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError; +import io.flutter.plugin.platform.PlatformView; +import io.flutter.util.Preconditions; +import java.util.ArrayList; +import java.util.List; + +/** + * A wrapper for {@link AdView}. + */ +class FlutterBannerAd extends FlutterAd implements FlutterAdLoadedListener { + + private static final String TAG = "FlutterBannerAd"; + + @NonNull + protected final AdInstanceManager manager; + @NonNull + protected final String adUnitId; + @NonNull + private final List sizes; + @NonNull private final FlutterAdRequest request; + @NonNull + protected final BannerAdCreator bannerAdCreator; + @Nullable + protected BannerAd bannerAd; + @Nullable + protected AdView adView; + + /** + * Constructs the FlutterBannerAd. + */ + public FlutterBannerAd( + int adId, + @NonNull AdInstanceManager manager, + @NonNull String adUnitId, + FlutterAdRequest flutterAdRequest, // Kept for compatibility + @NonNull FlutterAdSize size, + @NonNull BannerAdCreator bannerAdCreator) { + this(adId, manager, adUnitId, flutterAdRequest, List.of(size), bannerAdCreator); + } + + public FlutterBannerAd( + int adId, + @NonNull AdInstanceManager manager, + @NonNull String adUnitId, + @NonNull FlutterAdRequest request, + @NonNull List sizes, + @NonNull BannerAdCreator bannerAdCreator) { + super(adId); + Preconditions.checkNotNull(manager); + Preconditions.checkNotNull(adUnitId); + Preconditions.checkNotNull(sizes); + this.manager = manager; + this.adUnitId = adUnitId; + this.request = Preconditions.checkNotNull(request); + this.sizes = sizes; + this.bannerAdCreator = bannerAdCreator; + } + + @Override + public void onAdLoaded() { + if (bannerAd != null) { + manager.onAdLoaded(adId, bannerAd.getResponseInfo()); + } + } + + @Override + void load() { + adView = bannerAdCreator.createAdView(); + final List allSizes = new ArrayList(); + for (int i = 0; i < sizes.size(); i++) { + FlutterAdSize flutterAdSize = sizes.get(i); + if (flutterAdSize.getAdSize().isFluid()) { + allSizes.add(AdSize.FLUID); + continue; + } + AdSize adSize = + new AdSize(flutterAdSize.getAdSize().getWidth(), flutterAdSize.getAdSize().getHeight()); + allSizes.add(adSize); + } + BannerAdRequest adRequest = request.toBannerAdRequestBuilder(adUnitId, allSizes).build(); + adView.loadAd( + adRequest, + new AdLoadCallback() { + @Override + public void onAdLoaded(@NonNull BannerAd ad) { + Activity activity = manager.getActivity(); + if (activity == null) { + Log.e(TAG, "Tried to load banner ad before plugin is attached to an activity."); + return; + } + bannerAd = ad; + bannerAd.setAdEventCallback( + new FlutterBannerAdListener(adId, manager, FlutterBannerAd.this)); + adView.registerBannerAd(bannerAd, activity); + FlutterBannerAd.this.onAdLoaded(); + } + + @Override + public void onAdFailedToLoad(@NonNull LoadAdError adError) { + bannerAd = null; + } + }); + } + + @Nullable + @Override + public PlatformView getPlatformView() { + if (adView == null) { + return null; + } + return new FlutterPlatformView(adView); + } + + @Override + void dispose() { + if (bannerAd != null) { + bannerAd = null; + } + if (adView != null) { + adView.destroy(); + } + } + + @Nullable + FlutterAdSize getAdSize() { + if (adView == null || adView.getBannerAd().getAdSize() == null) { + return null; + } + return new FlutterAdSize( + adView.getBannerAd().getAdSize().getWidth(), adView.getBannerAd().getAdSize().getHeight()); + } + + boolean isCollapsible() { + if (bannerAd == null) { + Log.e(TAG, "Banner ad is not loaded or has been disposed."); + return false; + } + return bannerAd.isCollapsible(); + } +} diff --git a/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterFullScreenContentCallback.java b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterFullScreenContentCallback.java new file mode 100644 index 000000000..fb09af691 --- /dev/null +++ b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterFullScreenContentCallback.java @@ -0,0 +1,66 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package io.flutter.plugins.googlemobileads; + +import androidx.annotation.NonNull; +import com.google.android.gms.ads.AdError; +import com.google.android.libraries.ads.mobile.sdk.common.AdEventCallback; +import com.google.android.libraries.ads.mobile.sdk.common.FullScreenContentError; + +/** + * Flutter implementation of {@link FullScreenContentCallback}. Forwards events to + * AdInstanceManager. + */ +class FlutterFullScreenContentCallback implements AdEventCallback { + + @NonNull protected final AdInstanceManager manager; + + @NonNull protected final int adId; + + public FlutterFullScreenContentCallback(@NonNull AdInstanceManager manager, int adId) { + this.manager = manager; + this.adId = adId; + } + + @Override + public void onAdFailedToShowFullScreenContent(@NonNull FullScreenContentError adError) { + manager.onFailedToShowFullScreenContent( + adId, + new AdError( + adError.getCode().getValue(), + adError.getMessage(), + "com.google.android.libraries.ads.mobile.sdk")); + } + + @Override + public void onAdShowedFullScreenContent() { + manager.onAdShowedFullScreenContent(adId); + } + + @Override + public void onAdDismissedFullScreenContent() { + manager.onAdDismissedFullScreenContent(adId); + } + + @Override + public void onAdImpression() { + manager.onAdImpression(adId); + } + + @Override + public void onAdClicked() { + manager.onAdClicked(adId); + } +} diff --git a/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterInitializationListener.java b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterInitializationListener.java new file mode 100644 index 000000000..d757a0334 --- /dev/null +++ b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterInitializationListener.java @@ -0,0 +1,54 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package io.flutter.plugins.googlemobileads; + +import androidx.annotation.NonNull; +import com.google.android.libraries.ads.mobile.sdk.initialization.InitializationStatus; +import com.google.android.libraries.ads.mobile.sdk.initialization.OnAdapterInitializationCompleteListener; +import io.flutter.plugin.common.MethodChannel.Result; +import java.lang.reflect.Method; + +/** + * An {@link OnAdapterInitializationCompleteListener} that invokes result.success() at most once. + */ +public final class FlutterInitializationListener + implements OnAdapterInitializationCompleteListener { + + private final Result result; + private boolean isInitializationCompleted; + + FlutterInitializationListener(@NonNull final Result result) { + this.result = result; + isInitializationCompleted = false; + } + + @Override + public void onAdapterInitializationComplete(@NonNull InitializationStatus initializationStatus) { + // Make sure not to invoke this more than once, since Dart will throw an exception if success + // is invoked more than once. See b/193418432. + if (isInitializationCompleted) { + return; + } + try { + Class clazz = Class.forName("com.google.android.gms.ads.MobileAds"); + Method method = clazz.getDeclaredMethod("setPlugin", String.class); + method.setAccessible(true); + method.invoke(null, Constants.REQUEST_AGENT_PREFIX_VERSIONED); + } catch (Exception ignored) { + } + result.success(new FlutterInitializationStatus(initializationStatus)); + isInitializationCompleted = true; + } +} diff --git a/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterInitializationStatus.java b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterInitializationStatus.java new file mode 100644 index 000000000..03576bb2a --- /dev/null +++ b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterInitializationStatus.java @@ -0,0 +1,44 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package io.flutter.plugins.googlemobileads; + +import androidx.annotation.NonNull; +import com.google.android.libraries.ads.mobile.sdk.initialization.AdapterStatus; +import com.google.android.libraries.ads.mobile.sdk.initialization.InitializationStatus; +import java.util.HashMap; +import java.util.Map; + +/** + * Wrapper around {@link com.google.android.gms.ads.initialization.InitializationStatus} for the + * Flutter Google Mobile Ads Plugin. + */ +class FlutterInitializationStatus { + @NonNull final Map adapterStatuses; + + FlutterInitializationStatus(@NonNull Map adapterStatuses) { + this.adapterStatuses = adapterStatuses; + } + + FlutterInitializationStatus(@NonNull InitializationStatus initializationStatus) { + final HashMap newStatusMap = new HashMap<>(); + final Map adapterStatusMap = initializationStatus.getAdapterStatusMap(); + + for (Map.Entry status : adapterStatusMap.entrySet()) { + newStatusMap.put(status.getKey(), new FlutterAdapterStatus(status.getValue())); + } + + this.adapterStatuses = newStatusMap; + } +} diff --git a/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterInterstitialAd.java b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterInterstitialAd.java new file mode 100644 index 000000000..714d93858 --- /dev/null +++ b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterInterstitialAd.java @@ -0,0 +1,120 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package io.flutter.plugins.googlemobileads; + +import android.util.Log; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError; +import com.google.android.libraries.ads.mobile.sdk.common.AdLoadCallback; +import com.google.android.libraries.ads.mobile.sdk.interstitial.InterstitialAd; +import com.google.android.libraries.ads.mobile.sdk.interstitial.InterstitialAdEventCallback; +import java.lang.ref.WeakReference; + +class FlutterInterstitialAd extends FlutterAd.FlutterOverlayAd { + private static final String TAG = "FlutterInterstitialAd"; + + @NonNull protected final AdInstanceManager manager; + @NonNull private final String adUnitId; + @NonNull private final FlutterAdRequest request; + @Nullable private InterstitialAd ad; + @NonNull private final FlutterAdLoader flutterAdLoader; + + public FlutterInterstitialAd( + int adId, + @NonNull AdInstanceManager manager, + @NonNull String adUnitId, + @NonNull FlutterAdRequest request, + @NonNull FlutterAdLoader flutterAdLoader) { + super(adId); + this.manager = manager; + this.adUnitId = adUnitId; + this.request = request; + this.flutterAdLoader = flutterAdLoader; + } + + @Override + void load() { + if (manager != null && adUnitId != null && request != null) { + flutterAdLoader.loadInterstitial( + request.asAdRequest(adUnitId), new DelegatingInterstitialAdLoadCallback(this)); + } + } + + void onAdLoaded(InterstitialAd ad) { + this.ad = ad; + manager.onAdLoaded(adId, ad.getResponseInfo()); + } + + void onAdFailedToLoad(LoadAdError loadAdError) { + manager.onAdFailedToLoad(adId, new FlutterAd.FlutterLoadAdError(loadAdError)); + } + + @Override + void dispose() { + ad = null; + } + + @Override + public void show() { + if (ad == null) { + Log.e(TAG, "Error showing interstitial - the interstitial ad wasn't loaded yet."); + return; + } + if (manager.getActivity() == null) { + Log.e(TAG, "Tried to show interstitial before activity was bound to the plugin."); + return; + } + ad.setAdEventCallback(new DelegatingInterstitialAdLoadCallback(this)); + ad.show(manager.getActivity()); + } + + @Override + public void setImmersiveMode(boolean immersiveModeEnabled) { + if (ad == null) { + Log.e( + TAG, + "Error setting immersive mode in interstitial ad - the interstitial ad wasn't loaded" + + " yet."); + return; + } + ad.setImmersiveMode(immersiveModeEnabled); + } + + /** An AdLoadCallback that just forwards events to a delegate. */ + private static final class DelegatingInterstitialAdLoadCallback + implements AdLoadCallback, InterstitialAdEventCallback { + + private final WeakReference delegate; + + DelegatingInterstitialAdLoadCallback(FlutterInterstitialAd delegate) { + this.delegate = new WeakReference<>(delegate); + } + + @Override + public void onAdLoaded(@NonNull InterstitialAd interstitialAd) { + if (delegate.get() != null) { + delegate.get().onAdLoaded(interstitialAd); + } + } + + @Override + public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) { + if (delegate.get() != null) { + delegate.get().onAdFailedToLoad(loadAdError); + } + } + } +} diff --git a/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterMobileAdsWrapper.java b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterMobileAdsWrapper.java new file mode 100644 index 000000000..fa07a00a5 --- /dev/null +++ b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterMobileAdsWrapper.java @@ -0,0 +1,136 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package io.flutter.plugins.googlemobileads; + +import android.app.Activity; +import android.content.Context; +import android.content.pm.ApplicationInfo; +import android.content.pm.PackageManager; +import android.os.Bundle; +import android.util.Log; +import android.webkit.WebView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import com.google.android.libraries.ads.mobile.sdk.MobileAds; +import com.google.android.libraries.ads.mobile.sdk.common.OnAdInspectorClosedListener; +import com.google.android.libraries.ads.mobile.sdk.common.RequestConfiguration; +import com.google.android.libraries.ads.mobile.sdk.initialization.InitializationConfig; +import com.google.android.libraries.ads.mobile.sdk.initialization.OnAdapterInitializationCompleteListener; +import io.flutter.embedding.engine.FlutterEngine; +import io.flutter.plugins.webviewflutter.WebViewFlutterAndroidExternalApi; + +/** A wrapper around static methods in {@link com.google.android.gms.ads.MobileAds}. */ +public class FlutterMobileAdsWrapper { + + private static final String TAG = "FlutterMobileAdsWrapper"; + private static final String APPLICATION_ID_KEY = "com.google.android.gms.ads.APPLICATION_ID"; + private static boolean disableMediationAdapterInitialization = false; + + public FlutterMobileAdsWrapper() {} + + /** Initializes the sdk. */ + public void initialize( + @NonNull Context context, @NonNull OnAdapterInitializationCompleteListener listener) { + final String appId = getApplicationMetaData(context, APPLICATION_ID_KEY); + + if (appId == null) { + Log.e(TAG, "Application ID is null. Cannot initialize the Google Mobile Ads SDK."); + return; + } + + InitializationConfig.Builder configBuilder = new InitializationConfig.Builder(appId); + if(disableMediationAdapterInitialization) { + configBuilder.disableMediationAdapterInitialization(); + } + InitializationConfig config = configBuilder.build(); + new Thread( + new Runnable() { + @Override + public void run() { + MobileAds.initialize(context, config, listener); + } + }) + .start(); + } + + /** Wrapper for setAppMuted. */ + public void setAppMuted(boolean muted) { + MobileAds.setUserMutedApp(muted); + } + + /** Wrapper for setAppVolume. */ + public void setAppVolume(double volume) { + MobileAds.setUserControlledAppVolume((float) volume); + } + + /** Wrapper for disableMediationInitialization. */ + public void disableMediationInitialization(@NonNull Context context) { + disableMediationAdapterInitialization = true; + } + + /** Wrapper for getVersionString. */ + public String getVersionString() { + return MobileAds.getVersion().toString(); + } + + /** Wrapper for getRequestConfiguration. */ + public RequestConfiguration getRequestConfiguration() { + return MobileAds.getRequestConfiguration(); + } + + /** Wrapper for openDebugMenu. */ + public void openDebugMenu(Context context, String adUnitId) { + if (!(context instanceof Activity)) { + Log.w(TAG, "Cannot openDebugMenu before GMA SDK is attached to a Flutter Activity"); + return; + } + Activity activity = (Activity) context; + MobileAds.openDebugMenu(activity, adUnitId); + } + + /** Open the ad inspector. */ + public void openAdInspector(Context context, OnAdInspectorClosedListener listener) { + MobileAds.openAdInspector(listener); + } + + /** Register the webView for monetization. */ + public void registerWebView(int webViewId, FlutterEngine flutterEngine) { + WebView webView = WebViewFlutterAndroidExternalApi.getWebView(flutterEngine, webViewId); + if (webView == null) { + Log.w(TAG, "MobileAds.registerWebView unable to find webView with id: " + webViewId); + } else { + MobileAds.registerWebView(webView); + } + } + + @Nullable + private String getApplicationMetaData(Context context, String key) { + try { + ApplicationInfo appInfo = + context + .getPackageManager() + .getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA); + Bundle bundle = appInfo.metaData; + if (bundle != null && bundle.containsKey(key)) { + return bundle.getString(key); + } else { + Log.e(TAG, "Application ID not found in manifest!"); + } + } catch (Exception e) { + Log.e(TAG, "Error reading application ID from manifest: " + e.getMessage()); + } + return null; + } +} diff --git a/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterNativeAd.java b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterNativeAd.java new file mode 100644 index 000000000..fc02185c9 --- /dev/null +++ b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterNativeAd.java @@ -0,0 +1,271 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package io.flutter.plugins.googlemobileads; + +import android.content.Context; +import android.util.Log; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import com.google.android.ads.nativetemplates.TemplateView; +import com.google.android.gms.ads.nativead.NativeAdOptions; +import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError; +import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAd; +import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdLoaderCallback; +import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdView; +import com.google.errorprone.annotations.CanIgnoreReturnValue; +import io.flutter.plugin.platform.PlatformView; +import io.flutter.plugins.googlemobileads.nativetemplates.FlutterNativeTemplateStyle; +import java.util.Map; + +/** A wrapper for {@link NativeAd}. */ +class FlutterNativeAd extends FlutterAd { + private static final String TAG = "FlutterNativeAd"; + + @NonNull private final AdInstanceManager manager; + @NonNull private final String adUnitId; + @Nullable private final NativeAdFactory adFactory; + @NonNull private final FlutterAdLoader flutterAdLoader; + @Nullable private FlutterAdRequest request; + @Nullable private FlutterAdManagerAdRequest adManagerRequest; + @Nullable private Map customOptions; + @Nullable private NativeAdView nativeAdView; + @Nullable private final FlutterNativeAdOptions nativeAdOptions; + @Nullable private final FlutterNativeTemplateStyle nativeTemplateStyle; + @Nullable private TemplateView templateView; + @NonNull private final Context context; + + static class Builder { + @Nullable private AdInstanceManager manager; + @Nullable private String adUnitId; + @Nullable private NativeAdFactory adFactory; + @Nullable private FlutterAdRequest request; + @Nullable private FlutterAdManagerAdRequest adManagerRequest; + @Nullable private Map customOptions; + @Nullable private Integer id; + @Nullable private FlutterNativeAdOptions nativeAdOptions; + @Nullable private FlutterAdLoader flutterAdLoader; + @Nullable private FlutterNativeTemplateStyle nativeTemplateStyle; + @NonNull private final Context context; + + Builder(Context context) { + this.context = context; + } + + @CanIgnoreReturnValue + public Builder setAdFactory(@NonNull NativeAdFactory adFactory) { + this.adFactory = adFactory; + return this; + } + + @CanIgnoreReturnValue + public Builder setId(int id) { + this.id = id; + return this; + } + + @CanIgnoreReturnValue + public Builder setCustomOptions(@Nullable Map customOptions) { + this.customOptions = customOptions; + return this; + } + + @CanIgnoreReturnValue + public Builder setManager(@NonNull AdInstanceManager manager) { + this.manager = manager; + return this; + } + + @CanIgnoreReturnValue + public Builder setAdUnitId(@NonNull String adUnitId) { + this.adUnitId = adUnitId; + return this; + } + + @CanIgnoreReturnValue + public Builder setRequest(@NonNull FlutterAdRequest request) { + this.request = request; + return this; + } + + @CanIgnoreReturnValue + public Builder setAdManagerRequest(@NonNull FlutterAdManagerAdRequest request) { + this.adManagerRequest = request; + return this; + } + + @CanIgnoreReturnValue + public Builder setNativeAdOptions(@Nullable FlutterNativeAdOptions nativeAdOptions) { + this.nativeAdOptions = nativeAdOptions; + return this; + } + + @CanIgnoreReturnValue + public Builder setFlutterAdLoader(@NonNull FlutterAdLoader flutterAdLoader) { + this.flutterAdLoader = flutterAdLoader; + return this; + } + + @CanIgnoreReturnValue + public Builder setNativeTemplateStyle( + @Nullable FlutterNativeTemplateStyle nativeTemplateStyle) { + this.nativeTemplateStyle = nativeTemplateStyle; + return this; + } + + FlutterNativeAd build() { + if (manager == null) { + throw new IllegalStateException("AdInstanceManager cannot be null."); + } else if (adUnitId == null) { + throw new IllegalStateException("AdUnitId cannot be null."); + } else if (adFactory == null && nativeTemplateStyle == null) { + throw new IllegalStateException("NativeAdFactory and nativeTemplateStyle cannot be null."); + } else if (request == null && adManagerRequest == null) { + throw new IllegalStateException("adRequest or addManagerRequest must be non-null."); + } + + final FlutterNativeAd nativeAd; + if (request == null) { + nativeAd = + new FlutterNativeAd( + context, + id, + manager, + adUnitId, + adFactory, + adManagerRequest, + flutterAdLoader, + customOptions, + nativeAdOptions, + nativeTemplateStyle); + } else { + nativeAd = + new FlutterNativeAd( + context, + id, + manager, + adUnitId, + adFactory, + request, + flutterAdLoader, + customOptions, + nativeAdOptions, + nativeTemplateStyle); + } + return nativeAd; + } + } + + protected FlutterNativeAd( + @NonNull Context context, + int adId, + @NonNull AdInstanceManager manager, + @NonNull String adUnitId, + @NonNull NativeAdFactory adFactory, + @NonNull FlutterAdRequest request, + @NonNull FlutterAdLoader flutterAdLoader, + @Nullable Map customOptions, + @Nullable FlutterNativeAdOptions nativeAdOptions, + @Nullable FlutterNativeTemplateStyle nativeTemplateStyle) { + super(adId); + this.context = context; + this.manager = manager; + this.adUnitId = adUnitId; + this.adFactory = adFactory; + this.request = request; + this.flutterAdLoader = flutterAdLoader; + this.customOptions = customOptions; + this.nativeAdOptions = nativeAdOptions; + this.nativeTemplateStyle = nativeTemplateStyle; + } + + protected FlutterNativeAd( + @NonNull Context context, + int adId, + @NonNull AdInstanceManager manager, + @NonNull String adUnitId, + @NonNull NativeAdFactory adFactory, + @NonNull FlutterAdManagerAdRequest adManagerRequest, + @NonNull FlutterAdLoader flutterAdLoader, + @Nullable Map customOptions, + @Nullable FlutterNativeAdOptions nativeAdOptions, + @Nullable FlutterNativeTemplateStyle nativeTemplateStyle) { + super(adId); + this.context = context; + this.manager = manager; + this.adUnitId = adUnitId; + this.adFactory = adFactory; + this.adManagerRequest = adManagerRequest; + this.flutterAdLoader = flutterAdLoader; + this.customOptions = customOptions; + this.nativeAdOptions = nativeAdOptions; + this.nativeTemplateStyle = nativeTemplateStyle; + } + + @Override + void load() { + final NativeAdLoaderCallback loadedListener = new FlutterNativeAdLoadedListener(this); + // Note we delegate loading the ad to FlutterAdLoader mainly for testing purposes. + // As of 20.0.0 of GMA, mockito is unable to mock AdLoader. + final NativeAdOptions options = + this.nativeAdOptions == null + ? new NativeAdOptions.Builder().build() + : nativeAdOptions.asNativeAdOptions(); + if (request != null) { + flutterAdLoader.loadNativeAd(adUnitId, loadedListener, options); + } else if (adManagerRequest != null) { + flutterAdLoader.loadAdManagerNativeAd(adUnitId, loadedListener, options); + } else { + Log.e(TAG, "A null or invalid ad request was provided."); + } + } + + @Override + @Nullable + public PlatformView getPlatformView() { + if (nativeAdView != null) { + return new FlutterPlatformView(nativeAdView); + } else if (templateView != null) { + return new FlutterPlatformView(templateView); + } + return null; + } + + void onNativeAdLoaded(@NonNull NativeAd nativeAd) { + if (nativeTemplateStyle != null) { + templateView = nativeTemplateStyle.asTemplateView(context); + templateView.setNativeAd(nativeAd); + } else { + nativeAdView = adFactory.createNativeAd(nativeAd, customOptions); + } + nativeAd.setAdEventCallback(new FlutterNativeAdListener(adId, manager)); + manager.onAdLoaded(adId, nativeAd.getResponseInfo()); + } + + void onNativeAdFailed(LoadAdError loadAdError) { + manager.onAdFailedToLoad(adId, new FlutterAd.FlutterLoadAdError(loadAdError)); + } + + @Override + void dispose() { + if (nativeAdView != null) { + nativeAdView.destroy(); + nativeAdView = null; + } + if (templateView != null) { + templateView.destroyNativeAd(); + templateView = null; + } + } +} diff --git a/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterRequestConfiguration.java b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterRequestConfiguration.java new file mode 100644 index 000000000..54b379686 --- /dev/null +++ b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterRequestConfiguration.java @@ -0,0 +1,205 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package io.flutter.plugins.googlemobileads; + +import static com.google.android.gms.ads.RequestConfiguration.TAG_FOR_CHILD_DIRECTED_TREATMENT_UNSPECIFIED; +import static com.google.android.gms.ads.RequestConfiguration.TAG_FOR_UNDER_AGE_OF_CONSENT_UNSPECIFIED; + +import android.util.Log; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import com.google.android.libraries.ads.mobile.sdk.MobileAds; +import com.google.android.libraries.ads.mobile.sdk.common.RequestConfiguration; +import com.google.android.libraries.ads.mobile.sdk.common.RequestConfiguration.MaxAdContentRating; +import com.google.android.libraries.ads.mobile.sdk.common.RequestConfiguration.TagForChildDirectedTreatment; +import com.google.android.libraries.ads.mobile.sdk.common.RequestConfiguration.TagForUnderAgeOfConsent; +import com.google.errorprone.annotations.CanIgnoreReturnValue; +import io.flutter.plugin.common.MethodCall; +import java.util.List; +import java.util.Objects; + +class FlutterRequestConfiguration { + + @Nullable private final String maxAdContentRating; + private final Integer tagForChildDirectedTreatment; + private final Integer tagForUnderAgeOfConsent; + @Nullable private final List testDeviceIds; + + public static void updateRequestConfiguration(@NonNull MethodCall call) { + RequestConfiguration currentRequestConfiguration = MobileAds.getRequestConfiguration(); + RequestConfiguration.Builder builder = + new RequestConfiguration.Builder() + .setMaxAdContentRating(currentRequestConfiguration.getMaxAdContentRating()) + .setTagForChildDirectedTreatment( + currentRequestConfiguration.getTagForChildDirectedTreatment()) + .setTagForUnderAgeOfConsent(currentRequestConfiguration.getTagForUnderAgeOfConsent()) + .setTestDeviceIds(currentRequestConfiguration.getTestDeviceIds()); + + String maxAdContentRating = call.argument("maxAdContentRating"); + Integer tagForChildDirectedTreatment = call.argument("tagForChildDirectedTreatment"); + Integer tagForUnderAgeOfConsent = call.argument("tagForUnderAgeOfConsent"); + List testDeviceIds = call.argument("testDeviceIds"); + if (maxAdContentRating != null) { + if (maxAdContentRating == MaxAdContentRating.MAX_AD_CONTENT_RATING_G.getValue()) { + builder.setMaxAdContentRating(MaxAdContentRating.MAX_AD_CONTENT_RATING_G); + } else if (maxAdContentRating == MaxAdContentRating.MAX_AD_CONTENT_RATING_PG.getValue()) { + builder.setMaxAdContentRating(MaxAdContentRating.MAX_AD_CONTENT_RATING_PG); + } else if (maxAdContentRating == MaxAdContentRating.MAX_AD_CONTENT_RATING_T.getValue()) { + builder.setMaxAdContentRating(MaxAdContentRating.MAX_AD_CONTENT_RATING_T); + } else if (maxAdContentRating == MaxAdContentRating.MAX_AD_CONTENT_RATING_MA.getValue()) { + builder.setMaxAdContentRating(MaxAdContentRating.MAX_AD_CONTENT_RATING_MA); + } else { + builder.setMaxAdContentRating(MaxAdContentRating.MAX_AD_CONTENT_RATING_UNSPECIFIED); + } + } + if (tagForChildDirectedTreatment != null) { + if (tagForChildDirectedTreatment + == TagForChildDirectedTreatment.TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE.getValue()) { + builder.setTagForChildDirectedTreatment( + TagForChildDirectedTreatment.TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE); + } else if (tagForChildDirectedTreatment + == TagForChildDirectedTreatment.TAG_FOR_CHILD_DIRECTED_TREATMENT_FALSE.getValue()) { + builder.setTagForChildDirectedTreatment( + TagForChildDirectedTreatment.TAG_FOR_CHILD_DIRECTED_TREATMENT_FALSE); + } else { + builder.setTagForChildDirectedTreatment( + TagForChildDirectedTreatment.TAG_FOR_CHILD_DIRECTED_TREATMENT_UNSPECIFIED); + } + } + if (tagForUnderAgeOfConsent != null) { + if (tagForUnderAgeOfConsent + == TagForUnderAgeOfConsent.TAG_FOR_UNDER_AGE_OF_CONSENT_TRUE.getValue()) { + builder.setTagForUnderAgeOfConsent( + TagForUnderAgeOfConsent.TAG_FOR_UNDER_AGE_OF_CONSENT_TRUE); + } else if (tagForUnderAgeOfConsent + == TagForUnderAgeOfConsent.TAG_FOR_UNDER_AGE_OF_CONSENT_FALSE.getValue()) { + builder.setTagForUnderAgeOfConsent( + TagForUnderAgeOfConsent.TAG_FOR_UNDER_AGE_OF_CONSENT_FALSE); + } else { + builder.setTagForUnderAgeOfConsent( + TagForUnderAgeOfConsent.TAG_FOR_UNDER_AGE_OF_CONSENT_UNSPECIFIED); + } + } + if (testDeviceIds != null) { + builder.setTestDeviceIds(testDeviceIds); + } + RequestConfiguration rc = builder.build(); + MobileAds.setRequestConfiguration(rc); + } + + protected static class Builder { + @Nullable private String maxAdContentRating; + private Integer tagForChildDirectedTreatment = TAG_FOR_CHILD_DIRECTED_TREATMENT_UNSPECIFIED; + private Integer tagForUnderAgeOfConsent = TAG_FOR_UNDER_AGE_OF_CONSENT_UNSPECIFIED; + @Nullable private List testDeviceIds; + + @CanIgnoreReturnValue + Builder setMaxAdContentRating(String maxAdContentRating) { + this.maxAdContentRating = maxAdContentRating; + return this; + } + + @CanIgnoreReturnValue + Builder setTagForChildDirectedTreatment(Integer tagForChildDirectedTreatment) { + this.tagForChildDirectedTreatment = tagForChildDirectedTreatment; + return this; + } + + @CanIgnoreReturnValue + Builder setTagForUnderAgeOfConsent(Integer tagForUnderAgeOfConsent) { + this.tagForUnderAgeOfConsent = tagForUnderAgeOfConsent; + return this; + } + + @CanIgnoreReturnValue + Builder setTestDeviceIds(List testDeviceIds) { + this.testDeviceIds = testDeviceIds; + return this; + } + + @Nullable + protected String getMaxAdContentRating() { + return maxAdContentRating; + } + + protected Integer getTagForChildDirectedTreatment() { + return tagForChildDirectedTreatment; + } + + protected Integer getTagForUnderAgeOfConsent() { + return tagForUnderAgeOfConsent; + } + + @Nullable + protected List getTestDeviceIds() { + return testDeviceIds; + } + + FlutterRequestConfiguration build() { + return new FlutterRequestConfiguration( + maxAdContentRating, tagForChildDirectedTreatment, tagForUnderAgeOfConsent, testDeviceIds); + } + } + + public FlutterRequestConfiguration( + @Nullable String maxAdContentRating, + Integer tagForChildDirectedTreatment, + Integer tagForUnderAgeOfConsent, + @Nullable List testDeviceIds) { + this.maxAdContentRating = maxAdContentRating; + this.tagForChildDirectedTreatment = tagForChildDirectedTreatment; + this.tagForUnderAgeOfConsent = tagForUnderAgeOfConsent; + this.testDeviceIds = testDeviceIds; + } + + @Nullable + protected String getMaxAdContentRating() { + return maxAdContentRating; + } + + protected Integer getTagForChildDirectedTreatment() { + return tagForChildDirectedTreatment; + } + + protected Integer getTagForUnderAgeOfConsent() { + return tagForUnderAgeOfConsent; + } + + @Nullable + protected List getTestDeviceIds() { + return testDeviceIds; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } else if (!(o instanceof FlutterRequestConfiguration)) { + return false; + } + + FlutterRequestConfiguration config = (FlutterRequestConfiguration) o; + return Objects.equals(maxAdContentRating, config.maxAdContentRating) + && Objects.equals(tagForChildDirectedTreatment, config.tagForChildDirectedTreatment) + && Objects.equals(tagForUnderAgeOfConsent, config.tagForUnderAgeOfConsent) + && Objects.equals(testDeviceIds, config.testDeviceIds); + } + + @Override + public int hashCode() { + return Objects.hash( + maxAdContentRating, tagForChildDirectedTreatment, tagForUnderAgeOfConsent, testDeviceIds); + } +} diff --git a/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterRewardedAd.java b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterRewardedAd.java new file mode 100644 index 000000000..2a3ecbd5f --- /dev/null +++ b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterRewardedAd.java @@ -0,0 +1,213 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package io.flutter.plugins.googlemobileads; + +import android.util.Log; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import com.google.android.libraries.ads.mobile.sdk.common.AdLoadCallback; +import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError; +import com.google.android.libraries.ads.mobile.sdk.rewarded.OnUserEarnedRewardListener; +import com.google.android.libraries.ads.mobile.sdk.rewarded.RewardItem; +import com.google.android.libraries.ads.mobile.sdk.rewarded.RewardedAd; +import com.google.android.libraries.ads.mobile.sdk.rewarded.RewardedAdEventCallback; +import java.lang.ref.WeakReference; + +/** A wrapper for {@link RewardedAd}. */ +class FlutterRewardedAd extends FlutterAd.FlutterOverlayAd { + private static final String TAG = "FlutterRewardedAd"; + + @NonNull private final AdInstanceManager manager; + @NonNull private final String adUnitId; + @NonNull private final FlutterAdLoader flutterAdLoader; + @Nullable private final FlutterAdRequest request; + @Nullable private final FlutterAdManagerAdRequest adManagerRequest; + @Nullable RewardedAd rewardedAd; + + /** A wrapper for {@link RewardItem}. */ + static class FlutterRewardItem { + @NonNull final Integer amount; + @NonNull final String type; + + FlutterRewardItem(@NonNull Integer amount, @NonNull String type) { + this.amount = amount; + this.type = type; + } + + @Override + public boolean equals(Object other) { + if (this == other) { + return true; + } else if (!(other instanceof FlutterRewardItem)) { + return false; + } + + final FlutterRewardItem that = (FlutterRewardItem) other; + if (!amount.equals(that.amount)) { + return false; + } + return type.equals(that.type); + } + + @Override + public int hashCode() { + int result = amount.hashCode(); + result = 31 * result + type.hashCode(); + return result; + } + } + + /** Constructor for AdMob Ad Request. */ + public FlutterRewardedAd( + int adId, + @NonNull AdInstanceManager manager, + @NonNull String adUnitId, + @NonNull FlutterAdRequest request, + @NonNull FlutterAdLoader flutterAdLoader) { + super(adId); + this.manager = manager; + this.adUnitId = adUnitId; + this.request = request; + this.adManagerRequest = null; + this.flutterAdLoader = flutterAdLoader; + } + + /** Constructor for Ad Manager Ad request. */ + public FlutterRewardedAd( + int adId, + @NonNull AdInstanceManager manager, + @NonNull String adUnitId, + @NonNull FlutterAdManagerAdRequest adManagerRequest, + @NonNull FlutterAdLoader flutterAdLoader) { + super(adId); + this.manager = manager; + this.adUnitId = adUnitId; + this.adManagerRequest = adManagerRequest; + this.request = null; + this.flutterAdLoader = flutterAdLoader; + } + + @Override + void load() { + final AdLoadCallback adLoadCallback = new DelegatingRewardedCallback(this); + if (request != null) { + flutterAdLoader.loadRewarded(request.asAdRequest(adUnitId), adLoadCallback); + } else if (adManagerRequest != null) { + flutterAdLoader.loadAdManagerRewarded( + adManagerRequest.asAdManagerAdRequest(adUnitId), adLoadCallback); + } else { + Log.e(TAG, "A null or invalid ad request was provided."); + } + } + + void onAdLoaded(@NonNull RewardedAd rewardedAd) { + FlutterRewardedAd.this.rewardedAd = rewardedAd; + manager.onAdLoaded(adId, rewardedAd.getResponseInfo()); + } + + void onAdFailedToLoad(@NonNull LoadAdError loadAdError) { + manager.onAdFailedToLoad(adId, new FlutterLoadAdError(loadAdError)); + } + + @Override + public void show() { + if (rewardedAd == null) { + Log.e(TAG, "Error showing rewarded - the rewarded ad wasn't loaded yet."); + return; + } + if (manager.getActivity() == null) { + Log.e(TAG, "Tried to show rewarded ad before activity was bound to the plugin."); + return; + } + rewardedAd.setAdEventCallback(new DelegatingRewardedCallback(this)); + rewardedAd.show(manager.getActivity(), new DelegatingRewardedCallback(this)); + } + + @Override + public void setImmersiveMode(boolean immersiveModeEnabled) { + if (rewardedAd == null) { + Log.e( + TAG, "Error setting immersive mode in rewarded ad - the rewarded ad wasn't loaded yet."); + return; + } + rewardedAd.setImmersiveMode(immersiveModeEnabled); + } + + void onAdMetadataChanged() { + manager.onAdMetadataChanged(adId); + } + + void onUserEarnedReward(@NonNull RewardItem rewardItem) { + manager.onRewardedAdUserEarnedReward( + adId, new FlutterRewardItem(rewardItem.getAmount(), rewardItem.getType())); + } + + @Override + void dispose() { + rewardedAd = null; + } + + public void setServerSideVerificationOptions(FlutterServerSideVerificationOptions options) { + if (rewardedAd != null) { + rewardedAd.setServerSideVerificationOptions(options.asServerSideVerificationOptions()); + } else { + Log.e(TAG, "RewardedAd is null in setServerSideVerificationOptions"); + } + } + + /** + * This class delegates various rewarded ad callbacks to FlutterRewardedAd. Maintains a weak + * reference to avoid memory leaks. + */ + private static final class DelegatingRewardedCallback + implements AdLoadCallback, + RewardedAdEventCallback, + OnUserEarnedRewardListener { + + private final WeakReference delegate; + + DelegatingRewardedCallback(FlutterRewardedAd delegate) { + this.delegate = new WeakReference<>(delegate); + } + + @Override + public void onAdLoaded(@NonNull RewardedAd rewardedAd) { + if (delegate.get() != null) { + delegate.get().onAdLoaded(rewardedAd); + } + } + + @Override + public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) { + if (delegate.get() != null) { + delegate.get().onAdFailedToLoad(loadAdError); + } + } + + @Override + public void onUserEarnedReward(@NonNull RewardItem rewardItem) { + if (delegate.get() != null) { + delegate.get().onUserEarnedReward(rewardItem); + } + } + + @Override + public void onAdMetadataChanged() { + if (delegate.get() != null) { + delegate.get().onAdMetadataChanged(); + } + } + } +} diff --git a/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterRewardedInterstitialAd.java b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterRewardedInterstitialAd.java new file mode 100644 index 000000000..ec843693a --- /dev/null +++ b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterRewardedInterstitialAd.java @@ -0,0 +1,186 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package io.flutter.plugins.googlemobileads; + +import android.util.Log; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import com.google.android.libraries.ads.mobile.sdk.common.AdLoadCallback; +import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError; +import com.google.android.libraries.ads.mobile.sdk.rewarded.OnUserEarnedRewardListener; +import com.google.android.libraries.ads.mobile.sdk.rewarded.RewardItem; +import com.google.android.libraries.ads.mobile.sdk.rewardedinterstitial.RewardedInterstitialAdEventCallback; +import com.google.android.libraries.ads.mobile.sdk.rewardedinterstitial.RewardedInterstitialAd; +import io.flutter.plugins.googlemobileads.FlutterRewardedAd.FlutterRewardItem; +import java.lang.ref.WeakReference; + +/** A wrapper for {@link RewardedInterstitialAd}. */ +class FlutterRewardedInterstitialAd extends FlutterAd.FlutterOverlayAd { + private static final String TAG = "FlutterRIAd"; + + @NonNull private final AdInstanceManager manager; + @NonNull private final String adUnitId; + @NonNull private final FlutterAdLoader flutterAdLoader; + @Nullable private final FlutterAdRequest request; + @Nullable private final FlutterAdManagerAdRequest adManagerRequest; + @Nullable RewardedInterstitialAd rewardedInterstitialAd; + + /** Constructor for AdMob Ad Request. */ + public FlutterRewardedInterstitialAd( + int adId, + @NonNull AdInstanceManager manager, + @NonNull String adUnitId, + @NonNull FlutterAdRequest request, + @NonNull FlutterAdLoader flutterAdLoader) { + super(adId); + this.manager = manager; + this.adUnitId = adUnitId; + this.request = request; + this.adManagerRequest = null; + this.flutterAdLoader = flutterAdLoader; + } + + /** Constructor for Ad Manager Ad request. */ + public FlutterRewardedInterstitialAd( + int adId, + @NonNull AdInstanceManager manager, + @NonNull String adUnitId, + @NonNull FlutterAdManagerAdRequest adManagerRequest, + @NonNull FlutterAdLoader flutterAdLoader) { + super(adId); + this.manager = manager; + this.adUnitId = adUnitId; + this.adManagerRequest = adManagerRequest; + this.request = null; + this.flutterAdLoader = flutterAdLoader; + } + + @Override + void load() { + final AdLoadCallback adLoadCallback = new DelegatingRewardedCallback(this); + if (request != null) { + flutterAdLoader.loadRewardedInterstitial(request.asAdRequest(adUnitId), adLoadCallback); + } else if (adManagerRequest != null) { + flutterAdLoader.loadAdManagerRewardedInterstitial( + adManagerRequest.asAdManagerAdRequest(adUnitId), adLoadCallback); + } else { + Log.e(TAG, "A null or invalid ad request was provided."); + } + } + + void onAdLoaded(@NonNull RewardedInterstitialAd rewardedInterstitialAd) { + FlutterRewardedInterstitialAd.this.rewardedInterstitialAd = rewardedInterstitialAd; + manager.onAdLoaded(adId, rewardedInterstitialAd.getResponseInfo()); + } + + void onAdFailedToLoad(@NonNull LoadAdError loadAdError) { + manager.onAdFailedToLoad(adId, new FlutterLoadAdError(loadAdError)); + } + + @Override + public void show() { + if (rewardedInterstitialAd == null) { + Log.e( + TAG, + "Error showing rewarded interstitial - the rewarded interstitial ad wasn't loaded yet."); + return; + } + if (manager.getActivity() == null) { + Log.e(TAG, "Tried to show rewarded interstitial ad before activity was bound to the plugin."); + return; + } + rewardedInterstitialAd.setAdEventCallback(new DelegatingRewardedCallback(this)); + rewardedInterstitialAd.show(manager.getActivity(), new DelegatingRewardedCallback(this)); + } + + @Override + public void setImmersiveMode(boolean immersiveModeEnabled) { + if (rewardedInterstitialAd == null) { + Log.e( + TAG, + "Error setting immersive mode in rewarded interstitial ad - the rewarded interstitial ad" + + " wasn't loaded yet."); + return; + } + rewardedInterstitialAd.setImmersiveMode(immersiveModeEnabled); + } + + void onAdMetadataChanged() { + manager.onAdMetadataChanged(adId); + } + + void onUserEarnedReward(@NonNull RewardItem rewardItem) { + manager.onRewardedAdUserEarnedReward( + adId, new FlutterRewardItem(rewardItem.getAmount(), rewardItem.getType())); + } + + @Override + void dispose() { + rewardedInterstitialAd = null; + } + + public void setServerSideVerificationOptions(FlutterServerSideVerificationOptions options) { + if (rewardedInterstitialAd != null) { + rewardedInterstitialAd.setServerSideVerificationOptions( + options.asServerSideVerificationOptions()); + } else { + Log.e(TAG, "RewardedInterstitialAd is null in setServerSideVerificationOptions"); + } + } + + /** + * This class delegates various rewarded interstitial ad callbacks to + * FlutterRewardedInterstitialAd. Maintains a weak reference to avoid memory leaks. + */ + private static final class DelegatingRewardedCallback + implements AdLoadCallback, + RewardedInterstitialAdEventCallback, + OnUserEarnedRewardListener { + + private final WeakReference delegate; + + DelegatingRewardedCallback(FlutterRewardedInterstitialAd delegate) { + this.delegate = new WeakReference<>(delegate); + } + + @Override + public void onAdLoaded(@NonNull RewardedInterstitialAd rewardedInterstitialAd) { + if (delegate.get() != null) { + delegate.get().onAdLoaded(rewardedInterstitialAd); + } + } + + @Override + public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) { + if (delegate.get() != null) { + delegate.get().onAdFailedToLoad(loadAdError); + } + } + + @Override + public void onUserEarnedReward(@NonNull RewardItem rewardItem) { + if (delegate.get() != null) { + delegate.get().onUserEarnedReward(rewardItem); + } + } + + @Override + public void onAdMetadataChanged() { + if (delegate.get() != null) { + delegate.get().onAdMetadataChanged(); + } + } + } +} diff --git a/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterServerSideVerificationOptions.java b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterServerSideVerificationOptions.java new file mode 100644 index 000000000..2545d2e1a --- /dev/null +++ b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/FlutterServerSideVerificationOptions.java @@ -0,0 +1,64 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package io.flutter.plugins.googlemobileads; + +import android.text.TextUtils; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import com.google.android.libraries.ads.mobile.sdk.rewarded.ServerSideVerificationOptions; +import java.util.Objects; + +/** A wrapper for {@link ServerSideVerificationOptions}. */ +class FlutterServerSideVerificationOptions { + + private final String userId; + private final String customData; + + public FlutterServerSideVerificationOptions( + @Nullable String userId, @Nullable String customData) { + this.userId = TextUtils.isEmpty(userId) ? "" : userId; + this.customData = TextUtils.isEmpty(customData) ? "" : customData; + } + + public String getUserId() { + return userId; + } + + public String getCustomData() { + return customData; + } + + /** Gets an equivalent {@link ServerSideVerificationOptions}. */ + public ServerSideVerificationOptions asServerSideVerificationOptions() { + return new ServerSideVerificationOptions(userId, customData); + } + + @Override + public boolean equals(@Nullable Object obj) { + if (this == obj) { + return true; + } + if (!(obj instanceof FlutterServerSideVerificationOptions)) { + return false; + } + FlutterServerSideVerificationOptions other = (FlutterServerSideVerificationOptions) obj; + return Objects.equals(other.userId, userId) && Objects.equals(other.customData, customData); + } + + @Override + public int hashCode() { + return Objects.hash(userId, customData); + } +} diff --git a/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/NativeAdFactory.java b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/NativeAdFactory.java new file mode 100644 index 000000000..dcdcbc80c --- /dev/null +++ b/packages/google_mobile_ads/android/src/adsNextGenSdk/java/io/flutter/plugins/googlemobileads/NativeAdFactory.java @@ -0,0 +1,40 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package io.flutter.plugins.googlemobileads; + +import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAd; +import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdView; +import java.util.Map; + +/** + * Interface used to display a {@link NativeAd}. + * + *

Added to a {@link GoogleMobileAdsPlugin} and creates + * {@link NativeAdView}s from Native Ads created in Dart. + */ +public interface NativeAdFactory { + /** + * Creates a {@link NativeAdView} with a {@link + * NativeAd}. + * + * @param nativeAd Ad information used to create a {@link + * NativeAd} + * @param customOptions Used to pass additional custom options to create the {@link + * NativeAdView}. Nullable. + * @return a {@link NativeAdView} that is overlaid on top of + * the FlutterView + */ + NativeAdView createNativeAd(NativeAd nativeAd, Map customOptions); +} diff --git a/packages/google_mobile_ads/android/src/adsNextGenSdk/res/layout/gnt_medium_template_view.xml b/packages/google_mobile_ads/android/src/adsNextGenSdk/res/layout/gnt_medium_template_view.xml new file mode 100644 index 000000000..31cbb7d99 --- /dev/null +++ b/packages/google_mobile_ads/android/src/adsNextGenSdk/res/layout/gnt_medium_template_view.xml @@ -0,0 +1,231 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/google_mobile_ads/android/src/adsNextGenSdk/res/layout/gnt_small_template_view.xml b/packages/google_mobile_ads/android/src/adsNextGenSdk/res/layout/gnt_small_template_view.xml new file mode 100644 index 000000000..196a90aed --- /dev/null +++ b/packages/google_mobile_ads/android/src/adsNextGenSdk/res/layout/gnt_small_template_view.xml @@ -0,0 +1,189 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/AdMessageCodec.java b/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/AdMessageCodec.java index 68c238918..77c5382a9 100644 --- a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/AdMessageCodec.java +++ b/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/AdMessageCodec.java @@ -22,7 +22,6 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; -import com.google.android.gms.ads.RequestConfiguration; import io.flutter.plugin.common.StandardMessageCodec; import io.flutter.plugins.googlemobileads.FlutterAd.FlutterAdError; import io.flutter.plugins.googlemobileads.FlutterAd.FlutterAdapterResponseInfo; @@ -32,7 +31,6 @@ import io.flutter.plugins.googlemobileads.nativetemplates.FlutterNativeTemplateStyle; import io.flutter.plugins.googlemobileads.nativetemplates.FlutterNativeTemplateTextStyle; import io.flutter.plugins.googlemobileads.nativetemplates.FlutterNativeTemplateType; -import java.lang.reflect.InvocationTargetException; import java.io.ByteArrayOutputStream; import java.lang.reflect.InvocationTargetException; import java.nio.ByteBuffer; @@ -217,9 +215,9 @@ protected void writeValue(ByteArrayOutputStream stream, Object value) { writeValue(stream, options.requestCustomMuteThisAd); writeValue(stream, options.shouldRequestMultipleImages); writeValue(stream, options.shouldReturnUrlsForImageAssets); - } else if (value instanceof RequestConfiguration) { + } else if (value instanceof FlutterRequestConfiguration) { stream.write(VALUE_REQUEST_CONFIGURATION_PARAMS); - RequestConfiguration params = (RequestConfiguration) value; + FlutterRequestConfiguration params = (FlutterRequestConfiguration) value; writeValue(stream, params.getMaxAdContentRating()); writeValue(stream, params.getTagForChildDirectedTreatment()); writeValue(stream, params.getTagForUnderAgeOfConsent()); @@ -413,7 +411,7 @@ protected Object readValueOfType(byte type, ByteBuffer buffer) { (Boolean) readValueOfType(buffer.get(), buffer), (Boolean) readValueOfType(buffer.get(), buffer)); case VALUE_REQUEST_CONFIGURATION_PARAMS: - RequestConfiguration.Builder rcb = new RequestConfiguration.Builder(); + FlutterRequestConfiguration.Builder rcb = new FlutterRequestConfiguration.Builder(); rcb.setMaxAdContentRating((String) readValueOfType(buffer.get(), buffer)); rcb.setTagForChildDirectedTreatment((Integer) readValueOfType(buffer.get(), buffer)); rcb.setTagForUnderAgeOfConsent((Integer) readValueOfType(buffer.get(), buffer)); diff --git a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterMediationExtras.java b/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterMediationExtras.java index 21612988b..b27972a2c 100644 --- a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterMediationExtras.java +++ b/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterMediationExtras.java @@ -31,6 +31,7 @@ */ public abstract class FlutterMediationExtras { Map extras; + /** * Called when the {@link FlutterAdRequest} is parsed into an {@link * com.google.android.gms.ads.AdRequest}. diff --git a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/GoogleMobileAdsPlugin.java b/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/GoogleMobileAdsPlugin.java index 87871b5e5..503e3241b 100644 --- a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/GoogleMobileAdsPlugin.java +++ b/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/GoogleMobileAdsPlugin.java @@ -19,15 +19,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; -import com.google.android.gms.ads.AdInspectorError; import com.google.android.gms.ads.AdSize; -import com.google.android.gms.ads.MobileAds; -import com.google.android.gms.ads.OnAdInspectorClosedListener; -import com.google.android.gms.ads.RequestConfiguration; -import com.google.android.gms.ads.initialization.InitializationStatus; -import com.google.android.gms.ads.initialization.OnInitializationCompleteListener; -import com.google.android.gms.ads.nativead.NativeAd; -import com.google.android.gms.ads.nativead.NativeAdView; import io.flutter.embedding.engine.FlutterEngine; import io.flutter.embedding.engine.plugins.FlutterPlugin; import io.flutter.embedding.engine.plugins.activity.ActivityAware; @@ -40,7 +32,6 @@ import io.flutter.plugins.googlemobileads.FlutterAd.FlutterOverlayAd; import io.flutter.plugins.googlemobileads.nativetemplates.FlutterNativeTemplateStyle; import io.flutter.plugins.googlemobileads.usermessagingplatform.UserMessagingPlatformManager; -import java.lang.reflect.Method; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -74,6 +65,7 @@ private static T requireNonNull(T obj) { private MediationNetworkExtrasProvider mediationNetworkExtrasProvider; private final FlutterMobileAdsWrapper flutterMobileAds; + /** * Public constructor for the plugin. Dependency initialization is handled in lifecycle methods * below. @@ -99,36 +91,17 @@ protected GoogleMobileAdsPlugin(@NonNull AppStateNotifier appStateNotifier) { this.flutterMobileAds = new FlutterMobileAdsWrapper(); } - /** - * Interface used to display a {@link com.google.android.gms.ads.nativead.NativeAd}. - * - *

Added to a {@link io.flutter.plugins.googlemobileads.GoogleMobileAdsPlugin} and creates - * {@link com.google.android.gms.ads.nativead.NativeAdView}s from Native Ads created in Dart. - */ - public interface NativeAdFactory { - /** - * Creates a {@link com.google.android.gms.ads.nativead.NativeAdView} with a {@link - * com.google.android.gms.ads.nativead.NativeAd}. - * - * @param nativeAd Ad information used to create a {@link - * com.google.android.gms.ads.nativead.NativeAd} - * @param customOptions Used to pass additional custom options to create the {@link - * com.google.android.gms.ads.nativead.NativeAdView}. Nullable. - * @return a {@link com.google.android.gms.ads.nativead.NativeAdView} that is overlaid on top of - * the FlutterView - */ - NativeAdView createNativeAd(NativeAd nativeAd, Map customOptions); - } + /** - * Registers a {@link io.flutter.plugins.googlemobileads.GoogleMobileAdsPlugin.NativeAdFactory} - * used to create {@link com.google.android.gms.ads.nativead.NativeAdView}s from a Native Ad + * Registers a {@link NativeAdFactory} + * used to create {@link NativeAdView}s from a Native Ad * created in Dart. * * @param engine maintains access to a GoogleMobileAdsPlugin instance * @param factoryId a unique identifier for the ad factory. The Native Ad created in Dart includes * a parameter that refers to this. - * @param nativeAdFactory creates {@link com.google.android.gms.ads.nativead.NativeAdView}s when + * @param nativeAdFactory creates {@link NativeAdView}s when * Flutter NativeAds are created * @return whether the factoryId is unique and the nativeAdFactory was successfully added */ @@ -200,15 +173,15 @@ private static boolean registerNativeAdFactory( } /** - * Unregisters a {@link io.flutter.plugins.googlemobileads.GoogleMobileAdsPlugin.NativeAdFactory} - * used to create {@link com.google.android.gms.ads.nativead.NativeAdView}s from a Native Ad + * Unregisters a {@link NativeAdFactory} + * used to create {@link NativeAdView}s from a Native Ad * created in Dart. * * @param engine maintains access to a GoogleMobileAdsPlugin instance * @param factoryId a unique identifier for the ad factory. The Native ad created in Dart includes * a parameter that refers to this * @return the previous {@link - * io.flutter.plugins.googlemobileads.GoogleMobileAdsPlugin.NativeAdFactory} associated with + * NativeAdFactory} associated with * this factoryId, or null if there was none for this factoryId */ @Nullable @@ -349,43 +322,13 @@ public void onMethodCall(@NonNull MethodCall call, @NonNull final Result result) flutterMobileAds.initialize(context, new FlutterInitializationListener(result)); break; case "MobileAds#openAdInspector": - flutterMobileAds.openAdInspector( - context, - new OnAdInspectorClosedListener() { - @Override - public void onAdInspectorClosed(@Nullable AdInspectorError adInspectorError) { - if (adInspectorError != null) { - String errorCode = Integer.toString(adInspectorError.getCode()); - result.error( - errorCode, adInspectorError.getMessage(), adInspectorError.getDomain()); - } else { - result.success(null); - } - } - }); + FlutterAdInspector.openAdInspector(context, flutterMobileAds, result); break; case "MobileAds#getRequestConfiguration": result.success(flutterMobileAds.getRequestConfiguration()); break; case "MobileAds#updateRequestConfiguration": - RequestConfiguration.Builder builder = MobileAds.getRequestConfiguration().toBuilder(); - String maxAdContentRating = call.argument("maxAdContentRating"); - Integer tagForChildDirectedTreatment = call.argument("tagForChildDirectedTreatment"); - Integer tagForUnderAgeOfConsent = call.argument("tagForUnderAgeOfConsent"); - List testDeviceIds = call.argument("testDeviceIds"); - if (maxAdContentRating != null) { - builder.setMaxAdContentRating(maxAdContentRating); - } - if (tagForChildDirectedTreatment != null) { - builder.setTagForChildDirectedTreatment(tagForChildDirectedTreatment); - } - if (tagForUnderAgeOfConsent != null) { - builder.setTagForUnderAgeOfConsent(tagForUnderAgeOfConsent); - } - if (testDeviceIds != null) { - builder.setTestDeviceIds(testDeviceIds); - } - MobileAds.setRequestConfiguration(builder.build()); + FlutterRequestConfiguration.updateRequestConfiguration(call); result.success(null); break; case "MobileAds#registerWebView": @@ -691,34 +634,5 @@ BannerAdCreator getBannerAdCreator(@NonNull Context context) { return new BannerAdCreator(context); } - /** An {@link OnInitializationCompleteListener} that invokes result.success() at most once. */ - private static final class FlutterInitializationListener - implements OnInitializationCompleteListener { - private final Result result; - private boolean isInitializationCompleted; - - private FlutterInitializationListener(@NonNull final Result result) { - this.result = result; - isInitializationCompleted = false; - } - - @Override - public void onInitializationComplete(@NonNull InitializationStatus initializationStatus) { - // Make sure not to invoke this more than once, since Dart will throw an exception if success - // is invoked more than once. See b/193418432. - if (isInitializationCompleted) { - return; - } - try { - Class clazz = Class.forName("com.google.android.gms.ads.MobileAds"); - Method method = clazz.getDeclaredMethod("setPlugin", String.class); - method.setAccessible(true); - method.invoke(null, Constants.REQUEST_AGENT_PREFIX_VERSIONED); - } catch (Exception ignored) { - } - result.success(new FlutterInitializationStatus(initializationStatus)); - isInitializationCompleted = true; - } - } } diff --git a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/usermessagingplatform/UserMessagingPlatformManager.java b/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/usermessagingplatform/UserMessagingPlatformManager.java index dde127149..3eca54af8 100644 --- a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/usermessagingplatform/UserMessagingPlatformManager.java +++ b/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/usermessagingplatform/UserMessagingPlatformManager.java @@ -41,6 +41,7 @@ public class UserMessagingPlatformManager implements MethodCallHandler { private static final String METHOD_CHANNEL_NAME = "plugins.flutter.io/google_mobile_ads/ump"; + /** Use 0 for error code internal to the Flutter plugin. */ private static final String INTERNAL_ERROR_CODE = "0"; diff --git a/packages/google_mobile_ads/android/src/main/java/com/google/android/ads/nativetemplates/TemplateView.java b/packages/google_mobile_ads/android/src/playServices/java/com/google/android/ads/nativetemplates/TemplateView.java similarity index 100% rename from packages/google_mobile_ads/android/src/main/java/com/google/android/ads/nativetemplates/TemplateView.java rename to packages/google_mobile_ads/android/src/playServices/java/com/google/android/ads/nativetemplates/TemplateView.java diff --git a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/AdInstanceManager.java b/packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/AdInstanceManager.java similarity index 100% rename from packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/AdInstanceManager.java rename to packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/AdInstanceManager.java diff --git a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/BannerAdCreator.java b/packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/BannerAdCreator.java similarity index 100% rename from packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/BannerAdCreator.java rename to packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/BannerAdCreator.java diff --git a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FluidAdManagerBannerAd.java b/packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FluidAdManagerBannerAd.java similarity index 100% rename from packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FluidAdManagerBannerAd.java rename to packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FluidAdManagerBannerAd.java diff --git a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterAd.java b/packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterAd.java similarity index 100% rename from packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterAd.java rename to packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterAd.java diff --git a/packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterAdInspector.java b/packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterAdInspector.java new file mode 100644 index 000000000..109185748 --- /dev/null +++ b/packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterAdInspector.java @@ -0,0 +1,34 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package io.flutter.plugins.googlemobileads; + +import android.content.Context; +import io.flutter.plugin.common.MethodChannel.Result; + +public final class FlutterAdInspector { + public static void openAdInspector(Context context, FlutterMobileAdsWrapper flutterMobileAds, Result result) { + flutterMobileAds.openAdInspector( + context, + adInspectorError -> { + if (adInspectorError != null) { + String errorCode = Integer.toString(adInspectorError.getCode()); + result.error( + errorCode, adInspectorError.getMessage(), adInspectorError.getDomain()); + } else { + result.success(null); + } + }); + } +} diff --git a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterAdListener.java b/packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterAdListener.java similarity index 100% rename from packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterAdListener.java rename to packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterAdListener.java diff --git a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterAdLoader.java b/packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterAdLoader.java similarity index 100% rename from packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterAdLoader.java rename to packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterAdLoader.java diff --git a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterAdManagerAdRequest.java b/packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterAdManagerAdRequest.java similarity index 100% rename from packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterAdManagerAdRequest.java rename to packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterAdManagerAdRequest.java diff --git a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterAdManagerBannerAd.java b/packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterAdManagerBannerAd.java similarity index 100% rename from packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterAdManagerBannerAd.java rename to packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterAdManagerBannerAd.java diff --git a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterAdManagerInterstitialAd.java b/packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterAdManagerInterstitialAd.java similarity index 100% rename from packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterAdManagerInterstitialAd.java rename to packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterAdManagerInterstitialAd.java diff --git a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterAdRequest.java b/packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterAdRequest.java similarity index 100% rename from packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterAdRequest.java rename to packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterAdRequest.java diff --git a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterAdSize.java b/packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterAdSize.java similarity index 100% rename from packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterAdSize.java rename to packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterAdSize.java diff --git a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterAdapterStatus.java b/packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterAdapterStatus.java similarity index 100% rename from packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterAdapterStatus.java rename to packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterAdapterStatus.java diff --git a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterAppOpenAd.java b/packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterAppOpenAd.java similarity index 100% rename from packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterAppOpenAd.java rename to packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterAppOpenAd.java diff --git a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterBannerAd.java b/packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterBannerAd.java similarity index 100% rename from packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterBannerAd.java rename to packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterBannerAd.java diff --git a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterFullScreenContentCallback.java b/packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterFullScreenContentCallback.java similarity index 100% rename from packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterFullScreenContentCallback.java rename to packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterFullScreenContentCallback.java diff --git a/packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterInitializationListener.java b/packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterInitializationListener.java new file mode 100644 index 000000000..93c4ee28c --- /dev/null +++ b/packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterInitializationListener.java @@ -0,0 +1,52 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package io.flutter.plugins.googlemobileads; + +import android.util.Log; +import androidx.annotation.NonNull; +import com.google.android.gms.ads.initialization.InitializationStatus; +import com.google.android.gms.ads.initialization.OnInitializationCompleteListener; +import io.flutter.plugin.common.MethodChannel.Result; +import java.lang.reflect.Method; + +/** An {@link OnInitializationCompleteListener} that invokes result.success() at most once. */ +public final class FlutterInitializationListener implements OnInitializationCompleteListener { + + private final Result result; + private boolean isInitializationCompleted; + + FlutterInitializationListener(@NonNull final Result result) { + this.result = result; + isInitializationCompleted = false; + } + + @Override + public void onInitializationComplete(@NonNull InitializationStatus initializationStatus) { + // Make sure not to invoke this more than once, since Dart will throw an exception if success + // is invoked more than once. See b/193418432. + if (isInitializationCompleted) { + return; + } + try { + Class clazz = Class.forName("com.google.android.gms.ads.MobileAds"); + Method method = clazz.getDeclaredMethod("setPlugin", String.class); + method.setAccessible(true); + method.invoke(null, Constants.REQUEST_AGENT_PREFIX_VERSIONED); + } catch (Exception ignored) { + } + result.success(new FlutterInitializationStatus(initializationStatus)); + isInitializationCompleted = true; + } +} diff --git a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterInitializationStatus.java b/packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterInitializationStatus.java similarity index 100% rename from packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterInitializationStatus.java rename to packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterInitializationStatus.java diff --git a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterInterstitialAd.java b/packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterInterstitialAd.java similarity index 100% rename from packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterInterstitialAd.java rename to packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterInterstitialAd.java diff --git a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterMobileAdsWrapper.java b/packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterMobileAdsWrapper.java similarity index 99% rename from packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterMobileAdsWrapper.java rename to packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterMobileAdsWrapper.java index 83f0f783d..42ac82f97 100644 --- a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterMobileAdsWrapper.java +++ b/packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterMobileAdsWrapper.java @@ -15,7 +15,6 @@ package io.flutter.plugins.googlemobileads; import android.content.Context; -import android.os.Build; import android.util.Log; import android.webkit.WebView; import androidx.annotation.NonNull; diff --git a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterNativeAd.java b/packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterNativeAd.java similarity index 99% rename from packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterNativeAd.java rename to packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterNativeAd.java index 8230b1ddc..fb22849bf 100644 --- a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterNativeAd.java +++ b/packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterNativeAd.java @@ -27,7 +27,6 @@ import com.google.android.gms.ads.nativead.NativeAdView; import com.google.errorprone.annotations.CanIgnoreReturnValue; import io.flutter.plugin.platform.PlatformView; -import io.flutter.plugins.googlemobileads.GoogleMobileAdsPlugin.NativeAdFactory; import io.flutter.plugins.googlemobileads.nativetemplates.FlutterNativeTemplateStyle; import java.util.Map; diff --git a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterPaidEventListener.java b/packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterPaidEventListener.java similarity index 100% rename from packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterPaidEventListener.java rename to packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterPaidEventListener.java diff --git a/packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterRequestConfiguration.java b/packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterRequestConfiguration.java new file mode 100644 index 000000000..79d4180b0 --- /dev/null +++ b/packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterRequestConfiguration.java @@ -0,0 +1,163 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package io.flutter.plugins.googlemobileads; + +import static com.google.android.gms.ads.RequestConfiguration.TAG_FOR_CHILD_DIRECTED_TREATMENT_UNSPECIFIED; +import static com.google.android.gms.ads.RequestConfiguration.TAG_FOR_UNDER_AGE_OF_CONSENT_UNSPECIFIED; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import com.google.android.gms.ads.MobileAds; +import com.google.android.gms.ads.RequestConfiguration; +import com.google.errorprone.annotations.CanIgnoreReturnValue; +import io.flutter.plugin.common.MethodCall; +import java.util.List; +import java.util.Objects; + +class FlutterRequestConfiguration { + + @Nullable private final String maxAdContentRating; + private final Integer tagForChildDirectedTreatment; + private final Integer tagForUnderAgeOfConsent; + @Nullable private final List testDeviceIds; + + public static void updateRequestConfiguration(@NonNull MethodCall call) { + RequestConfiguration.Builder builder = MobileAds.getRequestConfiguration().toBuilder(); + String maxAdContentRating = call.argument("maxAdContentRating"); + Integer tagForChildDirectedTreatment = call.argument("tagForChildDirectedTreatment"); + Integer tagForUnderAgeOfConsent = call.argument("tagForUnderAgeOfConsent"); + List testDeviceIds = call.argument("testDeviceIds"); + if (maxAdContentRating != null) { + builder.setMaxAdContentRating(maxAdContentRating); + } + if (tagForChildDirectedTreatment != null) { + builder.setTagForChildDirectedTreatment(tagForChildDirectedTreatment); + } + if (tagForUnderAgeOfConsent != null) { + builder.setTagForUnderAgeOfConsent(tagForUnderAgeOfConsent); + } + if (testDeviceIds != null) { + builder.setTestDeviceIds(testDeviceIds); + } + MobileAds.setRequestConfiguration(builder.build()); + } + + protected static class Builder { + @Nullable private String maxAdContentRating; + private Integer tagForChildDirectedTreatment = TAG_FOR_CHILD_DIRECTED_TREATMENT_UNSPECIFIED; + private Integer tagForUnderAgeOfConsent = TAG_FOR_UNDER_AGE_OF_CONSENT_UNSPECIFIED; + @Nullable private List testDeviceIds; + + @CanIgnoreReturnValue + Builder setMaxAdContentRating(String maxAdContentRating) { + this.maxAdContentRating = maxAdContentRating; + return this; + } + + @CanIgnoreReturnValue + Builder setTagForChildDirectedTreatment(Integer tagForChildDirectedTreatment) { + this.tagForChildDirectedTreatment = tagForChildDirectedTreatment; + return this; + } + + @CanIgnoreReturnValue + Builder setTagForUnderAgeOfConsent(Integer tagForUnderAgeOfConsent) { + this.tagForUnderAgeOfConsent = tagForUnderAgeOfConsent; + return this; + } + + @CanIgnoreReturnValue + Builder setTestDeviceIds(List testDeviceIds) { + this.testDeviceIds = testDeviceIds; + return this; + } + + @Nullable + protected String getMaxAdContentRating() { + return maxAdContentRating; + } + + protected Integer getTagForChildDirectedTreatment() { + return tagForChildDirectedTreatment; + } + + protected Integer getTagForUnderAgeOfConsent() { + return tagForUnderAgeOfConsent; + } + + @Nullable + protected List getTestDeviceIds() { + return testDeviceIds; + } + + FlutterRequestConfiguration build() { + return new FlutterRequestConfiguration( + maxAdContentRating, tagForChildDirectedTreatment, tagForUnderAgeOfConsent, testDeviceIds); + } + } + + public FlutterRequestConfiguration( + @Nullable String maxAdContentRating, + Integer tagForChildDirectedTreatment, + Integer tagForUnderAgeOfConsent, + @Nullable List testDeviceIds) { + this.maxAdContentRating = maxAdContentRating; + this.tagForChildDirectedTreatment = tagForChildDirectedTreatment; + this.tagForUnderAgeOfConsent = tagForUnderAgeOfConsent; + this.testDeviceIds = testDeviceIds; + } + + @Nullable + protected String getMaxAdContentRating() { + return maxAdContentRating; + } + + protected Integer getTagForChildDirectedTreatment() { + return tagForChildDirectedTreatment; + } + + protected Integer getTagForUnderAgeOfConsent() { + return tagForUnderAgeOfConsent; + } + + @Nullable + protected List getTestDeviceIds() { + return testDeviceIds; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } else if (!(o instanceof FlutterRequestConfiguration)) { + return false; + } + + FlutterRequestConfiguration config = (FlutterRequestConfiguration) o; + return Objects.equals(maxAdContentRating, config.maxAdContentRating) + && Objects.equals(tagForChildDirectedTreatment, config.tagForChildDirectedTreatment) + && Objects.equals(tagForUnderAgeOfConsent, config.tagForUnderAgeOfConsent) + && Objects.equals(testDeviceIds, config.testDeviceIds); + } + + @Override + public int hashCode() { + return Objects.hash( + maxAdContentRating, + tagForChildDirectedTreatment, + tagForUnderAgeOfConsent, + testDeviceIds); + } +} diff --git a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterRewardedAd.java b/packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterRewardedAd.java similarity index 100% rename from packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterRewardedAd.java rename to packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterRewardedAd.java diff --git a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterRewardedInterstitialAd.java b/packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterRewardedInterstitialAd.java similarity index 100% rename from packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterRewardedInterstitialAd.java rename to packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterRewardedInterstitialAd.java diff --git a/packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterServerSideVerificationOptions.java b/packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterServerSideVerificationOptions.java similarity index 100% rename from packages/google_mobile_ads/android/src/main/java/io/flutter/plugins/googlemobileads/FlutterServerSideVerificationOptions.java rename to packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/FlutterServerSideVerificationOptions.java diff --git a/packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/NativeAdFactory.java b/packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/NativeAdFactory.java new file mode 100644 index 000000000..c34db3837 --- /dev/null +++ b/packages/google_mobile_ads/android/src/playServices/java/io/flutter/plugins/googlemobileads/NativeAdFactory.java @@ -0,0 +1,40 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package io.flutter.plugins.googlemobileads; + +import com.google.android.gms.ads.nativead.NativeAd; +import com.google.android.gms.ads.nativead.NativeAdView; +import java.util.Map; + +/** + * Interface used to display a {@link NativeAd}. + * + *

Added to a {@link GoogleMobileAdsPlugin} and creates + * {@link NativeAdView}s from Native Ads created in Dart. + */ +public interface NativeAdFactory { + /** + * Creates a {@link NativeAdView} with a {@link + * NativeAd}. + * + * @param nativeAd Ad information used to create a {@link + * NativeAd} + * @param customOptions Used to pass additional custom options to create the {@link + * NativeAdView}. Nullable. + * @return a {@link NativeAdView} that is overlaid on top of + * the FlutterView + */ + NativeAdView createNativeAd(NativeAd nativeAd, Map customOptions); +} diff --git a/packages/google_mobile_ads/android/src/main/res/layout/gnt_medium_template_view.xml b/packages/google_mobile_ads/android/src/playServices/res/layout/gnt_medium_template_view.xml similarity index 100% rename from packages/google_mobile_ads/android/src/main/res/layout/gnt_medium_template_view.xml rename to packages/google_mobile_ads/android/src/playServices/res/layout/gnt_medium_template_view.xml diff --git a/packages/google_mobile_ads/android/src/main/res/layout/gnt_small_template_view.xml b/packages/google_mobile_ads/android/src/playServices/res/layout/gnt_small_template_view.xml similarity index 100% rename from packages/google_mobile_ads/android/src/main/res/layout/gnt_small_template_view.xml rename to packages/google_mobile_ads/android/src/playServices/res/layout/gnt_small_template_view.xml diff --git a/packages/google_mobile_ads/android/src/test/java/io/flutter/plugins/googlemobileads/FlutterNativeAdTest.java b/packages/google_mobile_ads/android/src/test/java/io/flutter/plugins/googlemobileads/FlutterNativeAdTest.java index 58f023383..a5687bb88 100644 --- a/packages/google_mobile_ads/android/src/test/java/io/flutter/plugins/googlemobileads/FlutterNativeAdTest.java +++ b/packages/google_mobile_ads/android/src/test/java/io/flutter/plugins/googlemobileads/FlutterNativeAdTest.java @@ -46,7 +46,6 @@ import io.flutter.plugin.common.MethodChannel; import io.flutter.plugin.platform.PlatformView; import io.flutter.plugins.googlemobileads.FlutterAd.FlutterLoadAdError; -import io.flutter.plugins.googlemobileads.GoogleMobileAdsPlugin.NativeAdFactory; import io.flutter.plugins.googlemobileads.nativetemplates.FlutterNativeTemplateStyle; import java.util.Map; import org.junit.Before; @@ -176,7 +175,7 @@ public void loadNativeAdWithAdRequest() { final AdRequest mockRequest = mock(AdRequest.class); when(mockFlutterRequest.asAdRequest(anyString())).thenReturn(mockRequest); FlutterAdLoader mockLoader = mock(FlutterAdLoader.class); - NativeAdFactory mockNativeAdFactory = mock(GoogleMobileAdsPlugin.NativeAdFactory.class); + NativeAdFactory mockNativeAdFactory = mock(NativeAdFactory.class); NativeAdView mockNativeAdView = mock(NativeAdView.class); doReturn(mockNativeAdView) .when(mockNativeAdFactory) @@ -270,7 +269,7 @@ public void testLoadWithNativeTemplates() { final AdRequest mockRequest = mock(AdRequest.class); when(mockFlutterRequest.asAdRequest(anyString())).thenReturn(mockRequest); FlutterAdLoader mockLoader = mock(FlutterAdLoader.class); - NativeAdFactory mockNativeAdFactory = mock(GoogleMobileAdsPlugin.NativeAdFactory.class); + NativeAdFactory mockNativeAdFactory = mock(NativeAdFactory.class); @SuppressWarnings("unchecked") Map mockOptions = mock(Map.class); FlutterNativeAdOptions mockFlutterNativeAdOptions = mock(FlutterNativeAdOptions.class); @@ -339,7 +338,7 @@ public void nativeAdBuilderNullManager() { new FlutterNativeAd.Builder(ApplicationProvider.getApplicationContext()) .setManager(null) .setAdUnitId("testId") - .setAdFactory(mock(GoogleMobileAdsPlugin.NativeAdFactory.class)) + .setAdFactory(mock(NativeAdFactory.class)) .setRequest(request) .build(); } @@ -349,7 +348,7 @@ public void nativeAdBuilderNullAdUnitId() { new FlutterNativeAd.Builder(ApplicationProvider.getApplicationContext()) .setManager(testManager) .setAdUnitId(null) - .setAdFactory(mock(GoogleMobileAdsPlugin.NativeAdFactory.class)) + .setAdFactory(mock(NativeAdFactory.class)) .setRequest(request) .build(); } @@ -369,7 +368,7 @@ public void nativeAdBuilderNullRequest() { new FlutterNativeAd.Builder(ApplicationProvider.getApplicationContext()) .setManager(testManager) .setAdUnitId("testId") - .setAdFactory(mock(GoogleMobileAdsPlugin.NativeAdFactory.class)) + .setAdFactory(mock(NativeAdFactory.class)) .build(); } } diff --git a/packages/google_mobile_ads/android/src/test/java/io/flutter/plugins/googlemobileads/GoogleMobileAdsTest.java b/packages/google_mobile_ads/android/src/test/java/io/flutter/plugins/googlemobileads/GoogleMobileAdsTest.java index a25e8a88c..093552aa5 100644 --- a/packages/google_mobile_ads/android/src/test/java/io/flutter/plugins/googlemobileads/GoogleMobileAdsTest.java +++ b/packages/google_mobile_ads/android/src/test/java/io/flutter/plugins/googlemobileads/GoogleMobileAdsTest.java @@ -344,7 +344,7 @@ public void flutterAdListener_onNativeAdClicked() { .setAdUnitId("testId") .setRequest(request) .setAdFactory( - new GoogleMobileAdsPlugin.NativeAdFactory() { + new NativeAdFactory() { @Override public NativeAdView createNativeAd( NativeAd nativeAd, Map customOptions) { @@ -373,7 +373,7 @@ public void flutterAdListener_onNativeAdImpression() { .setAdUnitId("testId") .setRequest(request) .setAdFactory( - new GoogleMobileAdsPlugin.NativeAdFactory() { + new NativeAdFactory() { @Override public NativeAdView createNativeAd( NativeAd nativeAd, Map customOptions) { diff --git a/packages/google_mobile_ads/example/android/app/build.gradle b/packages/google_mobile_ads/example/android/app/build.gradle index c1b39b6ae..7edbf4ea6 100644 --- a/packages/google_mobile_ads/example/android/app/build.gradle +++ b/packages/google_mobile_ads/example/android/app/build.gradle @@ -22,7 +22,32 @@ if (flutterVersionName == null) { flutterVersionName = '1.0' } +def dartEnvironmentVariables = [] +if (project.hasProperty('dart-defines')) { + dartEnvironmentVariables = project.property('dart-defines') + .split(',') + .collectEntries { entry -> + def pair = new String(entry.decodeBase64(), 'UTF-8').split('=') + [(pair.first()): pair.last()] + } +} + android { + def useNextGenSdk = dartEnvironmentVariables.USE_NEXT_GEN_SDK ? dartEnvironmentVariables.USE_NEXT_GEN_SDK : false + sourceSets.getByName("main") { + java.srcDirs("src/main/java") + if (useNextGenSdk) { + java.srcDirs("src/nextgengma/java") + } else { + java.srcDirs("src/playservices/java") + } + res.srcDirs("src/main/res") + if (useNextGenSdk) { + res.srcDirs("src/nextgengma/res") + } else { + res.srcDirs("src/playservices/res") + } + } compileSdk 36 namespace 'io.flutter.plugins.googlemobileadsexample' @@ -32,9 +57,9 @@ android { } defaultConfig { - applicationId "io.flutter.plugins.googlemobileadsexample" - minSdkVersion flutter.minSdkVersion - targetSdkVersion 34 + applicationId 'io.flutter.plugins.googlemobileadsexample' + minSdk 24 + targetSdk 34 versionCode flutterVersionCode.toInteger() versionName flutterVersionName testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" diff --git a/packages/google_mobile_ads/example/android/app/src/main/java/io/flutter/plugins/googlemobileadsexample/MainActivity.java b/packages/google_mobile_ads/example/android/app/src/main/java/io/flutter/plugins/googlemobileadsexample/MainActivity.java index 59fc22db5..3cef3ad53 100644 --- a/packages/google_mobile_ads/example/android/app/src/main/java/io/flutter/plugins/googlemobileadsexample/MainActivity.java +++ b/packages/google_mobile_ads/example/android/app/src/main/java/io/flutter/plugins/googlemobileadsexample/MainActivity.java @@ -17,7 +17,7 @@ import io.flutter.embedding.android.FlutterActivity; import io.flutter.embedding.engine.FlutterEngine; import io.flutter.plugins.googlemobileads.GoogleMobileAdsPlugin; -import io.flutter.plugins.googlemobileads.GoogleMobileAdsPlugin.NativeAdFactory; +import io.flutter.plugins.googlemobileads.NativeAdFactory; public class MainActivity extends FlutterActivity { @Override diff --git a/packages/google_mobile_ads/example/android/app/src/nextgengma/java/io/flutter/plugins/googlemobileadsexample/NativeAdFactoryExample.java b/packages/google_mobile_ads/example/android/app/src/nextgengma/java/io/flutter/plugins/googlemobileadsexample/NativeAdFactoryExample.java new file mode 100644 index 000000000..43b5253f1 --- /dev/null +++ b/packages/google_mobile_ads/example/android/app/src/nextgengma/java/io/flutter/plugins/googlemobileadsexample/NativeAdFactoryExample.java @@ -0,0 +1,114 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package io.flutter.plugins.googlemobileadsexample; + +import android.view.LayoutInflater; +import android.view.View; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.RatingBar; +import android.widget.TextView; +import com.google.android.libraries.ads.mobile.sdk.nativead.MediaView; +import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAd; +import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdView; +import io.flutter.plugins.googlemobileads.NativeAdFactory; +import java.util.Map; + +class NativeAdFactoryExample implements NativeAdFactory { + private final LayoutInflater layoutInflater; + + NativeAdFactoryExample(LayoutInflater layoutInflater) { + this.layoutInflater = layoutInflater; + } + + @Override + public NativeAdView createNativeAd(NativeAd nativeAd, Map customOptions) { + final NativeAdView adView = (NativeAdView) layoutInflater.inflate(R.layout.my_native_ad, null); + + // Set the media view. + MediaView mediaView = (MediaView) adView.findViewById(R.id.ad_media); + + // Set other ad assets. + adView.setHeadlineView(adView.findViewById(R.id.ad_headline)); + adView.setBodyView(adView.findViewById(R.id.ad_body)); + adView.setCallToActionView(adView.findViewById(R.id.ad_call_to_action)); + adView.setIconView(adView.findViewById(R.id.ad_app_icon)); + adView.setPriceView(adView.findViewById(R.id.ad_price)); + adView.setStarRatingView(adView.findViewById(R.id.ad_stars)); + adView.setStoreView(adView.findViewById(R.id.ad_store)); + adView.setAdvertiserView(adView.findViewById(R.id.ad_advertiser)); + + // The headline and mediaContent are guaranteed to be in every NativeAd. + ((TextView) adView.getHeadlineView()).setText(nativeAd.getHeadline()); + mediaView.setMediaContent(nativeAd.getMediaContent()); + + // These assets aren't guaranteed to be in every NativeAd, so it's important to + // check before trying to display them. + if (nativeAd.getBody() == null) { + adView.getBodyView().setVisibility(View.INVISIBLE); + } else { + adView.getBodyView().setVisibility(View.VISIBLE); + ((TextView) adView.getBodyView()).setText(nativeAd.getBody()); + } + + if (nativeAd.getCallToAction() == null) { + adView.getCallToActionView().setVisibility(View.INVISIBLE); + } else { + adView.getCallToActionView().setVisibility(View.VISIBLE); + ((Button) adView.getCallToActionView()).setText(nativeAd.getCallToAction()); + } + + if (nativeAd.getIcon() == null) { + adView.getIconView().setVisibility(View.GONE); + } else { + ((ImageView) adView.getIconView()).setImageDrawable(nativeAd.getIcon().getDrawable()); + adView.getIconView().setVisibility(View.VISIBLE); + } + + if (nativeAd.getPrice() == null) { + adView.getPriceView().setVisibility(View.INVISIBLE); + } else { + adView.getPriceView().setVisibility(View.VISIBLE); + ((TextView) adView.getPriceView()).setText(nativeAd.getPrice()); + } + + if (nativeAd.getStore() == null) { + adView.getStoreView().setVisibility(View.INVISIBLE); + } else { + adView.getStoreView().setVisibility(View.VISIBLE); + ((TextView) adView.getStoreView()).setText(nativeAd.getStore()); + } + + if (nativeAd.getStarRating() == null) { + adView.getStarRatingView().setVisibility(View.INVISIBLE); + } else { + ((RatingBar) adView.getStarRatingView()).setRating(nativeAd.getStarRating().floatValue()); + adView.getStarRatingView().setVisibility(View.VISIBLE); + } + + if (nativeAd.getAdvertiser() == null) { + adView.getAdvertiserView().setVisibility(View.INVISIBLE); + } else { + adView.getAdvertiserView().setVisibility(View.VISIBLE); + ((TextView) adView.getAdvertiserView()).setText(nativeAd.getAdvertiser()); + } + + // This method tells the Google Mobile Ads SDK that you have finished populating your + // native ad view with this native ad. + adView.registerNativeAd(nativeAd, mediaView); + + return adView; + } +} diff --git a/packages/google_mobile_ads/example/android/app/src/nextgengma/res/layout/my_native_ad.xml b/packages/google_mobile_ads/example/android/app/src/nextgengma/res/layout/my_native_ad.xml new file mode 100644 index 000000000..8f64f532e --- /dev/null +++ b/packages/google_mobile_ads/example/android/app/src/nextgengma/res/layout/my_native_ad.xml @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +