NetPeak Biz Tech    


Как настроить отправку писем с помощью языка R

Как настроить отправку писем с помощью языка R

< >

Как настроить запуск R-скрипта по расписанию? Хотите оперативно и своевременно узнавать о сбоях в работе скриптов R? Достаточно настроить оповещения на email. В этой статье я опишу, как настроить рассылку с помощью языка R и как избежать подводных камней.

Что можно отправлять в письмах:

  • отчеты по результату работы скрипта на свою почту или по списку конкретных email-адресов;
  • сообщения об ошибках, которые возникли в работе скриптов;
  • файлы с локального диска, например, фотографию или CSV-документ.

Чтобы настроить отправку писем, потребуется:

Как выбрать пакет R для отправки email?

Для отправки писем существует несколько пакетов. При выборе подходящего учитывайте:

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

Рассмотрим подробнее плюсы и минусы пакетов «sendmailR» и «mailR».

1. Пакет «sendmailR»

Этот пакет не поддерживает процедуру аутентификации, а значит, можно отправлять письма не из всех почтовых сервисов. Более того, сервисы, позволяющие рассылать письма без аутентификации, накладывают определенные ограничения. К примеру, SMTP сервер для Gmail (ASPMX.L.GOOGLE.COM) не требует аутентификации, но отправлять сообщения можно только пользователям Gmail или G Suite.

Преимущество «sendmailR» в том, что этот пакет достаточно прост в установке, не требуется дополнительное программное обеспечение.

2. Пакет «mailR»

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

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

Если нужно провести рассылку исключительно по пользователям Gmail или G Suite и при этом аутентификация необязательна — без особых раздумий пользуйтесь пакетом «sendmailR», в противном случае — выбирайте «mailR».

Как установить пакет «sendmailR»?

1. Для установки пакета откройте RStudio и в области «Source» вставьте код:

#Установка пакетаinstall.packages(\"sendmailR\")#Подключение пакетаlibrary(sendmailR)

Если вы впервые запустили RStudio, воспользуйтесь сочетанием клавиш «Ctrl+«Alt+Shift+0», чтобы появилась панель «Source».

2. Чтобы настроить отправку писем, подставьте ваши данные в код ниже:

from = \"\"to = c(\"\", \"\")subject <- “My first test letter”body <- (“It`s my first letter from R by sendmailR package!” , mime_part(iris))sendmail(from=from,to=to,subject=subject, msg=body,control=list(smtpServer=\"ASPMX.L.GOOGLE.COM\"))

 

2.1. Вместо «sender@gmail.com» впишите адрес своей Gmail-почты, вместо «recipient1@gmail.com» и «recipient2@gmail.com» — адреса получателей. Помните, что с SMTP сервера ASPMX.L.GOOGLE.COM можно рассылать письма только пользователям Gmail и G Suite,

2.2. В «subject» впишите тему письма,

