Пытаюсь посчитать @poschitai Channel on Telegram

Пытаюсь посчитать

@poschitai


Канал маркетолога-аналитика. Пишу о базах данных, BI-инструментах и о языке Python.

В закрепе курсы по автоматизации отчетов для Директа.

Все вопросы и предложения:
@tonyornot

Promotional Article for Telegram Channel (Russian)

Канал "Пытаюсь посчитать" (@poschitai) - это идеальное место для тех, кто интересуется маркетингом, аналитикой и языком программирования Python. Здесь вы найдете полезную информацию о базах данных, BI-инструментах и многом другом.

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

Главный администратор канала, маркетолог-аналитик по имени Tony, всегда готов ответить на ваши вопросы и принять ваши предложения. Присоединяйтесь к каналу "Пытаюсь посчитать" и начните расширять свои знания уже сегодня!

Пытаюсь посчитать

18 Nov, 14:13


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

Самое главное, что нужно знать о любом языке — это глаголы. Существительных тысячи, а глаголов в обычной речи мы используем сколько - ну 100-200 от силы?
Пришел, ушел, поел, поспал, посмотрел, прочитал, понял, ну и так далее. Их не так много как нам кажется.

В программировании глаголами являются функции и методы, то есть все, что вы видите со скобками () и делает ваш код живым. Тут есть исключения в виде классов, но они по стандарту пишутся немного по-другому, поймете дальше.

Например получить зарплату — get_paid(), купить машину — buy_a_car().

Но когда мы говорим, про покупку чего-либо мы не можем просто сказать "купил". "Купил" всегда кто-то и что-то.

"Кто-то" и "что-то" - это сущности. В языках программирования они описываются классами типа class Man, class Car.

И тут важно почувствовать разницу между сущностью и атрибутом сущности.

Когда мы только начинаем изучать языки мы объявляем переменные типа a = 1 и не понимаем как они укладываются в общий смысл кода.
Ну да, объявили, ну да вывели в print(), а что дальше-то?

Дело в том, что a = 1 это описательная характеристика и она относится к какой-то сущности, которую мы по незнанию еще не добавили в наш код и сама по себе она ничего не значит.

Вот пример, у меня есть две переменных:
name = "Anton"
age = 31

Очевидно, что это имя и возраст, но кого? Чье это имя?

Очевидно, что это описание относится к человеку, поэтому давайте поэтапно соберем человека как конструктор.

Мы все относимся к классу людей, поэтому я создам общий класс, который я назову человек — Man.

Обратите внимание, что классы принято писать с большой буквы.
#создаем класс людей
class Man:
pass


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

#создаем класс людей
class Man:
pass

user = Man()

Теперь в user есть человек, но о нем ничего не известно, поэтому добавим деталей:

#создаем класс людей
class Man:
pass

user = Man()

user.age = 31
user.name = "Anton"

И теперь когда я попытаюсь получить информацию о нем (сделать "принт"), то у меня будут вполне конкретные данные:
print(user.age)
31
print(user.name)
Anton


Я все это так подробно описал выше, что бы чуть прояснить, что количественные, текстовые, булевы переменные — это атрибуты, а атрибуты всегда должны относиться к какой-то сущности. Само по себе a = 1 не имеет значения без объекта, которая эта "a" описывает.

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

Для начала добавим нашему человеку деньги, вернее их количество как атрибут.
user.money = 1000


Вернемся к классу и добавим глагол, который может делать любой Man в нашем случае - получить запрлату:
class Man:
def get_paid(self, money):
return money + 1000


Теперь количество денег у юзер будет увеличиваться на 1000 каждый раз когда он получает заплату:
user.money = 1000
user.money = user.get_paid(user.money)
print(user.money)
2000


Это есть все, что нужно знать для начала - сущности, атрибуты и глаголы, которые либо меняют сущности, либо меняют атрибуты сущностей.

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

На уже этом уровне машина будет понимать, что вы от нее хотите. Вы можете построить любое предложение, просто оно будет не очень хорошо звучать, но будет доносить смысл.

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

Пытаюсь посчитать

25 Oct, 11:24


Я придерживаюсь следующего принципа: если что-то не получается или "тяжело идет" — я просто это откладываю.

