Содержание

Условия использования сервиса «API Яндекс.Карт»

Настоящие Условия использования сервиса «API Яндекс.Карт» (далее — Соглашение) представляет собой предложение ООО «ЯНДЕКС» (далее — Яндекс) пользователю сети Интернет (далее — Пользователь), использовать сервис «API Яндекс.Карт» (далее — «Сервис»), на изложенных ниже условиях:

1.1. Использование Пользователем Сервиса регулируется настоящим Соглашением, а также

  • Пользовательским соглашением сервисов Яндекса, размещенным по адресу: https://yandex.ru/legal/rules,

  • Лицензией на использование поисковой системы Яндекса, размещенной по адресу: https://yandex.ru/legal/termsofuse,

  • Политикой конфиденциальности, размещенной по адресу: https://yandex.ru/legal/confidential,

  • Условиями использования сервиса Яндекс.Карты, размещенным по адресу: https://yandex.ru/legal/maps_termsofuse,

  • Условиями использования сервиса Яндекс.Народная карта, размещенным по адресу: https://yandex. ru/legal/pmap_termsofuse, и

  • Условиями использования сервиса «API Поиска по организациям», размещенным по адресу: https://yandex.ru/legal/geosearch_api.

(далее вместе именуются – «Регулирующие документы»).

Пользователь обязуется ознакомиться со всеми Регулирующими документами и самостоятельно несет риск такого неознакомления.

1.2. К настоящему Соглашению и отношениям между Яндексом и Пользователем, возникающим в связи с использованием Сервиса, подлежит применению законодательство Российской Федерации.

1.3. Пользователь самостоятельно несет ответственность за соблюдение им Законодательства при использовании Сервиса. Везде по тексту настоящего Соглашения, если явно не указано иное, под термином «Законодательство» понимается как законодательство РФ, так и законодательство места пребывания Пользователя или места совершения им юридически значимых действий в соответствии с настоящим Соглашением. Если использование Пользователем какой-либо возможности, предоставляемой Сервисом, нарушает законодательство места пребывания Пользователя, Пользователь обязуется воздержаться от использования Сервиса.

