The Data Manager API is in closed beta. To express interest in joining the closed beta, fill out
this form.
Best practices
Stay organized with collections
Save and categorize content based on your preferences.
Keep the following best practices in mind when using the Data Manager API.
Send all user identifiers
Whether sending audience members or events with UserData
, include as many
user_identifiers
as possible, including sending multiple identifiers of the
same type.
For example, if you have multiple email addresses for a user, include a separate
UserIdentifier
for each email address. Similarly, if you have identifiers of
different types for a user, such as email addresses, phone numbers, and
addresses, add a separate UserIdentifier
for each identifier, up to the
maximum identifier count.
Optimize requests
To reduce the likelihood of exceeding daily request limits, batch as many
items as possible in each request, up to the per-request
limits.
For example, if you want to add 10,000 audience members to an audience, add all
10,000 members in the audience_members
list in one
IngestAudienceMembersRequest
. Batching all 10,000 members
in a single request is far more efficient than sending a separate request to add
each audience member.
Send concurrent requests
To reduce the overall time required to ingest data, send concurrent requests
to the IngestionService
. We recommend sending up to 10
requests concurrently to reduce the likelihood of exceeding the requests per
minute limit.
You can send concurrent requests even if the requests have the same
destinations
.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-06-26 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-06-26 UTC."],[],[],null,["# Best practices\n\nKeep the following best practices in mind when using the Data Manager API.\n\nSend all user identifiers\n-------------------------\n\nWhether sending audience members or events with [`UserData`](/data-manager/api/reference/rpc/google.ads.datamanager.v1#userdata), include as many\n`user_identifiers` as possible, including sending multiple identifiers of the\nsame type.\n\nFor example, if you have multiple email addresses for a user, include a separate\n[`UserIdentifier`](/data-manager/api/reference/rpc/google.ads.datamanager.v1#useridentifier) for each email address. Similarly, if you have identifiers of\ndifferent types for a user, such as email addresses, phone numbers, and\naddresses, add a separate `UserIdentifier` for each identifier, up to the\n[maximum identifier count](/data-manager/api/limits#request_limits).\n\nOptimize requests\n-----------------\n\nTo reduce the likelihood of exceeding daily request limits, batch as many\nitems as possible in each request, up to the [per-request\nlimits](/data-manager/api/limits#request_limits).\n\nFor example, if you want to add 10,000 audience members to an audience, add all\n10,000 members in the `audience_members` list in one\n[`IngestAudienceMembersRequest`](/data-manager/api/reference/rpc/google.ads.datamanager.v1#ingestaudiencemembersrequest). Batching all 10,000 members\nin a single request is far more efficient than sending a separate request to add\neach audience member.\n\nSend concurrent requests\n------------------------\n\nTo reduce the overall time required to ingest data, send concurrent requests\nto the [`IngestionService`](/data-manager/api/reference/rpc/google.ads.datamanager.v1#ingestionservice). We recommend sending up to 10\nrequests concurrently to reduce the likelihood of exceeding the [requests per\nminute limit](/data-manager/api/limits#project_limits).\n\nYou can send concurrent requests even if the requests have the same\n`destinations`."]]