Руководство по настройке пользовательских аудиторий

Пользовательские аудитории (включая устаревшие пользовательские аудитории по намерениям и аудитории по интересам) позволяют рекламодателям охватывать идеальную целевую аудиторию, вводя релевантные ключевые слова, URL-адреса и приложения, связанные с их продуктами или услугами. Google Ads автоматически определяет наиболее подходящий таргетинг аудитории на основе типа кампании, стратегии назначения ставок и целей оптимизации.

В этом руководстве представлен пошаговый процесс создания и управления пользовательскими аудиториями с использованием ключевых слов и URL-адресов через API Google Ads.


1. Понимание пользовательских аудиторий

В API Google Ads устаревшие концепции, такие как «Пользовательское намерение» и «Пользовательская привязанность», объединены в единый всеобъемлющий ресурс: «Пользовательские аудитории» .

При таргетировании на пользовательскую аудиторию Google Ads показывает объявления пользователям с такими интересами или намерениями совершить покупку в рамках кампаний Display, Demand Gen, Gmail, Video и Performance Max:

  • Участники по ключевым словам: Охват пользователей, которые ищут определенные термины в Google, или пользователей, интересы которых связаны с этими ключевыми словами.
  • Участники URL-адресов: Охват пользователей, которые просматривают веб-сайты, похожие на указанные URL-адреса.
  • Участники приложения: Охват пользователей, которые используют определенные мобильные приложения.

2. Предварительные требования

Перед созданием пользовательских аудиторий убедитесь, что у вас есть:

  1. Процесс подключения API завершен: инструкции по получению токена разработчика, настройке Google Cloud и конфигурации OAuth 2.0 см. в Руководстве по подключению .
  2. Идентификатор целевого клиента: 10-значный идентификатор клиентского аккаунта Google Ads, в котором будет создана пользовательская аудитория.
  3. Установленная клиентская библиотека: официальная клиентская библиотека Google Ads (например, google-ads для Python).

3. Основные ресурсы API и архитектура

Управление пользовательскими аудиториями включает в себя несколько отдельных сущностей Protocol Buffer (Protobuf) в рамках Google Ads API:

CustomAudienceService

Сервис gRPC, отвечающий за управление пользовательскими аудиториями. Ключевые методы включают MutateCustomAudiences , который принимает список операций для создания, обновления или удаления аудиторий.

CustomAudience

Основной ресурс, представляющий целевую аудиторию ( CustomAudience ). Ключевые поля:

  • name : Уникальное, описательное имя для пользовательской аудитории.
  • description : Дополнительный текст, описывающий целевую аудиторию.
  • status : Установите значение ENABLED , чтобы сделать аудиторию активной и доступной для использования.
  • type : Тип пользовательской аудитории ( AUTO или SEARCH ).
  • members : Список объектов CustomAudienceMember , определяющих целевые сигналы.

CustomAudienceMember

Индивидуальный сигнал таргетинга в рамках аудитории ( CustomAudienceMember ).

  • member_type : Перечисление, определяющее тип сигнала ( KEYWORD , URL , APP ).
  • keyword / url / app : Строковое значение, соответствующее типу участника.

4. Пошаговая реализация

Шаг 1: Инициализация клиента

Создайте экземпляр GoogleAdsClient , используя настроенный вами файл google-ads.yaml .

from google.ads.googleads.client import GoogleAdsClient

# Initialize the Google Ads client library
client = GoogleAdsClient.load_from_storage()
custom_audience_service = client.get_service("CustomAudienceService")

Шаг 2: Создание пользовательской аудитории

Создайте новый экземпляр CustomAudience и настройте его метаданные (имя, описание, тип, статус).

# Construct the CustomAudience resource
custom_audience = client.get_type("CustomAudience")
custom_audience.name = "Target Audience Name"
custom_audience.description = "Description of the target audience."
custom_audience.type_ = client.enums.CustomAudienceTypeEnum.AUTO
custom_audience.status = client.enums.CustomAudienceStatusEnum.ENABLED

Шаг 3: Заполните список ключевых слов.

Создайте объекты CustomAudienceMember , установите member_type равным CustomAudienceMemberTypeEnum.KEYWORD и заполните поле keyword строкой ваших целевых терминов.

# Create and append a keyword member
keyword_member = client.get_type("CustomAudienceMember")
keyword_member.member_type = client.enums.CustomAudienceMemberTypeEnum.KEYWORD
keyword_member.keyword = "marathon training"
custom_audience.members.append(keyword_member)

Шаг 4: Заполните поля для участников URL-адреса

Создайте объекты CustomAudienceMember , установите member_type равным CustomAudienceMemberTypeEnum.URL и заполните поле url string веб-сайтами конкурентов или компаний из вашей отрасли.

# Create and append a URL member
url_member = client.get_type("CustomAudienceMember")
url_member.member_type = client.enums.CustomAudienceMemberTypeEnum.URL
url_member.url = "https://www.runnersworld.com"
custom_audience.members.append(url_member)

