キーワードを取得するためのより優雅な方法があるかもしれませんが、私は特別なレポートが必要であることがわかりました。これを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()
に値を解析することができます:ここに私の方法です。
は、レポートの種類のリスト(おそらくKEYWORDS_PERFORMANCE_REPORTをお勧めします)と、それぞれに許可されるフィールドにhttp://code.google.com/apis/adwords/docs/appendix/reports.html#search-queryを参照してください。
こんにちは、これは本当に古い質問でしたが、私が情報をどのように取得できるかについて詳しく説明できますか?あなたがまだ3年後にそこにいるなら、ありがとう。 – gogobebe2