Re: Adhoc Reports giving 500(Internal Server Error) and 400(Bad Request Error) response
Hi I am using the code from the following link https://gist.github.com/1287940 I am getting error The remote server returned an error: (400) Bad Request I do not see any other details...can anyone help? On Friday, 20 January 2012 12:09:11 UTC+5:30, Ayaz Zaidi wrote: Hello, I am using DownloadAdhocReport.cs file from v201109 version to generate Adhoc Report of Adgroup performance I am getting The remote server returned an error: (500) Internal Server Error.when i use my valid developer token and The remote server returned an error: (400) Bad Request. in the Sandbox environment This cannot be a configuration issue as I am successfully retrieving Campaigns and all data from Adwords API. Please guide me on this. -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords 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
Support for bidMultiplier with Criterion Type AdSchedule
Hi All, I am using the Adwords-API with v201109 in our application. Recently we have started with the migration to v201206 as the other is getting deprecated very soon. With v201109 there is bid multiplier available in 'AdScheduleTarget' along with the day, starthour, startminute, endhour and endminute. With new version v201206, the CampaignTargetService get deprecated and AdSchedule can be accessed by using CampaignCriterionService. But with this I observe that values for the bid multiplier with Criterion Type AdSchedule are not retrieved. Can you please confirm if this is the expected behaviour? In what way we can get the values of the bid multiplier? Thanks in Advance, Shweta shirguppe. -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords 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
Re: A couple of snippets for DotNet/C# Developers calling AdHoc Reporting in v201109
Hello Peter, Thanks for the links They were super useful. Sad part is I am not able to download the report even after providing all the credentials. I am getting a 400 error and there are no pointers as to why. Do you have any solution? On Saturday, 15 October 2011 00:17:35 UTC+5:30, Peter S. (Location3) wrote: Howdy, In trying to figure out how to get the newer version of the api working for downloading reports I used this code. https://gist.github.com/1287891 // This will show you how do get your AuthToken https://gist.github.com/1287940 // This will show you how to call the Adhoc reporting service and pull down your reports. It's basically the Java code for C# people. Anyway I hope this helps someone... Peter -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords 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
Re: A couple of snippets for DotNet/C# Developers calling AdHoc Reporting in v201109
ok Also I think I managed to get some error message using Fiddler it shows... 57 !!!2|||-1|||[ReportDefinitionError.CUSTOMER_SERVING_TYPE_REPORT_MISMATCH @ selector]??? 0 Does this help? On Friday, 14 September 2012 14:15:25 UTC+5:30, TechTalk wrote: Hello Peter, Thanks for the links They were super useful. Sad part is I am not able to download the report even after providing all the credentials. I am getting a 400 error and there are no pointers as to why. Do you have any solution? On Saturday, 15 October 2011 00:17:35 UTC+5:30, Peter S. (Location3) wrote: Howdy, In trying to figure out how to get the newer version of the api working for downloading reports I used this code. https://gist.github.com/1287891 // This will show you how do get your AuthToken https://gist.github.com/1287940 // This will show you how to call the Adhoc reporting service and pull down your reports. It's basically the Java code for C# people. Anyway I hope this helps someone... Peter -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords 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
Re: Adhoc Reports giving 500(Internal Server Error) and 400(Bad Request Error) response
ok Also I think I managed to get some error message using Fiddler it shows... 57 !!!2|||-1|||[ ReportDefinitionError.CUSTOMER_SERVING_TYPE_REPORT_MISMATCH @ selector]??? 0 Does this help? On Friday, 14 September 2012 11:49:37 UTC+5:30, TechTalk wrote: Hi I am using the code from the following link https://gist.github.com/1287940 I am getting error The remote server returned an error: (400) Bad Request I do not see any other details...can anyone help? On Friday, 20 January 2012 12:09:11 UTC+5:30, Ayaz Zaidi wrote: Hello, I am using DownloadAdhocReport.cs file from v201109 version to generate Adhoc Report of Adgroup performance I am getting The remote server returned an error: (500) Internal Server Error.when i use my valid developer token and The remote server returned an error: (400) Bad Request. in the Sandbox environment This cannot be a configuration issue as I am successfully retrieving Campaigns and all data from Adwords API. Please guide me on this. -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords 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
Re: Adwords UI vs AD_PERFORMANCE_REPORT totals
Hi Danial, I've sent you an email. Or so I hope because I'm not sure if I got the correct mailaddress. Can you let me know that you have received it? Op donderdag 13 september 2012 11:31:07 UTC+2 schreef Danial Klimkin het volgende: Hello Marijn, Please send me the CID of the account, XML definition for the report, and it's full output to me *over email*. -Danial, AdWords API Team. On Monday, September 10, 2012 7:14:48 PM UTC+4, Marijn wrote: Hi there, We are using the .NET client library 14.7.0.0 to calculate the total clicks on a specific day using the AD_PERFORMANCE_REPORT. When we compare these results with the totals shown in the Adwords UI (Campaigns - All online campaigns - Ads) there is a difference. The cause of this difference is missing rows in the AD_PERFORMANCE_REPORT report. By looking at the adIDs we can figure out which ads are missing in the report. These ads are not any different from the ones that are present. We've checked stuff like AdGroup status, impressions, etc. Below is the code we use to calculate the total of clicks for yesterday (clicksYesterday). How can we find out why certain ads are missing or how to solve it? // Create selector Selector selector = new Selector(); selector.fields = new string[] { AdNetworkType2, AdNetworkType1, AdGroupName, AdGroupId, AdGroupStatus, Status, AdType, CampaignName, CampaignId, CampaignStatus, Clicks, Conversions, Cost, CostPerConversion, AverageCpc, AverageCpm, CreativeDestinationUrl, Description1, Description2, Url, DisplayUrl, Headline, Id, ImageCreativeName, ImageAdUrl, Impressions, AveragePosition, Date, }; selector.dateRange = new DateRange(); selector.dateRange.min = DateTime.Now.Date.AddMonths(-6).ToString(MMdd); selector.dateRange.max = DateTime.Now.Date.ToString(MMdd); // Add predicates selector.predicates = new Predicate[] { new Predicate() { field = Status, @operator = PredicateOperator.IN, values = new string[] { ENABLED, PAUSED, DISABLED } }, new Predicate() { field = AdGroupStatus, @operator = PredicateOperator.IN, values = new string[] { ENABLED, PAUSED, DELETED } }, new Predicate() { field = CampaignStatus, @operator = PredicateOperator.IN, values = new string[] { ACTIVE, PAUSED, DELETED } }, }; // Create report definition ReportDefinition reportDefinition = new ReportDefinition(); reportDefinition.reportName = Test - Creative performance report; reportDefinition.dateRangeType = ReportDefinitionDateRangeType.CUSTOM_DATE; reportDefinition.reportType = ReportDefinitionReportType.AD_PERFORMANCE_REPORT; reportDefinition.downloadFormat = DownloadFormat.XML; reportDefinition.selector = selector; reportDefinition.includeZeroImpressions = true; // Download the report ReportUtilities reportUtilities = new ReportUtilities(this.User); reportUtilities.ReportVersion = v201206; reportUtilities.DownloadClientReport(reportDefinition, @c:\temp\adperformance.xml); // Extract ids Listlong adIdsYesteday = new Listlong(); long clicksYesterday = 0; using (FileStream fileStream = new FileStream(@c:\temp\adperformance.xml, FileMode.Open)) { using (XmlReader xmlReader = XmlReader.Create(fileStream)) { xmlReader.MoveToContent(); while (xmlReader.Read()) { // Handle each 'row' if (xmlReader.Name == row) { // Get values XElement rowNode = (XElement)XElement.ReadFrom(xmlReader); long adId = long.Parse(rowNode.Attribute(adID).Value); DateTime adDate = DateTime.ParseExact(rowNode.Attribute(day).Value, -MM-dd, CultureInfo.InvariantCulture); long adClicks = long.Parse(rowNode.Attribute(clicks).Value); // Handle data for yesterday if (adDate == DateTime.Now.Date.AddDays(-1)) { clicksYesterday += adClicks; adIdsYesteday.Add(adId); } } } } } // Store adIDs using (FileStream fs = new FileStream(@c:\temp\ids.txt, FileMode.Create)) using (StreamWriter sw = new StreamWriter(fs)) foreach (string s in adIdsYesteday.Select(id = id.ToString())) sw.WriteLine(s); -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords API Forum group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from
using adparam to set prices on all ads in an adgroup
I've been using the API for several things, and recently wanted to use it to set the prices displayed on my ads. The adGroups are arraigned so that they are each related to a product. I simply (I really thought this would be simple) want to update the param1 value in all ads in a given adGroup. What I have found so far is that the parameter needs to be set for *every single keyword* used on that adGroup. Ideally I would want to: Best case: Send the AdGroup ID up and a value for the param and have all ads up dated. Worst Case: Send up the Adgroup ID and Ad ID and param Value for each ad to be updated. Is there anyway of doing this? Thanks for any help. p.s. on a slightly related note, can anyone point out a use case for the current implementation (changing parameters per keyword)? As I may simply be approaching this from the wrong angle. pps: I found a similar question that's 2 years old so I'm hoping things have been improved over the last few years:https://groups.google.com/forum/?fromgroups=#!search/AdParam$20all$20keywords/adwords-api/fNAWaneqCmw/discussion -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords 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
Big problem with BulkMutateJob - TransactionPreemptedException
Hello, since last few days I had a problem with executing BulkMutateJob for operations on TextAds and Keywords. I copied whole exception: AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server faultSubcode: faultString: [DatabaseError.DATABASE_ERROR @ ; trigger:'TransactionPreemptedException'] faultActor: faultNode: faultDetail: {https://adwords.google.com/api/adwords/cm/v201109}ApiExceptionFault:message[DatabaseError.DATABASE_ERROR @ ; trigger:'TransactionPreemptedException']/messageApplicationException.TypeApiException/ApplicationException.Typeerrors xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; xsi:type=DatabaseErrorfieldPath/triggerTransactionPreemptedException/triggererrorStringDatabaseError.DATABASE_ERROR/errorStringApiError.TypeDatabaseError/ApiError.TypereasonDATABASE_ERROR/reason/errors [DatabaseError.DATABASE_ERROR @ ; trigger:'TransactionPreemptedException'] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at java.lang.Class.newInstance0(Unknown Source) at java.lang.Class.newInstance(Unknown Source) 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.adwords.v201109.cm.ApiException.getDeserializer(ApiException.java:142) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) 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 com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) at javax.xml.parsers.SAXParser.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.adwords.v201109.cm.MutateJobServiceSoapBindingStub.mutate(MutateJobServiceSoapBindingStub.java:2564) at pl.com.euro.adwords.services.google.GoogleDataProviderImpl.performAdJobPart(GoogleDataProviderImpl.java:943) at pl.com.euro.adwords.services.google.GoogleDataProviderImpl.updateGoogleTextAds(GoogleDataProviderImpl.java:426) at pl.com.euro.adwords.processor.google.GoogleProcessorImpl.compareAndUpdateTextAds(GoogleProcessorImpl.java:976) at pl.com.euro.adwords.processor.google.GoogleProcessorImpl.process(GoogleProcessorImpl.java:126) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
Big problem with BulkMutateJob - TransactionPreemptedException
Hello, since last few days I had a problem with executing BulkMutateJob for operations on TextAds and Keywords. I copied whole exception: AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server faultSubcode: faultString: [DatabaseError.DATABASE_ERROR @ ; trigger:' TransactionPreemptedException'] faultActor: faultNode: faultDetail: {https://adwords.google.com/api/adwords/cm/v201109}ApiExceptionFault:message[DatabaseError.DATABASE_ERROR @ ; trigger:'TransactionPreemptedException']/messageApplicationException.TypeApiException/ApplicationException.Typeerrors xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; xsi:type=DatabaseErrorfieldPath/triggerTransactionPreemptedException/triggererrorStringDatabaseError.DATABASE_ERROR/errorStringApiError.TypeDatabaseError/ApiError.TypereasonDATABASE_ERROR/reason/errors [DatabaseError.DATABASE_ERROR @ ; trigger:'TransactionPreemptedException'] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at java.lang.Class.newInstance0(Unknown Source) at java.lang.Class.newInstance(Unknown Source) 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.adwords.v201109.cm.ApiException.getDeserializer(ApiException.java:142) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) 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 com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) at javax.xml.parsers.SAXParser.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.adwords.v201109.cm.MutateJobServiceSoapBindingStub.mutate(MutateJobServiceSoapBindingStub.java:2564) -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords 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
ad_group_ad_service exception handling
Hi, We are using ruby client and recently we hit some simple but hard to track error. Here is what we are using: gem 'rails','3.2.6' gem 'google-adwords-api', '0.6.3' and ruby is ruby-1.9.3-p125 So, the problem is simple now when I debug and notice that we tried to deploy ad which url param contained space in it. More complex problem is how to debug and get to the point where I finally got this message saying: faultstring[AdError.INVALID_INPUT @ operations[0].operand.ad.url; trigger:'These characters are not allowed: [space]']/faultstring And here is story: we are using google-adwords-api and we have our library to deploy ads via ad_group_ad_service. Deploying ads is totally same as shown in examples for ruby client. So when we ran deploy ads we have only this error message: AdwordsApi::V201109::AdGroupAdService::ApiException: AdwordsApi::V201109::AdGroupAdService::ApiException and exception trace: from /Users/sgrgic/.rvm/gems/ruby-1.9.3-p125@DWR32/gems/google-ads-common-0.7.3/lib/ads_common/savon_service.rb:118:in `handle_errors' from /Users/sgrgic/.rvm/gems/ruby-1.9.3-p125@DWR32/gems/google-ads-common-0.7.3/lib/ads_common/savon_service.rb:83:in `execute_action' from /Users/sgrgic/.rvm/gems/ruby-1.9.3-p125@DWR32/gems/google-adwords-api-0.6.3/lib/adwords_api/v201109/ad_group_ad_service.rb:25:in `mutate' and that's it. Finally after some brutal adding prints to savon_service.rb we got response saying: soap:Bodysoap:Faultfaultcodesoap:Server/faultcodefaultstring[AdError.INVALID_INPUT @ operations[0].operand.ad.url; trigger:'These characters are not allowed: [space]']/faultstringdetailApiExceptionFault xmlns=\https://adwords.google.com/api/adwords/cm/v201109\;message[AdError.INVALID_INPUT @ operations[0].operand.ad.url; trigger:'These characters are not allowed: [space]']/messageApplicationException.TypeApiException/ApplicationException.Typeerrors xmlns:xsi=\http://www.w3.org/2001/XMLSchema-instance\; xsi:type=\AdError\fieldPathoperations[0].operand.ad.url/fieldPathtriggerThese characters are not allowed: [space]/triggererrorStringAdError.INVALID_INPUT/errorStringApiError.TypeAdError/ApiError.TypereasonINVALID_INPUT/reason/errors/ApiExceptionFault/detail/soap:Fault/soap:Body/soap:Envelope Where is clear that we have space somewhere and it just lead us to checking parameters and quickly finding solution. My concern/question here is: is there solution to pull response text, or in this case fault code/fault string on higher level so we can easily log it and next time when we get such kind of error we can just look into log and fix it in 5 minutes? Maybe this will help in understanding what we need, this is call stack: AdwordsApi::V201109::AdGroupAdService mutate AdsCommon::SavonService execute_action after this handle_errors method raises exception. Question is, is it possible to get soap response somehow on higher level, say when we call mutate to get response? Maybe there is some other solution but any thought here are welcome. Regards, Sinisa. -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords 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
Re: using adparam to set prices on all ads in an adgroup
Hi Justin, as you suspected, you'll have to update every adParam for every keyword criterion in the concerned ad group, I do not believe that there is any other way to achieve what you want. What makes matters worse is that AdParamOperation mutate operations are not supported by the BulkMutateJobService, so you'll be restricted to a few hundred keywords per call to AdParamService.mutate... Like yourself, I don't really see a use case where one would want to set different ad params according to keyword criteria — to me it would make more sense to be able to set ad params on a TextAd level, or for a whole ad group at once. Cheers, Dorian On Friday, September 14, 2012 12:51:14 PM UTC+2, Justin wrote: I've been using the API for several things, and recently wanted to use it to set the prices displayed on my ads. The adGroups are arraigned so that they are each related to a product. I simply (I really thought this would be simple) want to update the param1 value in all ads in a given adGroup. What I have found so far is that the parameter needs to be set for *every single keyword* used on that adGroup. Ideally I would want to: Best case: Send the AdGroup ID up and a value for the param and have all ads up dated. Worst Case: Send up the Adgroup ID and Ad ID and param Value for each ad to be updated. Is there anyway of doing this? Thanks for any help. p.s. on a slightly related note, can anyone point out a use case for the current implementation (changing parameters per keyword)? As I may simply be approaching this from the wrong angle. pps: I found a similar question that's 2 years old so I'm hoping things have been improved over the last few years: https://groups.google.com/forum/?fromgroups=#!search/AdParam$20all$20keywords/adwords-api/fNAWaneqCmw/discussion -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords 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
Re: Adhoc Reports giving 500(Internal Server Error) and 400(Bad Request Error) response
CUSTOMER_SERVING_TYPE_REPORT_MISMATCH usually means that you are trying to download a report for an MCC account, which by design has no statistic data associated. Try specifying a non-MCC sub-account ID in the clientCustomerId header of your request. Cheers, Dorian On Friday, September 14, 2012 11:48:21 AM UTC+2, TechTalk wrote: ok Also I think I managed to get some error message using Fiddler it shows... 57 !!!2|||-1|||[ ReportDefinitionError.CUSTOMER_SERVING_TYPE_REPORT_MISMATCH @ selector]??? 0 Does this help? On Friday, 14 September 2012 11:49:37 UTC+5:30, TechTalk wrote: Hi I am using the code from the following link https://gist.github.com/1287940 I am getting error The remote server returned an error: (400) Bad Request I do not see any other details...can anyone help? On Friday, 20 January 2012 12:09:11 UTC+5:30, Ayaz Zaidi wrote: Hello, I am using DownloadAdhocReport.cs file from v201109 version to generate Adhoc Report of Adgroup performance I am getting The remote server returned an error: (500) Internal Server Error.when i use my valid developer token and The remote server returned an error: (400) Bad Request. in the Sandbox environment This cannot be a configuration issue as I am successfully retrieving Campaigns and all data from Adwords API. Please guide me on this. -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords 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
Re: How to get ConversionTypeName and ConversionCategoryName into ad report.
Sorry - clicked the post button prematurely there. The problem is that if I var_dump($conversionreport-table); The actual data isn't included, just the column headers: object(SimpleXMLElement)#627 (1) { [columns]= object(SimpleXMLElement)#625 (1) { [column]= object(SimpleXMLElement)#687 (1) { [@attributes]= array(2) { [name]= string(20) conversionActionName [display]= string(22) Conversion action name } } } } How do I actually get the data? Thanks very much everyone, Ryan On Friday, 14 September 2012 15:25:30 UTC+1, SpaceAndTime wrote: Hi everyone, I'm building a report for one of our huge clients to pull in data from our AdWords MCC and display it in their dashboard. I am using the PHP Client Library, with a mix of version 201109 for gathering the individual ad data and 201206 for (attempting to) gather the data on Conversion Types. What I an trying to achieve is to get the same data as is available when you go to My Client Centre select the client Select the campaign Select the Ad Group Manage Columns and add the Conversions Conv. (many per-click) column to the display. We have this set up to track conversions such as 'Appointment Bookings', 'Request for Information' etc. My current code in it's entirety is below: Ad.php: ?php error_reporting(E_ALL); ini_set('max_execution_time', 2000); //300 seconds = 5 minutes ini_set('memory_limit', '4096M'); set_time_limit(15000); $path = dirname(__FILE__) . '/src'; set_include_path(get_include_path() . PATH_SEPARATOR . $path); require_once 'kint/Kint.class.php'; require_once 'Google/Api/Ads/AdWords/Lib/AdWordsUser.php'; require_once 'Google/Api/Ads/AdWords/Util/ReportUtils.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/report.php'; function getXML($user,$clientId='',$startDate='',$endDate='') { $start_time = microtime(); $start_array = explode( ,$start_time); $start_time = $start_array[1] + $start_array[0]; if (!empty($startDate) !empty($endDate)) { $date = explode('-',$startDate); $date2 = explode('-',$endDate); $sd = mktime(0, 0, 0, $date[1], $date[0], $date[2]); $ed = mktime(0, 0, 0, $date2[1], $date2[0], $date2[2]); if ($sd $ed) { $tmp = $startDate; $startDate = $endDate; $endDate = $tmp; } } if (!empty($startDate)) { $date = explode('-',$startDate); if (is_array($date)) { $startDate = date(Ymd,mktime(0, 0, 0, $date[1], $date[0], $date[2])); } } else { $startDate = '19700101'; } if (!empty($endDate)) { $date = explode('-',$endDate); if (is_array($date)) { $endDate = date(Ymd,mktime(0, 0, 0, $date[1], $date[0], $date[2])); } } else { $endDate = '20380101'; } /*$conversionreport = DownloadDefinedReportExample($user, 'ACCOUNT_PERFORMANCE_REPORT', NULL); $conversionreport = simplexml_load_string($conversionreport);*/ /*echo 'br /br /br /';*/ $filename = ryanad_.date('d_m_Y')._.$startDate._.$endDate._.$clientId..xml; if (is_file(dirname(__FILE__) . '/xmls/'.$filename) 1==2) { $fh = fopen(dirname(__FILE__) . '/xmls/'.$filename, 'r'); $res = fread($fh, filesize(dirname(__FILE__) . '/xmls/'.$filename)); fclose($fh); } else { $campaignService = $user-GetService('CampaignService', 'v201109'); $campaignService = $user-GetService('ServicedAccountService', 'v201109'); $selector = new Selector(); $accounts = $campaignService-get($selector); $counter = 0; $res=?xml version=\1.0\ encoding=\UTF-8\?\n; $res.=clients\n; foreach ($accounts-accounts as $key=$account) { if (empty($clientId) || (!empty($clientId) $account-customerId == $clientId)) { $res2 =\tclient id=\.$account-customerId.\ name=\.str_replace('','amp;',$account-companyName).\\n. \t\tcampaigns\n; $issetCompany = 0; $user-SetClientId($account-customerId); $campaignService2 = $user-GetService('CampaignService', 'v201109'); $selector = new Selector(); $selector-fields = array('Id', 'Name', 'Period','Status'); //,'Cost' $selector-ordering[] = new OrderBy('Name', 'ASCENDING'); $selector-dateRange = new DateRange($startDate, $endDate); $page = $campaignService2-get($selector); $number = 0; if(isset($page-entries)){ foreach ($page-entries as $campaign) { if(isset($campaign-campaignStats) $campaign-status == 'ACTIVE' $campaign-budget-period == 'DAILY') { $res2 .=\t\t\tcampaign\n \t\t\tid.$campaign-id./id\n \t\t\t\ttitle.str_replace('','amp;',$campaign-name)./title\n\t\t\t\tads\n;
Re: How to get ConversionTypeName and ConversionCategoryName into ad report.
Hi, Although not a direct answer to your question, I wanted to check if there was a reason why you want to download the report using the XML format? A few years ago it was the only available option, but now you can choose other formats like CSV. I find that this much easier to use; moreover, I also had a problem parsing larger XML reports using simplexml or DOM because they consumed an excessive amount of memory, so I had to resort to using a SAX parser. Regards, Ewan -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords 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
Re: How to get ConversionTypeName and ConversionCategoryName into ad report.
Hiya Ewan, Yeah, I'm actually downloading the XML and once I can get the data for the columns for the above, I'll be parsing the XML using simpleXML and ripping those two elements out and outputting them into another XML report for download (!). Crazy, I know :) There's not really any reason for choosing XML and once I've found the data I'm looking for, I'll definitely do as you suggest and try out CSV too. Cheers, Ryan -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords 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
Calling get on AdGroupService fails with INVALID_FIELD_NAME for 'SiteMaxCpc' and 'ProxySiteMaxCpc'
Hi, Starting at 9/13 4.21 pm PDT we starting seeing the above error for a lof of our accounts. We have not changed our client code in this area for many many months. Is this a problem on the AdWords side or did the APIs change behavior? We are using v201206, and get this error when calling get to obtain all ad groups for a campaign id. SiteMaxCpc and ProxySiteMaxCpc have been part of the selector for quite a while and always worked fine up until yesterday. System.Web.Services.Protocols.SoapException: Message: [SelectorError.INVALID_FIELD_NAME @ serviceSelector; trigger:'SiteMaxCpc', SelectorError.INVALID_FIELD_NAME @ serviceSelector; trigger:'ProxySiteMaxCpc'] This is breaking our sync for a large number of merchants, so a speedy reply would be much appricated. Thanks, Hans -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords 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
Re: Calling get on AdGroupService fails with INVALID_FIELD_NAME for 'SiteMaxCpc' and 'ProxySiteMaxCpc'
Good news, looks like this now has stopped. Don't see any errors past noon today and I am not able to repro this with two accounts that were previously experiencing this. Hans On Friday, September 14, 2012 1:20:01 PM UTC-7, HK wrote: Hi, Starting at 9/13 4.21 pm PDT we starting seeing the above error for a lof of our accounts. We have not changed our client code in this area for many many months. Is this a problem on the AdWords side or did the APIs change behavior? We are using v201206, and get this error when calling get to obtain all ad groups for a campaign id. SiteMaxCpc and ProxySiteMaxCpc have been part of the selector for quite a while and always worked fine up until yesterday. System.Web.Services.Protocols.SoapException: Message: [SelectorError.INVALID_FIELD_NAME @ serviceSelector; trigger:'SiteMaxCpc', SelectorError.INVALID_FIELD_NAME @ serviceSelector; trigger:'ProxySiteMaxCpc'] This is breaking our sync for a large number of merchants, so a speedy reply would be much appricated. Thanks, Hans -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords 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
Re: How to get Details of API Activity (quota units)
Yes, the InfoService knows all the details. Thanks, Jason! Am Mittwoch, 12. September 2012 22:23:41 UTC+2 schrieb Jason Stedman: Raphael, The InfoService might be what you need. Hope this helps! -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and discussion group: http://adwordsapi.blogspot.com http://groups.google.com/group/adwords-api =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups AdWords 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