I have converted a Keyword Performance Program in MS VS 2008 c# to API v201209 and have an error when downloading a report. Error Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><reportDownloadError><ApiError><type>ReportDownloadError.MISSING_PARAMETER</type><trigger>Missing client information</trigger><fieldPath></fieldPath></ApiError></reportDownloadError> See attached code snippets. I checked all parameters and they look correct. I´m using the Adwords Client lib. v 15.2 for c# and use the MCC authentication (AdWordsUser). Does anyone know how to get the parameter missing or can anyone help me or knows someone who can debug the error? -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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
// Create a custom AdWordsUser. AdWordsUser AdUser = new AdWordsUser(headers); ReportDefinition definition = new ReportDefinition(); definition.reportName = "KEYWORDS_PERFORMANCE_REPORT"; definition.reportType = ReportDefinitionReportType.KEYWORDS_PERFORMANCE_REPORT; definition.downloadFormat = DownloadFormat.XML; definition.dateRangeType = ReportDefinitionDateRangeType.CUSTOM_DATE; Selector reportselector = new Selector(); reportselector.fields = new string[] { "AccountDescriptiveName", //CustomerName "CampaignName", //Campaign "AdGroupName", //AdGroup "KeywordText" //Keyword }; Predicate predicate = new Predicate(); predicate.field = "Status"; predicate.@operator = PredicateOperator.IN; predicate.values = new string[] { "ACTIVE", "PAUSED" }; reportselector.predicates = new Predicate[] { predicate }; definition.selector = reportselector; definition.selector.dateRange = new DateRange(); string sVMonth, sVDay, sEMonth, sEDay; if (dtStartDate.Month < 10) { sVMonth = "0" + dtStartDate.Month.ToString(); } else { sVMonth = dtStartDate.Month.ToString(); } if (dtStartDate.Day < 10) { sVDay = "0" + dtStartDate.Day.ToString(); } else { sVDay = dtStartDate.Day.ToString(); } if (dtEndDate.Month < 10) { sEMonth = "0" + dtEndDate.Month.ToString(); } else { sEMonth = dtEndDate.Month.ToString(); } if (dtEndDate.Day < 10) { sEDay = "0" + dtEndDate.Day.ToString(); } else { sEDay = dtEndDate.Day.ToString(); } definition.selector.dateRange.min = dtStartDate.Year.ToString() + sVMonth + sVDay; definition.selector.dateRange.max = dtEndDate.Year.ToString() + sEMonth + sEDay; definition.includeZeroImpressions = true; string date1 = definition.selector.dateRange.min, date2 = definition.selector.dateRange.max; string von = date1.Substring(0, 4) + "_" + date1.Substring(4, 2) + "_" + date1.Substring(6, 2); string bis = date2.Substring(0, 4) + "_" + date2.Substring(4, 2) + "_" + date2.Substring(6, 2); string folder = "etc/reports/xml/" + von + "-" + bis; System.IO.Directory.CreateDirectory(folder); string filename = tmp[0] + ".xml"; new ReportUtilities(AdUser).DownloadClientReport(definition, folder + "/" + filename);