1.4. Используя Сервис, получив API-ключ, разместив код Сервиса на сайте Пользователя или в приложении Пользователя (при условии передачи HTTP заголовка Referer, позволяющего однозначно идентифицировать сайт или приложение Пользователя, для мобильных приложений Referer должен передаваться в виде http://идентификатор_приложения_в_сторе.ymapapp), воспользовавшись любой иной функциональной возможностью Сервиса, Пользователь выражает свое полное и безоговорочное согласие со всеми условиями Регулирующих документов и обязуется их соблюдать. Использование Сервиса на иных условиях, нежели указано в настоящем Соглашении, возможно только по письменному согласованию с Яндексом. В случае несогласия с условиями Регулирующих документов Пользователь не имеет права использовать Сервис.

2.1. Сервис представляет собой набор инструментов и интерфейсов программирования, которые дают возможность взаимодействия с сервисом «Яндекс.Карты» и сервисом «Яндекс.Народная карта», в том числе с Данными этих сервисов, и возможность использования функциональности указанных сервисов на сайте (-ах) или приложениях Пользователя.

2.2. Термины и определения.

«Данные» — сведения, поступающие от Сервиса, предназначенные для показа Пользователям, включая, но не ограничиваясь, картографические произведения, спутниковые снимки, иные фотоснимки и пользовательские данные.

«Правообладатели» — лица, которым на законном основании принадлежат права на Данные.

«Геокодер» — функция Сервиса, осуществляющая преобразования адресов объектов в их координаты на карте или спутниковом снимке и, наоборот, осуществляющая предобразование координат на карте или спутниковом снимке в адреса объектов.

«Маршрутизатор» — функция Сервиса, предоставляющая возможность автоматического прокладывания маршрутов на Сервисе.

«Панорамы» — функция Сервиса, предоставляющая возможность поиска и показа фотографической панорамы местности.

«API-Ключ» — уникальный идентификатор, выдаваемый Пользователю, позволяющий получить доступ к функциям Сервиса со своего сайта или мобильного приложения.

«Static API» — функция Сервиса, предоставляющая возможность получения Данных в виде статического изображения.

«Конструктор карт» — инструмент Сервиса, предоставляющий возможность создавать карты c объектами Пользователя.

«Рейтинг и Отзывы организации» — функция Сервиса, предоставляющая возможность размещения на странице интернет-ресурса Пользователя информационного блока (виджета), содержащего сведения о рейтинге организации и отзывах, отображаемых в карточке организации пользователя сервиса Яндекс.Справочник.

«JavaScript API» — программная библиотека Сервиса, предоставляющая возможность работы с Сервисом в браузере.

«MapKit» — набор средств разработки, предоставляющий возможность работы с Сервисом в мобильных приложениях для iOS и Android.

«HTTP API» — серверный API, предоставляющий возможность для доступа к отдельным функциям Сервиса, включая, но не ограничиваясь: Геокодер, Static API.

2.3. Использование Сервиса разрешается только при соблюдении следующих условий:

2.3.1. Для использования сервисов JavaScript API, HTTP API Геокодера, MapKit Пользователь обязан зарегистрироваться на Интернет-сайте Яндекса «Технологии Яндекса», доступном по адресу: https://developer. tech.yandex.ru по установленной форме и получить API-Ключ.

2.3.2. После получения API-Ключа (применимо для JavaScript API, HTTP API Геокодера, MapKit) Пользователю необходимо разместить код вызова Сервиса на сайте или в приложении. Яндекс вправе по своему усмотрению отказать в доступе к Сервису без объяснения причин.

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

2.3.4. Пользователь может использовать Данные, функции и инструменты, полученные при помощи Сервиса, только в рамках функциональности, предоставляемой Сервисом.

2.3.5. Яндекс вправе по своему усмотрению отказать в доступе к Сервису без объяснения причин. Пользователь не имеет права использовать любые программы, устройства или иные средства, позволяющие получить API-Ключ автоматическим путем или иным образом с нарушением процедуры, установленной Яндексом.

Яндекс оставляет за собой право устанавливать любые лимиты и ограничения, включая далее перечисленное, но не ограничиваясь этим: на размеры, объем, цветовое оформление и число изображений карты, схемы или спутниковых снимков, предоставляемых посредством Сервиса, и может менять их по собственному усмотрению, без предварительного уведомления Пользователей.

2.3.6. Пользователь передает Яндексу право использования информации и объектов (схемы проезда, объекты на карте и прочее), которые Пользователь самостоятельно разместил при помощи API Конструктора карт, любыми способами в полном объеме. Размещенные Пользователем с использованием Сервиса информация и объекты могут быть использованы на иных сервисах и ресурсах Яндекса, а также с согласия Яндекса на ресурсах третьих лиц. В случае если Пользователь не вправе предоставить Яндексу право использования какой-либо информации или объектов подобным способом, он не вправе размещать их при использовании Сервиса. Права на базу данных, являющуюся совокупностью информации и объектов, созданную с использованием Сервиса, принадлежат Яндексу.

2.3.7. Пользователь настоящим уведомлен и согласен с тем, что при использовании Пользователем Сервиса Яндексом в автоматическом режиме будет собираться, передаваться и храниться на серверах Яндекса включая, но не ограничиваясь, следующая информация: Интернет-протокол (IP) адрес и ID-адрес устройства посетителей сайтов или приложений Пользователя, геолокационная информация о посетителях сайтов или приложений Пользователя. Пользователь гарантирует, что им были получены соответствующие согласия от посетителей сайтов или приложений Пользователя на сбор, передачу и хранение указанной информации на серверах Яндекса.

2.3.8. Пользователь обязуется разместить в своем мобильном приложении в разделе «О программе» или ином подобном разделе мобильного приложения, гиперссылку на Условия использования сервиса Яндекс.Карты, размещенные по адресу: https://yandex.ru/legal/maps_termsofuse, следующего вида — «Условия использования сервиса Яндекс.Карты».

2.3.9. Геокодирование, Маршрутизатор и Панорамы:

2. 3.9.1. Функция Геокодер может быть использована только для сайтов или приложений, использующих Сервис. Пользователь имеет право обрабатывать полученные координаты исключительно для отображения их посредством Сервиса. При этом количество обращений к Геокодеру не должно превышать 1 000 запросов в сутки.

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

2.3.9.3. Количество обращений к Геокодеру, Маршрутизатору и Панорамам не должно превышать 25 000 запросов для одного сайта/ приложения в сутки. Одно обращение к Геокодеру или Маршрутизатору приравнивается к одному запросу, одно обращение к функции поиска ближайшей к определённой координате Панорамы – к пяти запросам соответственно.

2.3.10. «Рейтинг и Отзывы организации»:

2.3.10.1. Функция «Рейтинг и Отзывы организации» предоставляет Пользователю возможность отображать сведения о рейтинге организации и поступающие от сервиса Яндекс.Карты отзывы об организациях, опубликованные пользователями сервиса Яндекс. Карты в соответствии с Условиями использования сервиса Яндекс.Карты (https://yandex.ru/legal/maps_termsofuse).

2.3.10.2. Функция «Рейтинг и Отзывы организации» содержит информацию, размещенную в сервисе Яндекс.Справочник в соответствии с пунктом 3 Условий использования сервиса Яндекс.Карты (https://yandex.ru/legal/maps_termsofuse).

2.3.10.3. Яндекс не несет ответственности за содержание информации, предоставленной сервисом Яндекс.Справочник, ее соответствие законодательству, полноту, корректность и достоверность. Яндекс не несет ответственности за размещение Пользователем (в том числе, в недобросовестных целях) информации, несоответствующей действительности, неактуальной, нарушающей права и законные интересы третьих лиц, а также не подтверждает и не опровергает соответствие законодательству, корректность и достоверность предоставленной сервисом Яндекс.Справочник информации.

2.3.11. ОГРАНИЧЕНИЯ. Используя Сервис, Пользователь не имеет права:

2.3.11.1. Изменять, декомпилировать и/или каким либо образом модифицировать программный код, полученный посредством Сервиса.

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

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

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

2.3.11.5. Использовать Сервис для создания сайтов/ приложений, нарушающих законодательство РФ или иное применимое законодательство, права и законные интересы третьих лиц, а также противоречащих требованиям п. 4 Пользовательского соглашения Яндекса.

2.3.11.6. В случае, если сайт или приложение Пользователя имеет суточную аудиторию более 100 000 пользователей, Пользователь перед началом использования Сервиса обязан связаться с Яндексом путем направления электронного письма по адресу [email protected], в котором должен указать название сайта или приложения и суточную аудиторию пользователей. Указанные действия необходимы для обеспечения максимальной производительности подобных сайтов или приложений Пользователя.

2.3.12. Изменения и версии. Яндекс оставляет за собой право изменять/исправлять или обновлять Сервис в любой момент, без предварительного уведомления Пользователей. При выпуске очередной стабильной версии Яндекс сообщает о её выпуске на веб-страницах Сервиса. После выпуска новой версии Яндекс не гарантирует стабильность и продолжительность работы устаревшей версии. Пользователь, не согласный использовать обновленную версию Сервиса, может либо продолжать на свой страх и риск использовать устаревшую версию Сервиса, либо прекратить использование Сервиса, удалив соответствующий код с сайта (-ов)/ приложения Пользователя.

2.3.13. Реклама. Яндекс оставляет за собой право включить рекламные материалы по своему усмотрению в состав Данных, предоставляемых и отображаемых Сервисом.

2.3.14. При превышении лимитов использования, указанных в п. 2.3.11 Яндекс вправе прекратить доступ Пользователя к Сервису путем блокировки API-ключа, выданного Пользователю.

Использование Данных для целей, указанных в пункте: 2.3.11.3., а также с превышением лимита запросов допускается с использованием Платного API Карт на условиях, расположенных по адресу: https://tech.yandex.ru/maps/commercial.

3.1. Исключительное право на Сервис принадлежит Яндексу. Исключительные права на Данные (включая картографические данные, снимки, рекламные материалы, любые товарные знаки, логотипы или фирменные наименования) принадлежат Яндексу или Правообладателям. Настоящее Соглашение не дает Пользователю каких-либо прав на использование Сервиса или Данных помимо тех возможностей, которые предоставляются непосредственно в интерфейсе Сервиса в соответствии с настоящим Соглашением.

3.2. Используя Сервис, Пользователь предоставляет Яндексу право использовать логотип, товарный знак и/или фирменное наименование Пользователя и/или сайта/ приложения Пользователя в информационных, рекламных и маркетинговых целях, связанных с сервисами «Яндекс.Карты», «Яндекс.Народная карта» и/или «API Яндекс.Карт», в частности, без необходимости получения дополнительного согласия Пользователя и без выплаты ему какого-либо вознаграждения за такое использование.

4.1. Сервис (включая Данные и иную информацию, предоставленную с его помощью) предоставляется Яндексом «как есть». Яндекс не гарантирует соответствие Сервиса и Данных целям и ожиданиям Пользователей, бесперебойную и безошибочную работу Сервиса в целом и отдельных его компонентов и/или функций, а также не гарантирует достоверность, точность, полноту и своевременность Данных, получаемых с помощью Сервиса. Яндекс не несет ответственности и не возмещает никакие убытки, в том числе никакой ущерб, прямой или косвенный, причиненный Пользователю Сервиса или третьим лицам в результате использования или невозможности использования Сервиса, отдельных его компонентов и/или функций, а также в результате использования или невозможности использования Данных, получаемых с помощью Сервиса.

4.2. Пользователь самостоятельно и в полном объёме несёт ответственность за использование и сохранность своего API-Ключа. Пользователь не имеет права получать API-Ключ для третьих лиц, передавать или предоставлять его третьим лицам. Яндекс не несёт ответственности за несанкционированное использование API-Ключа третьими лицами. Все действия, совершенные на Сервисе с использованием принадлежащего Пользователю API-Ключа, считаются совершенными Пользователем.

4.3.Пользователь должен самостоятельно оценивать достоверность, надежность, полноту или полезность Данных и самостоятельно несёт все риски, связанные с использованием (невозможностью использования) Сервиса и Данных, а также ответственность перед третьими лицами за свои действия при использовании Сервиса и Данных, в том числе за то, что действия соответствуют требованиям Законодательства и не нарушают права и законные интересы третьих лиц. Пользователь самостоятельно и за свой счет обязуется урегулировать все претензии и/или иски третьих лиц, связанные с действиями Пользователя при использовании Сервиса.

4.4. Пользователь понимает и соглашается с тем, что использование, указание или размещение в Сервисе любых сведений о каких-либо организациях, предприятиях, лицах, товарах, услугах, в том числе обозначений и/или ссылок в составе Данных и Сервиса, носит исключительно информационный характер и не является выражением их особой поддержки, одобрения или рекомендаций со стороны Яндекса

5. 1. Яндекс имеет право без уведомления по собственному усмотрению прекратить или приостановить доступ Пользователя к Сервису или его отдельным функциям с использованием его учетной записи и/или API-ключа без объяснения причин, в частности, в случае нарушения Пользователем требований настоящего Соглашения.

5.2. Все вопросы и претензии, связанные с использованием/невозможностью использования Сервиса, должны направляться через форму обратной связи по адресу https://tech.yandex.ru/maps/doc/geocoder/desc/feedback/troubleshooting-docpage.

5.3. Яндекс вправе в любое время без уведомления Пользователя изменять текст настоящего Соглашения, Регулирующих документов и/или любые иные условия использования Сервиса. Действующая редакция настоящего Соглашения размещается по адресу: https://yandex.ru/legal/maps_api. Риск неознакомления с новой редакцией Соглашения или Регулирующих документов несет Пользователь, продолжение использования Сервиса после изменения условий Соглашения и/или Регулирующих документов считается согласием с их новой редакцией.

6.1. Актуальная информация о правообладателях и обладателях информации доступна по адресу: https://yandex.ru/legal/right_holders.

6.2. В состав MapKit в качестве отдельных его компонентов входит стороннее программное обеспечение. Актуальная информация о таком стороннем программном обеспечении в составе MapKit доступна по адресу: https://yandex.ru/legal/maps_api/components.

Государственная граница между Российской Федерацией и республикой Абхазия, Грузией, республикой Южная Осетия, Эстонской республикой подлежит международно-правовому оформлению.

Сервис «Яндекс.Карты» неверно считает запросы http api и нарушает собственные правила

{«id»:178633,»url»:»https:\/\/vc.ru\/claim\/178633-servis-yandeks-karty-neverno-schitaet-zaprosy-http-api-i-narushaet-sobstvennye-pravila»,»title»:»\u0421\u0435\u0440\u0432\u0438\u0441 \u00ab\u042f\u043d\u0434\u0435\u043a\u0441.\u041a\u0430\u0440\u0442\u044b\u00bb \u043d\u0435\u0432\u0435\u0440\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u044b http api \u0438 \u043d\u0430\u0440\u0443\u0448\u0430\u0435\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430″,»services»:{«facebook»:{«url»:»https:\/\/www. facebook.com\/sharer\/sharer.php?u=https:\/\/vc.ru\/claim\/178633-servis-yandeks-karty-neverno-schitaet-zaprosy-http-api-i-narushaet-sobstvennye-pravila»,»short_name»:»FB»,»title»:»Facebook»,»width»:600,»height»:450},»vkontakte»:{«url»:»https:\/\/vk.com\/share.php?url=https:\/\/vc.ru\/claim\/178633-servis-yandeks-karty-neverno-schitaet-zaprosy-http-api-i-narushaet-sobstvennye-pravila&title=\u0421\u0435\u0440\u0432\u0438\u0441 \u00ab\u042f\u043d\u0434\u0435\u043a\u0441.\u041a\u0430\u0440\u0442\u044b\u00bb \u043d\u0435\u0432\u0435\u0440\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u044b http api \u0438 \u043d\u0430\u0440\u0443\u0448\u0430\u0435\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430″,»short_name»:»VK»,»title»:»\u0412\u041a\u043e\u043d\u0442\u0430\u043a\u0442\u0435″,»width»:600,»height»:450},»twitter»:{«url»:»https:\/\/twitter.com\/intent\/tweet?url=https:\/\/vc.ru\/claim\/178633-servis-yandeks-karty-neverno-schitaet-zaprosy-http-api-i-narushaet-sobstvennye-pravila&text=\u0421\u0435\u0440\u0432\u0438\u0441 \u00ab\u042f\u043d\u0434\u0435\u043a\u0441.

\u041a\u0430\u0440\u0442\u044b\u00bb \u043d\u0435\u0432\u0435\u0440\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u044b http api \u0438 \u043d\u0430\u0440\u0443\u0448\u0430\u0435\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430″,»short_name»:»TW»,»title»:»Twitter»,»width»:600,»height»:450},»telegram»:{«url»:»tg:\/\/msg_url?url=https:\/\/vc.ru\/claim\/178633-servis-yandeks-karty-neverno-schitaet-zaprosy-http-api-i-narushaet-sobstvennye-pravila&text=\u0421\u0435\u0440\u0432\u0438\u0441 \u00ab\u042f\u043d\u0434\u0435\u043a\u0441.\u041a\u0430\u0440\u0442\u044b\u00bb \u043d\u0435\u0432\u0435\u0440\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u044b http api \u0438 \u043d\u0430\u0440\u0443\u0448\u0430\u0435\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430″,»short_name»:»TG»,»title»:»Telegram»,»width»:600,»height»:450},»odnoklassniki»:{«url»:»http:\/\/connect.
ok.ru\/dk?st.cmd=WidgetSharePreview&service=odnoklassniki&st.shareUrl=https:\/\/vc.ru\/claim\/178633-servis-yandeks-karty-neverno-schitaet-zaprosy-http-api-i-narushaet-sobstvennye-pravila»,»short_name»:»OK»,»title»:»\u041e\u0434\u043d\u043e\u043a\u043b\u0430\u0441\u0441\u043d\u0438\u043a\u0438″,»width»:600,»height»:450},»email»:{«url»:»mailto:?subject=\u0421\u0435\u0440\u0432\u0438\u0441 \u00ab\u042f\u043d\u0434\u0435\u043a\u0441.\u041a\u0430\u0440\u0442\u044b\u00bb \u043d\u0435\u0432\u0435\u0440\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u044b http api \u0438 \u043d\u0430\u0440\u0443\u0448\u0430\u0435\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430&body=https:\/\/vc.ru\/claim\/178633-servis-yandeks-karty-neverno-schitaet-zaprosy-http-api-i-narushaet-sobstvennye-pravila»,»short_name»:»Email»,»title»:»\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043d\u0430 \u043f\u043e\u0447\u0442\u0443″,»width»:600,»height»:450}},»isFavorited»:false}

Как получить доступ к API Яндекса

Клиенты часто спрашивают, как мы научили Foster находить ошибки в аккаунтах Яндекс.

Директ. Все дело в том, что у нашего сервиса есть доступ к API Яндекса. Но, как известно, нельзя так просто взять и начать работу с API Яндекс.Директ. Разработчику необходимо пройти процедуру регистрации приложения. В этом посте я хочу пошагово рассказать, как мы регистрировали приложение для полноценной работы с Директом. 

Кто может получить доступ к API?

Запрос к API выполняется от имени пользователя Директа — рекламодателя или рекламного агентства. В запросе необходимо указывать авторизационный токен — специальный код, разрешающий приложению операции с данными этого пользователя.

Создание нового приложения

В самом начале необходимо зарегистрировать новое приложение. Для этого переходим на страницу OAuth, заполняем необходимые поля, сохраняем. Этот шаг вполне прозрачен. Далее необходимо подать заявку на доступ к API.

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

Заявка на тестовый доступ

На первых этапах работы большинству разработчиков, скорее всего, будет достаточно заявки на ограниченный доступ к API Директа. Он включает в себя только доступ к «Песочнице». Получить подтвержденную заявку на тестовый доступ несложно:

  1. Кликаем по кнопке «Новая заявка».
  2. Выбираем «Тестовый доступ».
  3. Выбираем из списка свое приложение, созданное на первом шаге и заполняем необходимые поля (на этом этапе можно особо не сочинять, достаточно общих сведений).

С вероятностью в 98% ваша заявка будет одобрена.

В оставшихся двух процентах случаев Яндекс сочтет, что приложение будет наносить вред рекламным кампаниям и отклонит заявку.

Заявка на полный доступ

Однако для запуска полноценного сервиса тестового доступа мало. Для получения полного доступа заходим на страницу редактирования заявки и кликаем по ссылке «Оформить заявку на полный доступ». Далее нужно проявить все свои писательские скиллы при заполнении поля «Опишите схему взаимодействия вашего приложения с Директом».

Сразу скажу, что общие фразы Яндекс не промодерирует. Заявку отклонит, а в комментариях попросит более подробно описать работу системы.

Детальный перечень того, что нужно указать в описании: 1. Детальное описание системы. 2. Перечислить весь список методов API, к которым планируется обращение системы. 2.1. Указать, с какой периодичностью методы API будут использоваться. 2.2. Почему выбраны именно эти методы, какие задачи системы они решают. 2.3. Как обработаны ошибки, которые могут возникнуть при обращении к методам API. 3. Подробно описать, как система проверяет лимиты Директа (а их немало), и что происходит при превышении лимитов. Тут самое главное упомянуть, что мы сразу перестаем ломиться к API, как только вышли за грани дозволенного. Можно кинуть пару строк кода с обработкой исключений по превышению лимитов.

4. Желательно для убедительности загрузить несколько скриншотов интерфейса. Никто не требует интерфейса готовой системы, можно ограничиться схематическим расположением кнопок. Проделав весь путь, примерно через час после повторной подачи заявки мы увидели долгожданный статус «одобрено» для полного доступа.

На финише мы получили систему Foster в том виде, в котором вы её знаете. Сегодня клиенты сервиса, подключив соответствующие алгоритмы, могут с легкостью находить ошибки в Яндекс.Директ и исправлять их до того, как они навредят рекламной кампании. Кстати, с результатами интеграции сервиса с услугой [PPC 2.0] от Netpeak можно познакомиться в кейсе.

Становясь гуру API Яндекс.Метрики

To-do: Надо что-то сделать с пафосным названием статьи

Если вас интересует использование Logs API Яндекс.Метрики, то рекомендую сначала ознакомиться с текущей статьей, а затем прочитать статью «Становясь падаваном Logs API Яндекс.Метрики».

1. Лирическое отступление

Давно вынашивал идею написать что-то основательное про API Метрики. Взяться за дело меня вдохновила эта статья на хабре, посвященная выгрузке данных с помощью API Яндекс.Метрики. Но в ней, на мой взгляд, все сложновато, зачем создавать инстансы в Amazon, чтобы писать Python-скрипты? Достаточно поставить IPython и будет интерактивное счастье прямо в браузере, с блэкджеком и скаттер-плотами (для тех кто понимает о чем я).

Но о том как использовать API Метрики с помощью IPython я напишу когда-нибудь потом, а в этой статье я хотел бы рассказать о том как научиться работать с API и получать данные Метрики в формате CSV с помощью одного запроса через браузер. Один раз скопировать запрос и никакой интерфейс Метрики больше не нужен.

Просто перейдя по ссылке можно выгрузить нужные данные:
https://api-metrika.yandex.ru/stat/v1/data.csv?metrics=ym:s:visits,ym:s:pageviews&dimensions=ym:s:lastTrafficSource&date1=31daysAgo&date2=yesterday&limit=10000&offset=1&ids=2138128&oauth_token=05dd3dd84ff948fdae2bc4fb91f13e22bb1f289ceef0037

Но для начала надо научиться эту ссылку формировать.

С функционалом API Яндекс.Метрики я знаком достаточно давно — с момента выхода второй версии API, которая состоялась одновременно с выходом Метрики 2.0. До этого времени работал только с Google Analytics, так как Яндекс.Метрика в принципе не устраивала своим скудным на тот момент функционалом: я осознавал систему как счетчик веб-статистики, но проделать серьезную аналитическую работу в ней было сложно, разве что с помощью «Конструктора отчетов».

Что я подразумеваю под «серьезной» аналитикой? Прежде всего, в моем понимании это построение отчетов с множеством параметров и показателей, а также возможность сегментировать данные по различным критериям. Гигантская проблема заключалась в том, что методы «Констуктора отчетов» не были доступны в первой версии API Метрики, а значит чтобы автоматизировать сбор нужных данных приходилось парсить веб-страницы Метрики, что, мягко говоря, не удобно. Выход нового API стал для компании, в которой я работаю, мощным толчком перейти с использования Google Analytics на Яндекс.Метрику в качестве основной системы веб-аналитики. Причин тут много:

  • Широкая распространенность счетчиков Метрики в рунете
  • Метрика продолжает показывать поисковые запросы, в отличие от Google Analytics
  • Подробная статистика по кампаниям Яндекс.Директа с детализацией до поисковых запросов
  • Как позже оказалось: дружелюбная и достаточно быстрая поддержка (которой я уже, наверно, надоел, но они продолжают героически отвечать)

Миграция с API GA на API Метрики оказалась весьма безболезненной, во многом благодаря тому, что разработчики обеспечили совместимость запросов к Google Analytics Core Reporting API, сделав отдельное совеместимое API.

С Core Reporting я был «на ты», поэтому начать пользоваться совместимым API было проще простого.

Если кому интересно про работу с Google Analytics Core Reporting API, то можете ознакомиться с презентацией моего доклада на iMetrics. Чтобы окончательно добить эту тему, по мотивам доклада написал две статьи: первая и вторая. С тех пор интерфейс GA Query Explorer несколько изменился, но изменения больше косметические. Вообще, благодаря Query Explorer работать с API Google Analytics легко. Такого инструмента мне не хватает в Яндекс.Метрике.

Позже оказалось, что совместимое API не содержит всех доступных в Метрике параметров, к тому же в нем периодически попадались неприятные баги, поэтому было решено переходить на использование нативного API Яндекс.Метрики 2.0.

2. Группировки и метрики

Яндекс.Метрика (и её API) оперирует двумя основными сущностями: Dimensions (группировки) и Metrics (метрики). Эта терминология пришла из технологии обработки данных OLAP, она также встречается и в Google Analytics. Благодаря этому, API GA и API Метрики 2.0 очень похожи, и это существенный плюс, потому что начать работать с нативным API Метрики было очень легко, имея опыт работы с API GA.

Группировки/Dimensions (мне их привычнее называть «измерениями», но буду придерживаться терминологии Метрики) — это какой-либо атрибут визита или хита. Как ясно из названия, группировки позволяют группировать данные по определенным признакам.

Примеры группировок: Источник трафик, Город, Браузер, Страница входа.

Группировки — это все те параметры, которые можно найти в одноименном разделе при построении отчета в интерфейсе Метрики:

Метрики/Metrics — это числовые величины, которые связаны с визитом или хитом.

Примеры метрик: количество визитов, показатель отказов, среднее время на сайте.

В интерфейсе метрики представлены в правой части табличных отчетов и их также список также можно настраивать:

3. Пример

Метрики и группировки взаимосвязаны. Чтобы понять эту взаимосвязь можно рассмотреть пример посетителя, совершающего посещение сайта.

Пускай, это единственное посещение за всю историю сайта. Атрибуты посетителя, например, его город, браузер, источник трафик, пол, возвраст, все что удалось определить Яндекс.Метрике — это группировки. Яндекс.Метрика определила, что пользователь: пришел из Москвы, из поисковой системы Яндекс.

  • Значение группировки «Город» для этого посещения будет «Москва»
  • Значение группировки «Источник трафика» — «Переходы из поисковых систем»

В ходе посещения посетитель просматривает 5 страниц в течение 4 минут 40 секунд, тогда:

  • Значение метрики «Просмотры» будет равно 5 страницам
  • Значение метрики «Длительность визита» — 280 секунд
  • Значение метрики «Отказы» будет равно 0%, т. к.
    доля отказов для этого посещения будет равна 0%, т. к. пользователь просмотрел более одной страницы. Общая статистика посещений будет выглядеть так:

Общая статистика — это отчет, в котором отсутствуют группировки. Создав отчет с группировкой «Город» и метриками «Визиты» и «Просмотры» мы получим вот такой отчет:

Добавим группировку «Источник трафика» и отчет станет выглядеть вот так:

А теперь предположим, что пришел второй посетитель, тоже через ПС Яндекс, но из Петербурга. Он просмотрел за свой визит 1 страницу и был на сайте меньше 15 секунд. Такой визит будет считаться отказным, значит:

  • Значение метрики «Просмотры» будет равно 1 странице
  • Значение метрики «Длительность визита» — 0 секунд
  • Значение метрики «Отказы» — 100%

Общая статистика посещений станет такой:

Если мы построим отчет с единственной группировкой «Источник трафика», то отчет будет иметь такие же значения метрик, как и в целом по сайту, т. к. у нас два посетителя, у которых одинаковое значение группировки «Источник трафика» — они оба пришли из поисковых систем, данные по ним сгруппировались:

Теперь изменим группировку отчета на «Город»:

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

Надеюсь, этот пример дал понимание что такое группировки и метрики.

4. Получение доступа к API

Метрика использует протокол OAuth. Этот протокол позволяет работать с данными Яндекса от лица пользователя Яндекса через приложение, зарегистрированное на Яндексе. Приложение получает доступ к данным пользователя с помощью специального ключа, называемого токеном. Итак, прежде чем начать использовать API Яндекс.Метрики нам нужно создать приложение и получить от имени пользователя OAuth-токен, с помощью которого мы будем делать свои запросы к API.

1: Заходим на страницу https://oauth.yandex.ru/
2: Нажимаем «Зарегистрировать новое приложение»

3: Запоняем поле «Название»
4: Выбираем в разделе права «Яндекс.Метрика» и ставим галочку напротив пункта «Получение статистики, чтение параметров своих и доверенных счетчиков»

5: Нажимаем на ссылку «Подставить URL для разработки» под полем «Callback URL»
6: Нажимаем «Сохранить»

7: На открывшейся странице копируем ID приложения (его также можно скопировать увидеть в URL страницы)

8: Авторизуемся на Яндексе под учеткой пользователя, от имени которого будет работать приложение. (Вы можете получать данные с разных логинов Яндекс.Метрики используя одно и то же приложение, только для этого нужно сначала выдать каждому логину свой токен доступа.)
9: Переходим по URL: https://oauth.yandex.ru/authorize?response_type=token&client_id= (В моем случае URL будет такой: https://oauth.yandex.ru/authorize?response_type=token&client_id=e01d9189ff1544488ae9c9c3dae45b58 и этот URL будет действителен и для вас, и токен вы получите, но лучше создайте свое приложение и укажите свой id)
10: Приложение запросит разрешение на доступ, которое нужно предоставить, нажав «Разрешить»:

11: После чего мы получим токен:

Скопируйте и сохраните его. Этот токен позволит получать данные Яндекс.Метрики для счетчиков того логина, которому вы выдали разрешение на доступ. Срок действия токена большой, если честно даже не знаю насколько большой. Для другого логина нужен будет другой токен, его легко получить перейдя по https://oauth.yandex.ru/authorize?response_type=token&client_id=. Если приложению уже предоставлен доступ, то повторно перейдя по адресу мы снова получим тот же токен, что был выдан ранее.

Открывать доступ к собственноручно созданному приложению — это безопасно, в случае с открытием доступов к стороннему приложению, рекомендую смотреть на уровень доступа к данным. Например, у сторонних приложений, которые строят отчеты по API на основе данных Яндекс.Метрики, не должно быть доступов к редактированию счетчиков. На странице «Управление доступом» в Яндекс.Паспорте можно увидеть каким приложением предоставлен доступ к данным Метрики.

5. Структура запроса к API

Итак, у нас есть токен и теперь мы можем делать запрос. В качестве примера токена я буду использовать тестовый токен, указанный в документации Яндекс.Метрики:
05dd3dd84ff948fdae2bc4fb91f13e22bb1f289ceef0037

В API Метрики есть несколько типов запросов:

  • Таблица
  • Drill down
  • Получение данных по времени
  • Сравнение сегментов
  • Сравнение — drill down

В этой статье я буду рассматривать только запрос «Таблица», т.  к. он позволяет в дальнейшем сформировать любые нужные представления данных.

Запрос «Таблица» вытягивает «плоские» табличные данные, тогда как «Drill down» отдает иерархически вложенные друг в друга данные. Эта логика есть и в интерфейсе. Переключитесь между видом «Линейный список» и «Древовидный список»:

Вид «Древовидный список» удобен для анализа данных в интерфейсе: в поиске озарения можно углубляться и углубляться в данные до тех пор пока не кончатся группировки. Вид «линейный список» удобнее для анализа с помощью табличных процессоров (например, Excel) или обработки с помощью SQL-запросов, в датафрейме R или Pandas. Когда группировок много, «плоский» вид данных несомненно выигрывает, так как позволяет быстро манипулировать всеми доступными данными, а иерархический список жестко привязывает нас к заданной иерархии вложенности группировок.

Запрос к API Метрики — это обычный GET-запрос, который можно выполнить из браузера. Этот запрос представляет собой основной URL «https://api-metrika. yandex.ru/stat/v1/data», вопросительный знак «?» и дальше идут параметры запроса, которые перечисляются через знак «&». Параметров запроса много, но я коснусь только основных. Упрощенно структура запроса выглядит так:

https://api-metrika.yandex.ru/stat/v1/data ?
metrics=<string>
& dimensions=<string>
& date1=<string>
& date2=<string>
& limit=<integer>
& offset=<integer>
& ids=<int,int,…>
& oauth_token=<string>

В одну строку это выглядит так: https://api-metrika.yandex.ru/stat/v1/data?metrics=<string>&dimensions=<string>&date1=<string>&date2=<string>&limit=<integer>&offset=<integer>&ids=<int,int,…>&oauth_token=<string>

Обязательными параметрами являются только metrics, oauth_token и ids.

6. Формируем запрос к API

Начнем составление нашего запроса к API

1 — В параметре metrics нужно перечислить список метрик. Они разделяются через запятую. Наименования метрик чувствительны к регистру. Максимальное число метрик в запросе — 20. Со списком метрик уровня визитов можно ознакомиться по ссылке. Чаще всего в отчетах нужны именно эти метрики, поэтому метрики уровня хита (просмотра) я в этой статье рассматривать не буду. Основные из метрик:

  • ym:s:visits — количество визитов
  • ym:s:pageviews — суммарное количество просмотров страниц
  • ym:s:users — количество уникальных посетителей (за отчетный период)
  • ym:s:bounceRate — показатель отказов
  • ym:s:pageDepth — глубина просмотра
  • ym:s:avgVisitDurationSeconds — средняя продолжительность визитов в секундах
  • ym:s:goal<goal_id>reaches — количество достижений цели, где вместо надо подставить идентификатор цели (зайдите в настройки целей для конкретного счетчика, чтобы получить список их идентификаторов)
  • ym:s:sumGoalReachesAny — суммарное количество достижений всех целей

Для тестового запроса выберем метрики «Визиты» (ym:s:visits) и «Просмотры» (ym:s:pageviews):
metrics=ym:s:visits,ym:s:pageviews

2 — В параметре dimensions нужно перечислить список группировок. Группировки — это необязательный параметр и если их не задать, то в отчете будет представлена общая статистика по сайту. Они также как и метрики разделяются запятой, тоже чувствительны к регистру. Максимальное их число — 10 в одном запросе. Со списком группировок уровня визитов можно ознакомиться по ссылке. Группировки более разнообразны чем метрики. Лично я чаще всего сталкиваюсь с тем, что набор метрик в запросе всегда неизменен, а вот группировки применяю самые различные, в зависимости от стоящей задачи. Поэтому я бы порекомендовал подробно ознакомиться со списком доступных группировок.

Вот пример того какие группировки нужны, чтобы построить отчет по поисковым системам с детализацией до запросов и посадочных страниц:

  • ym:s:<attribution>SearchEngine> — поисковая система
  • ym:s:<attribution>SearchPhrase> — поисковый запрос
  • ym:s:startURL — посадочная страница

Для группировки по датам можно добавить параметр ym:s:date.

Мы видим в группировках параметр <attribution&gt. В некоторых группировках нужно задать атрибуцию трафика. Она определяет как сессии пользователей будут привязываться к источнику трафика. Например, если мы поставили атрибуцию по последнему источнику, то к конкретному источнику в отчете будут отнесены сессии посетителей, у которых этот источник был последним. Существует несколько типов атрибуции трафика:

  • first — атрибуция по первому источнику
  • last — атрибуция по последнему источнику
  • prev — атрибуция по предыдущему источнику
  • lastSign — атрибуция по последнему значимому источнику (значимым считается любой источник, отличный от прямых и внутренних переходов).

Атрибуция в группировках задается с помощью параметризации и тут существует два способа:

  • Подставить вместо <attribution> один из типов (first, last или lastSign) (например, …&dimensions = ym:s:lastSignSearchEngine&. ..)
  • Оставить <attribution> в группировке и добавить в запрос параметр attribution (например …&dimensions = ym:s:<attribution>SearchEngine&attribution=lastSign…)

Для тестового запроса выберем группировку «Источник трафика» (ym:s:referer):
dimensions=ym:s:referer

О чем еще важно знать:

  1. Существует разделение области действия группировок и метрик на «визиты» и «хиты». Это разделение важно учитывать во внимание при запросах к API, нельзя использовать вместе измерения или метрики, которые относятся к разным областям применения. Группировки и метрики, начинающиеся с «ym:s:», имеют область действия «визиты» (s — session), а группировки и метрики, начинающиеся с «ym:pv:» относятся к «хитам» (pv — pageview — просмотр страницы).
  1. Есть группировки, которые могут принимать в определенных случаях пустое значение (null). Например, группировка «поисковая фраза» будет принимать какое-то значение только, когда есть информация о поисковой фразе. Ясно, что если переход был, к примеру, из социальной сети, то поискового запроса там и в помине не будет. Поэтому если группировка стоит первой в перечне, то при получении статистики из API Метрики будут отображены только те данные, где группировка не принимает пустое значение.

3 — date1 — дата начала отчетного периода в формате YYYY-MM-DD (например, 2015-08-31). Кроме абсолютных значений в формате YYYY-MM-DD можно задавать относительные значения:

  • today — сегодняшняя дата
  • yesterday — вчерашняя дата
  • ndaysAgo — n дней назад от сегодняшней даты, где вместо n надо указать количество дней, например 30daysAgo.

Если не задать начальную дату, то применится значение по умолчанию — 6daysAgo (6 дней назад от текущей даты).

Поставим в качестве даты начала отчета 1 января 2015 года:
date1=2015-01-01

4 — date2 — дата окончания отчетного периода в формате YYYY-MM-DD. Формат такой же как у date1. Важно, чтобы date2 не была меньше date1, а так date2 может быть даже в будущем, запрос будет работать.

Конечная дата date2 в нашем отчете будет вчерашним днем:
date2=yesterday

5 — параметр limit — ограничение на количество возвращаемых результатов. По умолчанию — 100, но максимум — 10000. Я чаще всего во всех запросах использую limit=10000, этого хватает для большинства запросов, но бывает, что отчет возвращает больше строк и тогда нам поможет следующий параметр.

В нашем запросе будем получать максимум — 10000 строк:
limit=10000

6 — параметр offset определяет первую строку выборки, значение по умолчанию — 1, что означает, что отчет будет генерироваться с первой строки. Этот параметр полезен, когда отчет содержит больше чем 10000 строк. Предположим, у нас больше 10000 строк. Первым запросом с offset=1 и limit=10000 мы выгрузим первые 10000 строк. Установив offset=10001 мы выгрузим данные, начиная с 10001 строки, при limit=10000 это означает, что будут выгружены строки 10001-20000. Если данных больше, чем 20000, то нужно сделать третий запрос, увеличив offset еще на 10000. И так далее в зависимости от объемов данных.

Устанавливаем первую строку:
offset=1

7 — ids содержит перечень идентификаторов счетчиков. Это поле поддерживает более одного значения, это значит мы можем одним запросом выгружать данные с нескольких счетчиков.

Для нашего тестового запроса возьмем значения ids=2138128,2215573.

Важно помнить, что если мы включаем в отчет данные более чем 1 счетчика, то они будут сгруппированы по тем группировкам, которые мы задали в dimensions. Это означает, что для того, чтобы разделить данные на отдельные сайты нужно передать в отчет какой-то параметр, который будет точно идентифицировать каждый из сайтов, например, добавить группировку «Домен страницы входа» (ym:s:startURLDomain).

Тогда полный список наших группировок будет таким:
dimensions=ym:s:referer,ym:s:startURLDomain

8 — параметр oauth_token — это авторизационный токен. Для каждого пользователя (логина Метрики) должен быть свой токен. Если запросить данные по счетчикам, воспользовавшись другим токеном, не подходящим к пользователю, то запрос возвратит сообщение об ошибке.

Мы будем использовать тестовый токен, указанный в документации:
oauth_token=05dd3dd84ff948fdae2bc4fb91f13e22bb1f289ceef0037

Итак, мы собрали наш запрос по кусочкам и вот что получили:

https://api-metrika.yandex.ru/stat/v1/data?metrics=ym:s:visits,ym:s:pageviews&dimensions=ym:s:referer,ym:s:startURLDomain&date1=2015-01-01&date2=yesterday&limit=10000&offset=1&ids=2138128,2215573&oauth_token=05dd3dd84ff948fdae2bc4fb91f13e22bb1f289ceef0037

7. Выполняем запрос

Теперь вставим запрос в адресную строку браузера и выполним его, перейдя по URL (ну или просто перейдите по ссылке выше).

Получили вот такой ответ:

Не стоит пугаться, это ответ в формате JSON. На самом деле, это крайне удобный формат данных, но пригоден он для использования в программировании, формировании post-запросов на веб-сервера, а вот человеку не очень просто быстро в нем разобраться. Чтобы облегчить эту задачу сделаем JSON более «красивым», добавив к запросу параметр pretty=true:

https://api-metrika.yandex.ru/stat/v1/data?metrics=ym:s:visits,ym:s:pageviews&dimensions=ym:s:referer,ym:s:startURLDomain&date1=2015-01-01&date2=yesterday&limit=10000&offset=1&ids=2138128,2215573&oauth_token=05dd3dd84ff948fdae2bc4fb91f13e22bb1f289ceef0037&pretty=true

Теперь стало чуть более понятно:

Верхушка ответа от API — это параметры нашего запроса (выделена желтым). Тут стоит обратить внимание на параметр dimensions. Это те группировки, что мы указали в своем запросе (выделены красной рамкой). А ниже metrics (выделены синей рамкой):

После перечисления параметров идет ответ от API. Ответ содержится в параметре data, он представлен в виде массива данных, заключенных в квадратные скобки. Этот массив — множество строчек данных, каждая из которых заключена в фигурные скобки. Я обвел один элемент массива оранжевой обводкой — это одна строка данных:

Внутри каждой строки есть dimensions (обведены красным) и metrics (обведены синим). Это значения наших группировок, они указаны в том порядке, в котором идут в параметрах запроса. Значит для этой строки данных:

  • ym:s:referer=«https://google.ru/»
  • ym:s:startURLDomain=«help.yandex.ru»
  • ym:s:visits=57136.0
  • ym:s:pageviews=120931.0

В интерфейсе Метрики эта строчка выглядела бы так:

JSON, как я уже сказал, не самый человекопонятный вид данных, но только в JSON-формате API отдает важный параметр total_rows — общее количество строчек, доступных по заданному запросу. Чтобы найти этот параметр нужно перейти в самый конец страницы:

В нашем случае total_rows = 94629, а это значит, что нам пришлось бы сделать еще 9 запросов, итеративно увеличивая offset на 10000, чтобы выгрузить все данные.

Но оставим JSON разработчикам. Для «обывателей» (надеюсь никто не обидится) Метрика может отдавать данные в CSV. Всё, что для этого нужно — после data в запросе поставить параметр «. csv», тогда URL нашего запроса будет выглядеть так:

https://api-metrika.yandex.ru/stat/v1/data.csv?metrics=ym:s:visits,ym:s:pageviews&dimensions=ym:s:referer,ym:s:startURLDomain&date1=2015-01-01&date2=yesterday&limit=10000&offset=1&ids=2138128,2215573&oauth_token=05dd3dd84ff948fdae2bc4fb91f13e22bb1f289ceef0037 (обратите внимание, что я убрал pretty=true, т. к. для CSV-запроса он не нужен)

После того как мы сделаем запрос по этому URL, загрузится файл data.csv:

Загруженный CSV (Comma-separated values) представляет собой обычный текстовый файл в кодировке UTF-8, где значения разделены запятыми:

Перед нами наши данные в значительно более привычном виде. Сначала идет заголовок таблицы, тут уже нет никаких ym:s:referer и названия группировок и метрик отображаются также как и в интерфейсе. Затем идет строчка с итоговыми данными (по всей выборке, а не только по выгруженным 10000 строкам), а после идут строки с данными. Их 10000. Если мы хотим выгрузить остальное — надо делать ещё запросы (изменяя offset).

8. Импорт в Excel

CSV очень просто загрузить в Excel, воспользовавшись функцией «Получение внешних данных из текста», которая находится в разделе «Данные»:

Сначала указываем путь к данным:

Указываем, что наши данные содержат разделители и задаем кодировку файла UTF-8:

Далее указываем используемый разделитель «запятая» и нажимаем «Готово»:

Помещаем данные на имеющийся или новый лист и вуаля:

9. Заключение

Таким образом, формирование нужных отчетов Яндекс.Метрики, которые будут в несколько кликов доступны для анализа, сводится к тому, чтобы:
а) сделать нужный URL запроса
б) запросить данные через браузер и скачать csv-файл
в) открыть csv-файл в Excel или любом другом табличном процессоре или приложении анализа данных

