Structure Reports

Службы API AdWords, применяемые для сбора данных о структуре Центра клиентов AdWords, обычно начинают работать медленнее по мере того, как увеличивается количество информации в нем. Однако существует более простой способ получить необходимые сведения, например о кампаниях, группах объявлений, объявлениях, ключевых словах и т. д. Для этого используются отчеты AdHoc AdWords. Они позволяют быстро извлечь необходимые данные, в том числе идентификаторы, названия и значения объектов, которые входят в структуру аккаунта. Сервисы AdWords используют собранные идентификаторы, чтобы отслеживать и анализировать информацию об основных объектах.

В документах по каждому типу отчетов изложено, какие записи столбцов можно извлечь для каждого уровня данных о структуре. Заголовки столбцов также можно получить программным путем (об этом читайте в описании метода getReportFields сервиса ReportDefinitionService). Если столбцы отчета будут выбраны верно, можно собрать информацию, которая позволит построить модель выбранного аккаунта клиента. Отчеты могут иметь разные форматы (например, CSV или XML), однако мы рекомендуем создавать их в формате CSV. Это позволит передавать ответы с помощью распространенных библиотек и фильтровать каждую запись в формате объекта по вашему выбору. Кроме того, файл CSV более компактен, поэтому его обработка занимает меньше времени.

Пример кампаний

Рассмотрим способ, позволяющий собрать информацию о каждой кампании в нашем аккаунте. Для этого нужно создать запрос на языке запросов AdWords, а затем добавить полученные сведения в локальную базу данных. Затем потребуется отправить в нее запросы SELECT, чтобы построить структурные таблицы. Чтобы построить кампанию, выполним три действия, указанные ниже.

а) Запрос данных кампании из отчетов

SELECT CampaignStatus, CampaignId, CampaignName, ExternalCustomerId,
CustomerDescriptiveName, Amount, BiddingStrategy, Impressions
FROM CAMPAIGN_PERFORMANCE_REPORT
DURING YESTERDAY

Сначала построим строку запроса AWQL, содержащую все заголовки столбцов, которые необходимо получить из отчета по эффективности кампаний. Укажем тип отчета и диапазон дат. Затем используем этот запрос для создания отчета, выбрав CSV в качестве формата для загрузки.

2. Создание таблицы локальных кампаний

CREATE TABLE campaigns (Status STRING, id LONG, name STRING, extCID LONG,
custName STRING, amount FLOAT, biddingStrategy STRING, impressions INTEGER)

Этот оператор создает таблицу с подробным описанием заголовков столбцов и их типа в таблице SQLite.

3. Заполнение таблицы кампаний

INSERT INTO campaigns (Status, id, name, extCID, custName, amount,
biddingStrategy, impressions) VALUES (?, ?, ?, ?, ?, ?, ?, ?)

Выше представлен оператор SQL, добавляющий записи в таблицу кампаний. Установим для каждого "?" значение параметра, используя значения из загруженного отчета.

Формат отчетов

Отчет в формате CSV должен включать строку заголовка, строку заголовков столбцов, строку результатов и, наконец, строку Total (Всего), содержащую суммы для всех столбцов с числовыми данными. Пропустите первые две строки ответа AWQL, а затем вставляйте каждую оставшуюся строку в локальную базу данных, пока не найдете строку Total (Всего), которую можно проигнорировать. Ниже представлен пример ответа из отчета по расширениям объявлений.

"Sample Extension Report"
State,Campaign ID,Ad Extension ID,Ad Extension Type
active,68637337,14086417,location extension
deleted,84039937,21702097,location extension
active,85539817,51774217,mobile extension
active,94709137,29009257,location extension
Total, --, --, --

Ответ содержит строку заголовка и строку заголовков столбцов, запрошенных из отчета. Собранные столбцы будут расположены в порядке, указанном в запросе, за исключением случаев, когда запрашиваются копии столбцов (в этом случае второй экземпляр не включается). Это позволяет вставлять строки в таблицу базы данных в правильном порядке. Строка Total (Всего) находится в конце отчета.

Можно повторить эти задачи для столбцов AdGroups, Ads, Keywords и AdCriteria, а затем с помощью запросов SQL извлекать и выводить таблицы. Ваш код может использовать собранную информацию как угодно. При работе с локальной базой данных SQL используйте операторы SQL, например следующие:

SELECT * FROM campaigns
LEFT OUTER JOIN adGroups ON campaigns.id=adGroups.campaignId
LEFT OUTER JOIN ads ON ads.adAdGroupId=adGroups.adGroupId
и
SELECT * FROM criteria
JOIN keywords
WHERE criteria.critType='Keyword' AND keywords.keywordId=criteria.critId

Советы

При использовании этого подхода для получения данных аккаунта могут возникнуть проблемы, которые нужно учитывать. Например, при включении в запрашиваемый отчет столбцов, которые не разрешают собирать строки, где число показов равно нулю, вы не сможете собрать информацию. Поле KeywordId в отчете по эффективности объявлений – пример такого столбца. Это отражено в столбце Notes (Примечания) этого поля. Другие столбцы являются взаимоисключающими, например ConversionTypeName и Clicks. Их нужно избегать, а при загрузке структурных отчетов применять те заголовки столбцов, которые перечислены в качестве атрибутов в столбце Behaviour (Поведение).

Будьте осторожны при присвоении названий столбцам в создаваемых таблицах. Чтобы получить значения из объединений, необходимо запросить эти названия, поэтому проверьте, чтобы в нескольких таблицах заголовки столбцов не повторялись – это упростит запросы. Также следует избегать запроса повторяющихся столбцов, так как они будут удалены из ответа и порядок окажется нарушен. Информация о форматировании и значении столбцов содержится в столбце Notes (Примечания) в документации.

Следует соблюдать осторожность при выборе первого столбца в запросе AWQL. Учитывайте, что слово Total (Всего) всегда должно находиться в начале последней строки. Можно использовать идентификаторы типа Long. Тем не менее, мы выбрали столбец Status (Статус), так как он представляет собой строку, но в нем используется регулируемый набор доступных значений. Это позволяет обрабатывать все данные в ответе, не беспокоясь о проблемах, которые могут возникнуть при синтаксическом разборе первого предоставленного значения каждой строки.

Убедитесь, что для каждого столбца выбран правильный тип, поскольку преобразование значений в правильные значения из строк позволит отфильтровать исключения при получении некорректных данных, а затем вызовет для столбца соответствующее средство синтаксического анализа строк.

Полезные сведения

Оставить отзыв о...

Текущей странице
Нужна помощь? Обратитесь в службу поддержки.