Получите количество ежемесячных поисков по определенным ключевым словам, используя Google Adwords API для .NET - PullRequest
2 голосов
/ 29 марта 2012

Мне нужна помощь, чтобы узнать количество ежемесячных поисков по заданным ключевым словам.

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

Я использую C # .NET и скачал dll's API Google.AdWords.

Не могли бы вы привести простой пример?

1 Ответ

3 голосов
/ 12 апреля 2012

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

...