Re: Adhoc Reports giving 500(Internal Server Error) and 400(Bad Request Error) response

2012-09-14 Thread TechTalk
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

2012-09-14 Thread Shweta Shirguppe
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

2012-09-14 Thread TechTalk

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

2012-09-14 Thread TechTalk
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

2012-09-14 Thread TechTalk

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

2012-09-14 Thread Marijn
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

2012-09-14 Thread Justin
 

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

2012-09-14 Thread michalp
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

2012-09-14 Thread michalp
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

2012-09-14 Thread sgrgic
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

2012-09-14 Thread Dorian Kind
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

2012-09-14 Thread Dorian Kind
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.

2012-09-14 Thread SpaceAndTime
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.

2012-09-14 Thread Ewan Heming
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.

2012-09-14 Thread SpaceAndTime
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'

2012-09-14 Thread HK
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'

2012-09-14 Thread HK
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)

2012-09-14 Thread Raphael
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