Thanks for responding.
While I have a workaround, I didn't solve this the conventional way... (see below)
I would very much appreciate anyone's assistance.
What I am trying to do is use the reporting service to get a complete snapshot of my account's keywords, e.g.: all active, paused, deleted keywords.
I have to imagine this is quite possible (hopefully without resorting to API units?)
Part of the reason I am so eager on this is that the SEARCH_QUERY_PERFORMANCE_REPORT is returning AdGroup_ID/Keyword_ID combos that I can't get details on (databases tend to complain when an ID points at nothing...)
My workaround is to pull the below report over the lifetime of my data. (i.e.: set the start date to 2 years ago...) It works. But YUCK.
Here we go then, any suggestions or edits much appreciated.
(For the record, I have tried adding/removing fields, etc.
The solution will either be stupid-obvious or kinda-crafty...???)
ReportDefinition definition = new ReportDefinition
();
definition.reportName = "Adwords_Keywords";
definition.reportType = ReportDefinitionReportType.KEYWORDS_PERFORMANCE_REPORT;
definition.downloadFormat = DownloadFormat.TSV;
definition.dateRangeType = ReportDefinitionDateRangeType.CUSTOM_DATE;
// http://code.google.com/apis/adwords/docs/appendix/reports.html
Selector selector = new Selector();
selector.fields = new string
[] {
"AdGroupId"
,"Id"
,"IsNegative"
,"KeywordMatchType"
,"KeywordText"
,"Status"
,"ApprovalStatus"
,"QualityScore"
,"MaxCpc"
};
Predicate statusPredicate = new Predicate();
statusPredicate.field = "Status";
statusPredicate.@operator = PredicateOperator.IN;
statusPredicate.values = new string[] { "DELETED" };
selector.predicates = new Predicate[] { statusPredicate };
selector.dateRange = dates;
definition.selector = selector;
definition.includeZeroImpressions = true;
bool inMicros = false;
Thanks in advance,
~Crosby