У запроса даже не нужно менять даты, потому что можно пользоваться такими параметрами: date1=7daysAgo&date2=yesterday. Такой запрос будет выбирать данные за последнюю неделю.

В качестве бонуса приведу некоторые сочетания группировок и метрик, которые могут пригодится. Идентификаторы счетчиков и токен невалидные, вам нужно будет поставить свои, чтобы запросы работали.

Отчет по Директу для поисковых кампаний
https://api-metrika.yandex.ru/stat/v1/data.csv?dimensions=ym:s:directSearchPhrase,ym:s:directClickOrder,ym:s:directBannerGroup,ym:s:directClickBanner,ym:s:directPhraseOrCond,ym:s:UTMSource,ym:s:UTMMedium,ym:s:UTMCampaign,ym:s:UTMContent&metrics=ym:s:visits,ym:s:pageviews,ym:s:bounceRate,ym:s:avgVisitDurationSeconds,ym:s:sumGoalReachesAny&filters=ym:s:directPlatformType==’search’&limit=10000&offset=1&ids=31458&oauth_token=53e1a43ac4af43be73e0ba2c4b&include_undefined=true

Отчет по Директу для кампаний РСЯ
https://api-metrika.yandex.ru/stat/v1/data.csv?dimensions=ym:s:directPlatform,ym:s:directClickOrder,ym:s:directBannerGroup,ym:s:directClickBanner,ym:s:directPhraseOrCond,ym:s:UTMSource,ym:s:UTMMedium,ym:s:UTMCampaign,ym:s:UTMContent&metrics=ym:s:visits,ym:s:pageviews,ym:s:bounceRate,ym:s:avgVisitDurationSeconds,ym:s:sumGoalReachesAny&filters=ym:s:directPlatformType==’context’&limit=10000&offset=1&ids=31458&oauth_token=53e1a43ac4af43be73e0ba2c4b&include_undefined=true