Не навсегда, а именно на сейчас — на текущий день или период жизни. Обстоятельства вокруг постоянно меняются, и я уверен: если они сложатся правильно, я все равно к этому вернусь.

К чему это я?

Если вы сейчас пытаетесь освоить аналитику или разработку, то не стоит насиловать себя.

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

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

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

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

Пытаюсь посчитать

17 Oct, 11:26


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

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

Пытаюсь посчитать

25 Sep, 12:56


В DataLens теперь можно формировать статические отчеты в PDF, чтобы распечатать и прийти с ними к клиенту.

https://yandex.cloud/ru/docs/datalens/reports/

Пытаюсь посчитать

20 Sep, 14:56


В курс по Python (https://t.me/poschitai/102) я добавил 35 минут видео для новичков по настройке и использованию Pycharm. Во всех видео сразу показываю лучшие практики использования.

Видео этого модуля я разместил на RuTube и, удивительно, теперь ничего не лагает (в отличие от Ютуба, где еще год назад тормозило). Кроме того, на видео залитых с RuTube можно менять качество и скорость видео прямо на сайте. Старые видео доступны, но под VPN и грузятся медленно. В течении недели перенесу тоже на Рутьюб.

Что касается самого курса — я писал его в прошлом году, в июне. Сейчас я немного переосмыслил, что лучше знать новичку и в каком формате лучше преподнести материал. Поэтому постепенно буду "рефакторить" курс, перезаписывая части, которые меня не устраивают.

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

UPD. Ладно, про Rutube я конечно переборщил. Режется битрейт рандомно на разных видео, поэтому перевожу все на VK видео.

Пытаюсь посчитать

11 Sep, 08:17


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

1. Теперь есть два курса Автоматизации отчетности из Яндекс Директа (АОЯД)

Free (он же бесплатный) - https://t.me/poschitai/144

Basic - https://t.me/poschitai/257

Оба этих курса отвечают за отвечают за две задачи - выгрузка и визуализация данных только в рамках Директа.

Сегодня, кстати, я анонсировал в чате курса Basic новую версию, о которой писал на канале неделю назад.

2. Курс для кликхауса теперь будет позиционироваться как отдельное решение.

Предварительное название - Автоматизация Рекламной Отчетности (АРО).
Может потом придумаю название по-лучше, сейчас главное отделить по смыслу.

Другое название обосновано другим функционалом.

Сейчас там уже Директ и Метрика. Далее скорей всего будет Б24.

Так как данные находятся в кликхаусе, то желающие смогут создать кастомную сквозную аналитику, самостоятельно разобравшись в основах sql и работе с данными.

Конечно, не потеряется и относительно простое построение управленческих дашбордов не только в Директе — любой новый источник так же можно будет объединять в одну таблицу , например строить также же отчеты по Google Ads и VK.

Поэтому из-за наличия не только Директа, но и других источников, из за СУБД ClickHouse под капотом и всех возможностей которая она дает - название АОЯД больше не отвечает сути. Там не только Директ.

Поэтому теперь это АРО 1.0.

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

Пытаюсь посчитать

08 Sep, 07:01


👆🏻 Эта штука построена на базе приложения

Пытаюсь посчитать

08 Sep, 06:57


Как мы разработали систему для анализа и отчётности проектов всего за 2 недели

Задачи:

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

• Создать удобную систему анализа и контроля нескольких проектов для директологов.

• Разработать для собственника систему мониторинга ключевых показателей проектов и эффективности сотрудников.

Для решения этих задач мы выбрали BI-систему DataLens, а хранилище данных развернули на своём сервере на базе ОС Ubuntu с использованием СУБД ClickHouse.

Как устроена система:

1. Сбор данных:
Все данные с сайтов (используем конструктор Flexbe) первоначально передаются в Google Sheets.
Почему не сразу на сервер? Google Sheets удобно использовать как промежуточный этап для управления доступами менеджеров, которые могут оперативно выставлять статусы заявок.

2. Интеграция с Яндекс Директ: Из Google Sheets Яндекс Директ получает данные оффлайн-конверсий, которые затем передаются в Метрику. Для подготовки данных в нужном формате используется JavaScript-скрипт в Google Sheets. Яндекс Директ забирает данные ежедневно.

3. Загрузка данных на сервер: Ежедневно с помощью Python-скрипта данные выгружаются на сервер и записываются в ClickHouse:
• Данные рекламных кампаний загружаются из Яндекс Директа.
• Данные заявок — из Google Sheets.
Разные поля заявок нормализуются и структурируются с помощью Python-скрипта.

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

Технологии: JavaScript, SQL, Python. 99% кода было написано с помощью ChatGPT.

Результаты:

1. Удовлетворённость сотрудников: Автоматизация отчётов избавила от рутинной работы. Теперь мы гарантируем клиентам точные отчёты без ошибок.

2. Удобство для директологов: Вся информация по проектам собрана в одном месте, что экономит время и упрощает контроль. Больше не нужно заходить в десятки аккаунтов для проверки показателей и отслеживания бюджета — теперь это все доступно в одном интерфейсе.

3. Анализ и сравнение проектов: Возможность сравнивать несколько проектов одновременно позволяет быстрее принимать решения. Меньше ошибок, больше инсайтов.

4. Рост эффективности: Пропускная способность агентства увеличилась в 10 раз. Мы небольшая, но очень эффективная команда — как отряд спецназа с современными инструментами.

5. Экономия на поддержке: Система требует всего 1600 рублей в месяц на поддержание.

Пытаюсь посчитать

05 Sep, 14:05


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

Инструкция в этом видео.

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

Пытаюсь посчитать

04 Sep, 13:41


В общем я ради фана сейчас спарсил весь контент сайта https://cr161-rnd.ru/ (выбрал случайно), попросил GPT вывести общий смысл контента:

Наша компания в Ростове-на-Дону предоставляет комплексные услуги по ремонту квартир и коттеджей с гарантией сроков и фиксированной ценой. Мы предлагаем всё, от дизайн-проекта до финальной уборки, с юридической защитой от обмана и полной двухлетней гарантией на работы и материалы.

Потом попросил перевести на английский этот текст и запросы:

query_to_classify = "The company in Rostov-on-Don provides comprehensive apartment and cottage renovation services with guaranteed deadlines and fixed pricing. We offer everything from design projects to final cleaning, with legal protection against fraud and a full two-year warranty on works and materials."
candidate_labels = ['Apartment renovation','Apartment renovation in rostov','Apartment renovation in Moscow', 'fine for apartment renovation after 10 PM', 'the law on apartment renovation', 'building materials']

Теперь внимание результат:


Тематика сайта: The company in Rostov-on-Don provides comprehensive apartment and cottage renovation services with guaranteed deadlines and fixed pricing. We offer everything from design projects to final cleaning, with legal protection against fraud and a full two-year warranty on works and materials.

Поисковой запрос:
Apartment renovation: 98.09% (ремонт квартир)
Apartment renovation in rostov: 91.63% (ремонт квартир в ростове)
building materials: 59.32% (строительные материалы)
the law on apartment renovation: 26.17% (закон о ремонте квартир)
fine for apartment renovation after 10 PM: 13.35% (ремонт квартир после 10 вечера)
Apartment renovation in Moscow: 0.15% (ремонт квартир в москве)

Меня больше всего удивило то, что он ремонт в москве определил как полностью не подходящий, а в ростове - на 91% подходящий. Изменилось лишь название города.

Пытаюсь посчитать

04 Sep, 12:40


Есть классный сайт с бесплатными большими моделями ИИ, которые легко интегрировать в свои проекты.

Ссылка: https://huggingface.co/

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

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

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

Например вы хотите классифицировать поисковой запрос - он относится к тематике сайта или нет?
Для этой задачи берем модель BART-mnli от ФБ, которая с одного запроса (zero-shot) классифицирует насколько в % предложение (поисковой запрос) относится к тематике словосочетания (бизнес-ниши).

1. Сначала мне нужно установить библиотеки:
pip install transformers torch

В последних версиях есть баг с Numpy с версией выше 2, поэтому сразу удаляем текущую версию и ставим <2.

—————

2. Дальше я загружаю в скрипт модель классификатора:
from transformers import pipeline

# Загрузку модель
classifier = pipeline("zero-shot-classification", model="facebook/bart-large-mnli")

pipeline - это штука, которая позволяет под капотом привести данные в нужный вид перед обработкой и после.
В нее мы падаем тип задачи (zero-shot-classification) и модель (facebook/bart-large-mnli).

—————

3. Дальше я готовлю запрос и список тематик на английском языке.

Для пример я возьму запрос "купить плитку для кухни" и задам тематики "ремонт кухонь", "мебель", "танцы".

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

В коде query_to_classify - запрос, candidate_labels - лейблы тематик.
#запрос 
query_to_classify = "buy a stove for the kitchen"

#тематика
candidate_labels = ['kitchen renovation', 'furniture', 'dancing']


—————

4. Классифицируем данные:
data = classifier(query_to_classify, candidate_labels, multi_label=True)


В data мы получаем словарь такого вида: {'sequence': 'buy a stove for the kitchen', 'labels': ['kitchen renovation', 'furniture', 'dancing'], 'scores': [0.9508606791496277, 0.0020668120123445988, 0.0007214965298771858]}

—————

5. Вытаскиваю данные по разным переменным и вывожу на печать:
data = classifier(query_to_classify, candidate_labels, multi_label=True)
title = data['sequence']
percentages = {label: score * 100 for label, score in zip(data['labels'], data['scores'])}


—————

И теперь результат:

Поисковой запрос: buy a stove for the kitchen

Насколько запрос относится к тематике:
kitchen renovation: 95.09%
furniture: 0.21%
dancing: 0.07%

Наша модель определила, что покупка плитки относится на 95% к ремонту кухонь, на 0.21% к мебели и на 0.07% к танцам.

Собственно, разве это не то, что нам нужно?

Пытаюсь посчитать

03 Sep, 14:42


Готовлю более простой и дешевый аналог для этой системы.

Данные из разных аккаунтов можно будет выгружать в одну таблицу или в отдельные — управление выгрузкой будет доступно внутри скрипта.

Дешевле основного курса потому что GS накладывает очевидные ограничения на объем данных, скорость работы, удобство управления и так далее.

В общем — это для тех, кто хочет сделать чтобы работало, но не усложнять систему.

Это обновление для первого курса АОЯД. Те, кто уже приобрел курс, смогут получить новую версию на платформе.

По срокам — либо на этой, либо на следующей неделе, примерно в середине.

Стоимость увеличится до 3950 рублей. Внутри будут доступны сам скрипт для выгрузки основной статистики и бюджетов, обновления, видео-инструкции к скрипту и видео по созданию дашборда в DataLens.

Можно приобрести по предзаказу со скидкой 25% по промокоду PREORDER.

Ссылка для оплаты: https://perepechaev-course.emdesell.ru/buy/AOYAD_Multi

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

P.S. Сори, что закидал ссылками, просто не хочу повторяться.

Пытаюсь посчитать

28 Aug, 15:00


Как писать на Python скрипты для парсинга сайтов с помощью GPT4

Я сейчас для приложения пишу код и мне понадобилось с сайта Метрики спарсить все технические поля со всеми атрибутами.

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

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

Залил на юпуп и дзен.

Если хотите подобный видос по парсингу товаров в интернет-магазинах - пишите.

Пытаюсь посчитать

27 Aug, 12:39


Поясняю 20 минут за базу GitHub

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

— Хранение доступов от всех аккаунтов в приватном репо

— Хранение информации для онбординга нового сотрудника

— Документация к рекламным кампаниям

Также залил на ютуб и на дзен.

Пока записывал видео пришла идея как можно реализовать для менеджеров по трафику "дневник изменений".

Берем весь функционал директ-коммандера —> перед отправкой на сервер просим дать название коммиту —> отправляем иизменения

В итоге и в аккаунте новые данные и в гите, допустим в формате json.

Поэтом работаем с данными гита либо в ручном режиме, либо по API.

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

Пытаюсь посчитать

26 Aug, 15:27


Продукт автоматизации рекламных отчетов - готов!

Сейчас продолжается бета-версия, но все, что описываю в видео уже актуально.

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

Попробовать можно по ссылке: https://datalens.yandex/vfd739sym3d0k

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

Важный момент - приложение вы разворачиваете на своем сервере по инструкции. Все данные остаются внутри вашей инфраструктуры.

Все это доступно на курсе здесь: https://t.me/poschitai/196
Там же висит ссылка для оплаты.

1,586

subscribers

50

photos

24

videos