Lookalike audience segments

  • Lookalike segments target audiences similar to your existing customers and are built from your first-party data.

  • Lookalike segments are exclusively available for Demand Gen campaigns and require a minimum of 1,000 active matched people in the seed lists used to create them.

  • When creating a Lookalike segment, you must specify an expansion_level of NARROW, BALANCED, or BROAD to control the size of the segment.

  • Lookalike segments automatically refresh every 1-2 days, but it's a best practice to create them 2-3 days before your campaign starts to ensure they are ready.

  • You can review the performance of your Lookalike audience segments by querying the ad_group_audience_view or campaign_audience_view resources for metrics like conversions.

You can expand your reach by targeting audiences that are similar to and share characteristics with your first-party audience lists by using Lookalike segments. Lookalike segments are groups of people that share characteristics with others on an existing seed list built from your first-party data—such as a list of customers who have purchased specific products or used specific services—letting you connect with potential new customers who demonstrate similar characteristics.

You can learn more about Lookalike segments in the Lookalike segments guide in the Google Ads Help Center.

Create the user list

Creating a Lookalike user list follows the same process as creating other UserList types. Lookalike user lists are created with the UserListService by setting the lookalike_user_list field with a LookalikeUserListInfo object.

LookalikeUserListInfo is created based on existing audience segments. When creating a Lookalike segment, you need to pass these existing audience segments in the seed_user_list_ids field.

Requirements

  1. The sum of all seed lists must include a minimum of 100 active matched people.

  2. Set the expansion_level to NARROW, BALANCED, or BROAD to configure the size of the lookalike segment. Find details on each level in the Lookalike segments guide in the Google Ads Help Center.

  3. Select countries to target by setting country_codes in LookalikeUserListInfo to a list of ISO 3166-1 alpha-2 country codes.

  4. The Lookalike audience segment must not have the same seed list, expansion level, and targeted countries as an existing audience segment. In v24 and later, attempting to create a duplicate Lookalike segment returns UserListError.DUPLICATE_LOOKALIKE.

Best practices

It could take some time after creating your new campaign before you can effectively use your Lookalike segment. As a best practice, create your campaign and Lookalike segment two to three days in advance to help ensure that it's ready when you want to start serving ads.

Lookalike segments refresh automatically every 1–2 days based on your available customer data. If your seed list no longer meets the minimum requirement, targeting stops, though this can take up to 3 days to take effect. You won't encounter errors during this period, but targeting ceases once the segment is marked as Ineligible. The Lookalike segment remains Ineligible until its seed list meets the requirement again. Check that your seed user list has enough active matched users for Demand Gen eligibility by querying for user_list.size_range_for_display and user_list.size_range_for_search.

Code example

To create a Lookalike user list, populate a LookalikeUserListInfo object on a UserList and pass it to UserListService.MutateUserLists:

user_list_operation = client.get_type("UserListOperation")
user_list = user_list_operation.create
user_list.name = f"Lookalike user list #{uuid.uuid4()}"
user_list.description = "Lookalike segment based on seed user lists"

lookalike_info = user_list.lookalike_user_list
lookalike_info.seed_user_list_ids.extend(seed_user_list_ids)
lookalike_info.expansion_level = (
    client.enums.LookalikeExpansionLevelEnum.BALANCED
)
lookalike_info.country_codes.extend(["US", "CA"])

response = user_list_service.mutate_user_lists(
    customer_id=customer_id, operations=[user_list_operation]
)

To target a Lookalike UserList in a Demand Gen campaign, wrap the UserList in a UserListSegment inside an Audience (AudienceService.MutateAudiences) and attach that Audience to AdGroupCriterion.audience with AdGroup.audience_setting.use_audience_grouped = true; see the Audiences guide for details. For end-to-end client library examples showing how to create and target a UserList, see Visitors to your website.

Review list performance

To collect performance data for your audience segments, issue a search request against the ad_group_audience_view or campaign_audience_view resource. For example, you can analyze metrics.conversions or metrics.cost_per_conversion to determine if targeting a specific audience segment increases conversions, and then adjust your bid modifiers accordingly.

SELECT
  ad_group.id,
  ad_group_criterion.criterion_id,
  ad_group_criterion.resource_name,
  metrics.conversions,
  metrics.cost_per_conversion
FROM ad_group_audience_view
WHERE segments.date DURING LAST_30_DAYS