Уникальный идентификатор объекта в API Google Рекламы называется именем ресурса и представляется в виде строки предсказуемого формата. Если вы знаете составные компоненты имени ресурса, вы можете создавать имена ресурсов, используя вспомогательные методы, присутствующие во многих объектах службы.
Методы пути службы
Все службы, предназначенные для чтения или изменения определенных типов объектов в API, имеют вспомогательные методы, упрощающие создание resources_names. Например, создание имени ресурса для объекта Campaign
:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage()
customer_id = "7892134783"
campaign_id = "1234567890"
campaign_service = client.get_service("CampaignService")
resource_name = campaign_service.campaign_path(customer_id, campaign_id)
Начиная с версии 10.0.0 клиентской библиотеки, каждая служба также имеет сопутствующий метод parse_*_path
, который разбирает имя_ресурса на отдельные сегменты, например:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage()
resource_name = "customers/7892134783/campaigns/1234567890"
campaign_service = client.get_service('CampaignService')
segments = campaign_service.parse_campaign_path(resource_name)
customer_id = segments["customer_id"]
campaign_id = segments["campaign_id"]
Составные имена ресурсов
Начиная с версии 9.0.0 клиентской библиотеки, помощники пути в службах создают составные сегменты имени ресурса. Различные сегменты составного идентификатора принимаются в методе как отдельные параметры:
from google.ads.google_ads.client import GoogleAdsClient
customer_id = "0987654321"
ad_group_id = "1234567890"
criterion_id = "74932"
client = GoogleAdsClient.load_from_storage()
ad_group_criterion_service = client.get_service("AdGroupCriterionService")
# An AdGroupCriterion resource name that uses the above IDs looks like this:
# "customers/0987654321/adGroupCriteria/1234567890~74932"
resource_name = ad_group_criterion_service.ad_group_criterion_path(
customer_id, ad_group_id, criterion_id
)
Версии до 9.0.0
До версии 9.0.0 помощники пути в службах не создавали составной сегмент имени ресурса. Эти сегменты должны быть предоставлены вызывающей стороной. В клиентской библиотеке есть небольшая утилита, которая поможет в этом:
from google.ads.google_ads.client import GoogleAdsClient
from google.ads.google_ads.util import ResourceName
customer_id = "0987654321"
ad_group_id = "1234567890"
criterion_id = "74932"
client = GoogleAdsClient.load_from_storage()
ad_group_criterion_service = client.get_service("AdGroupCriterionService")
# An AdGroupCriterion resource name that uses the above IDs looks like this:
# "customers/0987654321/adGroupCriteria/1234567890~74932"
composite_id = ResourceName.format_composite(ad_group_id, criterion_id)
resource_name = ad_group_criterion_service.ad_group_criterion_path(
customer_id, composite_id
)