Как мы сэкономили 120 000 рублей в год на платном API Яндекс.Карт -25





Я разрабатываю конструктор сайтов Creatium, и одним из компонентов, используемых при сборке страниц является Яндекс Карта. Некоторое время назад в этом компоненте перестал работать поиск.

Карты работают, а поиск перестал

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

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

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

И стоит он 120 000 рублей в год с лимитом 1000 запросов в сутки — это минимальная цена. Даже если я использую 50 запросов в сутки на коммерческом проекте, цена не меняется.

Нужен ли нам платный API?


В это же время Google Maps Platform предлагает использовать свой API бесплатно на 200 долларов каждый месяц, после чего начинается тарификация по принципу «плати за то, что используешь».

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

Поэтому мы сделали гибрид. Поиск ведется с использованием API от Google, а результат поиска показывается на карте от Яндекса.

Поиск от Google, карта от Яндекс

Таким образом мы «исправили» поиск по карте и сэкономили себе 120 000 рублей в год.

UPDATE: Предложенный способ нарушает правила Google Maps Platform, как выяснилось в комментариях, и поэтому не является рекомендацией.

Вы можете помочь и перевести немного средств на развитие сайта



Комментарии (35):

  1. ky0
    /#21143604 / +2

    Захватывающая история.

  2. RevanScript
    /#21143616 / +2

    > Поиск ведется с использованием API от Google, а результат поиска показывается на карте от Яндекса

    Гениальный трюк — нарушить пользовательское соглашение Google Maps:

    No Use With Non-Google Maps. Customer will not use the Google Maps Core Services in a Customer Application that contains a non-Google map. For example, Customer will not (i) display Places listings on a non-Google map, or (ii) display Street View imagery and non-Google maps in the same Customer Application.

    • grimalschi
      /#21143700

      Верно. К сожалению, мы нарушаем этот пункт даже если не будем смешивать сервисы — достаточно просто дать клиентам выбор «Яндекс.Карта или Google карта», и формально нарушение есть.

      • Shished
        /#21143776

        И что вы будете с этим делать?

        • grimalschi
          /#21144374 / -1

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

          • krabdb
            /#21144612

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

            • grimalschi
              /#21145136

              Я и есть руководство ?\_(?)_/?

              • krabdb
                /#21148918

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

                • grimalschi
                  /#21149310

                  Согласен. Теперь думаю над решением новой проблемы :(

  3. Denai
    /#21143766

    Смотрите, как мы нарушаем условия использования сервисов. Деталей тоже не скажем. Очень "увлекательное" чтиво

  4. ertaquo
    /#21143880 / +1

    На мой работе для этого настроили адресную базу Pelias, с небольшими костылями для русских адресов. Там информация берется из нескольких баз, основная — OpenStreetMap.
    Из платного можно посоветовать сервис Dadata, у них при поиске адреса выдаётся довольно много информации, в том числе координаты и ближайшее метро.

    • grimalschi
      /#21144266

      Много времени ушло на настройку всего этого?

      • ertaquo
        /#21145162

        На настройку — нет. Скачали базы OSM, OpenAddresses и другие по России (часть из них — только по отдельным городам), настроили конфиги, запустили парсинг-обработку всего этого (заняло дольше всего, около двух дней на слабеньком сервере), дальше просто запустили и стали пользоваться.
        У них стандартно все работает через docker, с compose-файликом, так что можно довольно просто запустить где угодно.

    • SDKiller
      /#21144326 / +2

      Причем dadata дает бесплатно 10000 запросов в сутки.
      На минимальном платном тарифе — за 7000 руб в год лимит 50000 запросов в сутки.


      120000 руб в год у яндекса с лимитом 1000 запросов в сутки по сравнению с этим — жирновато.

    • danil_gazizov
      /#21149540

      Смотрел сам на днях dadata, как я понял, координаты — это только улиц и нас.пунктов, детальнее до домов нет

  5. innovaIT
    /#21144002 / +2

    Все накинулись, и никто не считает нормой, что для малого бизнеса 12к в месяц много. Особенно если это небольшая пиццерия или суши. Они работают только по одному городу. Яндекс мог бы и поплавней условия дать. Ну как за spechkit. Сколько пользуешься столько и платишь. Отбивает всякое желание с такими сервиса и работать.

    • lovermann
      /#21144166 / -1

      Ты калькулятор-то в руки иногда бери. 120.000 поделить на 12 = 10.000, а не «12к в месяц».

      • trolley813
        /#21144208 / +1

        Да разницы особо и нет. Если 12 в месяц много, то и 10 отнюдь не мало.

      • grimalschi
        /#21144214

        Специально писал «120 000 в год», потому что на меньший срок вносить оплату нельзя. То есть минималка 120 000 рублей в год независимо от количества запросов и времени использования, даже если API нужно на 3 месяца.

    • Samouvazhektra
      /#21144380 / +1

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

    • lair
      /#21145700 / +1

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

      Много — не работайте с этим сервисом, в чем проблема-то?

      • innovaIT
        /#21148910

        По это причине и перешёл на openstreetmap.

    • ReDev1L
      /#21151270

      У них вообще проблемы с PO и менеджментом API карт. Странные идеи и тарифы.

      • VolCh
        /#21153310

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

  6. goodmy
    /#21144190 / +1

    Вам надо ещё OpenStreetMap как третью карту прикрутить, вообще бомба будет!

  7. Finesse
    /#21144566

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

  8. xkondorx
    /#21144956

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

    • Fedcomp
      /#21145402

      Они уже есть, называются openstreetmap.

      • mekhan
        /#21149768

        Только вот поиск в OSM исторически работает отвратительно

        • Fedcomp
          /#21149788

          Полагаю что допилить поиск будет проще чем делать свои карты с нуля?

          • mekhan
            /#21150424

            Безусловно. Интересно было бы узнать, использует ли кто-то поиск (геокодер) на основе OSM и как допиливал его.

  9. infusion_framed
    /#21150496

    Как-то делал проект, там тоже пользователи искали по карте. Получилось запилить через стандартное api Яндекс Карт, коммерция, но скорее всего лимит в 1000 за сутки не переваливает)

  10. YekitKsv
    /#21153408 / +1

    Есть сервис для разбора адресов — IQDQ. Можете через него определять широту и долготу адреса и вставлять в яндекс карты.

    • YekitKsv
      /#21153446

      Кстати, сервис разбирает адреса намного лучше, чем DaData. Работаю в сфере логистики. dadata разбирает порядка 76% адресов, iqdq 93%.

      • grimalschi
        /#21153866

        Меня пугает их сайт. Как будто сделан в 2012 году и не обновлялся с тех пор