Hello,

I was using the below code to try to modify campaign.targeting_setting but 
failed,
and I could not find examples of using google-ads python library to achieve 
this.  
Could you suggest valid ways to achieve this? Thanks in advance.

*error messages:*

[2024-01-24 15:32:03,881 - INFO] Request
-------
Method: /google.ads.googleads.v14.services.CampaignService/MutateCampaigns
Host: googleads.googleapis.com
Headers: {
  "developer-token": "REDACTED",
  "login-customer-id": "7852354852",
  "x-goog-api-client": "gl-python/3.8.13 grpc/1.60.0 gax/2.15.0 gccl/23.0.0 
pb/4.25.2",
  "x-goog-request-params": "customer_id=5692452448"
}
Request: customer_id: "5692452448"
operations {
  create {
    name: "Campaign-test-c920b589a770452b81097b38c8341799"
    status: PAUSED
    advertising_channel_type: DISPLAY
    targeting_setting {
      target_restrictions {
        targeting_dimension: TOPIC
        bid_only: true
      }
    }
    campaign_budget: "customers/5692452448/campaignBudgets/13318508559"
    manual_cpc {
      enhanced_cpc_enabled: true
    }
  }
}


Response
-------
Headers: {
  "google.ads.googleads.v14.errors.googleadsfailure-bin": 
"\n\u0002\n\u0003\u0003\u0005\u0012\u0001The supplied TargetingSetting 
contains an invalid CriterionTypeGroup. See CriterionTypeGroup 
documentation for CriterionTypeGroups allowed in Campaign or AdGroup 
TargetingSettings.\u001a\n*\bVERTICAL\"_\u0012\u000e\n\noperations\u0018\u0000\u0012\b\n\u0006create\u0012\u0013\n\u0011targeting_setting\u0012\u0017\n\u0013target_restrictions\u0018\u0000\u0012\u0015\n\u0013targeting_dimension\u0012\u0016GFK9JfBHlKKgx814MqWfOQ",
  "grpc-status-details-bin": "\b\u0003\u0012%Request contains an invalid 
argument.\u001a\u0003\nDtype.googleapis.com/google.ads.googleads.v14.errors.GoogleAdsFailure\u0012\u0002\n\u0002\n\u0003\u0003\u0005\u0012\u0001The
 
supplied TargetingSetting contains an invalid CriterionTypeGroup. See 
CriterionTypeGroup documentation for CriterionTypeGroups allowed in 
Campaign or AdGroup 
TargetingSettings.\u001a\n*\bVERTICAL\"_\u0012\u000e\n\noperations\u0018\u0000\u0012\b\n\u0006create\u0012\u0013\n\u0011targeting_setting\u0012\u0017\n\u0013target_restrictions\u0018\u0000\u0012\u0015\n\u0013targeting_dimension\u0012\u0016GFK9JfBHlKKgx814MqWfOQ",
  "request-id": "GFK9JfBHlKKgx814MqWfOQ"
}
Fault: errors {
  error_code {
    setting_error: TARGETING_SETTING_CONTAINS_INVALID_CRITERION_TYPE_GROUP
  }
  message: "The supplied TargetingSetting contains an invalid 
CriterionTypeGroup. See CriterionTypeGroup documentation for 
CriterionTypeGroups allowed in Campaign or AdGroup TargetingSettings."
  trigger {
    string_value: "VERTICAL"
  }
  location {
    field_path_elements {
      field_name: "operations"
      index: 0
    }
    field_path_elements {
      field_name: "create"
    }
    field_path_elements {
      field_name: "targeting_setting"
    }
    field_path_elements {
      field_name: "target_restrictions"
      index: 0
    }
    field_path_elements {
      field_name: "targeting_dimension"
    }
  }
}
request_id: "GFK9JfBHlKKgx814MqWfOQ"

=====

my code:

def create_campaign(client, customer_id: str, campaign_budget: str, 
targeting_setting: str) -> dict:
"""given customer id, campagin_budget (resource_name), create a campaign 
and return campaign info as dict"""

campaign_service = client.get_service("CampaignService")

campaign_operation = client.get_type("CampaignOperation")
campaign = campaign_operation.create
# create a campaign with Google GDN
campaign.name = f"Campaign-test-{uuid4().hex}"
campaign.advertising_channel_type = client.enums.AdvertisingChannelTypeEnum.
DISPLAY
campaign.status = client.enums.CampaignStatusEnum.PAUSED
campaign.manual_cpc.enhanced_cpc_enabled = True
campaign.campaign_budget = campaign_budget

# set targeting setting
targeting_setting = client.get_type("TargetingSetting")
restriction = client.get_type("TargetRestriction")
restriction.bid_only = True

restriction.targeting_dimension = client.enums.TargetingDimensionEnum.TOPIC
restriction.targeting_dimension.path = "Pets & Animals"
restriction.targeting_dimension.topic_constant = "/Pets & Animals/Animal 
Products & Services/Pet Food & Pet Care Supplies" # ref: 
https://developers.google.com/google-ads/api/data/verticals
targeting_setting.target_restrictions.append(restriction)

campaign.targeting_setting = targeting_setting
campaign_response = campaign_service.mutate_campaigns(customer_id=customer_id, 
operations=[campaign_operation])

return {
"customer_id": customer_id,
"campaign_id": campaign_response.results[0].resource_name.split("/")[-1],
"campaign_name": campaign.name,
"campaign_status": campaign.status,
"campaign_budget": campaign_budget,
"campagin_targeting_setting": targeting_setting,
}




-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog:
https://googleadsdeveloper.blogspot.com/
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

You received this message because you are subscribed to the Google
Groups "AdWords API and Google Ads API Forum" group.
To post to this group, send email to adwords-api@googlegroups.com
To unsubscribe from this group, send email to
adwords-api+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/adwords-api?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Google Ads API and AdWords API Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to adwords-api+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/adwords-api/52aba1c2-d947-4a20-a23a-da25cffcce8bn%40googlegroups.com.
  • Ho... Shawn Hsiao
    • ... 'Google Ads API Forum Advisor' via Google Ads API and AdWords API Forum
      • ... Shawn Hsiao

Reply via email to