Отчет по ключевым словам из ПС с детализацией по целевым страницам (страницам входа) и статистикой поисковых запросов
https://api-metrika. yandex.ru/stat/v1/data.csv?dimensions=ym:s:lastSearchEngine,ym:s:lastSearchPhrase,ym:s:startURL&metrics=ym:s:visits,ym:s:pageviews,ym:s:bounceRate,ym:s:avgVisitDurationSeconds,ym:s:sumGoalReachesAny&filters=ym:s:lastTrafficSource==’organic’&limit=10000&offset=1&ids=31458&oauth_token=53e1a43ac4af43be73e0ba2c4b&include_undefined=true
(Используется атрибуция last)

Отчет по источникам трафика (каналам), детальным источникам трафика, реферерам и целевым страницам
https://api-metrika.yandex.ru/stat/v1/data.csv?dimensions=ym:s:lastTrafficSource,ym:s:lastSourceEngine,ym:s:referer,ym:s:startURL&metrics=ym:s:visits,ym:s:pageviews,ym:s:bounceRate,ym:s:avgVisitDurationSeconds,ym:s:sumGoalReachesAny&limit=10000&offset=1&ids=31458&oauth_token=53e1a43ac4af43be73e0ba2c4b&include_undefined=true
(Используется атрибуция last)

О чем еще важно помнить:

  • В документации ей всё, ну или почти всё (есть кое-что, что не описано :). Например, есть полный список группировок и метрик
  • Один запрос содержит не более 10 измерений, не более 20 метрик
  • Не все группировки и метрики (одинаково полезны) совместимы (ym:s: и ym:pv:), также нельзя вместе применять некоторые группировки Директа с другими группировками (например, нельзя сделать группировку по часам или по городам, если есть группировка Директа)
  • На одного пользователя (один логин) есть ограничение в 5000 запросов в день

Успехов в автоматизации! Она заставляет поверить, что в мире есть место «магии». А еще даёт возможность убить тупую рутину и больше времени посвящать размышлениям и творчеству 🙂

Вступайте в группу на Facebook и подписывайтесь на мой канал в Telegram, там публикуются интересные статьи про анализ данных и не только.

API Яндекс-геокодера

Перед использованием получите API ключ в кабинете разработчика:

Самые важные ответы на вопросы:

  • В открытом. Ваш код будет публично опубликован, это открытая система
  • В бесплатном. Вы пишете код в образовательных целях
  • Буду отображать данные на карте. По шагам урока вам предстоит это сделать

Что дальше?

Мы уже сами написали для вас функцию, которая получит координаты места по его названию, осталось ей воспользоваться. Для её работы нужно установить библиотеку requests==2.22.0

import requests

def fetch_coordinates(apikey, place):
    base_url = "https://geocode-maps.yandex.ru/1.x"
    params = {"geocode": place, "apikey": apikey, "format": "json"}
    response = requests.get(base_url, params=params)
    response.raise_for_status()
    found_places = response.json()['response']['GeoObjectCollection']['featureMember']
    most_relevant = found_places[0]
    lon, lat = most_relevant['GeoObject']['Point']['pos'].split(" ")
    return lon, lat

