【发布时间】:2012-03-29 16:16:10
【问题描述】:
我需要帮助如何获取给定关键字的每月搜索次数。
我获得了 Google Adwords API 帐户,并且还加载了资金,因此我可以提出许多请求。但我无法从示例中找到代码,如何获取此信息。
我正在使用 C# .NET,并且已经下载了 Google.AdWords API dll。
你能给我一些简单的例子吗?
【问题讨论】:
标签: c# keyword google-ads-api
我需要帮助如何获取给定关键字的每月搜索次数。
我获得了 Google Adwords API 帐户,并且还加载了资金,因此我可以提出许多请求。但我无法从示例中找到代码,如何获取此信息。
我正在使用 C# .NET,并且已经下载了 Google.AdWords API dll。
你能给我一些简单的例子吗?
【问题讨论】:
标签: c# keyword google-ads-api
可能有一种更优雅的方式来获取关键字,但我发现我需要一份临时报告。我无法让它与 AdWords .Net 客户端库一起使用,但以老式方式构建 HTTP 请求并不是一件繁琐的工作。
这是我创建请求标头的代码:
var request = (HttpWebRequest)WebRequest.Create(Properties.Settings.Default.AdHocReportsURL);
request.ContentType = "application/x-www-form-urlencoded";
request.Method = "POST";
request.Headers.Add("Authorization: GoogleLogin auth=" + _authToken);
request.Headers.Add("clientCustomerId: " + _customerID.ToString("000-000-0000"));
request.Headers.Add("developerToken: " + _developerToken);
然后,您需要为临时报告附加 XML 规范。这是我的方法:
private void AppendReportSpec(HttpWebRequest request, ReportType reportType, IEnumerable<string> fields, DateTime startDate, DateTime endDate)
{
var reportSpec = new StringBuilder("<reportDefinition><selector>");
foreach (string field in fields)
{
reportSpec.Append("\t\t<fields>");
reportSpec.Append(field);
reportSpec.AppendLine("</fields>");
}
reportSpec.Append
(
@"<dateRange><min>{0}</min><max>{1}</max></dateRange>
</selector>
<reportName>Whatever</reportName>
<reportType>{2}</reportType>
<dateRangeType>CUSTOM_DATE</dateRangeType>
<downloadFormat>CSV</downloadFormat>
</reportDefinition>"
);
string reportXml = String.Format(reportSpec.ToString(), startDate.ToString("yyyyMMdd"), endDate.ToString("yyyyMMdd"), reportType);
using (var requestContent = new StreamWriter(request.GetRequestStream()))
requestContent.Write("__rdxml=" + HttpUtility.UrlEncode(reportXml));
}
最后,你可以解析request.GetResponse()中的值来获取你的数据。
请参阅http://code.google.com/apis/adwords/docs/appendix/reports.html#search-query 了解报告类型列表(您可能需要 KEYWORDS_PERFORMANCE_REPORT)以及每种类型中允许的字段。
【讨论】: