Skip to content

Commit d22e019

Browse files
Mobile Ads Developer Relationscopybara-github
authored andcommitted
Maps ageRestrictedTreatment to DT Exchange Adapter
PiperOrigin-RevId: 921961076
1 parent 60f2167 commit d22e019

6 files changed

Lines changed: 35 additions & 5 deletions

File tree

ThirdPartyAdapters/dtexchange/CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
## DT Exchange Android Mediation Adapter Changelog
22

3+
#### Next Version
4+
- Maps `AgeRestrictedTreatment` to DT Exchange's COPPA API.
5+
36
#### Version 8.4.5.0
47
- Added watermark on bidding ads.
58
- Verified compatibility with DT Exchange SDK 8.4.5.

ThirdPartyAdapters/dtexchange/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ buildscript {
66
mavenCentral()
77
}
88
ext {
9-
kotlinVersion = '2.1.10'
9+
kotlinVersion = '2.3.0'
1010
}
1111
dependencies {
1212
classpath 'com.android.tools.build:gradle:8.2.2'

ThirdPartyAdapters/dtexchange/dtexchange/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -125,15 +125,15 @@ dependencies {
125125
implementation 'androidx.annotation:annotation:1.5.0'
126126
// Check for a 'useNextGenGma' flag to use the next generation GMA SDK.
127127
if (project.hasProperty('useNextGenGma')) {
128-
implementation 'com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:1.0.1'
128+
implementation 'com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:1.1.0'
129129
} else {
130-
implementation 'com.google.android.gms:play-services-ads:25.2.0'
130+
implementation 'com.google.android.gms:play-services-ads:25.3.0'
131131
}
132132

133133
testImplementation project(':adaptertestkit')
134134
testImplementation "org.jacoco:org.jacoco.core:$jacocoVersion"
135135
testImplementation 'junit:junit:4.13.2'
136-
testImplementation 'org.jetbrains.kotlin:kotlin-stdlib:2.1.10'
136+
testImplementation 'org.jetbrains.kotlin:kotlin-stdlib:2.3.0'
137137
testImplementation 'com.google.truth:truth:1.1.5'
138138
testImplementation 'androidx.test:core:1.5.0'
139139
testImplementation 'org.mockito:mockito-core:5.5.0'

ThirdPartyAdapters/dtexchange/dtexchange/src/main/java/com/google/ads/mediation/fyber/FyberMediationAdapter.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
import com.fyber.inneractive.sdk.external.OnFyberMarketplaceInitializedListener;
4545
import com.google.android.gms.ads.AdError;
4646
import com.google.android.gms.ads.AdSize;
47+
import com.google.android.gms.ads.AgeRestrictedTreatment;
4748
import com.google.android.gms.ads.MediationUtils;
4849
import com.google.android.gms.ads.MobileAds;
4950
import com.google.android.gms.ads.RequestConfiguration;
@@ -747,7 +748,8 @@ private void configureDTExchangePrivacy() {
747748
(requestConfiguration.getTagForChildDirectedTreatment()
748749
== TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE)
749750
|| requestConfiguration.getTagForUnderAgeOfConsent()
750-
== TAG_FOR_UNDER_AGE_OF_CONSENT_TRUE;
751+
== TAG_FOR_UNDER_AGE_OF_CONSENT_TRUE
752+
|| requestConfiguration.getAgeRestrictedTreatment() == AgeRestrictedTreatment.CHILD;
751753
if (isChildUser) {
752754
InneractiveAdManager.currentAudienceAppliesToCoppa();
753755
}

ThirdPartyAdapters/dtexchange/dtexchange/src/test/kotlin/com/google/ads/mediation/fyber/FyberMediationAdapterTest.kt

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import com.google.ads.mediation.adaptertestkit.createMediationNativeAdConfigurat
3636
import com.google.ads.mediation.adaptertestkit.createMediationRewardedAdConfiguration
3737
import com.google.android.gms.ads.AdError
3838
import com.google.android.gms.ads.AdFormat
39+
import com.google.android.gms.ads.AgeRestrictedTreatment
3940
import com.google.android.gms.ads.MobileAds
4041
import com.google.android.gms.ads.RequestConfiguration
4142
import com.google.android.gms.ads.mediation.InitializationCompleteCallback
@@ -189,6 +190,30 @@ class FyberMediationAdapterTest {
189190
}
190191
}
191192

193+
@Test
194+
fun initialize_withAgeRestrictedTreatmentChild_initializesInneractiveAdManagerAndSetsCoppa() {
195+
val requestConfiguration =
196+
RequestConfiguration.Builder()
197+
.setTagForChildDirectedTreatment(
198+
RequestConfiguration.TAG_FOR_CHILD_DIRECTED_TREATMENT_UNSPECIFIED
199+
)
200+
.setTagForUnderAgeOfConsent(RequestConfiguration.TAG_FOR_UNDER_AGE_OF_CONSENT_UNSPECIFIED)
201+
.setAgeRestrictedTreatment(AgeRestrictedTreatment.CHILD)
202+
.build()
203+
MobileAds.setRequestConfiguration(requestConfiguration)
204+
val initializationParameters = createMediationConfiguration(AdFormat.BANNER, serverParameters)
205+
adapter.initialize(
206+
activity,
207+
mockInitializationCompleteCallback,
208+
listOf(initializationParameters),
209+
)
210+
211+
mockInneractiveAdManager.verify {
212+
InneractiveAdManager.currentAudienceAppliesToCoppa()
213+
InneractiveAdManager.initialize(eq(activity), eq(AdapterTestKitConstants.TEST_APP_ID), any())
214+
}
215+
}
216+
192217
@Test
193218
fun initialize_invokesOnInitializationSucceeded() {
194219
val listener = argumentCaptor<OnFyberMarketplaceInitializedListener>()

ThirdPartyAdapters/dtexchange/gradlew

100644100755
File mode changed.

0 commit comments

Comments
 (0)