Пример использования:

apikey = '41f31cb9-8414-4c9a-bd82-79ec5d22b8ec'  

coords = fetch_coordinates(apikey, "Внуково")
print(coords)  

coords = fetch_coordinates(apikey, "Серпуховская")
print(coords)  

coords = fetch_coordinates(apikey, "Красная площадь")
print(coords)  

Частые проблемы

Порой Яндекс-геокодер отказывается принимать новые ключи. При вызове функция fetch_coordinates ломается с такой ошибкой:

Traceback (most recent call last):
  File "main.py", line 22, in <module>
    coords = fetch_coordinates(apikey2, address)
  File "main.py", line 12, in fetch_coordinates
    response.raise_for_status()
  File "/home/runner/.local/share/virtualenvs/python3/lib/python3.7/site-packages/requests/models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 403 Client Error: Forbidden for url: https://geocode-maps.yandex.ru/1.x?geocode=Moscow&apikey=41f31cb9-8414-4c9a-bd82-79ec5d22b8ec&format=json

Здесь самая важная часть сообщения находится в последней строке:

HTTPError: 403 Client Error: Forbidden for url ...

Ошибка с кодом403 означает, что сервер отказывается работать с указанным ключом API.

Проблема исчезает сама примерно за полчаса. Столько времени требуется серверам Яндекса на то, чтобы узнать о регистрации нового ключа.

Для чего нужны баллы API Яндекс.Директа и как они начисляются – eLama

Что такое баллы API Яндекс.Директа

Баллы API регулируют нагрузку на Яндекс.Директ. За каждый запрос к API с баланса рекламодателя списывается определенное количество баллов. Если баллы закончились, запрос выполнить нельзя.

С этими ограничениями сталкивается каждый пользователь Яндекс.Директа.

Как начисляются баллы

У каждого рекламодателя есть суточный лимит баллов, который рассчитывается индивидуально. Он разделен на 24 часовых интервала. В каждый из этих периодов вы можете использовать 1/24 своего суточного количества баллов. Баллы, начисленные и не потраченные за предыдущие 23 часа, добавляются к этой 1/24 части.

Время начала часового интервала может не совпадать с началом астрономического часа и отличаться у разных рекламодателей.

Можно ли получить больше баллов

Количество баллов зависит от того, насколько рационально вы используете ресурсы Яндекс. Директа. Если количество показов и кликов растет незначительно или на балансе кампаний заканчиваются средства, количество баллов будет уменьшено.

Чтобы получить больше баллов, нужно эффективнее использовать ресурсы системы, например:

  • увеличить рекламный бюджет;
  • увеличить CTR за счет более понятных текстов, подходящих ключевых и минус-слов;
  • соблюдать требования рекламной системы, чтобы объявления не отклонялись при модерации.

За что списываются баллы и в каком количестве 

При успешном выполнении операции баллы списываются за вызов метода и за каждый из вызванных объектов.

ОперацияМетодЗа вызовЗа объект

Добавить расширение

создать51
удалить101
получить расширения, отвечающие заданным критериям51
Операции с группами объявленийсоздать2020
удалить100
получить параметры групп, отвечающих заданным критериям151
изменить параметры2020
Объявлениясоздать2020
архивировать150
удалить100
получить параметры объявлений, отвечающих заданным критериям151
отправить на модерацию150
возобновить показы150
остановить показы150
извлечь из архива400
изменить параметры объявлений2020
Ставкиполучить данные о ставках и приоритетах для ключевых фраз по заданным критериям, и данные, полезные при подборе ставок (данные аукциона по позициям показа на поиске и ставки для охвата различных долей аудитории в сетях)151 балл за каждые 2000 фраз*
назначить фиксированные ставки и приоритеты для ключевых фраз250
рассчитать ставки для фраз по заданному алгоритму (для стратегий с ручным управлением)250
Корректировка ставоксоздать151
удалить150
получить параметры корректировок, отвечающих заданным критериям10
Изменить коэффициент в корректировках ставок20
вкл/выкл набор корректировок150
Кампаниисоздать105
архивировать105
удалить102
получить параметры кампаний, отвечающих заданным критериям11
возобновить показы в кампании105
остановить кампанию105
извлечь из архива105
изменить параметры кампании103
Измененияполучить данные об изменениях в кампаниях, группах и объявлениях10
получить данные об изменениях в кампании10
получить данные об изменениях в справочниках часовых поясов и регионов10
Справочная информация (регионы, часовые пояса, курсы валют и т.  д.)получить данные об изменениях10
Динамические объявлениясоздать условия нацеливания, назначить ставки или приоритеты205
удалить условия нацеливания101
получить условия нацеливания151
возобновить показы по установленным условиям нацеливания101
назначить ставки и приоритеты для условий нацеливания250
остановить показы по условиям нацеливания101
Ключевые фразысоздать202
удалить101
получить параметры ключевых фраз, отвечающих заданным критериям151
возобновить показы50
остановить показы150
изменить параметры202
Быстрые ссылкисоздать2020
удалить100
получить набор быстрых ссылок, отвечающих заданным критериям.151
Виртуальные визиткисоздать2020
удалить100
получить виртуальные визитки, отвечающие заданным критериям.15 

В 5 версии API Яндекс.Директа баллы списываются в том числе и за ошибки, а не только за успешные операции.

За ошибку вызова метода списывается 20 баллов.

Исключение — ошибки серверного типа (сервер недоступен).

За ошибку выполнения операции списывается больше баллов, чем при успешной.

Интеграция API Яндекс.Вебмастер — Falcon Space Документация разработчика

