2012-03-29 2 views
2

Мне нужна помощь, как получить количество ежемесячных запросов для заданных ключевых слов.Получите количество ежемесячных запросов для определенных ключевых слов, используя API Google Adwords для .NET.

У меня есть учетная запись Google Adwords API, а также деньги загружены, поэтому я могу сделать много запросов. Но я не могу найти код из примеров, как получить эту информацию.

Я использую C# .NET и загрузил dll Google.AdWords API.

Можете ли вы привести мне простой пример?

ответ

3

Может быть более изящный способ получить ключевые слова, но я обнаружил, что мне нужен специальный отчет. Я не мог заставить это работать с клиентской библиотекой 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) и полей, разрешенных в каждом.

+0

Здравствуйте, я знаю, что это был действительно старый вопрос, но не могли бы вы рассказать о том, как я могу получить информацию? Спасибо кучи, если вы все еще там, как через 3 года! – gogobebe2

Смежные вопросы