Thanks On Thu, Jan 13, 2022, 03:04 <adwords-api@googlegroups.com> wrote:
> adwords-api@googlegroups.com > <https://groups.google.com/forum/?utm_source=digest&utm_medium=email#!forum/adwords-api/topics> > Google > Groups > <https://groups.google.com/forum/?utm_source=digest&utm_medium=email/#!overview> > <https://groups.google.com/forum/?utm_source=digest&utm_medium=email/#!overview> > Topic digest > View all topics > <https://groups.google.com/forum/?utm_source=digest&utm_medium=email#!forum/adwords-api/topics> > > - "suggestKeywordThemes" is different from the UI > <#m_-1341381328826925313_group_thread_0> - 1 Update > - Radwords <#m_-1341381328826925313_group_thread_1> - 1 Update > - Can Someone help convert my R script to Python for getting GAQL > queried data <#m_-1341381328826925313_group_thread_2> - 1 Update > - About audience segments <#m_-1341381328826925313_group_thread_3> - 2 > Updates > - MetroCriteriaId - Geo Performance Report Issue > <#m_-1341381328826925313_group_thread_4> - 2 Updates > - Adding Keywords to AdGroup via AdWords API is failing with > OperationAccessDenied.ACTION_NOT_PERMITTED > <#m_-1341381328826925313_group_thread_5> - 1 Update > - Update a campaign's daily budget > <#m_-1341381328826925313_group_thread_6> - 1 Update > - IMAGE_AD Immutable or Mutable? > <#m_-1341381328826925313_group_thread_7> - 1 Update > - Hide and Unhide Customer in MCC > <#m_-1341381328826925313_group_thread_8> - 3 Updates > - Ability to "Cancel" client account > <#m_-1341381328826925313_group_thread_9> - 4 Updates > - AuthenticationError.NOT_ADS_USER > <#m_-1341381328826925313_group_thread_10> - 1 Update > - shopping_performance_view getSegments() > <#m_-1341381328826925313_group_thread_11> - 1 Update > - [Google API v9] Create Custom audience using MutateOperation > <#m_-1341381328826925313_group_thread_12> - 2 Updates > - How to get the Entire Campaign object when creating the campaign > <#m_-1341381328826925313_group_thread_13> - 1 Update > - manager_link_error: INVALID_CHANGE > <#m_-1341381328826925313_group_thread_14> - 1 Update > - Migration question about AssetSet based page feed > <#m_-1341381328826925313_group_thread_15> - 1 Update > - UserList, Removing all UserData from a UserList > <#m_-1341381328826925313_group_thread_16> - 1 Update > > "suggestKeywordThemes" is different from the UI > <http://groups.google.com/group/adwords-api/t/956720acd4449c86?utm_source=digest&utm_medium=email> > Chen Xiaowei <vivianachen0...@gmail.com>: Jan 12 07:03PM -0800 > > Hi Team, > Thanks for continuing follow up my question,now we find the suggest > keywordtheme would be inaccurate. As my store is selling hoverboards and > socks,but the suggest keywordthemes are all furniture related. > My final_url is https://lupmall.com/ > Thanks > 在2022年1月10日星期一 UTC+8 17:40:45<adsapi> 写道: > > Back to top <#m_-1341381328826925313_digest_top> > Radwords > <http://groups.google.com/group/adwords-api/t/d0d9b162b6d47c7b?utm_source=digest&utm_medium=email> > J T <hartvillezil...@gmail.com>: Jan 12 07:03PM -0800 > > Google api team should provide us with an alternative or way to query data > from specific campaigns,ads without coding then. We have too many lines of > codes in AWQL which now you are making redundant. This is unfair and > should > be able to access through a daily report without R or python > On Monday, January 10, 2022 at 12:53:14 AM UTC-5 adsapi wrote: > > Back to top <#m_-1341381328826925313_digest_top> > Can Someone help convert my R script to Python for getting GAQL queried > data > <http://groups.google.com/group/adwords-api/t/a4dd43e0095bc6b7?utm_source=digest&utm_medium=email> > J T <hartvillezil...@gmail.com>: Jan 12 06:41PM -0800 > > Im trying to use rgoogleads but it keeps asking me for authentication. I > instead want to use python googleads library. Can someone please help me > convert the below script to python? > > > # LINES BELOW ARE FOR TROUBLESHOOTING AUTHENTICATION > #install.packages("RCurl") > #require(devtools) > #install_github('jburkhardt/RAdwords') > > > # Credentials set up at https://console.developers.google.com under > x...@gmail.com > # developer.token <-'xx' > # client.id <-"xx-xx.apps.googleusercontent.com" > # client.secret <-"xx" > library(rgoogleads) > gads_auth(email = 'h...@gmail.com') > gads_auth_configure(path = 'D:/ga_auth/app.json') > google_auth <- doAuth() > refreshToken(google_auth) > > options(RCurlOptions = list(cainfo = system.file("CurlSSL", "cacert.pem", > package = "RCurl"))) > > data2 <- gads_get_report( > resource = 'campaign', > fields = c('campaign.name', > 'segments.date', > 'metrics.clicks'), > date_from = "2021-01-08", > date_to = "2021-01-10", > customer_id = '801-xx-xxxx' > ) > #--- DimAdWordsAd > > ------------------------------------------------------------------------------------------ > > SelectFields = c( > > 'AdGroupId','Date','CreativeFinalUrls','CreativeUrlCustomParameters','Description','Description1' > > > ,'Description2','DisplayUrl','Headline','HeadlinePart1','HeadlinePart2','Path1','Path2','Id','Labels' > > > ,'AdType','Status','DevicePreference','ImageAdUrl','ImageCreativeImageHeight','ImageCreativeImageWidth' > ,'ImageCreativeName') > ReportName = "AD_PERFORMANCE_REPORT" > > DimAdWordsAd <- > getAdwordsData(ReportName,SelectFields,adwordsStartDate,adwordsEndDate) > > # Clean up the Final URL to match format in FINAL_URL_REPORT > DimAdWordsAd$FinalURL <- > substr(DimAdWordsAd$FinalURL,3,nchar(DimAdWordsAd$FinalURL)-2) > > # Rename Columns > colnames(DimAdWordsAd)[1] <- "AdwordsAdGroupId" > colnames(DimAdWordsAd)[2] <- "Date" > colnames(DimAdWordsAd)[3] <- "FinalUrl" > colnames(DimAdWordsAd)[4] <- "CustomParameter" > colnames(DimAdWordsAd)[5] <- "Description" > colnames(DimAdWordsAd)[6] <- "DescriptionLine1" > colnames(DimAdWordsAd)[7] <- "DescriptionLine2" > colnames(DimAdWordsAd)[8] <- "DisplayUrl" > colnames(DimAdWordsAd)[9] <- "Headline" > colnames(DimAdWordsAd)[10] <- "Headline1" > colnames(DimAdWordsAd)[11] <- "Headline2" > colnames(DimAdWordsAd)[12] <- "Path1" > colnames(DimAdWordsAd)[13] <- "Path2" > colnames(DimAdWordsAd)[14] <- "AdwordsAdId" > colnames(DimAdWordsAd)[15] <- "Labels" > colnames(DimAdWordsAd)[16] <- "AdType" > colnames(DimAdWordsAd)[17] <- "AdState" > colnames(DimAdWordsAd)[18] <- "DevicePreference" > colnames(DimAdWordsAd)[19] <- "ImageAdUrl" > colnames(DimAdWordsAd)[20] <- "ImageAdHeight" > colnames(DimAdWordsAd)[21] <- "ImageAdWidth" > colnames(DimAdWordsAd)[22] <- "ImageAdName" > > # Clean up the ImageAdUrl > DimAdWordsAd$ImageAdUrl <- > paste("https://tpc.googlesyndication.com/pageadimg/imgad?id= > ",DimAdWordsAd$ImageAdUrl) > > # Get maxiumum date for each Ad. Use attributes from that date. > DimAdWordsAdUniqueKeys <- ddply(DimAdWordsAd, ~ AdwordsAdGroupId + > AdwordsAdId, summarize, max = max(Date)) > colnames(DimAdWordsAdUniqueKeys)[3] <- "Date" > DimAdWordsAd <- merge(DimAdWordsAdUniqueKeys,DimAdWordsAd, > by=c("Date","AdwordsAdGroupId","AdwordsAdId")) > > # Clean up missing data > DimAdWordsAd$FinalUrl[DimAdWordsAd$FinalUrl == ""] <- "Unknown" > DimAdWordsAd$CustomParameter[DimAdWordsAd$CustomParameter == " --"] <- NA > DimAdWordsAd$Description[DimAdWordsAd$Description == " --"] <- NA > DimAdWordsAd$DescriptionLine1[DimAdWordsAd$DescriptionLine1 == " --"] <- NA > DimAdWordsAd$DescriptionLine2[DimAdWordsAd$DescriptionLine2 == " --"] <- NA > DimAdWordsAd$DisplayUrl[DimAdWordsAd$DisplayUrl == " --"] <- NA > DimAdWordsAd$Headline[DimAdWordsAd$Headline == " --"] <- NA > DimAdWordsAd$Headline1[DimAdWordsAd$Headline1 == " --"] <- NA > DimAdWordsAd$Headline2[DimAdWordsAd$Headline2 == " --"] <- NA > DimAdWordsAd$Path1[DimAdWordsAd$Path1 == " --"] <- NA > DimAdWordsAd$Path2[DimAdWordsAd$Path2 == " --"] <- NA > DimAdWordsAd$Labels[DimAdWordsAd$Labels == " --"] <- NA > DimAdWordsAd$AdType[DimAdWordsAd$AdType == " --"] <- NA > DimAdWordsAd$AdState[DimAdWordsAd$AdState == " --"] <- NA > DimAdWordsAd$DevicePreference[DimAdWordsAd$DevicePreference == " --"] <- NA > DimAdWordsAd$ImageAdUrl[DimAdWordsAd$ImageAdUrl == " --"] <- NA > DimAdWordsAd$ImageAdUrl[DimAdWordsAd$ImageAdUrl == > "https://tpc.googlesyndication.com/pageadimg/imgad?id= --"] <- NA > DimAdWordsAd$ImageAdHeight[DimAdWordsAd$ImageAdHeight == " --"] <- NA > DimAdWordsAd$ImageAdWidth[DimAdWordsAd$ImageAdWidth == " --"] <- NA > DimAdWordsAd$ImageAdName[DimAdWordsAd$ImageAdName == " --"] <- NA > > # Replce platform codes with names > DimAdWordsAd$DevicePreference[DimAdWordsAd$DevicePreference == "30000"] <- > "Desktop" > DimAdWordsAd$DevicePreference[DimAdWordsAd$DevicePreference == "30001"] <- > "High End Mobile" > DimAdWordsAd$DevicePreference[DimAdWordsAd$DevicePreference == "30002"] <- > "Tablet" > > # Drop date column > drops <- c("Date") > DimAdWordsAd <- DimAdWordsAd[ , !(names(DimAdWordsAd) %in% drops)] > > # Get unique records > DimAdWordsAd <- unique(DimAdWordsAd) > > # Write to file (over existing file) > DimAdWordsAdFile <- "DimAdWordsAd.csv" > file.exists(DimAdWordsAdFile) && file.remove(DimAdWordsAdFile) > write.csv(DimAdWordsAd, DimAdWordsAdFile, na = "", row.names = FALSE) > > #--- DimAdWordsAdGroup > > ------------------------------------------------------------------------------------- > > SelectFields = c( > 'CampaignId','AdGroupId','AdGroupName','Date','AdGroupStatus') > ReportName = "ADGROUP_PERFORMANCE_REPORT" > > DimAdWordsAdGroup <- > getAdwordsData(ReportName,SelectFields,adwordsStartDate,adwordsEndDate) > > # Rename Columns > colnames(DimAdWordsAdGroup)[1] <- "AdwordsCampaignId" > colnames(DimAdWordsAdGroup)[2] <- "AdwordsAdGroupId" > colnames(DimAdWordsAdGroup)[3] <- "AdGroup" > colnames(DimAdWordsAdGroup)[4] <- "Date" > colnames(DimAdWordsAdGroup)[5] <- "AdGroupState" > > # Get maxiumum date for each Ad. Use attributes from that date. > DimAdWordsAdGroupUniqueKeys <- ddply(DimAdWordsAdGroup, ~ AdwordsAdGroupId > + AdwordsCampaignId, summarize, max = max(Date)) > colnames(DimAdWordsAdGroupUniqueKeys)[3] <- "Date" > DimAdWordsAdGroup <- merge(DimAdWordsAdGroupUniqueKeys,DimAdWordsAdGroup, > by=c("Date","AdwordsAdGroupId","AdwordsCampaignId")) > > # Drop Date column > drops <- c("Date") > DimAdWordsAdGroup <- DimAdWordsAdGroup[ , !(names(DimAdWordsAdGroup) %in% > drops)] > > # Get unique AdGroupID and AdGroupName. Should already be unique. But just > in case. > DimAdWordsAdGroup <- unique(DimAdWordsAdGroup) > > # Write to file (over existing file) > DimAdWordsAdGroupFile <- "DimAdWordsAdGroup.csv" > file.exists(DimAdWordsAdGroupFile) && file.remove(DimAdWordsAdGroupFile) > write.csv(DimAdWordsAdGroup,DimAdWordsAdGroupFile, na = "", row.names = > FALSE) > refreshToken(google_auth) > Back to top <#m_-1341381328826925313_digest_top> > About audience segments > <http://groups.google.com/group/adwords-api/t/d925e9806b7c27a5?utm_source=digest&utm_medium=email> > Google Ads API Forum Advisor <adsapi@forumsupport.google>: Jan 12 06:08PM > > Hi Michael, > > Thanks for reaching out. Can you please provide a bit more detail about > your request? If you are referring to a feature in the UI, can you please > provide us with a screenshot for reference? > > Thanks, > Matt > Google Ads API Team > > Matt > Google Ads API Team > ref:_00D1U1174p._5004Q2UjBWX:ref > Michael Liu <michliu....@gmail.com>: Jan 12 05:13PM -0800 > > Can I get the segment list through the API like the attached image? > > adsapi 在 2022年1月13日 星期四上午2:08:34 [UTC+8] 的信中寫道: > > Back to top <#m_-1341381328826925313_digest_top> > MetroCriteriaId - Geo Performance Report Issue > <http://groups.google.com/group/adwords-api/t/11d4807a002f3b4b?utm_source=digest&utm_medium=email> > Jayant Meshram <jayant.mesh...@kpipartners.com>: Jan 12 06:04AM -0800 > > Hello, > > I am using google ads api and downloading GEO performance report. > I am downloading data from geographic_view as suggested in google ads > documents. > In column metroCriteriaId I am getting kind of these values - > geoTargetConstants/200522 which is fine.But I need metro location name > corresponding to this IDs. > How can I get names.. please suggest. > > Thanks > Jayant Meshram > Google Ads API Forum Advisor <adsapi@forumsupport.google>: Jan 13 01:07AM > > Hi Jayant, > > Thank you for raising your concern. > > You will need to make another report using the geo_target_constant and > including the geo_target_constant.name to get the information that you > are looking for. > > Let me know if you have further questions. > > Regards, > > Ernie John Blanca Tacata > Google Ads API Team > ref:_00D1U1174p._5004Q2UjF1w:ref > Back to top <#m_-1341381328826925313_digest_top> > Adding Keywords to AdGroup via AdWords API is failing with > OperationAccessDenied.ACTION_NOT_PERMITTED > <http://groups.google.com/group/adwords-api/t/a161e8bcdf27f53?utm_source=digest&utm_medium=email> > Dean Povey <dean.po...@ppcsamurai.com>: Jan 12 04:35PM -0800 > > Since December 13, 2021 we have started getting this error for a client. > We > are attempting to add BiddableAdCriterion for Keywords via the AdWords > API. The exception returned is below. Any ideas on what could have caused > this problem? The manager account seems to have access and we are able to > make changes via the Google Ads web app. > > ApiException: [OperationAccessDenied.ACTION_NOT_PERMITTED @ class > com.google.ads.api.serviceimpls.job.batch.MutateAction] > (OperationAccessDenied{apiErrorType=OperationAccessDenied, > errorString=OperationAccessDenied.ACTION_NOT_PERMITTED, fieldPath=, > reason=ACTION_NOT_PERMITTED, trigger=}) > com.google.api.ads.adwords.axis.v201809.cm.ApiException: at > jdk.internal.reflect.GeneratedConstructorAccessor757.newInstance(Unknown > Source) at > java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) > > at > java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490) > at java.base/java.lang.Class.newInstance(Class.java:584) at > org.apache.axis.encoding.ser.BeanDeserializer.<init>(BeanDeserializer.java:104) > > at > org.apache.axis.encoding.ser.BeanDeserializer.<init>(BeanDeserializer.java:90) > > at > com.google.api.ads.adwords.axis.v201809.cm.ApiException.getDeserializer(ApiException.java:165) > > at jdk.internal.reflect.GeneratedMethodAccessor1818.invoke(Unknown Source) > at > java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > > at java.base/java.lang.reflect.Method.invoke(Method.java:566) at > org.apache.axis.encoding.ser.BaseDeserializerFactory.getSpecialized(BaseDeserializerFactory.java:154) > > at > org.apache.axis.encoding.ser.BaseDeserializerFactory.getDeserializerAs(BaseDeserializerFactory.java:84) > > at > org.apache.axis.encoding.DeserializationContext.getDeserializer(DeserializationContext.java:464) > > at > org.apache.axis.encoding.DeserializationContext.getDeserializerForType(DeserializationContext.java:547) > > at > org.apache.axis.message.SOAPFaultDetailsBuilder.onStartChild(SOAPFaultDetailsBuilder.java:157) > > at > org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035) > > at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown > Source) > at > org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown > Source) at > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown > > Source) at > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown > Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown > Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown > Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at > org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at > org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) > at > org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source) at > org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227) > > at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696) at > org.apache.axis.Message.getSOAPEnvelope(Message.java:435) at > org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62) > > at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206) at > org.apache.axis.client.Call.invokeEngine(Call.java:2784) at > org.apache.axis.client.Call.invoke(Call.java:2767) at > org.apache.axis.client.Call.invoke(Call.java:2443) at > org.apache.axis.client.Call.invoke(Call.java:2366) at > org.apache.axis.client.Call.invoke(Call.java:1812) at > com.google.api.ads.adwords.axis.v201809.cm.BatchJobServiceSoapBindingStub.mutate(BatchJobServiceSoapBindingStub.java:739) > > at jdk.internal.reflect.GeneratedMethodAccessor7070.invoke(Unknown Source) > at > java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > > at java.base/java.lang.reflect.Method.invoke(Method.java:566) at > com.google.api.ads.common.lib.soap.SoapClientHandler.invoke(SoapClientHandler.java:100) > > at > com.google.api.ads.common.lib.soap.axis.AxisHandler.invokeSoapCall(AxisHandler.java:234) > > at > com.google.api.ads.common.lib.soap.SoapServiceClient.callSoapClient(SoapServiceClient.java:63) > > at > > com.google.api.ads.common.lib.soap.SoapServiceClient.invoke(SoapServiceClient.java:93) > Back to top <#m_-1341381328826925313_digest_top> > Update a campaign's daily budget > <http://groups.google.com/group/adwords-api/t/b1dfee609414ddc4?utm_source=digest&utm_medium=email> > Google Ads API Forum Advisor <adsapi@forumsupport.google>: Jan 12 10:45PM > > Hello Michael, > > Thanks for reaching out to the Google Ads API support. The Ads API > documentation does not have an example that provides budget reset logic. > Please refer to the existing-campaign documentation on how to update your > daily campaign budget with this CampaignOperation.update operation. > Please let us know if you have any follow-up questions. > > Best regards, > > Jakeia Sabrina > Google Ads API Team > ref:_00D1U1174p._5004Q2UjCep:ref > Back to top <#m_-1341381328826925313_digest_top> > IMAGE_AD Immutable or Mutable? > <http://groups.google.com/group/adwords-api/t/8250757b7db43bdf?utm_source=digest&utm_medium=email> > "Pete Lavetsky (AdWords API Guru)" <pete.lavet...@gmail.com>: Jan 12 > 01:52PM -0800 > > Hi all, > > This question boils down to: "Are final urls of Image Ads mutable?" > > According to this documentation it says that Image Ads are mutable > : > https://developers.google.com/google-ads/api/docs/ads/ad-types#description_of_each_ad_type > > However here it says that ImageAdInfo is immutable > : https://developers.google.com/google-ads/api/reference/rpc/v9/Ad > > We're not attempting to mutate the data of the Image Ad, just the Final > URL > of the Ad. > > Here is the full request and response with some customer sensitive data > removed. > > The request id is : bcB1aFU7Q_KMLaQZWRXmFQ > > Request > ------- > MethodName: google.ads.googleads.v9.services.AdService/MutateAds > Endpoint: googleads.googleapis.com:443 > Headers: {developer-token=REDACTED, login-customer-id=ABC, > x-goog-api-client=gl-java/11.0.13 gccl/16.0.2 gapic/16.0.2 gax/2.5.0 > grpc/1.40.1} > Body: customer_id: "XYZ" > operations { > update { > type: IMAGE_AD > resource_name: "customers/ABC/ads/573016978749" > id: 573016978749 > final_urls: "https://www.eample.com/" > } > update_mask { > paths: "resource_name" > paths: "id" > paths: "final_urls" > paths: "type" > } > } > > > Response > -------- > Headers: > Metadata(content-type=application/grpc,request-id=bcB1aFU7Q_KMLaQZWRXmFQ,date=Wed, > > 12 Jan 2022 21:40:09 GMT,alt-svc=h3=":443"; ma=2592000,h3-29=":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") > Body: null > Failure message: errors { > error_code { > ad_error: CANNOT_MODIFY_AD > } > message: "Cannot modify an ad." > trigger { > string_value: "" > } > location { > field_path_elements { > field_name: "operations" > index: 0 > } > field_path_elements { > field_name: "update" > } > field_path_elements { > field_name: "resource_name" > } > } > } > request_id: "bcB1aFU7Q_KMLaQZWRXmFQ" > > Thanks > Pete > Back to top <#m_-1341381328826925313_digest_top> > Hide and Unhide Customer in MCC > <http://groups.google.com/group/adwords-api/t/7c6d2b409c4309ab?utm_source=digest&utm_medium=email> > Fred Lovine <f...@99calls.com>: Jan 12 05:56AM -0800 > > Hi, > > We are receiving an error when trying to hide / unhide a customer account > in our MCC. It's not clear if the problem is with our code, or with the > API. > > *Here is the error:* > Google\ApiCore\ApiException : { > "message": "Request contains an invalid argument.", > "code": 3, > "status": "INVALID_ARGUMENT", > "details": [ > { > "@type": 0, > "data": > "type.googleapis.com\/google.ads.googleads.v8.errors.GoogleAdsFailure" > }, > { > "@type": 0, > "data": [ > { > "errorCode": { > "managerLinkError": "INVALID_CHANGE" > }, > "message": "The change for mutate link is invalid.", > "location": { > "fieldPathElements": [ > { > "fieldName": "operation" > } > ] > } > } > ] > }, > { > "@type": 0, > "data": "X8YUUXFTJaeUFnYsAY_6sw" > } > ] > } > > *Here is the php code (using Google Ads php client library):* > public function hideUnhideAccount(bool $hide ) > { > $origCustomerClientLink = $this->getCustomerClientLink(); > > $customerClientLink = new CustomerClientLink(); > > $customerClientLink->setResourceName($origCustomerClientLink->getResourceName()); > $customerClientLink->setHidden($hide); > > $customerClientLinkOperation = new CustomerClientLinkOperation(); > $customerClientLinkOperation->setUpdate($customerClientLink); > $customerClientLinkOperation->setUpdateMask(FieldMasks::allSetFieldsOf > ($customerClientLink)); > > $customerClientLinkServiceClient = > $this->client->getCustomerClientLinkServiceClient(); > $customerClientLinkServiceClient->mutateCustomerClientLink( > $this->managerCustomerId, > $customerClientLinkOperation > ); > > } > Fred Lovine <f...@99calls.com>: Jan 12 09:50AM -0800 > > It appears this operation works for Admin level users, but fails for > Standard level. It would be helpful if the error message conveyed this. > > On Wednesday, January 12, 2022 at 8:56:35 AM UTC-5 Fred Lovine wrote: > > Google Ads API Forum Advisor <adsapi@forumsupport.google>: Jan 12 08:59PM > > Hi Fred, > > Thanks for reaching out. I will relay your suggestion for more descriptive > error messaging here. The Ads API follows the same user access privileges > laid out here. > > Regards, > Matt > Google Ads API Team > > Matt > Google Ads API Team > ref:_00D1U1174p._5004Q2UjF5E:ref > Back to top <#m_-1341381328826925313_digest_top> > Ability to "Cancel" client account > <http://groups.google.com/group/adwords-api/t/4ceda7ae4d04bde7?utm_source=digest&utm_medium=email> > "Matías Dell'Oso" <matidell...@gmail.com>: Jan 12 05:50AM -0800 > > Hello, I would like to know if the limit of 85000 account limit apply for > canceled and closed account too. We have integration tests that create > customers and I want to know if we are going to reach that limit > eventually. > > Thanks in advance, > Matías. > > El lunes, 20 de diciembre de 2021 a las 11:42:31 UTC-3, adsapi escribió: > > Google Ads API Forum Advisor <adsapi@forumsupport.google>: Jan 12 06:17PM > > Hi Matías, > > As mentioned here, this limit applies to inactive accounts as well. If you > have any more general questions about account limits, please reach out to > product support. > > Regards, > Matt > Google Ads API Team > > Matt > Google Ads API Team > ref:_00D1U1174p._5004Q2TNgor:ref > "Matías Dell'Oso" <matidell...@gmail.com>: Jan 12 10:19AM -0800 > > Hi Matt, thank you for the response. What about closed account? I have > this > "Account status: This account is closed and cannot be reactivated." > > > El miércoles, 12 de enero de 2022 a las 15:17:21 UTC-3, adsapi escribió: > > "Matías Dell'Oso" <matidell...@gmail.com>: Jan 12 12:53PM -0800 > > Sorry I didn't see the link. Ok, thanks. This is solved > > El miércoles, 12 de enero de 2022 a las 15:19:41 UTC-3, Matías Dell'Oso > escribió: > > Back to top <#m_-1341381328826925313_digest_top> > AuthenticationError.NOT_ADS_USER > <http://groups.google.com/group/adwords-api/t/1befd794d865d044?utm_source=digest&utm_medium=email> > FPAI Dev <fpai.devuse...@gmail.com>: Jan 12 11:59AM -0800 > > Hi, > > We are using a third party tool to connect to Google Ads and create the > audience on Google Ads Manager account. But we are getting the > authentication error. The user who created all tokens required to connect > api has admin access to the Business manager account and the Ads account > as > well. > > We also tried to use curl to check the authentication. > We have followed all steps mentioned > in https://developers.google.com/google-ads/api/docs/oauth/playground. > > Here is the curl snippet that we used: > curl \ > -d code= %auth_code_from_playground% \ > -d client_id=%client_id% \ > -d client_secret=%client_secret% \ > -d redirect_uri=https://developers.google.com/oauthplayground \ > -d grant_type=authorization_code > https://accounts.google.com/o/oauth2/token > > We get an error: > { > "error": "invalid_grant", > "error_description": "Bad Request" > } > > The app we created on google cloud console is of type web client and not > the native app. Please let us know if you need any more info. > > Thanks > Back to top <#m_-1341381328826925313_digest_top> > shopping_performance_view getSegments() > <http://groups.google.com/group/adwords-api/t/1d1dfc0339b15b81?utm_source=digest&utm_medium=email> > John <john.o...@shoptimised.com>: Jan 12 10:31AM -0800 > > Hi, > > I'm trying to get the shopping_performance_view report to return the same > data that I used to get with the SHOPPING_PERFORMANCE_REPORT in the old > API > but I'm not able to have getSegments() return anything for extracting the > product_item_id > > I'm passing the following query > > SELECT campaign.id, metrics.clicks, metrics.cost_micros, > segments.product_item_id, metrics.conversions, metrics.impressions, > metrics.search_impression_share, metrics.conversions_value FROM > shopping_performance_view WHERE segments.date BETWEEN '20211212' AND > '20220111' > > In this example $segments return null whereas $metrics returns all the > methods I need to extract data from it. > > foreach ($stream->iterateAllElements() as $googleAdsRow) { > $metrics = $googleAdsRow->getMetrics(); > $segments = $googleAdsRow->getSegments(); > } > > I assume I'm missing something obvious. Can someone please point me in the > right direction so that I can get the product_item_id along with all the > associated metrics? > > Thanks, > Back to top <#m_-1341381328826925313_digest_top> > [Google API v9] Create Custom audience using MutateOperation > <http://groups.google.com/group/adwords-api/t/d9c8a69b56d0fb95?utm_source=digest&utm_medium=email> > Aistis <aistis.cekanausk...@gmail.com>: Jan 12 05:17AM -0800 > > Hi, > Is it possible to create/update Custom Audience using *MutateOperation* > ( > https://developers.google.com/google-ads/api/reference/rpc/v9/MutateOperation > ). > At the moment i see in example code > ( > https://developers.google.com/google-ads/api/docs/remarketing/audience-types/custom-audiences) > > it uses *CustomAudienceServiceClient *(this is not very good approach for > me, since currently my whole system is built on MutateOperation). > > And if it's not possible maybe you guys have a plan to implement this? if > yes than when? > Google Ads API Forum Advisor <adsapi@forumsupport.google>: Jan 12 05:54PM > > Hi Aistis, > > Thanks for reaching out. As the CustomAudienceOperation is not listed in > the MutateOperation operation field you linked, it is not currently > supported in the Ads API. However, please allow me to make a feature > request on your behalf. Relevant updates will be posted on the release > notes. > > Regards, > Matt > Google Ads API Team > > Matt > Google Ads API Team > ref:_00D1U1174p._5004Q2UjESv:ref > Back to top <#m_-1341381328826925313_digest_top> > How to get the Entire Campaign object when creating the campaign > <http://groups.google.com/group/adwords-api/t/59ff69016416a0ac?utm_source=digest&utm_medium=email> > Google Ads API Forum Advisor <adsapi@forumsupport.google>: Jan 12 05:35PM > > Hi Wayne, > > You can make a MutateCampaignsRequest and set the response_content_type > field to MUTABLE_RESOURCE. This determines whether the mutable resource or > just the resource name should be returned post mutation. Please see this > example of its usage. > > Alternatively, if you have the resource name just need the campaign ID, > you can simply strip that last parameter from the resource name, > customers/{customer_id}/campaigns/{campaign_id}. > > Regards, > Matt > Google Ads API Team > > Matt > Google Ads API Team > ref:_00D1U1174p._5004Q2UinQf:ref > Back to top <#m_-1341381328826925313_digest_top> > manager_link_error: INVALID_CHANGE > <http://groups.google.com/group/adwords-api/t/d8ac15a1dec00d76?utm_source=digest&utm_medium=email> > "Kateřina Henzlová" <katerina.henzl...@roihunter.com>: Jan 12 08:26AM > -0800 > > Hi there! > > We have implemented linking to the manager account according to this guide > < > https://developers.google.com/google-ads/api/docs/account-management/linking-manager-accounts#services> > and > it works just fine for most of our clients. However, sometimes, when > trying > to accept the pending link, this error is returned: > > > > > > > > > > > > > *Failure message: errors { error_code { manager_link_error: > INVALID_CHANGE } message: "The change for mutate link is invalid." > location { field_path_elements { field_name: "operations" > index: 0 } }}* > > It only happens to certain clients and the error is persistent. Do you > have > any insights on what the cause of this error could be? I will be happy to > share an example privately if needed. > > Thanks, > Katerina Henzlova > Back to top <#m_-1341381328826925313_digest_top> > Migration question about AssetSet based page feed > <http://groups.google.com/group/adwords-api/t/688181a1c46a159a?utm_source=digest&utm_medium=email> > 任Robin <rxb.work...@gmail.com>: Jan 12 08:15AM -0800 > > Hi Google Team, > > I'm currently trying to do asset based page feeds migration. I've followed > this document : > > https://developers.google.com/google-ads/api/docs/dynamic-search-ads/dsa-page-feeds > and created assets, assetSet, and joined them through assetSetAsset. > > I have two questions to ask : > > 1. Is duplicate AssetSetName possible for AssetSet ? > > 2. Is duplicate value possible between old FeedName and AssetSetName, also > FeedId and AssetSetId ? > 3. In Hybrid serving , would Feed and AssetSet with same attributes > affect normal function? > > Thanks > Back to top <#m_-1341381328826925313_digest_top> > UserList, Removing all UserData from a UserList > <http://groups.google.com/group/adwords-api/t/7ef06f6eae64dc1f?utm_source=digest&utm_medium=email> > Matan Shavit <matan.sha...@appsflyer.com>: Jan 12 07:31AM -0800 > > Hello, Im using the UserData .setCreate and .setRemove to create > add/remove > operations to my UserList, I want to be able to delete all UserData from > the UserList. > Using Adwords API I used MutateMembersOperand, operand .setRemoveAll > (true). > What is the correct way to do it in GoogleAds API? > Im using the UserDataService to add/remove UserData. > Back to top <#m_-1341381328826925313_digest_top> > You received this digest because you're subscribed to updates for this > group. You can change your settings on the group membership page > <https://groups.google.com/forum/?utm_source=digest&utm_medium=email#!forum/adwords-api/join> > . > To unsubscribe from this group and stop receiving emails from it send an > email to adwords-api+unsubscr...@googlegroups.com. > -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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/CADGMaUQUsmd%3Dc6d7pTQvo0TMHGzBzG1U3mnXLfWBezabUy1-sw%40mail.gmail.com.