def update_goal(client,customer_id,campaign_resource_name):
# 以下是Campaign级别的conversoin goal设置
conversion_goal_campaign_config_service = client.get_service("ConversionGoalCampaignConfigService")
conversion_goal_campaign_config_operation = client.get_type("ConversionGoalCampaignConfigOperation")
# conversion_goal_campaign_config= conversion_goal_campaign_config_operation.uptate
# campaign_resource_name=campaign_resource_name
#调用自定义方法,获取第一个全局的coustom_conversion_goal
custom_conversion_goal = find_custom_conversion_goal(client,customer_id)
print(f"33333333333333333333333333333")
print(f"{custom_conversion_goal}")
# 为operation.update赋值
conversion_goal_campaign_config = conversion_goal_campaign_config_operation.update
print(campaign_resource_name)
conversion_goal_campaign_config.campaign = campaign_resource_name
conversion_goal_campaign_config.goal_config_level = client.enums.GoalConfigLevelEnum.CAMPAIGN
conversion_goal_campaign_config.resource_name= campaign_resource_name
# client.copy_from(
# conversion_goal_campaign_config_operation.update_mask,
# protobuf_helpers.field_mask(None, conversion_goal_campaign_config._pb),
# )
print("44444444444")
print(f"{conversion_goal_campaign_config_operation.update_mask}")
# 为update_mask属性赋值,从customer_conversion_goal中构造update_mask
mutate_operation = client.get_type("MutateOperation")
conversion_goal_campaign_config = (
mutate_operation.campaign_conversion_goal.update
)
field_mask= protobuf_helpers.field_mask(None,conversion_goal_campaign_config._pb)
client.copy_from(
conversion_goal_campaign_config_operation.update_mask,field_mask
)
# 调用方法
response=conversion_goal_campaign_config_service.mutate_conversion_goal_campaign_configs(
customer_id=customer_id, operations=[conversion_goal_campaign_config_operation])
resource_name = response.results[0].resource_name
return resource_name
# 返回第一个custom_conversion_goal(通过管理后台手工创建)
def find_custom_conversion_goal(client, customer_id):
ga_service = client.get_service("GoogleAdsService")
query = """
SELECT
custom_conversion_goal.resource_name,
custom_conversion_goal.status,
custom_conversion_goal.conversion_actions
FROM custom_conversion_goal
"""
search_request = client.get_type("SearchGoogleAdsRequest")
search_request.customer_id = customer_id
search_request.query = query
search_response = ga_service.search(request=search_request)
return search_response.results[0].custom_conversion_goal