API открывает доступ к данным Яндекс.Вебмастера о сайтах. (https://yandex.ru/dev/webmaster/)

Данные в Вебмастере могут отличаться от данных Подбора слов (Wordstat) и Метрики!

1. Регистрация — нужен аккаунт любого из сервисов Яндекс. Например почта — https://mail.yandex.ru.

2. Зарегистрировать новое приложение — https://oauth.yandex.ru/client/new.

Чтобы начать работу с API Яндекс.Вебмастера, компания должна заключить с Яндексом соглашение в установленной форме и получить client_id в системе авторизации Яндекса oauth.yandex.ru.

Без client_id использование API невозможно.

В дальнейшем оно нам потребуется, чтобы получать токены пользователей, сайты которых мы хотим мониторить.

Заходим в только что созданное приложение, получаем «id приложения» и «пароль приложения»:

Результат регистрации приложения:

ID: 6cbc6303d4c147e697303c1fca9906c9

Пароль: __________________________

Callback URL: https://oauth.yandex.ru/verification_code

Где, ID – это client_id=6cbc6303d4c147e697303c1fca9906c9.

3. Получить токен через код подтверждения (https://yandex.ru/dev/oauth/doc/dg/reference/web-client-docpage/).

URL для запроса токена. https://oauth.yandex.ru/authorize?response_type=token&client_id=6cbc6303d4c147e697303c1fca9906c9

Результат:AgAAAAAEvkq-___________________________

Альтернативный вариант.

Идентификатор доступен в https://oauth.yandex.ru/ (нажмите на название приложения, чтобы открыть его свойства).

4. Кроме этого, при обращении к ресурсам API необходимо указывать ID пользователя — нужен для вызова любых ресурсов API (https://yandex.ru/dev/webmaster/doc/dg/reference/user-docpage/).

Его можно получить в начале работы с помощью вызова ресурса user.

URL запроса: https://api.webmaster.yandex.net/v4/user

Тип запроса: GET 

В Headers запроса необходимо указать ключ Authorization с значением  OAuth ________________________.

Где OAuth .. – это токен.

Результат:

{
    "user_id": 79579838
}

На данном этапе получены все параметры авторизации. Теперь можно работать с API запросами.

Документация — Обзор ресурсов API : https://yandex.ru/dev/webmaster/doc/dg/concepts/getting-started-docpage/.

API Яндекс.Вебмастера доступен для идентифицированных пользователей по адресу: https://api. webmaster.yandex.net.

Получение информации о популярных поисковых запросах

Документация: https://yandex.ru/dev/webmaster/doc/dg/reference/host-search-queries-popular-docpage/

Формат запроса:

Тип запроса: GET

Кодировка: UTF-8.

Формат ответа: JSON.

В Headers запроса необходимо указать ключ Authorization с значением  OAuth AgAEA7qiYr3jAAZkPBHzz0KgYE6KtE6A77OlGE4.

URL запроса: https://api.webmaster.yandex.net/v4/user/{user-id}/hosts/{host-id}/search-queries/popular

 ? order_by= & [query_indicator=]& [date_from=] & [date_to=]

 

Path-параметры

user-id

«user_id»: 79579838

host-id

ID сайта — https:falcon.web-automation.ru:443.

 

Query-параметры

order_by *

Показатель для сортировки запросов

TOTAL_SHOWS                Количество показов.

TOTAL_CLICKS Количество кликов.

query_indicator

Индикаторы для отображения запросов

TOTAL_SHOWS                Количество показов.

TOTAL_CLICKS                 Количество кликов.

AVG_SHOW_POSITION               Средняя позиция показа.

AVG_CLICK_POSITION Средняя позиция клика.

date_from

Дата начала интервала. Если не указан, то данные возвращаются за последнюю неделю. Формат: ГГГГ-ММ-ЧЧ.

date_to

Дата конца интервала. Если не указан, то данные возвращаются за последнюю неделю. Формат: ГГГГ-ММ-ЧЧ.

limit

Размер страницы (1—500). Значение по умолчанию: 500.

 

Параметры query_indicator – можно написать несколько в одном запросе.

 

Пример – реальный запрос с перечислением всех индикаторов для отображения запросов.

https://api.webmaster.yandex.net/v4/user/79579838/hosts/https:falcon.web-automation.ru:443/search-queries/popular?order_by=TOTAL_SHOWS&query_indicator=TOTAL_SHOWS&date_from=2020-01-01&date_to=2020-12-31&query_indicator=TOTAL_CLICKS&query_indicator=AVG_SHOW_POSITION&query_indicator=AVG_CLICK_POSITION

 

Ответ запроса преобразуется из формата JSON в таблицу вида.

query_text

TOTAL_SHOWS

TOTAL_CLICKS

AVG_SHOW_POSITION

AVG_CLICK_POSITION

cms для маркетплейса

89.00

 8.00

 7.43

 6.38

скрипт маркетплейса

73.00

 24.00

 4.60

 4.58

движок для маркетплейса

64.00

 7.00

 7.52

 6. 86

движок маркетплейса

49.00

 5.00

 5.14

 5.00

falcon space

44.00

 13.00

  1.30

  1.00

 

Аналогичным образом реализованы несколько других запросов, указанных в документации.

 

Результат:

Приведен с сокращениями.

{
    "count": 2791,
    "queries": [
        {
            "query_id": "4655b69c239b6462",
            "query_text": "cms для маркетплейса",
            "indicators": {
                "TOTAL_SHOWS": 92.0,
                "TOTAL_CLICKS": 8.0,
                "AVG_SHOW_POSITION": 7.521739130434782,
                "AVG_CLICK_POSITION": 6.375
            }
        },
        {
            "query_id": "f8de4510bbd8a622",
            "query_text": "скрипт маркетплейса",
            "indicators": {
                "TOTAL_SHOWS": 71. 0,
                "TOTAL_CLICKS": 25.0,
                "AVG_SHOW_POSITION": 4.549295774647887,
                "AVG_CLICK_POSITION": 4.52
            }
        },
…
        {
            "query_id": "dde486b6f18ac2c3",
            "query_text": "манго офис коллтрекинг видео",
            "indicators": {
                "TOTAL_SHOWS": 2.0,
                "TOTAL_CLICKS": 0.0,
                "AVG_SHOW_POSITION": 13.0,
                "AVG_CLICK_POSITION": null
            }
        }
    ],
    "date_from": "2020-01-01",
    "date_to": "2020-06-20"
}
CREATE PROCEDURE [dbo].[api_yaWebmasterQueriesPopularCounters_request]
	@parameters ExtendedDictionaryParameter READONLY,  -- входящие параметры для внутренней обработки (используйте Key, Value2)
	@username nvarchar(32)  -- текущий пользователь.
AS
BEGIN

-- ВХ.ПАРАМ. -- АВТОРИЗАЦИЯ
DECLARE @token nvarchar(MAX)
SET     @token = N'OAuth AgAAAAAEvkq-_______________________' -- Authorization

DECLARE @user_id nvarchar(MAX) -- Тип: int64.  ID пользователя. Необходим для вызова любых ресурсов API Яндекс.Вебмастера.
SET     @user_id = N'79579838' -- N'"user_id": 79579838' --

DECLARE @host_id nvarchar(MAX) -- Тип: host id (string). ID сайта.
SET     @host_id = N'https:falcon.web-automation.ru:443'
-- Параметры запроса
DECLARE @order_by nvarchar(100)	--  ? order_by= 			-- TOTAL_SHOWS 	Количество показов. / TOTAL_CLICKS 	Количество кликов.
SET     @order_by = N'TOTAL_SHOWS'

DECLARE @query_indicator nvarchar(100)	--  & [query_indicator=]	-- TOTAL_SHOWS 	Количество показов. / TOTAL_CLICKS 	Количество кликов. / AVG_SHOW_POSITION 	Средняя позиция показа. / AVG_CLICK_POSITION 	Средняя позиция клика.
SET     @query_indicator = N'TOTAL_SHOWS'

-- ! ВСЕ_ПАРАМЕТРЫ - можно получить одним запросом !
DECLARE @query_indicator2 nvarchar(100) = NULL
SET     @query_indicator2 = N'TOTAL_CLICKS'

DECLARE @query_indicator3 nvarchar(100) = NULL
SET     @query_indicator3 = N'AVG_SHOW_POSITION'

DECLARE @query_indicator4 nvarchar(100) = NULL
SET     @query_indicator4 = N'AVG_CLICK_POSITION'


DECLARE @date_from nvarchar(10)	 --  & [date_from=] -- 2020-01-01 -- ГГГГ-ММ-ЧЧ -- 23 	ISO8601 	гггг-мм-дд
SET     @date_from = CONVERT ( nvarchar(10) , GETDATE() - 30 , 23 )   -- минус 1 месяц от текущей даты

DECLARE @date_to nvarchar(10)	 --  & [date_to=] -- 2020-12-31 -- ГГГГ-ММ-ЧЧ -- 23 	ISO8601 	гггг-мм-дд
SET     @date_to = CONVERT ( nvarchar(10) , GETDATE() , 23 )

DECLARE @apiUrl nvarchar(max) = '' 		-- Финальная строка для отправки -- @apiStr -- ФАКТИЧЕСКИ ЭТО Url
-- SET     @apiUrl = 'https://api. webmaster.yandex.net/v4/user/79579838/hosts/https:falcon.web-automation.ru:443/search-queries/popular?order_by=TOTAL_SHOWS&query_indicator=TOTAL_SHOWS&date_from=2020-01-01&date_to=2020-12-31&query_indicator=TOTAL_CLICKS&query_indicator=AVG_SHOW_POSITION&query_indicator=AVG_CLICK_POSITION'

SET     @apiUrl = 'https://api.webmaster.yandex.net/v4/user/'+@user_id
                                                             +'/hosts/'+ @host_id
                                                             +'/search-queries/popular?order_by='+@order_by
                                                             +'&query_indicator='+@query_indicator
                                                             +'&date_from='+@date_from
                                                             +'&date_to='+@date_to
                                                             + IIF (  @query_indicator2 IS NOT NULL, +'&query_indicator='+@query_indicator2, '' )
                                                             + IIF (  @query_indicator2 IS NOT NULL, +'&query_indicator='+@query_indicator3, '' )
                                                             + IIF (  @query_indicator2 IS NOT NULL, +'&query_indicator='+@query_indicator4, '' )

    -- ОТЛАДКА
	 insert into as_trace ( header, text, username, code , created )   values( '@apiUrl', @apiUrl , @username, 'api_yaWebmasterQueriesPopularCounters_request' , GETDATE() )

    -- Постоянные табблицы - 1 - dbo. api_yaWebmasterSessions - Журнал Запусков (дата + параметры) - 2 - api_yaWebmasterSessionsData - результат
    insert into dbo.api_yaWebmasterSessions ( created , userСreator , requestPROCEDURE
                                             	, apiCommonName		  -- убрать из измени проц. начало api_ ... и конец ... _request
                                                , date_from	  , date_to
                                             	, apiUrl )
    values(  GETDATE() ,  @username , 'api_yaWebmasterQueriesPopularCounters_request'
                                    , 'yaWebmasterQueriesPopularCounters'          -- убрать из измени проц. начало api_ ... и конец ... _request
                                    , @date_from , @date_to
                					, @apiUrl  )


	-- SELECT 1  Msg, Result, Url (адрес, куда будет идти запрос)
	select '' Msg, 1 Result
          , @apiUrl  Url

	-- SELECT 2 PARAMETERS - параметры, которые будут передаваться во внешний источник
    select 'Authorization' name
         , 'OAuth AgAAAAAEvkq-_____________________________' value  -- @token
         , 'header' AS [type] -- form (в форме передается), header (в http headers), get запросы передавайте прямо в URL
END
CREATE PROCEDURE [dbo]. [api_yaWebmasterQueriesPopularCounters_response]
	@response nvarchar(max),
	@parameters ExtendedDictionaryParameter READONLY,  -- входящие параметры для внутренней обработки (используйте Key, Value2 - те же что и на request)

	@username nvarchar(32)
AS
BEGIN
   -- ОТЛАДКА
   	insert into as_trace ( header, text, username, code , created )  values( 'LEN @response ', LEN ( @response ) , @username, 'api_yaWebmasterQueriesPopularCounters_response' , GETDATE() )

	insert into as_trace ( header, text, username, code , created )  values( '@response - 1    , 1024 ', SUBSTRING ( @response , 1    , 1024 ) , @username, 'api_yaWebmasterQueriesPopularCounters_response' , GETDATE() )


-- ! Преобразование - заменить одиночную кавычку на двойную ! - иначе это будет обрыв строки (конец стркои) в середине текста !
-- "eckmar's marketplace script v2.0",
--        !
DECLARE @json1 nvarchar(max)
SET     @json1 = REPLACE ( @response  , '''' , '''''' )
-----------------------------------------------------------------------------------------------------------------
-- Постоянные табблицы - 1 - dbo. api_yaWebmasterSessions - Журнал Запусков (дата + параметры) - 2 - api_yaWebmasterSessionsData - результат
-- Определение номера сесии, считаем, что это последняя запись в журнале запусков для текущего пользователя
DECLARE @maxSessionID int = 0
SELECT  @maxSessionID = ISNULL( MAX( id ), 0) FROM dbo.api_yaWebmasterSessions WHERE userСreator = @username AND apiCommonName = 'yaWebmasterQueriesPopularCounters'

-- Основной запрос
-- ВСТАВКА ДАННЫХ
INSERT INTO   dbo.api_yaWebmasterSessionsData ( sessionID, countResult	, date_from, date_to
                     , query_id , query_text, TOTAL_SHOWS, TOTAL_CLICKS	, AVG_SHOW_POSITION, AVG_CLICK_POSITION )
SELECT @maxSessionID AS sessionID
	 --
     , TRY_CAST ( JSON_VALUE(@json1, '$.count')	AS INT ) AS countResult
     , JSON_VALUE(@json1, '$.date_from') AS	date_from		-- "date_from": "2020-01-01",
     , JSON_VALUE(@json1, '$.date_to')	 AS date_to			-- "date_to": "2020-06-14"
	 --
	 , Query.query_id, Query.query_text
     , ISNULL( Query.TOTAL_SHOWS, 0) , ISNULL( Query. TOTAL_CLICKS, 0) , ISNULL( Query.AVG_SHOW_POSITION, 0) , ISNULL( Query.AVG_CLICK_POSITION, 0)

FROM OPENJSON(@json1, N'$.queries') -- Зашли в массив queries , далее в WITH считаем , что адреса уже внути массива queries
WITH (
      query_id      VARCHAR(200)    N'$.query_id'
    , query_text    VARCHAR(200)    N'$.query_text'
	, TOTAL_SHOWS   		decimal(18, 2)  N'$.indicators.TOTAL_SHOWS' -- VARCHAR(200)
	, TOTAL_CLICKS   		decimal(18, 2)  N'$.indicators.TOTAL_CLICKS'
	, AVG_SHOW_POSITION 	decimal(18, 2)  N'$.indicators.AVG_SHOW_POSITION'
	, AVG_CLICK_POSITION    decimal(18, 2)  N'$.indicators.AVG_CLICK_POSITION'
    ) AS Query

-----------------------------------------------------------------------------------------------------------------
--  табл. с данными - dbo.api_yaWebmasterSessionsData / строк - ***
DECLARE @isExistTable int = 0
DECLARE @countTableRecords int = 0

SELECT  @isExistTable = ISNULL( object_id('api_yaWebmasterSessionsData') , 0 )

IF @isExistTable > 0 SELECT @countTableRecords = ISNULL( count(*) , 0 ) FROM dbo. api_yaWebmasterSessionsData WHERE sessionID = @maxSessionID

	-- SELECT 1
	select 'Табл. с данными - dbo.api_yaWebmasterSessionsData '
           + IIF ( @isExistTable = 0
                    , 'не заполнена!'
                    , 'заполнена, записей - '+ TRY_CAST ( @countTableRecords AS nvarchar) +'. Сесиия - '+ TRY_CAST ( @maxSessionID AS nvarchar)
                 )  AS  Msg
          , 1 Result
          , @response Response

	-- SELECT 2 Внешние действия

END

Приведенные ниже запросы API работают по тому же принципу.

Код исходящего запроса

Название

yaWebmasterHosts

ya Webmaster — Список сайтов

 yaWebmasterHostInfo

ya Webmaster — Информация о сайте

 yaWebmasterHostDiagnostics

(20)ya Webmaster — Диагностика сайта

 yaWebmasterQueriesPopularTOTAL_SHOWS

(16)ya Webmaster — Популярные запросы — TOTAL_SHOWS

 yaWebmasterQueriesPopularTOTAL_CLICKS

(16)ya Webmaster — Популярные запросы — TOTAL_CLICKS

 yaWebmasterQueriesPopularAVG_SHOW

(16)ya Webmaster — Популярные запросы — AVG_SHOW_POSITION

 yaWebmasterQueriesPopularAVG_CLICK

(16)ya Webmaster — Популярные запросы — AVG_CLICK_POSITION

 

Falcon Space — функциальная веб-платформа разработки на узком стеке MS SQL/Bootstrap. Вводная по Falcon Space

Получите бесплатный ключ API Яндекса

Fedilab использует API Яндекса для переводов, потому что он позволяет бесплатно ежедневный лимит запросов в 1 000 000 символов и ежемесячный лимит в 10 000 000 символов. Хотя этого кажется достаточно, Mastalab делится ключом API со всеми пользователями, это означает, что рано или поздно общий ключ может достичь одного из этих ограничений.

Хорошая новость: Fedilab позволяет задавать ключи API, так что вы можете создать свой собственный ключ API, которым никто не будет делиться.

Этот пост объяснит вам, как легко создать собственный ключ API с помощью Яндекс Переводчика.

Сначала вам нужно перейти на эту страницу: https://tech.yandex.com/translate/

Первый пункт говорит вам, что вы можете тестировать переводы, но здесь это не так важно.

Второй пункт, представит вам пользовательское соглашение и правила форматирования результатов перевода. Приложение учитывает эти моменты (если вы заметили какие-либо изменения, сообщите мне о них).

Третий пункт позволит создать ключ, который вы вставите в приложение.

1 — Итак, нажмите «Получить бесплатный ключ API». Вам нужно будет создать свою учетную запись или использовать уже существующую.

2 — В правом верхнем углу нажмите «+ Создать новый ключ»

Создать новый ключ

3 — Напишите небольшое описание для этого ключа (будет полезно, если вы управляете несколькими ключами)

Описание ключа

4 — Тогда вы получите свой ключ. Вы можете заметить, что можно отключить ключ (я отключу этот ключ после тестирования, потому что я его отображал).

Новый ключ API

5 — Следующий шаг — скопировать и вставить этот ключ в настройки Fedilab. Если вы создали этот ключ на компьютере, вы можете отправить его на свой телефон по электронной почте. Затем откройте настройки в левом меню. Перейдите на первую вкладку и перейдите к настройкам перевода. Просто скопируйте / вставьте свой ключ.

Открыть настройки

Длительное нажатие на поле клавиши

Вставьте ключ API

Fedilab использует MyTransL — библиотеку, которую я разработал.Эта библиотека настроена в Fedilab для сокрытия конфиденциальных данных перед их отправкой в ​​API перевода:

Скриншот MytransL

Каждое электронное письмо / упоминание / теги / URL-адреса будут обфусцированы перед отправкой в ​​API.

Статья из @apps

vbauer / yandex-translate-api: простая клиентская библиотека REST для Яндекс.Переводчика

yandex-translate-api — простая клиентская библиотека REST для Яндекс.Переведите. API предоставляет доступ к онлайн-сервису машинного перевода Яндекс. Он поддерживает более 90 языков и может переводить отдельные слова или целые тексты.

Электронная документация: Javadoc

Для работы с этой библиотекой необходимы следующие действия:

  • Установить JDK 1.8
  • Получите бесплатный ключ API.

Конфигурация Gradle:

 репозиториев {
    maven {
        url "https://jitpack.io"
    }
}

dependencies {
    компилировать com.github.vbauer: yandex-translate-api: 1.4.2 '
} 

Конфигурация Maven:

 <репозиторий>
     jitpack.io 
     https://jitpack.io 


<зависимость>
     com.github.vbauer 
     яндекс-переводчик-api 
     1.4.2 
 

Для справки:

Точкой входа в эту библиотеку является интерфейс YTranslateApi (и соответствующая реализация YTranslateApiImpl ).

 def key = "<ваш ключ>"
def api = новый YTranslateApiImpl (ключ) 

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

  • DetectionApi определяет язык указанного текста.
  • LanguageApi возвращает список направлений перевода, поддерживаемых службой.
  • TranslationApi позволяет переводить текст с одного языка на другой.

Обнаружение API

В следующем примере возвращается Language.EN :

 def language = api.detectionApi (). Detect («Привет, мир!») 

LanguageApi

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

 def languages ​​= api.languageApi (). All () 

Также можно получить имена для каждого языка, используя параметр ui :

 def languages ​​= api.languageApi (). All (Language.RU) 

TranslationApi

Следующий код должен переводить русское слово "Как дела?" в английский вариант ( «Как дела?» или что-то подобное):

 def translation = api.translationApi (). translate (
    "Как дела?", Direction.of (Language. RU, Language.EN)
) 

Исходный язык также может быть определен автоматически (поэтому вам нужно указать только целевой язык):

 def translation = api.translationApi (). Translate ("Как дела?", Language.EN) 

MIT

Топ-10 лучших API-интерфейсов перевода [2020] для разработчиков. Рассмотрено более 20 API

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

К счастью, существует несколько API перевода , которые были разработаны, чтобы сделать процесс перевода веб-страниц, фраз и слов безболезненным.

Что такое API перевода?

API перевода может динамически переводить текст между языковыми парами. Современные API-интерфейсы для перевода текста поддерживают тысячи языковых пар. API перевода может также программно определять язык ввода. Эти API-интерфейсы основаны на статистическом машинном переводе и машинном обучении.

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

Чтобы помочь вам принять лучшее решение о наиболее подходящем API для использования, мы рассмотрели несколько API перевода на основе следующих четырех основных критериев:

  • Функции API: Мы оценили выдающиеся характеристики каждого из API перевода
  • Поддерживаемые языки : Мы оценили языки, поддерживаемые каждым из API.
  • Цена : Мы проанализировали стоимость интеграции каждого из API в приложения.
  • Простота использования : Мы рассмотрели простоту использования каждого из API.

В итоге мы составили следующий список из 10 лучших лучших переводчиков API:

10 лучших API для перевода

TL; DR: Вот таблица, в которой обобщены наши основные выводы.

API

Характеристики API Поддерживаемые языки Стоимость Простота использования
Google Translate API Перевести текст, определить исходный язык Более 100 Бесплатно для 50 запросов в день, затем 0 долларов США.05 за каждый дополнительный запрос Легко
Microsoft Translation API Перевод текста, определение исходного языка, транслитерация слов, возможности двуязычного словаря Более 60 Бесплатные и различные платные планы от 25 до 200 долларов в месяц Легко
Перевести API Перевести текст, определить исходный язык 104 Бесплатные и различные платные планы от 19 до 59 долларов в месяц Легко
API перевода текста Перевести текст, перевести текст на веб-странице HTML Более 12 Бесплатные и различные платные планы от 20 до 75 долларов в месяц Легко
SYSTRAN. io Translation API Перевести текст, определить исходный язык Более 130 Бесплатно Легко
MyMemory Translation API Поиск человеческих или машинных переводов, вставка переводов Несколько Бесплатные и платные планы стоимостью 299 долларов США или 499 долларов США в месяц Легко
My Translator Pro API Перевести текст, определить исходный язык Более 64 Бесплатные и платные варианты 269 и 469 долларов в месяц Легко
Linguatools Translate API Переводчик с и на немецкий язык для шести других языков 6 Бесплатные и различные платные планы от 4 долларов.От 90 до 24,90 долл. США в месяц Легко
API Яндекс Переводчика Перевод текста, интеллектуальный набор, примеры произношения и использования, словарь с транскрипцией Более 90 Бесплатно Легко
API переводчика языков IBM Watson Перевод текста, создание моделей для конкретной предметной области, настройка переводов Более 20 Бесплатно Легко

API Google Translate позволяет использовать мощную облачную технологию машинного обучения Google для автоматического перевода текстов с одного языка на другой.

Возможности API: С помощью Google Translate API вы можете быстро перевести произвольную строку текста с одного языка на другой. Кроме того, если исходный язык неизвестен, API может определить предоставленный язык. Технология, лежащая в основе API, постоянно обновляется с учетом улучшений исследовательских групп Google, ведущих к усовершенствованным услугам перевода.

Поддерживаемые языки: API поддерживает более 100 языков.

Цена: На платформе Rakuten RapidAPI API доступен бесплатно, но вы ограничены 50 запросами в день. Если вы превысите дневной лимит бесплатного использования, вы заплатите 0,05 доллара США за каждый дополнительный запрос.

Простота использования: Как и другие продукты Google, Translate API хорошо документирован с множеством примеров интеграции, что упрощает его использование. Кроме того, существует активное сообщество, которое поможет вам с любыми проблемами интеграции.

Как интегрировать Google Translate API? Если у вас есть этот вопрос, перейдите к Руководству по Google Translate API. Вы также получите бесплатный ключ API Google Translate, зарегистрировавшись у нас.

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

Функции API: Помимо возможности переводить текст на несколько языков, Microsoft Translation API включает функции автоматического определения языка исходного текста, транслитерации слов и предложений из одного скрипта в другой, а также возможности двуязычного словаря для показаны альтернативные переводы с английского языка или на английский.

Поддерживаемые языки: API поддерживает более 60 языков.

Цена: На Rakuten RapidAPI вы можете использовать API бесплатно, если вы делаете менее 2500 запросов в месяц. Для более длительного использования вы можете выбрать любой из его платных планов, стоимость которых начинается от 25 долларов в месяц до 200 долларов в месяц.

Простота использования: Корпорация Майкрософт предоставляет руководства по быстрому запуску, учебные пособия и другие полезные ресурсы, которые помогут вам максимально эффективно использовать API.

Является ли Microsoft Translator API бесплатным? У него есть бесплатный уровень, который дает вам 2500 запросов в месяц. Платные планы стоят от 0,003 до 0,002 доллара за запрос.

Translate API — это простой API, который позволяет переводить произвольную строку текста с одного языка на другой.

Возможности API: Помимо перевода текстов, вы можете использовать Translate API для определения языка входных текстов. API полагается на переводчиков исходного кода из надежных и мощных систем, таких как Google, Oxford и многих других.

Поддерживаемые языки: API поддерживает 104 языка.

Цена: Существует бесплатный план, который ограничен до 2 000 запросов в месяц. Платные планы варьируются от 19 до 59 долларов в месяц.

Простота использования: Существует простая документация, которая позволяет легко приступить к работе с API за несколько минут.

API перевода текста — это простой API, который позволяет легко переводить тексты с одного языка на другой.

Возможности API: API перевода текста позволяет выполнять переводы с одного поддерживаемого языка на другой поддерживаемый язык. Кроме того, API позволяет переводить текст веб-страницы HTML на другой язык. Вы можете указать HTML-теги для извлечения и перевода.

Поддерживаемые языки: API поддерживает более 12 языков.

Стоимость: Если вы делаете менее 5 запросов в день, вы можете использовать API бесплатно.Для более широкого использования вы можете выбрать любой из его платных планов, стоимость которых начинается от 20 долларов в месяц до 75 долларов в месяц.

Простота использования: Существует простая документация, которая поможет вам как можно быстрее приступить к работе с API.

SYSTRAN — это компания, предоставляющая широкий спектр API-сервисов, которые вы можете использовать, чтобы добавить в свои приложения впечатляющие возможности языковой обработки.

Возможности API: SYSTRAN.io Translation and NLP API предоставляет программный доступ к технологии машинного перевода SYSTRAN для автоматического перевода документов с одного языка на другой.API также может определять язык исходного документа, если он не определен. (Ознакомьтесь с нашим тщательно отобранным списком лучших API НЛП.)

Поддерживаемые языки: API поддерживает более 130 языков.

Цена: На Rakuten RapidAPI API перевода SYSTRAN.io доступен бесплатно.

Простота использования: SYSTRAN предоставляет подробную документацию и примеры кода, чтобы упростить интеграцию API в приложения и веб-сайты.

MyMemory — это обширная онлайн-база данных, содержащая миллиарды слов, переведенных профессиональными переводчиками-людьми.

Возможности API: С помощью MyMemory Translation API вы можете искать переводы, доступные в обширной базе данных MyMemory. Переводы ранжируются по качеству и схожести, что позволяет вам получить лучший перевод для данного исходного текста. Если человеческий перевод недоступен, API обеспечивает современный машинный перевод. Кроме того, вы можете использовать API для вставки переводов в базу данных MyMemory.

Поддерживаемые языки: API поддерживает несколько языков.

Стоимость: На Rakuten RapidAPI вы можете использовать API бесплатно, если вы переводите менее 10 000 слов в месяц. Помимо бесплатного плана, вы можете платить 299 или 499 долларов в месяц и переводить 500 000 или 1 000 000 слов в месяц соответственно.

Простота использования: API был разработан так, чтобы его было легко реализовать. Существует также исчерпывающая документация, которая поможет вам быстро начать работу.

My Translator Pro API — это простой в использовании API для выполнения переводов текста.

Возможности API: My Translator Pro API позволяет получить доступ к первоклассной технологии перевода для точного перевода текстов с одного языка на другой. Более того, если исходный язык не определен, API автоматически определяет его.

Поддерживаемые языки: API поддерживает более 64 языков.

Стоимость: С бесплатной версией API вы можете делать до 11 000 запросов в месяц. Платные варианты оцениваются в 269 долларов в месяц и 469 долларов в месяц.

Простота использования: API поставляется с простой и понятной документацией, позволяющей ускорить интеграцию.

API Linguatools Translate ищет слово в двуязычном словаре и возвращает его переводы, упорядоченные по частоте.

Возможности API: С помощью Linguatools Translate API вы можете выполнять переводы с и на немецкий язык для других шести языков. Вы можете фильтровать результаты API в соответствии с классом слов или минимальной частотой.

Поддерживаемые языки: API поддерживает переводы с и на немецкий язык для различных языков, таких как английский, голландский, чешский, испанский, итальянский и польский.

Стоимость: Linguatools Translate API доступен бесплатно, но вы ограничены 1000 запросами в месяц. Для более расширенного использования вы можете выбрать любой из его платных планов, стоимость которых начинается от 4,90 долларов в месяц до более 24,90 долларов в месяц.

Простота использования: Существует простая документация, которая поможет вам легко интегрировать API в ваше приложение.

API Яндекс Переводчика предлагает программный доступ к облачной службе машинного перевода Яндекса для упрощения встраивания в мобильные или веб-приложения.

Возможности API: API Яндекс Переводчика позволяет автоматически переводить отдельные слова, полные небольшие тексты или большие объемы текста, например техническую документацию. API также включает функции прогнозируемого набора текста, примеры произношения и использования, словарь с транскрипцией и многое другое.

Поддерживаемые языки: API поддерживает более 90 языков.

Цена: На Rakuten RapidAPI API Яндекс Переводчика доступен бесплатно.

Простота использования: Яндекс предоставляет исчерпывающую документацию, подробные описания и другие вспомогательные материалы, которые помогут вам с легкостью использовать API.

API Яндекс Переводчика не бесплатен. Вы должны внести минимальный платеж в размере 15 долларов США.

API-интерфейс IBM Watson Language Translator позволяет использовать мощную технологию нейронного машинного перевода IBM и переводить тексты с одного языка на другой.

Возможности API: С помощью IBM Watson Language Translator API вы можете легко переводить тексты на разные языки. API поставляется с несколькими моделями для конкретной предметной области, которые увеличивают скорость и точность переводов. Кроме того, вы можете настроить свои переводы в соответствии с вашими предпочтениями терминологии и языка.

Поддерживаемые языки: API поддерживает более 20 языков.

Цена: На Rakuten RapidAPI вы можете использовать API бесплатно.

Простота использования: IBM известна тем, что предоставляет исчерпывающую документацию для разработчиков и другие полезные ресурсы, позволяющие упростить использование своих служб API, и этот API не является исключением.

Заключение

Это список 10 лучших API-интерфейсов перевода Rakuten RapidAPI. Мы надеемся, что вы найдете API, который можно использовать для добавления многоязычных возможностей в свои приложения.

Вы можете нажать здесь, чтобы найти другие удивительные API для перевода на нашей платформе.

О Rakuten RapidAPI

Rakuten RapidAPI — это крупнейшая в мире торговая площадка API с более чем 8000 сторонних API, которую используют более 500000 активных разработчиков. Мы позволяем разработчикам создавать трансформирующие приложения с помощью API. Находите, тестируйте и подключайтесь ко всем необходимым API в одном месте!

Ознакомьтесь с некоторыми из лучших в мире API-интерфейсов, включая Microsoft, Sendgrid, Crunchbase и Skyscanner.

Facebook | LinkedIn | Twitter

Best Translation API — Переведите книгу по дешевке

Если вы хотите перевести всю книгу или всего несколько статей на своем веб-сайте, единственный способ добиться 100% удобочитаемости текста — это поручить переводчику работу за вас.

В большинстве случаев это означает, что вы должны платить кому-то за слово. Например, если вы хотите перевести с английского на немецкий, вы будете платить от 12 центов за слово до 32 центов за слово. Если вы не переводите детскую книгу с подсветкой, ваша общая стоимость может стать непомерно высокой.

Если бы это был 2010 год, обсуждение на этом закончилось бы.

Добро пожаловать в эпоху искусственного интеллекта и машинного обучения. В 2020 году машина все еще не может переводить так же хорошо, как человек; однако машина может просто переводить достаточно хорошо, чтобы сделать ее рентабельной интеграцию в процесс перевода.

Самый дешевый способ сделать перевод — задействовать как машины, так и людей.

Сначала вы передаете исходный текст машине или API (интерфейс прикладного программирования). Машина вернет текст, переведенный машиной.

Затем вы передаете и исходный текст, и перевод человеку-переводчику. Их работа будет заключаться в «очеловечивании» и редактировании текста так, чтобы он читался так, как если бы его написал человек.

Чтобы этот процесс был рентабельным, машина должна, прежде всего, хорошо выполнять свою работу.В противном случае переводчик-человек может тратить больше времени на редактирование, чем на перевод.

Я протестировал четыре основных API перевода, чтобы убедиться, что какой-либо из них достаточно хорошо справляется с работой этого процесса.
Мне также было любопытно посмотреть, как API перевода сравниваются друг с другом.

Эта статья ответит на оба вопроса.

Для тестирования API я взял два небольших абзаца из книги (с разрешения издателя).Важно, чтобы этот текст и его перевод не были доступны в Интернете. Google обучает свою модель машинного обучения переводу с помощью общедоступных переводов. При тестировании модели тестовая выборка должна находиться за пределами обучающей выборки.

Ниже вы найдете изображения переводов текста с немецкого на английский.

Google Translate

https://translate.google.com/

Microsoft Text Translation

https://azure.microsoft.com / en-us / services / cognitive-services / translator-text-api /

IBM Watson Language Translator

https://www.ibm.com/watson

Яндекс Переводчик

https: // translate .yandex.com /

Справедливо заключение, что API перевода Google справился с задачей лучше, чем Microsoft, Watson и Яндекс. Или, другими словами, нашему редактору-человеку было бы меньше работы с переводом, созданным Google.

Также справедливо сказать, что переводчику потребуется меньше времени на редактирование перевода Google, чем на написание перевода с нуля.

Обратите внимание, что я пробовал только перевод с немецкого на английский. Различные языки могут дать разные результаты.

Google Translate API и App Inventor: альтернатива Яндекс

2 сентября, 2016 Блог Карен

Это гостевой блог главного тренера Массачусетского технологического института Ивона Морина

В настоящее время количество подключенных устройств, доступных через Интернет, привело к подключению людей. Инфраструктура, которая поддерживает все коммуникации между устройствами, также известна как Интернет вещей (IoT).

Этот блог не предназначен для рекламы Google API и не ставит своей целью преуменьшение значительных функций и возможностей Яндекс. Авторы только хотят поделиться с читателями своим опытом, который, по его мнению, может служить определенной цели, поскольку можно захотеть узнать, как перевести что-то на язык, который еще не указан в репертуаре Яндекса, или создать приложение с множеством различных API машинного переводчика для анализа и сравнения. Наша цель в этом блоге — предоставить пользователю лучшее представление о том, как фильтровать результат из Интернета с помощью блока парсера JSON или текстовых функций App Inventor.Конечно, при использовании Яндекса App Inventor уже позаботился об этих проблемах, поэтому пользователям не нужно о них беспокоиться. Но с API, отличными от Яндекс, вы должны знать, как манипулировать строками, чтобы получить желаемый результат; это то, что мы собираемся вам показать.

Для этого мы создаем приложение со следующими компонентами для графического интерфейса:

  • Счетчик, который будет использоваться для выбора желаемого языка из раскрывающегося списка. Но для целей этого блога список включает только 4 языка (французский, испанский, английский и гаитянский креольский)
  • Текстовое поле, используемое для получения пользовательского ввода для перевода. Подсказка для этого текстового поля содержит шаги, которые помогут пользователю начать работу.
  • Две метки используются для отображения вывода переведенного текста с каждого сервера (Google и Яндекс).

Чтобы начать использовать API машинного переводчика, нам необходимо настроить учетную запись для службы, если мы не используем встроенную процедуру или метод Яндекса, созданные для этой цели в App Inventor. Поскольку мы используем Google Translate API и Яндекс, нам нужна как минимум учетная запись для Google, которая у нас уже есть.После создания учетной записи нам нужно перейти в консоль API, чтобы создать проект и включить API для этого проекта. При получении учетных данных API для проекта выберите ключ API браузера. Если в этом процессе требуется помощь, следуйте документации по API, доступной в пользовательской консоли. Теперь, когда ключ API создан, как его использовать? Это вопрос, на который мы обещаем ответить далее.

Как упоминалось ранее, одним из преимуществ использования Яндекса является то, что App Inventor уже учел метод, используемый для выполнения запроса к веб-API, и способ обработки ответа, и, кроме того, не нужно беспокоиться о создании учетной записи. Но когда дело доходит до настраиваемого API, вам нужно знать, как с ним обращаться, и это то, что мы собираемся вам показать сейчас. Прежде чем мы это сделаем, давайте взглянем на компоненты, задействованные в этом приложении, просмотрев список в интерфейсе разработки.

Если вы посмотрите на рис. 1a слева вверху, внизу есть два невидимых компонента. Один из них — это веб-компонент, который будет использоваться для доступа к Google API через URL-адрес, а другой — компонент Яндекса, доступный в App Inventor для решения этих задач.Если мы посмотрим на документацию Google Translate API, мы увидим, что для того, чтобы сделать запрос на перевод текста через Google Translate API, мы должны использовать следующий URL: https: //www.googleapis.com/language/translate / v2? параметры

Где параметры:

  • Ключ API: используйте параметр ключа для идентификации вашего приложения.
  • Целевой язык: используйте целевой параметр, чтобы указать язык, на который вы хотите перевести.
  • Исходная текстовая строка: используйте параметр q, чтобы указать текст для перевода.
Вот и наступает момент, когда нам нужно вернуться к тому месту, где мы остановились, когда мы говорили о создании ключа API браузера, и получить учетные данные для этого ключа.

На этом этапе нам нужно создать три переменные, которые будут объединены путем конкатенации, чтобы составить URL-адрес API Google, необходимый для обеспечения успешного ответа (код 200).

По соображениям безопасности указанный выше ключ API был изменен и поэтому не будет работать, если используется как есть.

Давайте посмотрим на этот блок кода, прежде чем говорить о том, как мы делаем запрос к обоим API.

Этот блок кодов сообщает App Inventor, что после того, как пользователь выберет язык из списка:

  1. Присвойте соответствующий код переменной languagecode.
  2. Скрыть клавиатуру.
  3. Установите URL-адрес Google API на объединенный текст в блоке соединения.
  4. Получите ответ.
  5. Запросите такой же перевод в яндекс.

Вот разница между запросами к обоим Серверам с использованием их API.

Как они отвечают на запрос? Мы сосредоточимся только на том, как сервер Google ответил, поскольку наша цель — показать, как отфильтровать целевой ответ из возвращенных метаданных.

App Inventor уже обработал результат, возвращенный Яндексом в этом событии:

Теперь предположим, что ответ от Google грубо отображается без анализа, форматирования или фильтрации. Как бы это выглядело?

С помощью этого блока кода:

У нас будет что-то вроде этого:

Как вы можете видеть слева, перевод Яндекса был выполнен, как и ожидалось, тогда как сервер Google вернул больше, чем мы ожидали, и нам нужно найти способ отфильтровать желаемый ответ из того, что возвращается.Но хорошая новость заключается в том, что независимо от того, программист вы или нет, App Inventor позволяет обойти все проблемы программирования, которые могут помешать нам получить желаемый результат. Вот почему мы сначала рассмотрим проблемы людей, не знакомых с JavaScript или каким-либо языком программирования.

Наша цель — получить строку символов между двойными кавычками, включая Me gustaria ver un cambio de tecnologia la forma de pensar. Для этого мы исследовали и обнаружили, что открытая кавычка перед Me находится на позиции 61 в строке.Мы также выяснили, что длина оставшейся строки, следующей за закрывающей кавычкой, равна 111. С учетом сказанного, давайте использовать сегментный текстовый блок для извлечения целевой строки следующим образом:

Чтобы избавиться от кавычек, мы прикрепили предыдущий блок к блоку замены всего текста, как показано ниже:

Давайте посмотрим на результат, если этот блок подключен к событию googleAPI.GotText.

Окончательный код Inventor приложения для этой версии

Мы только что показали вам, как получить желаемый ответ после перевода с сервера, используя простые арифметические вычисления и функции обработки текста в App Inventor. Возможно, есть люди на другой стороне мира пользователей App Inventor, которые все еще хотят узнать другой способ справиться с ответом. Я предполагаю, что эти люди могут иметь некоторое представление о языке JavaScript или, возможно, они слышали о JSON (нотация объектов JavaScript), предназначенная для использования в этой практике в качестве альтернативы тому, что мы только что сделали. Если у нас есть веб-компонент, добавленный в пользовательский интерфейс как тот, который в нашем случае называется googleAPI, при щелчке по этому компоненту в редакторе блоков вы увидите такой блок:

Если мы продолжим наше расследование так же, как мы начали ранее, мы можем прикрепить содержимое ответа к этому блоку, чтобы увидеть, как будет выглядеть результат:

Декодер JSON App Inventor изменил содержимое ответа на вывод, отображаемый фиолетовым цветом.Эти выходные данные привели к карте, показанной ниже:

Эта карта говорит нам, что если мы используем список списка, то мы можем получить прямой доступ к последнему элементу, создав эту цепочку списка выбора ниже:

Если мы используем цикл, мы можем довести эту цепочку до определенного уровня абстракции, как показано ниже:

Вот результат, следующий за блоком кода выше:

Окончательный код Inventor приложения для этой версии

Вкратце, возможно, это было долгое упражнение, но мы рассмотрели наши основные задачи, которые заключались в том, чтобы предоставить пользователям альтернативу Яндекс API в качестве средства для перевода текста и различных стратегий или методов, которые могут использоваться для конкретного ответа из содержимого ответа. Среди используемых методов были использованы текстовые функции App Inventor и блок JSON веб-компонента. Приложение, созданное для этого блога, может дать читателю возможность сравнить точность перевода Google и Яндекс.

Используйте этот QR-код, если хотите попробовать приложение:

Яндекс · Cloudflare for Teams документация

Яндекс — это поисковая система в Интернете, которая также предлагает услуги поставщика удостоверений (IdP).

Настроить Яндекс

Чтобы настроить Яндекс для Cloudflare Доступ:

  1. Войдите в свой аккаунт на Яндексе.

  2. Выберите Откройте новое приложение OAuth .

  3. Выбрать Новый клиент .

  4. Заполните обязательные поля.

  5. Выберите API Яндекс.Паспорта , чтобы установить базовые области.

  6. Выберите Доступ к адресу электронной почты , Доступ к аватару пользователя, и Доступ к имени пользователя, имени и фамилии, параметрам пола .

  7. Выберите Platform и щелкните Web Services.

  8. В поле URL-адрес обратного вызова № 1 введите домен вашей группы, а затем этот обратный вызов в конце пути: / cdn-cgi / access / callback . Например:

      https://your-team-name.cloudflareaccess.com/cdn-cgi/access/callback  

  9. Щелкните Добавить .

  10. Прокрутите до карты Платформы и щелкните Отправить .

    Отображается карта Yandex OAuth с названием Cloudflare Access App .

  11. Скопируйте ID и пароль .

  12. На панели инструментов Teams перейдите к Доступ> Аутентификация .

  13. Нажмите + добавьте под Способы входа и выберите Яндекс.

  14. Вставьте идентификатор и пароль в соответствующие поля.

  15. Нажмите Сохранить .

Пример конфигурации API

  {"config": {"client_id": "<ваш идентификатор клиента>", "client_secret": "<ваш секрет клиента"}, "type": "yandex", "name ":" мой пример idp "}  

Яндекс Переводчик - Kodular Docs

Категория Требуется Версия
Медиа API 19, Android 4.4 - 4.4.4 KitKat 2

Обзор

Используйте этот компонент для перевода слов и предложений между разными языками. Компоненту требуется доступ в Интернет, так как он будет запрашивать перевод в сервис Яндекс.Переводчик. Укажите исходный и целевой язык в форме исходный-целевой, используя двухбуквенные языковые коды. Таким образом, «en-es» будет переводить с английского на испанский, а «es-ru» - с испанского на русский. Если вы не укажете исходный язык, служба попытается определить исходный язык.Таким образом, указание только «es» попытается определить исходный язык и перевести его на испанский.

Компонент работает на базе службы переводов Яндекс. См. Http://api.yandex.com/translate/ для получения дополнительной информации, включая список доступных языков и значения кодов языков и кодов состояния.

Примечание. Перевод выполняется асинхронно в фоновом режиме. Когда перевод завершен, запускается событие «GotTranslation».

Разрешения

События

Получил перевод

Событие срабатывает, когда Яндекс.Сервис Translate возвращает переведенный текст. Это событие также предоставляет код ответа для обработки ошибок. Если responseCode не 200, значит, с вызовом что-то пошло не так, и перевод будет недоступен.

Params
Код ответа Текст
перевод Текст

Методы

перевод

9000 для перевода

Запрос на перевод , es для испанского, en для английского или ru для русского) и слово или предложение для перевода, этот метод запросит перевод в Яндекс.

Автор записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *