summaryrefslogtreecommitdiff
path: root/adservices/tests/perf/src/android/adservices/test/scenario/adservices/fledge/GetAdSelectionDataLatency.java
diff options
context:
space:
mode:
Diffstat (limited to 'adservices/tests/perf/src/android/adservices/test/scenario/adservices/fledge/GetAdSelectionDataLatency.java')
-rw-r--r--adservices/tests/perf/src/android/adservices/test/scenario/adservices/fledge/GetAdSelectionDataLatency.java566
1 files changed, 566 insertions, 0 deletions
diff --git a/adservices/tests/perf/src/android/adservices/test/scenario/adservices/fledge/GetAdSelectionDataLatency.java b/adservices/tests/perf/src/android/adservices/test/scenario/adservices/fledge/GetAdSelectionDataLatency.java
new file mode 100644
index 0000000000..5c73083212
--- /dev/null
+++ b/adservices/tests/perf/src/android/adservices/test/scenario/adservices/fledge/GetAdSelectionDataLatency.java
@@ -0,0 +1,566 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * 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 android.adservices.test.scenario.adservices.fledge;
+
+import android.Manifest;
+import android.adservices.adselection.GetAdSelectionDataOutcome;
+import android.adservices.adselection.GetAdSelectionDataRequest;
+import android.adservices.clients.adselection.AdSelectionClient;
+import android.adservices.common.AdTechIdentifier;
+import android.adservices.customaudience.CustomAudience;
+import android.adservices.customaudience.CustomAudienceFixture;
+import android.adservices.test.scenario.adservices.fledge.utils.CustomAudienceTestFixture;
+import android.adservices.test.scenario.adservices.utils.SelectAdsFlagRule;
+import android.content.Context;
+import android.platform.test.microbenchmark.Microbenchmark;
+import android.platform.test.rule.CleanPackageRule;
+import android.platform.test.rule.KillAppsRule;
+import android.platform.test.scenario.annotation.Scenario;
+import android.util.Log;
+
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.platform.app.InstrumentationRegistry;
+
+import com.android.adservices.common.AdservicesTestHelper;
+import com.android.compatibility.common.util.ShellUtils;
+
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.RuleChain;
+import org.junit.runner.RunWith;
+
+import java.util.List;
+import java.util.concurrent.Executor;
+import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
+
+@Scenario
+@RunWith(Microbenchmark.class)
+public class GetAdSelectionDataLatency {
+ private static final Executor CALLBACK_EXECUTOR = Executors.newCachedThreadPool();
+ private static final Context CONTEXT = ApplicationProvider.getApplicationContext();
+ private static final String CUSTOM_AUDIENCE_ONE_BUYER_ONE_CA_ONE_AD =
+ "CustomAudienceOneBuyerOneCaOneAd.json";
+ private static final String SELLER = "ba-seller-5jyy5ulagq-uc.a.run.app";
+
+ private static final int API_RESPONSE_TIMEOUT_SECONDS = 100;
+ private static final AdSelectionClient AD_SELECTION_CLIENT =
+ new AdSelectionClient.Builder()
+ .setContext(CONTEXT)
+ .setExecutor(CALLBACK_EXECUTOR)
+ .build();
+
+ @Rule
+ public RuleChain rules =
+ RuleChain.outerRule(
+ new KillAppsRule(
+ AdservicesTestHelper.getAdServicesPackageName(CONTEXT)))
+ .around(
+ // CleanPackageRule should not execute after each test method because
+ // there's a chance it interferes with ShowmapSnapshotListener snapshot
+ // at the end of the test, impacting collection of memory metrics for
+ // AdServices process.
+ new CleanPackageRule(
+ AdservicesTestHelper.getAdServicesPackageName(CONTEXT),
+ /* clearOnStarting = */ true,
+ /* clearOnFinished = */ false))
+ .around(new SelectAdsFlagRule());
+
+ @BeforeClass
+ public static void setupBeforeClass() {
+ InstrumentationRegistry.getInstrumentation()
+ .getUiAutomation()
+ .adoptShellPermissionIdentity(Manifest.permission.WRITE_DEVICE_CONFIG);
+ }
+
+ private static final String TAG = "SelectAds";
+
+ private String generateLogLabel(String classSimpleName, String testName, long elapsedMs) {
+ return "("
+ + "SELECT_ADS_LATENCY_"
+ + classSimpleName
+ + "#"
+ + testName
+ + ": "
+ + elapsedMs
+ + " ms)";
+ }
+
+ private static final long NANO_TO_MILLISECONDS = 1000000;
+
+ @Before
+ public void warmup() throws Exception {
+ List<CustomAudience> customAudiences =
+ CustomAudienceTestFixture.readCustomAudiences(
+ CUSTOM_AUDIENCE_ONE_BUYER_ONE_CA_ONE_AD);
+ CustomAudienceTestFixture.joinCustomAudiences(customAudiences);
+
+ GetAdSelectionDataRequest request =
+ new GetAdSelectionDataRequest.Builder()
+ .setSeller(AdTechIdentifier.fromString(SELLER))
+ .build();
+ GetAdSelectionDataOutcome outcome =
+ AD_SELECTION_CLIENT
+ .getAdSelectionData(request)
+ .get(API_RESPONSE_TIMEOUT_SECONDS, TimeUnit.SECONDS);
+
+ CustomAudienceTestFixture.leaveCustomAudience(customAudiences);
+ }
+
+ @Test
+ public void test_withoutFiltering_varyingBuyers_1() throws Exception {
+ List<CustomAudience> customAudiences =
+ CustomAudienceFixture.getNValidCustomAudiences(
+ /* nBuyers= */ 1, /* nCAsPerBuyer= */ 1, /* nAdsPerCA= */ 5);
+ CustomAudienceTestFixture.joinCustomAudiences(customAudiences);
+
+ long startTime = System.nanoTime();
+ GetAdSelectionDataRequest request =
+ new GetAdSelectionDataRequest.Builder()
+ .setSeller(AdTechIdentifier.fromString(SELLER))
+ .build();
+ GetAdSelectionDataOutcome outcome =
+ AD_SELECTION_CLIENT
+ .getAdSelectionData(request)
+ .get(API_RESPONSE_TIMEOUT_SECONDS, TimeUnit.SECONDS);
+ long endTime = System.nanoTime();
+ Log.i(
+ TAG,
+ generateLogLabel(
+ getClass().getSimpleName(),
+ "test_withoutFiltering_varyingBuyers_1",
+ (endTime - startTime) / NANO_TO_MILLISECONDS));
+
+ CustomAudienceTestFixture.leaveCustomAudience(customAudiences);
+ }
+
+ @Test
+ public void test_withoutFiltering_varyingBuyers_10() throws Exception {
+ List<CustomAudience> customAudiences =
+ CustomAudienceFixture.getNValidCustomAudiences(
+ /* nBuyers= */ 10, /* nCAsPerBuyer= */ 1, /* nAdsPerCA= */ 5);
+ CustomAudienceTestFixture.joinCustomAudiences(customAudiences);
+
+ long startTime = System.nanoTime();
+ GetAdSelectionDataRequest request =
+ new GetAdSelectionDataRequest.Builder()
+ .setSeller(AdTechIdentifier.fromString(SELLER))
+ .build();
+ GetAdSelectionDataOutcome outcome =
+ AD_SELECTION_CLIENT
+ .getAdSelectionData(request)
+ .get(API_RESPONSE_TIMEOUT_SECONDS, TimeUnit.SECONDS);
+ long endTime = System.nanoTime();
+ Log.i(
+ TAG,
+ generateLogLabel(
+ getClass().getSimpleName(),
+ "test_withoutFiltering_varyingBuyers_10",
+ (endTime - startTime) / NANO_TO_MILLISECONDS));
+
+ CustomAudienceTestFixture.leaveCustomAudience(customAudiences);
+ }
+
+ @Test
+ public void test_withoutFiltering_varyingBuyers_100() throws Exception {
+ List<CustomAudience> customAudiences =
+ CustomAudienceFixture.getNValidCustomAudiences(
+ /* nBuyers= */ 100, /* nCAsPerBuyer= */ 1, /* nAdsPerCA= */ 5);
+ CustomAudienceTestFixture.joinCustomAudiences(customAudiences);
+
+ long startTime = System.nanoTime();
+ GetAdSelectionDataRequest request =
+ new GetAdSelectionDataRequest.Builder()
+ .setSeller(AdTechIdentifier.fromString(SELLER))
+ .build();
+ GetAdSelectionDataOutcome outcome =
+ AD_SELECTION_CLIENT
+ .getAdSelectionData(request)
+ .get(API_RESPONSE_TIMEOUT_SECONDS, TimeUnit.SECONDS);
+ long endTime = System.nanoTime();
+ Log.i(
+ TAG,
+ generateLogLabel(
+ getClass().getSimpleName(),
+ "test_withoutFiltering_varyingBuyers_100",
+ (endTime - startTime) / NANO_TO_MILLISECONDS));
+
+ CustomAudienceTestFixture.leaveCustomAudience(customAudiences);
+ }
+
+ @Test
+ public void test_withoutFiltering_varyingBuyers_500() throws Exception {
+ increasePayloadBucketSize();
+ List<CustomAudience> customAudiences =
+ CustomAudienceFixture.getNValidCustomAudiences(
+ /* nBuyers= */ 500, /* nCAsPerBuyer= */ 1, /* nAdsPerCA= */ 5);
+ CustomAudienceTestFixture.joinCustomAudiences(customAudiences);
+
+ long startTime = System.nanoTime();
+ GetAdSelectionDataRequest request =
+ new GetAdSelectionDataRequest.Builder()
+ .setSeller(AdTechIdentifier.fromString(SELLER))
+ .build();
+ GetAdSelectionDataOutcome outcome =
+ AD_SELECTION_CLIENT
+ .getAdSelectionData(request)
+ .get(API_RESPONSE_TIMEOUT_SECONDS, TimeUnit.SECONDS);
+ long endTime = System.nanoTime();
+ Log.i(
+ TAG,
+ generateLogLabel(
+ getClass().getSimpleName(),
+ "test_withoutFiltering_varyingBuyers_500",
+ (endTime - startTime) / NANO_TO_MILLISECONDS));
+
+ CustomAudienceTestFixture.leaveCustomAudience(customAudiences);
+ resetPayloadBucketSize();
+ }
+
+ @Test
+ public void test_withoutFiltering_varyingBuyers_1000() throws Exception {
+ increasePayloadBucketSize();
+ List<CustomAudience> customAudiences =
+ CustomAudienceFixture.getNValidCustomAudiences(
+ /* nBuyers= */ 1000, /* nCAsPerBuyer= */ 1, /* nAdsPerCA= */ 5);
+ CustomAudienceTestFixture.joinCustomAudiences(customAudiences);
+
+ long startTime = System.nanoTime();
+ GetAdSelectionDataRequest request =
+ new GetAdSelectionDataRequest.Builder()
+ .setSeller(AdTechIdentifier.fromString(SELLER))
+ .build();
+ GetAdSelectionDataOutcome outcome =
+ AD_SELECTION_CLIENT
+ .getAdSelectionData(request)
+ .get(API_RESPONSE_TIMEOUT_SECONDS, TimeUnit.SECONDS);
+ long endTime = System.nanoTime();
+ Log.i(
+ TAG,
+ generateLogLabel(
+ getClass().getSimpleName(),
+ "test_withoutFiltering_varyingBuyers_1000",
+ (endTime - startTime) / NANO_TO_MILLISECONDS));
+
+ CustomAudienceTestFixture.leaveCustomAudience(customAudiences);
+ resetPayloadBucketSize();
+ }
+
+ @Test
+ public void test_withoutFiltering_varyingCAs_1() throws Exception {
+ List<CustomAudience> customAudiences =
+ CustomAudienceFixture.getNValidCustomAudiences(
+ /* nBuyers= */ 4, /* nCAsPerBuyer= */ 1, /* nAdsPerCA= */ 5);
+ CustomAudienceTestFixture.joinCustomAudiences(customAudiences);
+
+ long startTime = System.nanoTime();
+ GetAdSelectionDataRequest request =
+ new GetAdSelectionDataRequest.Builder()
+ .setSeller(AdTechIdentifier.fromString(SELLER))
+ .build();
+ GetAdSelectionDataOutcome outcome =
+ AD_SELECTION_CLIENT
+ .getAdSelectionData(request)
+ .get(API_RESPONSE_TIMEOUT_SECONDS, TimeUnit.SECONDS);
+ long endTime = System.nanoTime();
+ Log.i(
+ TAG,
+ generateLogLabel(
+ getClass().getSimpleName(),
+ "test_withoutFiltering_varyingCAs_1",
+ (endTime - startTime) / NANO_TO_MILLISECONDS));
+
+ CustomAudienceTestFixture.leaveCustomAudience(customAudiences);
+ }
+
+ @Test
+ public void test_withoutFiltering_varyingCAs_10() throws Exception {
+ List<CustomAudience> customAudiences =
+ CustomAudienceFixture.getNValidCustomAudiences(
+ /* nBuyers= */ 4, /* nCAsPerBuyer= */ 10, /* nAdsPerCA= */ 5);
+ CustomAudienceTestFixture.joinCustomAudiences(customAudiences);
+
+ long startTime = System.nanoTime();
+ GetAdSelectionDataRequest request =
+ new GetAdSelectionDataRequest.Builder()
+ .setSeller(AdTechIdentifier.fromString(SELLER))
+ .build();
+ GetAdSelectionDataOutcome outcome =
+ AD_SELECTION_CLIENT
+ .getAdSelectionData(request)
+ .get(API_RESPONSE_TIMEOUT_SECONDS, TimeUnit.SECONDS);
+ long endTime = System.nanoTime();
+ Log.i(
+ TAG,
+ generateLogLabel(
+ getClass().getSimpleName(),
+ "test_withoutFiltering_varyingCAs_10",
+ (endTime - startTime) / NANO_TO_MILLISECONDS));
+
+ CustomAudienceTestFixture.leaveCustomAudience(customAudiences);
+ }
+
+ @Test
+ public void test_withoutFiltering_varyingCAs_100() throws Exception {
+ List<CustomAudience> customAudiences =
+ CustomAudienceFixture.getNValidCustomAudiences(
+ /* nBuyers= */ 4, /* nCAsPerBuyer= */ 100, /* nAdsPerCA= */ 5);
+ CustomAudienceTestFixture.joinCustomAudiences(customAudiences);
+
+ long startTime = System.nanoTime();
+ GetAdSelectionDataRequest request =
+ new GetAdSelectionDataRequest.Builder()
+ .setSeller(AdTechIdentifier.fromString(SELLER))
+ .build();
+ GetAdSelectionDataOutcome outcome =
+ AD_SELECTION_CLIENT
+ .getAdSelectionData(request)
+ .get(API_RESPONSE_TIMEOUT_SECONDS, TimeUnit.SECONDS);
+ long endTime = System.nanoTime();
+ Log.i(
+ TAG,
+ generateLogLabel(
+ getClass().getSimpleName(),
+ "test_withoutFiltering_varyingBuyers_100",
+ (endTime - startTime) / NANO_TO_MILLISECONDS));
+
+ CustomAudienceTestFixture.leaveCustomAudience(customAudiences);
+ }
+
+ @Test
+ public void test_withoutFiltering_varyingCAs_500() throws Exception {
+ List<CustomAudience> customAudiences =
+ CustomAudienceFixture.getNValidCustomAudiences(
+ /* nBuyers= */ 4, /* nCAsPerBuyer= */ 500, /* nAdsPerCA= */ 5);
+ CustomAudienceTestFixture.joinCustomAudiences(customAudiences);
+
+ long startTime = System.nanoTime();
+ GetAdSelectionDataRequest request =
+ new GetAdSelectionDataRequest.Builder()
+ .setSeller(AdTechIdentifier.fromString(SELLER))
+ .build();
+ GetAdSelectionDataOutcome outcome =
+ AD_SELECTION_CLIENT
+ .getAdSelectionData(request)
+ .get(API_RESPONSE_TIMEOUT_SECONDS, TimeUnit.SECONDS);
+ long endTime = System.nanoTime();
+ Log.i(
+ TAG,
+ generateLogLabel(
+ getClass().getSimpleName(),
+ "test_withoutFiltering_varyingCAs_500",
+ (endTime - startTime) / NANO_TO_MILLISECONDS));
+
+ CustomAudienceTestFixture.leaveCustomAudience(customAudiences);
+ }
+
+ @Test
+ public void test_withoutFiltering_varyingCAs_1000() throws Exception {
+ List<CustomAudience> customAudiences =
+ CustomAudienceFixture.getNValidCustomAudiences(
+ /* nBuyers= */ 4, /* nCAsPerBuyer= */ 1000, /* nAdsPerCA= */ 5);
+ CustomAudienceTestFixture.joinCustomAudiences(customAudiences);
+
+ long startTime = System.nanoTime();
+ GetAdSelectionDataRequest request =
+ new GetAdSelectionDataRequest.Builder()
+ .setSeller(AdTechIdentifier.fromString(SELLER))
+ .build();
+ GetAdSelectionDataOutcome outcome =
+ AD_SELECTION_CLIENT
+ .getAdSelectionData(request)
+ .get(API_RESPONSE_TIMEOUT_SECONDS, TimeUnit.SECONDS);
+ long endTime = System.nanoTime();
+ Log.i(
+ TAG,
+ generateLogLabel(
+ getClass().getSimpleName(),
+ "test_withoutFiltering_varyingCAs_1000",
+ (endTime - startTime) / NANO_TO_MILLISECONDS));
+
+ CustomAudienceTestFixture.leaveCustomAudience(customAudiences);
+ }
+
+ @Test
+ public void test_withoutFiltering_varyingAds_5() throws Exception {
+ List<CustomAudience> customAudiences =
+ CustomAudienceFixture.getNValidCustomAudiences(
+ /* nBuyers= */ 4, /* nCAsPerBuyer= */ 10, /* nAdsPerCA= */ 5);
+ CustomAudienceTestFixture.joinCustomAudiences(customAudiences);
+
+ long startTime = System.nanoTime();
+ GetAdSelectionDataRequest request =
+ new GetAdSelectionDataRequest.Builder()
+ .setSeller(AdTechIdentifier.fromString(SELLER))
+ .build();
+ GetAdSelectionDataOutcome outcome =
+ AD_SELECTION_CLIENT
+ .getAdSelectionData(request)
+ .get(API_RESPONSE_TIMEOUT_SECONDS, TimeUnit.SECONDS);
+ long endTime = System.nanoTime();
+ Log.i(
+ TAG,
+ generateLogLabel(
+ getClass().getSimpleName(),
+ "test_withoutFiltering_varyingAds_5",
+ (endTime - startTime) / NANO_TO_MILLISECONDS));
+
+ CustomAudienceTestFixture.leaveCustomAudience(customAudiences);
+ }
+
+ @Test
+ public void test_withoutFiltering_varyingAds_25() throws Exception {
+ List<CustomAudience> customAudiences =
+ CustomAudienceFixture.getNValidCustomAudiences(
+ /* nBuyers= */ 4, /* nCAsPerBuyer= */ 10, /* nAdsPerCA= */ 25);
+ CustomAudienceTestFixture.joinCustomAudiences(customAudiences);
+
+ long startTime = System.nanoTime();
+ GetAdSelectionDataRequest request =
+ new GetAdSelectionDataRequest.Builder()
+ .setSeller(AdTechIdentifier.fromString(SELLER))
+ .build();
+ GetAdSelectionDataOutcome outcome =
+ AD_SELECTION_CLIENT
+ .getAdSelectionData(request)
+ .get(API_RESPONSE_TIMEOUT_SECONDS, TimeUnit.SECONDS);
+ long endTime = System.nanoTime();
+ Log.i(
+ TAG,
+ generateLogLabel(
+ getClass().getSimpleName(),
+ "test_withoutFiltering_varyingAds_25",
+ (endTime - startTime) / NANO_TO_MILLISECONDS));
+
+ CustomAudienceTestFixture.leaveCustomAudience(customAudiences);
+ }
+
+ @Test
+ public void test_withoutFiltering_varyingAds_125() throws Exception {
+ increaseMaximumAds();
+ List<CustomAudience> customAudiences =
+ CustomAudienceFixture.getNValidCustomAudiences(
+ /* nBuyers= */ 4, /* nCAsPerBuyer= */ 10, /* nAdsPerCA= */ 125);
+ CustomAudienceTestFixture.joinCustomAudiences(customAudiences);
+
+ long startTime = System.nanoTime();
+ GetAdSelectionDataRequest request =
+ new GetAdSelectionDataRequest.Builder()
+ .setSeller(AdTechIdentifier.fromString(SELLER))
+ .build();
+ GetAdSelectionDataOutcome outcome =
+ AD_SELECTION_CLIENT
+ .getAdSelectionData(request)
+ .get(API_RESPONSE_TIMEOUT_SECONDS, TimeUnit.SECONDS);
+ long endTime = System.nanoTime();
+ Log.i(
+ TAG,
+ generateLogLabel(
+ getClass().getSimpleName(),
+ "test_withoutFiltering_varyingAds_125",
+ (endTime - startTime) / NANO_TO_MILLISECONDS));
+
+ CustomAudienceTestFixture.leaveCustomAudience(customAudiences);
+ resetMaximumAds();
+ }
+
+ @Test
+ public void test_withoutFiltering_varyingAds_500() throws Exception {
+ increaseMaximumAds();
+ List<CustomAudience> customAudiences =
+ CustomAudienceFixture.getNValidCustomAudiences(
+ /* nBuyers= */ 4, /* nCAsPerBuyer= */ 10, /* nAdsPerCA= */ 500);
+ CustomAudienceTestFixture.joinCustomAudiences(customAudiences);
+
+ long startTime = System.nanoTime();
+ GetAdSelectionDataRequest request =
+ new GetAdSelectionDataRequest.Builder()
+ .setSeller(AdTechIdentifier.fromString(SELLER))
+ .build();
+ GetAdSelectionDataOutcome outcome =
+ AD_SELECTION_CLIENT
+ .getAdSelectionData(request)
+ .get(API_RESPONSE_TIMEOUT_SECONDS, TimeUnit.SECONDS);
+ long endTime = System.nanoTime();
+ Log.i(
+ TAG,
+ generateLogLabel(
+ getClass().getSimpleName(),
+ "test_withoutFiltering_varyingAds_500",
+ (endTime - startTime) / NANO_TO_MILLISECONDS));
+
+ CustomAudienceTestFixture.leaveCustomAudience(customAudiences);
+ resetMaximumAds();
+ }
+
+ @Test
+ public void test_withoutFiltering_varyingAds_1000() throws Exception {
+ increaseMaximumAds();
+ List<CustomAudience> customAudiences =
+ CustomAudienceFixture.getNValidCustomAudiences(
+ /* nBuyers= */ 4, /* nCAsPerBuyer= */ 10, /* nAdsPerCA= */ 1000);
+ CustomAudienceTestFixture.joinCustomAudiences(customAudiences);
+
+ long startTime = System.nanoTime();
+ GetAdSelectionDataRequest request =
+ new GetAdSelectionDataRequest.Builder()
+ .setSeller(AdTechIdentifier.fromString(SELLER))
+ .build();
+ GetAdSelectionDataOutcome outcome =
+ AD_SELECTION_CLIENT
+ .getAdSelectionData(request)
+ .get(API_RESPONSE_TIMEOUT_SECONDS, TimeUnit.SECONDS);
+ long endTime = System.nanoTime();
+ Log.i(
+ TAG,
+ generateLogLabel(
+ getClass().getSimpleName(),
+ "test_withoutFiltering_varyingAds_1000",
+ (endTime - startTime) / NANO_TO_MILLISECONDS));
+
+ CustomAudienceTestFixture.leaveCustomAudience(customAudiences);
+ resetMaximumAds();
+ }
+
+ void increaseMaximumAds() {
+ ShellUtils.runShellCommand(
+ "device_config put adservices fledge_custom_audience_max_num_ads 1000");
+ ShellUtils.runShellCommand(
+ "device_config put adservices fledge_custom_audience_max_ads_size_b 1048576");
+ }
+
+ void resetMaximumAds() {
+ ShellUtils.runShellCommand(
+ "device_config put adservices fledge_custom_audience_max_num_ads 100");
+ ShellUtils.runShellCommand(
+ "device_config put adservices fledge_custom_audience_max_ads_size_b 10240");
+ }
+
+ void increasePayloadBucketSize() {
+ ShellUtils.runShellCommand(
+ "device_config put adservices fledge_auction_server_payload_bucket_sizes"
+ + " 0,1024,2048,4096,8192,16384,32768,65536,131072,262174,524288,1048576");
+ }
+
+ void resetPayloadBucketSize() {
+ ShellUtils.runShellCommand(
+ "device_config put adservices fledge_auction_server_payload_bucket_sizes"
+ + " 0,1024,2048,4096,8192,16384,32768,65536");
+ }
+}