Шаг 5: Выполните мутацию

Оберните объект CustomAudience в объект CustomAudienceOperation , присвойте ему значение поля create и вызовите CustomAudienceService.mutate_custom_audiences() .

# Wrap in an operation and execute the mutation request
operation = client.get_type("CustomAudienceOperation")
operation.create = custom_audience

response = custom_audience_service.mutate_custom_audiences(
    customer_id="1234567890", operations=[operation]
)
print(f"Created custom audience: {response.results[0].resource_name}")

5. Полный пример кода на Python.

Ниже представлен полностью функциональный скрипт на Python, демонстрирующий, как создать пользовательскую аудиторию, включающую как ключевые слова, так и URL-адреса.

import sys
from google.ads.googleads.client import GoogleAdsClient
from google.ads.googleads.errors import GoogleAdsException

def create_custom_intent_audience(client: GoogleAdsClient, customer_id: str):
    """Creates a custom audience using keywords and URLs."""
    
    # 1. Get the CustomAudienceService
    custom_audience_service = client.get_service("CustomAudienceService")
    
    # 2. Create the CustomAudience resource
    custom_audience = client.get_type("CustomAudience")
    custom_audience.name = "Running Enthusiasts & Gear Shoppers"
    custom_audience.description = "Targeting users actively researching running shoes and visiting marathon websites."
    
    # Use AUTO for standard custom audiences (combines intent and affinity signals)
    custom_audience.type_ = client.enums.CustomAudienceTypeEnum.AUTO
    custom_audience.status = client.enums.CustomAudienceStatusEnum.ENABLED

    # 3. Add Keyword Members (Search Terms / Purchase Intent Keywords)
    keywords = [
        "best marathon running shoes",
        "carbon plate running shoes",
        "marathon training plan",
        "trail running gear"
    ]
    
    for kw in keywords:
        member = client.get_type("CustomAudienceMember")
        member.member_type = client.enums.CustomAudienceMemberTypeEnum.KEYWORD
        member.keyword = kw
        custom_audience.members.append(member)

    # 4. Add URL Members (Relevant websites/competitors)
    urls = [
        "https://www.runnersworld.com",
        "https://www.marathonrunning.com",
        "https://www.trailrunnermag.com"
    ]
    
    for url in urls:
        member = client.get_type("CustomAudienceMember")
        member.member_type = client.enums.CustomAudienceMemberTypeEnum.URL
        member.url = url
        custom_audience.members.append(member)

    # 5. Create the Operation
    operation = client.get_type("CustomAudienceOperation")
    operation.create = custom_audience

    # 6. Issue the Mutate Request
    try:
        response = custom_audience_service.mutate_custom_audiences(
            customer_id=customer_id, operations=[operation]
        )
        created_resource_name = response.results[0].resource_name
        print(f"Successfully created Custom Audience with resource name: '{created_resource_name}'")
    except GoogleAdsException as ex:
        print(f"Request failed with status {ex.error.code().name} and includes the following errors:")
        for error in ex.failure.errors:
            print(f"\tError with message '{error.message}'.")
            if error.location:
                for field_path_element in error.location.field_path_elements:
                    print(f"\t\tOn field: {field_path_element.field_name}")
        sys.exit(1)

if __name__ == "__main__":
    # Ensure the client is configured correctly (loads from google-ads.yaml)
    try:
        googleads_client = GoogleAdsClient.load_from_storage()
        # Replace with your actual Google Ads Customer ID (without hyphens)
        target_customer_id = "1234567890"
        create_custom_intent_audience(googleads_client, target_customer_id)
    except GoogleAdsException as ex:
        print(f"Failed to initialize client or execute request: {ex}")
        sys.exit(1)

6. Примените пользовательские аудитории к кампаниям.

После создания пользовательской аудитории она существует в библиотеке аудиторий вашей учетной записи, но не будет активно использоваться для таргетирования пользователей до тех пор, пока не будет привязана к группе объявлений или кампании.

Что такое AdGroupCriterion ?

В архитектуре API Google Ads правила таргетинга (такие как ключевые слова, аудитории, места размещения и демографические данные) не настраиваются непосредственно в объекте группы объявлений. Вместо этого Google Ads объединяет все методы таргетинга в рамках единого автономного объекта под названием AdGroupCriterion .

Объект AdGroupCriterion выступает в качестве универсального контейнера. Вы указываете, к какой группе объявлений он применяется, а затем заполняете ровно одно из его полей таргетинга (например, keyword , custom_audience или placement ). Создав AdGroupCriterion и настроив поле custom_audience , вы указываете Google Ads ограничивать или контролировать показ объявлений для этой группы объявлений на основе участников вашей пользовательской аудитории.

Пошаговое описание (четкое двухэтапное создание)