2.3. Объект «body» содержит тело письма. В теле письма может быть не только текст («It`s my first letter from R by sendmailR package!»), но и вложения, например, встроенная R-таблица «iris».

2.4. Комaнда «sendmail» отправляет письмо. При проверке почты в первую очередь посмотрите папку «Спам»: из-за того, что вы отправили email без аутентификации и предварительно не настроили фильтр на почте, письмо сначала, скорее всего, попадет в спам.

Как установить пакет «mailR»?

1. Скачайте и установите версию Java, соответствующую разрядности на вашем компьютере.

Для 32-разрядной операционной системы скачайте Java по ссылке.

Если у вас 64-разрядная ОС, рекомендую скачать нужную версию из стороннего ресурса. На официальном сайте указано, что 64-битную Java можно скачать только через 64-разрядную версию браузера — я пробовал этот способ и не получил нужный результат.

2. Далее нужно установить пакеты «rJava» и «mailR»:

#Установка пакетаinstall.packages(\"rJava\")install.packages(\"mailR\")#Подключение пакетаlibrary(mailR)

При запуске кода может появиться следующая ошибка:

Error: .onLoad failed in loadNamespace() for \\\'rJava\\\', details: call: fun(libname, pkgname) error: JAVA_HOME cannot be determined from the Registry

Рассмотрим возможные причины:

2.1. Разрядность установленной Java не соответствует текущей версии Windows. Обычно подобная ошибка возникает, если у вас 64-разрядная ОС.

Как определить, какую версию Java вы используете? Проверьте системный диск Windows: для установки программного обеспечения по умолчанию используются две папки, расположенные в корне системного диска. Если папка «Java» появилась в «Program Files» — это 64-разрядная версия, а если в папке «Program Files (x86)» — 32-разрядная.

2.2. Вторая причина ошибки: в R не прописана или неверно прописана опция «JAVA_HOME». Чтобы устранить ошибку, запустите в R комaнды:

    • для 32-разрядной ОС:
Sys.setenv(JAVA_HOME=\\\'C:\Program Files (x86)\Java\jre1.8.0_102\\\')
    • для 64-разрядной ОС:
Sys.setenv(JAVA_HOME=\\\'C:\Program Files\Java\jre1.8.0_102\\\')

 

Перед запуском комaнды замените «jre1.8.0_102» на название файла Java, установленного на вашем компьютере. Файл можно найти в одноименной папке «Java», о которой я упоминал в предыдущем пункте. 

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

3.1. Для отправки писем без процедуры аутентификации в код подставьте данные:

  • тема и тело письма;
  • отправитель и получатели;
  • параметры SMTP-сервера.
library(mailR)send.mail(from = \"sender@gmail.com\", to = c(\"Recipient 1 \", \"recipient2@gmail.com\"), cc = c(\"CC Recipient \"), bcc = c(\"BCC Recipient \"), subject = \"Subject of the email\", body = \"Body of the email\", smtp = list(host.name = \"aspmx.l.google.com\", port = 25), authenticate = FALSE, send = TRUE)

3.2. Чтобы отправить письмо через SMTP с прохождением аутентификации, используйте код: 

library(mailR)send.mail(from = \"sender@gmail.com\", to = c(\"recipient1@gmail.com\", \"Recipient 2 \"), replyTo = c(\"Reply to someone else \") subject = \"Subject of the email\", body = \"Body of the email\", smtp = list(host.name = \"smtp.gmail.com\", port = 465, user.name = \"gmail_username\", passwd = \"password\", ssl = TRUE), authenticate = TRUE, send = TRUE)

Аргумент «smtp» содержит все параметры SMTP сервера и в нем необходимо указать учетные данные. 

Как отправлять письма с текстом на русском языке? 

Если вы используете пакет «mailR» и хотите, чтобы ваши письма содержали в теме или теле кириллические символы, воспользуйтесь аргументом «encoding» и укажите кодировку «utf-8».

library(mailR)send.mail(from = \"Sender Name \", to = \"recipient@gmail.com\", subject = \"Тема тестового письма на русском языке.\", body = \"Русскоязычное тело письма!\", encoding = \"utf-8\", smtp = list(host.name = \"smtp.gmail.com\", port = 465, user.name = \"gmail_username\", passwd = \"password\", ssl = T), authenticate = TRUE, send = TRUE)

 

Для отправки русскоязычного текста с помощью пакета «sendmailR» необходимо предварительно дважды перекодировать этот текст в UTF-8.

library(sendmailR)from = \"\"to = c(\"\",\"\")subject <- iconv(iconv(\\\'Тема письма\\\',to = \"UTF-8\"),to = \"UTF-8\")body <- iconv(iconv(\\\'Тело письма\\\',to = \"UTF-8\"), to = \"UTF-8\")sendmail(from=from,to=to,subject=subject,msg=body, control=list(smtpServer=\"ASPMX.L.GOOGLE.COM\"))

Как отправлять письма в формате HTML?

Для отправки сообщений в HTML-формате с помощью пакета «mailR» достаточно воспользоваться аргументом «html»:

library(mailR)send.mail(from = \"sender@gmail.com\", to = c(\"recipient1@gmail.com\", \"recipient2@gmail.com\"), subject = \"Subject of the email\", body = \"<html>The apache logo - html>\", html = TRUE, smtp = list(host.name = \"smtp.gmail.com\", port = 465, user.name = \"gmail_username\", passwd = \"password\", ssl = TRUE), authenticate = TRUE, send = TRUE)

 

Для отправки письма в HTML-формате с помощью пакета «sendmailR» используйте такой код:

library(sendmailR)msg <- mime_part(\\\' <html xmlns=\"https://www.w3.org/1999/xhtml\"><head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /> <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"/> <title>HTML demotitle> <style type=\"text/css\"> style>head><body><h1>HTML demoh1>body> html>\\\')msg[[\"headers\"]][[\"Content-Type\"]] <- \"text/html\"from = \"\"to = c(\"\",\"\")subject <- \"HTML test\"body <- list(msg)sendmail(from=from,to=to,subject=subject,msg=body, control=list(smtpServer=\"ASPMX.L.GOOGLE.COM\"))

Как отправить в теле письма HTML-таблицу?

Самый простой способ — использовать пакет «htmlTable». Приведу примеры преобразования встроенной в R-таблицы «iris» в HTML-формат и добавление ее в тело письма.

Код для пакета «mailR»:

iris_html <- htmlTable(iris)library(mailR)send.mail(from = \"sender@gmail.com\", to = c(\"recipient1@gmail.com\", \"recipient2@gmail.com\"), subject = \"Subject of the email\", body = iris_html, html = TRUE, smtp = list(host.name = \"smtp.gmail.com\", port = 465, user.name = \"gmail_username\", passwd = \"password\", ssl = TRUE), authenticate = TRUE, send = TRUE)

Пример для «sendmailR»:

library(sendmailR)iris_html <- htmlTable(iris)msg <- mime_part(paste0(\\\' <html xmlns=\"https://www.w3.org/1999/xhtml\"> <head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /> <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"/> <title>HTML table demotitle> <style type=\"text/css\"> style> head> <body> <h1>My table irish1>\\\', iris_html ,\\\' body> html>\\\'))msg[[\"headers\"]][[\"Content-Type\"]] <- \"text/html\"from = \"\"to = c(\"\",\"\")subject <- \"HTML test\"body <- list(msg)sendmail(from=from,to=to,subject=subject,msg=body, control=list(smtpServer=\"ASPMX.L.GOOGLE.COM\"))

Так же легко преобразовать любую таблицу из R в HTML-формат и отправлять ее в письме.

Выводы

Как мы внедрили BI-аналитику в отделе контекстной рекламы Язык R достаточно мощный, чтобы автоматизировать пpaктически любой процесс работы с данными. Чтобы получать отчеты о работе скриптов или уведомления об ошибках, выберите подходящий пакет R и настройте рассылку.

  1. Пакет «sendmailR» прост в установке, но не поддерживает процедуру аутентификации, и вы сможете отправлять письма только пользователям Gmail или G Suite.
  2. Пакет «mailR» поддерживает аутентификацию, но в процессе его установки вам также придется инсталлировать Java.
  3. С помощью языка R можно настроить не только отправку простых текстовых сообщений, но и письма:
    • с текстом на кириллице;
    • в формате HTML;
    • с HTML-таблицей в теле.



Комментарии:

Почему мертвецы ставят «лайки» в Facebook?

Почему мертвецы ставят «лайки» в Facebook? Темная сторона лайков или правда о продвижении постов в Facebook...

13 10 2026 22:24:28

MeDiConf — новая конференция по медицинскому маркетингу от Netpeak и Octopus Events

MeDiConf — новая конференция по медицинскому маркетингу от Netpeak и Octopus Events 29 ноября в Киеве в UNIT.City — конференция по медицинскому маркетингу MeDiConf...

12 10 2026 8:58:26

200 этапов настройки рекламной кампании — чек-листы

200 этапов настройки рекламной кампании — чек-листы Что такое【контекстная реклама】и как ее настроить? Подробный чек-лист ✅ в блоге Netpeak ⟁ ▷ 200 ступеней рекламной кампании в Google AdWords, Яндекс.Директ ⚡...

11 10 2026 14:50:17

15 стереотипов о контекстной рекламе, от которых бизнесу нужно отказаться

Попасть в топ 3 — ваш предел мечтаний? Почему и когда это не принесет ожидаемых результатов, плюс другие не актуальные убеждения о PPC. Узнать больше!...

10 10 2026 6:48:26

Удаленка и низкая продуктивность — когда пора выходить в офис

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

09 10 2026 14:57:58

Как проанализировать эффективность страницы бренда в Facebook

Как проанализировать эффективность страницы бренда в Facebook Бренду нужно зайти на Фейсбук? Несколько очень полезных советов об измерении эффективности SMM....

08 10 2026 13:38:36

Интеграция Google BigQuery c BI-платформами и электронными таблицами

Интеграция Google BigQuery c BI-платформами и электронными таблицами Подробная инструкция по интеграции с облачной базой данных и сравнение BI-платформ....

07 10 2026 10:47:11

Библиотеки JavaScript для Google ***ytics: в чем разница между ***ytics.js, gtag.js и ga.js

Библиотеки JavaScript для Google ***ytics: в чем разница между ***ytics.js, gtag.js и ga.js Почему стоит внимательно относиться к выбору библиотеки JavaScript....

06 10 2026 2:51:34

Как измерить эффективность в Telegram — сколько подписчиков дала реклама?

Как измерить эффективность в Telegram — сколько подписчиков дала реклама? После обновления мессенджера появился нужный инструмент...

05 10 2026 2:44:12

Как международному бренду занять свое место на новом рынке и в перегретой нише — SEO-кейс Domino’s Pizza

Как международному бренду занять свое место на новом рынке и в перегретой нише — SEO-кейс Domino’s Pizza Для одной компании смена description это что-то пустяковое. Здесь же — настоящий бренд-менеджмент....

04 10 2026 12:10:45

Как грамотно построить структуру рекламного аккаунта Facebook

Как грамотно построить структуру рекламного аккаунта Facebook Как купить дешевый трафик из Facebook? Образец работы со структурой рекламного аккаунта...

03 10 2026 19:21:23

Как повысить ROMI email-маркетинга на 63%, сократив базу контактов на 40%

Как повысить ROMI email-маркетинга на 63%, сократив базу контактов на 40% История о предсказательной аналитике системы автоматизации маркетинга, онлайн-магазине и ненужных письмах....

02 10 2026 18:50:13

Что такое граббер сайтов и как с ним работать

Что такое граббер сайтов и как с ним работать Грабберы — программы, позволяющие автоматизировать процесс сбора и публикации контента. С помощью грабберов, помимо парсинга контента, осуществляют перевод и уникализацию текстов....

01 10 2026 9:59:14

Обзор трех новых типов микроразметки schema.org

Обзор трех новых типов микроразметки schema.org FAQ (frequently asked questions), HowTo и Q&A (questions and answers)....

30 09 2026 8:17:57

Кейс по контекстной рекламе новостного сайта: качественный трафик за $0,02

Кейс по контекстной рекламе новостного сайта: качественный трафик за $0,02 В этом кейсе я не смогу похвастаться ROMI (возврат маркетинговых инвестиций), так как его герои — это новостные порталы. Основная задача — трафик. Но не просто трафик, а трафик по низкой стоимости....

29 09 2026 17:27:59

Как мы сделали инструмент веб-аналитики для сайта Ecommerce

Как мы сделали инструмент веб-аналитики для сайта Ecommerce Зачем амбициозным онлайн-проектам индивидуальные инструменты веб-аналитики....

28 09 2026 16:34:41

Как получить и обработать сырые данные из Яндекс.Метрики

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

27 09 2026 15:46:43

Как визуализировать показатель качества ключевых слов — рецепт скрипта на языке R

Как визуализировать показатель качества ключевых слов — рецепт скрипта на языке R Как узнать слабые места ваших рекламных кампаний с помощью бесплатного скрипта....

26 09 2026 7:16:44

Алгоритм Google Panda 4.2 — 10 советов от SEO-экспертов

Алгоритм Google Panda 4.2 — 10 советов от SEO-экспертов Как диагностировать Google Panda, понять, что нужно изменить на своем сайте и сделать пользователей счастливыми....

25 09 2026 20:14:48

Google Search Console: регистрация и обзор полезных для SEO-специалиста разделов и функций

Google Search Console: регистрация и обзор полезных для SEO-специалиста разделов и функций Перво-наперво для мониторинга ошибок SEO-специалист открывает вебмастерку с подсказками Google — она же панель вебмастеров, она же Google Search Console...

24 09 2026 22:38:23

Как молодому IP-адресу пробиться в мир больших email-рассылок — греем новичка

Как молодому IP-адресу пробиться в мир больших email-рассылок — греем новичка Алгоритм технической подготовки IP-адреса к массовым рассылкам...

23 09 2026 11:55:32

Турбо-страницы Яндекса — что это и как внедрить

Турбо-страницы Яндекса — что это и как внедрить Создаём страницы, которые быстро загружаются на мобильных устройствах....

22 09 2026 0:56:16

Как импортировать данные из Google ***ytics в Excel с помощью Excellent ***ytics — мануал для чайников

Как импортировать данные из Google ***ytics в Excel с помощью Excellent ***ytics — мануал для чайников Ексель для чайникiв. Как импортировать всю необходимую информацию из Google ***ytics с помощью простого интерфейса Excellent ***ytics....

21 09 2026 22:22:39

Как B2B-стартап с помощью партнерской программы увеличил доход на 1983% за 6 месяцев

Как B2B-стартап с помощью партнерской программы увеличил доход на 1983% за 6 месяцев Создание успешного стартапа в нише телемедицины. Без дополнительных трат увеличил за 6 месяцев доход на 1983%, а клиентскую базу — более чем на 1000%....

20 09 2026 12:54:37

Списки исключенных мест размещения в Google Рекламе

Списки исключенных мест размещения в Google Рекламе О списках исключенных мест размещения будет интересно узнать тем, кто хочет облегчить себе работу с контекстно-медийными сетями....

19 09 2026 21:42:22

Аналитический инструмент для сервиса заказа билетов — контролируем бюджеты сотен мероприятий в реальном времени

Аналитический инструмент для сервиса заказа билетов — контролируем бюджеты сотен мероприятий в реальном времени Как автоматизировать целый участок в работе комaнды специалистов по контекстной рекламе — кейс concert.ua...

18 09 2026 8:53:58

Netpeak Group купила конференцию eCommerce от OWOX

Конференцию eCommerce будет развивать комaнда Octopus Events...

17 09 2026 2:50:42

Девять неочевидных и пpaктически применимых SEO-фишек — круглый стол 8P 2018

Девять неочевидных и пpaктически применимых SEO-фишек — круглый стол 8P 2018 Нет новых идей для развития рекламной компании? Одобренные рекомендации по поисковому продвижению от экспертов: спикеров и участников 8P 2018...

16 09 2026 17:32:27

Как продавать больше, а тратить меньше: 13 пpaктических советов ecommerce-проектам от Citrus.ua

Как продавать больше, а тратить меньше: 13 пpaктических советов ecommerce-проектам от Citrus.ua Руководство для всех, кто хочет продать что-то через интернет...

15 09 2026 10:43:42

Как меняются привычки пользователей и что с этим делать рекламодателям — исследование WordStream

Как меняются привычки пользователей и что с этим делать рекламодателям — исследование WordStream Эффективность рекламы в поиске падает, но растут YouTube, контекстно-медийная сеть и другие платформы...

14 09 2026 7:31:56

ТОП-11 бесплатных курсов от Netpeak

ТОП-11 бесплатных курсов от Netpeak Уроки, написанные понятным и доступным языком экспертами по контекстной рекламе, поисковому продвижению, SMM....

13 09 2026 7:32:58

Как отфильтровать внутренний трафик в Google ***ytics

Как отфильтровать внутренний трафик в Google ***ytics Фильтруем свой трафик от сотрудников в Google ***ytics...

12 09 2026 5:27:20

Как все успеть — фишки тайм-менеджмента при подготовке текстов

Как все успеть — фишки тайм-менеджмента при подготовке текстов На вопрос «как все успеть?» хочется ответить что-то вроде «никак». Особенно, если дело касается задач, связанных с творчеством. Но можно и не срывать дедлайны. Читать дальше....

11 09 2026 12:16:15

Визуализация данных с помощью DataDeck

Визуализация данных с помощью DataDeck Краш-тест сервиса визуализации данных: выбираем задачу, источники, создаём отчет с помощью DataDeck. Бонус в конце — лаконичные списки преимуществ и недостатков этого инструмента и приятный подарок для дочитавших...

10 09 2026 18:18:54

Core Web Vitals: что это такое и как работает

Core Web Vitals: что это такое и как работает В мае прошлого года Google анонсировал выход нового Core Web Vitals. Что это и как будет работать рассмотрим в статье...

09 09 2026 17:49:13

Как провести A/B-тест сайта: инструменты и популярные гипотезы

Как провести A/B-тест сайта: инструменты и популярные гипотезы 22 оригинальные гипотезы для A/B-теста сайта, которые чаще всего влияют на получаемую прибыль...

08 09 2026 10:24:55

Big Data SEO — как заставить большие данные работать на ваш бизнес

Big Data SEO — как заставить большие данные работать на ваш бизнес Решение для поискового продвижения крупных проектов (от 300 000 страниц)....

07 09 2026 4:31:40

Инструменты для веб-аналитики

Инструменты для веб-аналитики Инструменты веб-мастера: что может заменить Google ***ytics?...

06 09 2026 7:33:14

Как получить рентабельность кампаний 400%, используя таргетированную рекламу в Facebook — кейс Secunda

Как получить рентабельность кампаний 400%, используя таргетированную рекламу в Facebook — кейс Secunda Все дело в формате объявлений Instant Experience с подключенным каталогом товаров. Нет, не только в нем. Узнать больше!...

05 09 2026 4:30:32

Про social insight, как один из базовых пунктов брифа

Про social insight, как один из базовых пунктов брифа Важный вопрос, если вы рассчитываете на вирусный эффект своих рекламных идей....

04 09 2026 16:10:44

Как быстро найти ошибки SEO-оптимизации с помощью Netpeak Spider

Как быстро найти ошибки SEO-оптимизации с помощью Netpeak Spider Сохраняем время и ресурсы для проверки типичных задач и тратим его на реализацию креативных идей по оптимизации сайта....

03 09 2026 19:11:22

Google показывает не все результаты поиска

Google показывает не все результаты поиска Сколько страниц на самом деле показывает и может перевести поисковик Google?...

02 09 2026 19:19:54

Сколько стоил клик Яндекс.Директ и Google Ads в Казахстане в четвертом квартале 2017 года

Сколько стоил клик Яндекс.Директ и Google Ads в Казахстане в четвертом квартале 2017 года Почти 3 миллиона клика в 24 тематиках в 15 городах Казахстана. Читайте новое исследование нашего аналитика....

01 09 2026 10:59:25

Закрытый софт Netpeak для проверки позиций под кодовым названием «Камасутра»

Закрытый софт Netpeak для проверки позиций под кодовым названием «Камасутра» Проверка позиций: бесценный онлайн софт для SEO-специалистов :)...

31 08 2026 1:15:35

Кейс по продвижению интернет-магазина цветов: ROMI 187%

Кейс по продвижению интернет-магазина цветов: ROMI 187% SEO для цветочных магазинов с оплатой за трафик и полученные результаты...

30 08 2026 8:17:26

Как стать контент-маркетологом в Netpeak Group

О работе внутреннего и внешнего контент-маркетолога: необходимые знания и навыки для старта, плюшки и головная боль. Все здесь....

29 08 2026 15:46:39

Особенности регионального продвижения сайтов

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

28 08 2026 9:54:46

Зачем нужен видеомаркетинг: инфографика

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

27 08 2026 13:54:36

Коммерческое ранжирование Яндекса (перевод)

Коммерческое ранжирование Яндекса (перевод) Интересный и важный документ, не пропустите. Для ранжирования используется сумма коммерческой и тематической релевантности. Уходя с головой в SEO, многие вебмастера забывают о пользовательских факторах. Узнайте больше об этом!...

26 08 2026 11:12:16

Кейс по SMM в тематике «посуда»: фотоконкурс для стимуляции активности в сообществе

Кейс по SMM в тематике «посуда»: фотоконкурс для стимуляции активности в сообществе Фотоконкурс для стимуляции активности в сообществе, прироста фанов и поощрения лояльной аудитории....

25 08 2026 7:55:48

Еще:
понять и запомнить -1 :: понять и запомнить -2 :: понять и запомнить -3 :: понять и запомнить -4 :: понять и запомнить -5 :: понять и запомнить -6 :: понять и запомнить -7 ::