Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Campaign GeoTargetTypeSetting Failure with "field has subfields" in V8.0.0 but succeed in earlier version #289

Closed
SuperHeroX opened this issue May 26, 2021 · 2 comments
Assignees
Labels
bug Something isn't working

Comments

@SuperHeroX
Copy link

Hi,
I'm upgrading Dotnet library version from v6.1.0 to the latest v8.0.0, previously we are calling updating the campaign with geoTargetTypeSetting (set both positive and negative geotarget type) and it succeeded in Google Ads API v6 via Dotnet library v6.1.0. However, after updated Dotnet library version to v8.0.0, we are seeing the same campaign update call are failing in Google Ads API v6 and v7. Could you provide details on whether it is expected behavior or not? if so, what is the correct way to update geoTargetTypeSetting?

Here is the succuss result for V6 running in dotnet library v6.1.0,
---------------BEGIN API CALL---------------

Request

Method Name: /google.ads.googleads.v6.services.CampaignService/MutateCampaigns
Host: https://googleads.googleapis.com
Headers: {
"x-goog-api-client": "XXXXXXX",
"developer-token": "REDACTED",
"login-customer-id": "XXXXXXXX",
"x-goog-request-params": "customer_id=XXXXXXX"
}

{ "customerId": "XXXXXXXX", "operations": [ { "update": { "resourceName": "customers/XXXXXXXX/campaigns/13252662410", "status": "PAUSED", "networkSettings": { "targetGoogleSearch": true, "targetSearchNetwork": false, "targetContentNetwork": false, "targetPartnerSearchNetwork": false }, "biddingStrategyType": "TARGET_SPEND", "targetSpend": { "cpcBidCeilingMicros": "20000000" }, "geoTargetTypeSetting": { "positiveGeoTargetType": "PRESENCE", "negativeGeoTargetType": "PRESENCE_OR_INTEREST" }, "name": "20684562497536_Test_5/25/2021 11:48:51 PM", "campaignBudget": "customers/XXXXXXXX/campaignBudgets/8777066156" }, "updateMask": "resourceName,status,networkSettings.targetGoogleSearch,networkSettings.targetSearchNetwork,networkSettings.targetContentNetwork,networkSettings.targetPartnerSearchNetwork,biddingStrategyType,targetSpend.cpcBidCeilingMicros,geoTargetTypeSetting.positiveGeoTargetType,geoTargetTypeSetting.negativeGeoTargetType,name,campaignBudget" } ] }

Response

Headers: {
"content-disposition": "attachment",
"request-id": "XXXXXXXX",
"date": "Tue, 25 May 2021 23:49:01 GMT",
"alt-svc": "h3-29=":443"; ma=2592000,h3-T051=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43""
}

{ "results": [ { "resourceName": "customers/XXXXXXXX/campaigns/13252662410" } ] }
----------------END API CALL----------------

Here is the failed result for V7 running in dotnet library v8.0.0, (V6 also failed in v8.0.0)
---------------BEGIN API CALL---------------

Request

Method Name: /google.ads.googleads.v7.services.CampaignService/MutateCampaigns
Host: https://googleads.googleapis.com
Headers: {
"x-goog-api-client": "XXXXXXXX",
"developer-token": "REDACTED",
"login-customer-id": "XXXXXXXX",
"x-goog-request-params": "customer_id=XXXXXXXX"
}

{ "customerId": "XXXXXXXX", "operations": [ { "update": { "resourceName": "customers/XXXXXXXX/campaigns/13252324527", "status": "PAUSED", "networkSettings": { "targetGoogleSearch": true, "targetSearchNetwork": false, "targetContentNetwork": false, "targetPartnerSearchNetwork": false }, "biddingStrategyType": "TARGET_SPEND", "targetSpend": { "cpcBidCeilingMicros": "20000000" }, "geoTargetTypeSetting": { "positiveGeoTargetType": "PRESENCE", "negativeGeoTargetType": "PRESENCE_OR_INTEREST" }, "name": "20615843020800_Test_5/26/2021 1:41:39 AM", "campaignBudget": "customers/6360593950/campaignBudgets/8779766764" }, "updateMask": "resourceName,status,networkSettings.targetGoogleSearch,networkSettings.targetSearchNetwork,networkSettings.targetContentNetwork,networkSettings.targetPartnerSearchNetwork,biddingStrategyType,targetSpend.cpcBidCeilingMicros,geoTargetTypeSetting,name,campaignBudget" } ] }

Response

Headers: {
"request-id": "_fIfa3XOxSoa7UClOAYt5A",
"date": "Wed, 26 May 2021 01:41:52 GMT",
"alt-svc": "h3-29=":443"; ma=2592000,h3-T051=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"",
"google.ads.googleads.v7.errors.googleadsfailure-bin": "XXXXXXXX",
"grpc-status-details-bin": "XXXXXXXX"
}

Fault: {
"StatusCode": 3,
"Details": "Request contains an invalid argument.",
"RequestId": "_fIfa3XOxSoa7UClOAYt5A",
"Failure": {
"errors": [
{
"errorCode": {
"fieldMaskError": "FIELD_HAS_SUBFIELDS"
},
"message": "The field mask updated a field with subfields: 'geo_target_type_setting'.",
"location": {
"fieldPathElements": [
{
"fieldName": "operations",
"index": 0
}
]
}
}
],
"requestId": "_fIfa3XOxSoa7UClOAYt5A"
}
}
----------------END API CALL----------------

Thanks,
Ting

@SuperHeroX SuperHeroX added the bug Something isn't working label May 26, 2021
@AnashOommen AnashOommen self-assigned this Jun 8, 2021
@AnashOommen
Copy link
Member

I can replicate this issue with v8.0.0. This is a side effect of a refactor of FieldMasks class. The previous version didn't care about the types of various leaf fields. The new version does, but didn't handle enum fields.

I have a fix locally, and will do a release next week as part of a planned iteration. Can this wait till then?

@AnashOommen
Copy link
Member

I have a fix out in v9.0.0 of the client library. PTAL and let me know if this fixes the regression?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants