def pause_placement (client, customer_id, ad_group_id, criterion_id):
agc_service = client.get_service("AdGroupCriterionService", version="v6")
ad_group_criterion_operation = client.get_type(
"AdGroupCriterionOperation", version="v6"
)
ad_group_criterion = ad_group_criterion_operation.update
ad_group_criterion.resource_name = agc_service.ad_group_criteria_path(
customer_id, ResourceName.format_composite(ad_group_id, criterion_id)
)
ad_group_criterion.status = client.get_type(
"AdGroupCriterionStatusEnum", version="v6"
).PAUSED
fm = protobuf_helpers.field_mask(None, ad_group_criterion)
ad_group_criterion_operation.update_mask.CopyFrom(fm)
try:
agc_response = agc_service.mutate_ad_group_criteria(
customer_id, [ad_group_criterion_operation]
)
except google.ads.google_ads.errors.GoogleAdsException as ex:
print(
'Request with ID "%s" failed with status "%s" and includes the '
"following errors:" % (ex.request_id, ex.error.code().name)
)
for error in ex.failure.errors:
print('\tError with message "%s".' % error.message)
if error.location:
for field_path_element in error.location.field_path_elements:
print("\t\tOn field: %s" % field_path_element.field_name)
sys.exit(1)
print("Updated placement status %s." % agc_response.results[0].resource_name)