Для четкого разграничения конфигурации таргетинга и контейнера API-запросов мы используем шаблон явного двухэтапного создания :

  1. Создание ресурса AdGroupCriterion : Создайте отдельный объект AdGroupCriterion . Этот ресурс представляет собой связь таргетинга.
  2. Установите целевую ad_group : присвойте отформатированное имя ресурса вашей группы объявлений (например, customers/{customer_id}/adGroups/{ad_group_id} ) полю ad_group критерия.
  3. Заполните поле custom_audience : Присвойте имя resource_name вашей ранее созданной пользовательской аудитории полю ad_group_criterion.custom_audience.custom_audience .
  4. Упакуйте в AdGroupCriterionOperation : чтобы отправить этот новый критерий в API, создайте контейнер AdGroupCriterionOperation и назначьте свой автономный объект критерия методу operation.create .
  5. Отправка с использованием AdGroupCriterionService : Передайте контейнер операций в функцию mutate_ad_group_criteria() для выполнения создания.
import sys
from google.ads.googleads.client import GoogleAdsClient
from google.ads.googleads.errors import GoogleAdsException

def attach_custom_audience_to_ad_group(
    client: GoogleAdsClient, customer_id: str, ad_group_id: str, custom_audience_resource_name: str
):
    """Attaches a Custom Audience to an Ad Group using explicit two-step creation."""
    ad_group_criterion_service = client.get_service("AdGroupCriterionService")
    
    # Step 1: Instantiate the standalone AdGroupCriterion resource
    ad_group_criterion = client.get_type("AdGroupCriterion")
    
    # Step 2: Set the target Ad Group
    ad_group_criterion.ad_group = client.get_service("AdGroupService").ad_group_path(
        customer_id, ad_group_id
    )
    
    # Step 3: Set the custom audience targeting information
    ad_group_criterion.custom_audience.custom_audience = custom_audience_resource_name
    
    # Step 4: Package the resource into an AdGroupCriterionOperation
    operation = client.get_type("AdGroupCriterionOperation")
    operation.create = ad_group_criterion
    
    # Step 5: Issue the API Request
    try:
        response = ad_group_criterion_service.mutate_ad_group_criteria(
            customer_id=customer_id, operations=[operation]
        )
        print(
            "Successfully attached custom audience to Ad Group. "
            f"New criterion resource name: '{response.results[0].resource_name}'"
        )
    except GoogleAdsException as ex:
        print(f"Request failed with status {ex.error.code().name} and includes the following errors:")
        for error in ex.failure.errors:
            print(f"\tError with message '{error.message}'.")
        sys.exit(1)

7. Рекомендации по пользовательской аудитории

Вы можете получить рекомендации типа CUSTOM_AUDIENCE_OPT_IN , которые рекомендуют создать пользовательскую аудиторию. Это особенно полезно, если вы являетесь сторонним рекламодателем, который позволяет своим пользователям создавать и управлять сегментами аудитории. Когда пользователи следуют рекомендации по созданию пользовательской аудитории, это способствует улучшению общего показателя оптимизации аккаунта.

Для получения более подробной информации посетите руководство по оценке оптимизации и рекомендациям .


8. Передовые методы и ограничения

Качество важнее количества

Сосредоточьтесь на узкоспециализированных и релевантных ключевых словах и URL-адресах. Добавление сотен общих ключевых слов снижает намерение пользователя и уменьшает эффективность кампании.

правила форматирования URL-адресов

  • URL-адреса должны быть действительными адресами веб-сайтов (например, https://www.example.com ).
  • Избегайте глубоких, узкоспециализированных подстраниц с низким трафиком; URL-адреса на уровне домена или категории обеспечивают лучший охват.

Ограничения для участников

Хотя пользовательские аудитории могут содержать множество участников, следует отдавать предпочтение спискам, объединенным единой согласованной темой или портретом пользователя для каждой пользовательской аудитории.

Политика и конфиденциальность

Google применяет строгие правила персонализированной рекламы. Не используйте пользовательские аудитории для таргетирования на деликатные категории, такие как заболевания, финансовые трудности или религиозные убеждения.


9. Эффективность списка отзывов

Прежде чем анализировать результаты, необходимо сначала привязать таргетинг на пользовательскую аудиторию к кампании или группе объявлений, как описано в разделе «Таргетинг на пользовательскую аудиторию» .

Для сбора данных об эффективности ваших сегментов аудитории выполните поисковый запрос к ресурсу ad_group_audience_view или campaign_audience_view . Например, вы можете проанализировать conversions или cost_per_conversion , чтобы определить, действительно ли таргетинг на данный сегмент аудитории приводит к увеличению конверсий, а затем соответствующим образом скорректировать модификаторы ставок.

SELECT
  ad_group_criterion.criterion_id,
  metrics.conversions,
  metrics.cost_per_conversion
FROM ad_group_audience_view

10. Ресурсы и справочная информация