Дата публикации:
- откуда пришел на сайт;
- откуда перешел в чат-бот;
- как именно взаимодействовал с чат-ботом и т. д.
Дата публикации:
import requests
import json
import pandas as pd
import pandasql as ps
#——————Для заполнения (начало)
ms = » #Укажите ваш токен
tid = 88989734 #Укажите ваш счетчик
cid = 1710232430899999999 #Идентификатор ClientID
dr = ‘https://yandex.ru/’ #Реферер
dl = ‘https://yourdomain.ru/chatbot/main_screen’ #URL
dt = ‘Чат-бот Главный экран’ #Заголовок страницы
#et = 1728630000 #Время хита (Timestamp, если не передан, будет использовано время получения данных)
#——————Для заполнения (конец)
URL = ‘https://mc.yandex.ru/collect/?tid=’+str(tid)+‘&cid=’+str(cid)+‘&t=pageview&dr=’+str(dr)+‘&dl=’+str(dl)+‘&dt=’+str(dt)+‘&ms=’+str(ms)
r_s = requests.get(URL)
print(r_s)
#Отправка событий
import requests
import json
import pandas as pd
import pandasql as ps
#——————Для заполнения (начало)
ms = » #Укажите ваш токен
tid = 88989734 #Укажите ваш cчетчик
cid = 1710232430899999999 #Идентификатор ClientID
dl = ‘https://yourdomain.ru/test1’ #URL события
params = ‘{«clickButton»:»Текст кнопки»}’ #Параметры события
#et = 1728630000 #Время хита (Timestamp, если не передан, будет использовано время получения данных)
#——————Для заполнения (конец)
URL = ‘https://mc.yandex.ru/collect/?tid=’+str(tid)+’&cid=’+str(cid)+’&t=event¶ms=’+str(params)+’&dl=’+str(dl)+’&ms=’+str(ms)
r_s = requests.get(URL)
print(r_s)
import requests
import json
import pandas as pd
import pandasql as ps
#——————Для заполнения (начало)
ms = » #Укажите ваш токен
tid = 88989734 #Укажите ваш счетчик
cid = 1710232430899999999 #Идентификатор ClientID
dr = ‘https://yourdomain.ru/test1’ #Реферер
ea = ‘test_mp’
#et = 1728630000 #Время хита (Timestamp, если не передан, будет использовано время получения данных)
#——————Для заполнения (конец)
URL = ‘https://mc.yandex.ru/collect/?tid=’+str(tid)+‘&cid=’+str(cid)+‘&t=event&dr=’+str(dr)+‘&ea=’+str(ea)+‘&ms=’+str(ms)
r_s = requests.get(URL)
print(r_s)
import requests
import json
import pandas as pd
import pandasql as ps
#——————Для заполнения (начало)
ms = » #Укажите ваш токен
tid = 88989734 #Укажите ваш счетчик
cid = 1710232430899999999 #Идентификатор ClientID
pa = ‘purchase’ #ecom действие с товаром (detail, и т.д.)
#et = 1728630000 #Время хита (Timestamp, если не передан, будет использовано время получения данных)
#——————Для заполнения (конец)
#список товаров
pr1id = 456
pr1nm = ‘iphone’
pr1br = ‘apple’
pr1pr = 50000
pr2id = 459
pr2nm = ‘airpods’
pr2br = ‘apple’
pr2pr = ‘20000’
URL = ‘https://mc.yandex.ru/collect/?tid=’+str(tid)+‘&cid=’+str(cid)+‘&t=event&pa=’+str(pa)+‘&pr1id=’+str(pr1id)+‘&pr1nm=’+str(pr1nm)+‘&pr1br=’+str(pr1br)+‘&pr1pr=’+str(pr1pr)+‘&pr2id=’+str(pr2id)+‘&pr2nm=’+str(pr2nm)+‘&pr2br=’+str(pr2br)+‘&pr2pr=’+str(pr2pr)+‘&ti=’+str(ti)+‘&tr=’+str(tr)+‘&ms=’+str(ms)
r_s = requests.get(URL)
print(r_s)
import requests
import time
TOKEN = » #Укажите токен чат-бота в ТГ.
ms = » #Укажите ваш токен Яндекс Метрики
tid = » #Укажите ваш cчетчик
cids = {} #clientID
prev = {} #предыдущая страница
URL = f’https://api.telegram.org/bot{TOKEN}/’
last_update_id = 0
user_states = {}
#———Функции для отправки хитов в Яндекс Метрику (start)
#ОТПРАВКА ПРОСМОТРОВ
def YM_send_pageView(path, dt, chat_id):
cid = cids.get(chat_id, chat_id) #если есть clientID в словаре, то берем его, если нет используем chat_id
dl = ‘https://yourdomain.ru/chatbot/’+str(path) #URL
URL = ‘https://mc.yandex.ru/collect/?tid=’+str(tid)+’&cid=’+str(cid)+’&t=pageview&dl=’+str(dl)+’&dt=’+str(dt)+’&ms=’+str(ms)
r_s = requests.get(URL)
print(‘pageView’)
print(r_s)
#ОТПРАВКА СОБЫТИЙ
def YM_send_event_button(path, button, chat_id):
cid = cids.get(chat_id, chat_id) #если есть clientID в словаре, то берем его, если нет используем chat_id
dl = ‘https://yourdomain.ru/chatbot/’+str(path)
URL = ‘https://mc.yandex.ru/collect/?tid=’+str(tid)+’&cid=’+str(cid)+’&t=event¶ms={«clickButton»:»‘+str(button)+'»}&dl=’+str(dl)+’&ms=’+str(ms)
r_s = requests.get(URL)
print(‘event’)
print(r_s)
#———Функции для отправки хитов в Яндекс Метрику (end)
# Главное меню
main_keyboard = {
«keyboard»: [
[{«text»: «🎬 Фильмы»}, {«text»: «📺 Сериалы»}],
[{«text»: «🔍 Поиск по жанру»}, {«text»: «✍️ Оставить отзыв»}],
[{«text»: «🔥 Топ 10»}, {«text»: «🎲 Случайный»}],
[{«text»: «📚 Инструкция»}, {«text»: «🔙 Назад в меню»}],
],
«resize_keyboard»: True
}
def send_message(chat_id, text, reply_markup=None):
payload = {
«chat_id»: chat_id,
«text»: text,
«reply_markup»: reply_markup or main_keyboard
}
requests.post(URL + ‘sendMessage’, json=payload)
def handle_command(message):
user_id = message[«from»][«id»]
chat_id = message[«chat»][«id»]
text = message.get(«text», «»)
# Состояния ввода
if user_id in user_states:
state = user_states[user_id]
if state == «waiting_feedback»:
send_message(chat_id, f»Спасибо за отзыв!\nТы написал: “{text}”»)
del user_states[user_id]
return
elif state == «waiting_genre»:
genre = text.lower()
recommendations = {
«комедия»: [«Очень страшное кино», «Маска», «1+1»],
«боевик»: [«Джон Уик», «Терминатор», «Форсаж»],
«драма»: [«Зеленая миля», «Престиж», «Остров проклятых»]
}
films = recommendations.get(genre)
if films:
send_message(chat_id, f»Рекомендации в жанре ‘{genre}’:\n- » + «\n- «.join(films))
else:
send_message(chat_id, «Жанр не найден. Попробуй: комедия, боевик, драма.»)
del user_states[user_id]
return
# Команды
if text == «/start»:
send_message(chat_id, «Привет! Я бот для рекомендаций фильмов и сериалов. Выбери опцию ниже:»)
path = ‘start’
dt = ‘Экран приветствия’
YM_send_pageView(path, dt, chat_id)
prev[chat_id] = path
elif text.startswith(«/start») and text[len(«/start»):].lstrip() == text[len(«/start»):].lstrip(» «): #доп условия, чтобы обработать clientID
send_message(chat_id, «Привет! Я бот для рекомендаций фильмов и сериалов. Выбери опцию ниже:»)
client_id = text[len(«/start»):].strip() or None
cids[chat_id] = client_id
path = ‘start’
dt = ‘Экран приветствия’
YM_send_pageView(path, dt, chat_id)
prev[chat_id] = path
elif text == «🎬 Фильмы»:
button = ‘🎬 Фильмы’
YM_send_event_button(prev[chat_id], button, chat_id)
send_message(chat_id, «Популярные фильмы:\n- Начало\n- Дюна\n- Матрица»)
path = ‘movies’
dt = ‘Фильмы’
YM_send_pageView(path, dt, chat_id)
prev[chat_id] = path
elif text == «📺 Сериалы»:
button = ‘📺 Сериалы’
YM_send_event_button(prev[chat_id], button, chat_id)
send_message(chat_id, «Популярные сериалы:\n- Шерлок\n- Во все тяжкие\n- Ведьмак»)
path = ‘series’
dt = ‘Сериалы’
YM_send_pageView(path, dt, chat_id)
prev[chat_id] = path
elif text == «🔥 Топ 10»:
button = ‘🔥 Топ 10’
YM_send_event_button(prev[chat_id], button, chat_id)
send_message(chat_id, «Топ 10 IMDb:\n1. Побег из Шоушенка\n2. Крестный отец\n3. Темный рыцарь»)
path = ‘top10’
dt = ‘Топ 10’
YM_send_pageView(path, dt, chat_id)
prev[chat_id] = path
elif text == «🎲 Случайный»:
button = ‘🎲 Случайный’
YM_send_event_button(prev[chat_id], button, chat_id)
import random
options = [«Интерстеллар», «Драйв», «Платформа», «Остров проклятых»]
send_message(chat_id, f»Советую посмотреть: {random.choice(options)}»)
path = ‘random’
dt = ‘Случайный’
YM_send_pageView(path, dt, chat_id)
prev[chat_id] = path
elif text == «📚 Инструкция»:
button = ‘📚 Инструкция’
YM_send_event_button(prev[chat_id], button, chat_id)
send_message(chat_id, «Выбирай кнопки для рекомендаций, отправь отзыв или введи жанр.»)
path = ‘instructions’
dt = ‘Инструкция’
YM_send_pageView(path, dt, chat_id)
prev[chat_id] = path
elif text == «🔍 Поиск по жанру»:
button = ‘🔍 Поиск по жанру’
YM_send_event_button(prev[chat_id], button, chat_id)
send_message(chat_id, «Напиши жанр: комедия, боевик, драма.»)
user_states[user_id] = «waiting_genre»
path = ‘search_genre’
dt = ‘Поиск по жанру’
YM_send_pageView(path, dt, chat_id)
prev[chat_id] = path
elif text == «✍️ Оставить отзыв»:
button = ‘✍️ Оставить отзыв’
YM_send_event_button(prev[chat_id], button, chat_id)
send_message(chat_id, «Пожалуйста, введи свой отзыв:»)
user_states[user_id] = «waiting_feedback»
path = ‘feedback’
dt = ‘Оставить отзыв’
YM_send_pageView(path, dt, chat_id)
prev[chat_id] = path
elif text == «🔙 Назад в меню»:
button = ‘🔙 Назад в меню’
YM_send_event_button(prev[chat_id], button, chat_id)
send_message(chat_id, «Возвращаемся в меню.»)
path = ‘menu’
dt = ‘меню’
YM_send_pageView(path, dt, chat_id)
prev[chat_id] = path
else:
send_message(chat_id, «Не понял сообщение. Используй кнопки или напиши отзыв.»)
path = ‘404’
dt = ‘404’
YM_send_pageView(path, dt, chat_id)
prev[chat_id] = path
def poll():
global last_update_id
while True:
try:
res = requests.get(URL + ‘getUpdates’, params={«offset»: last_update_id + 1, «timeout»: 10})
data = res.json()
for update in data[«result»]:
last_update_id = update[«update_id»]
if «message» in update:
handle_command(update[«message»])
except Exception as e:
print(«Ошибка:», e)
time.sleep(3)
if __name__ == ‘__main__’:
print(«Бот запущен…»)
poll()
Подпишитесь на полезные материалы, которые помогут вам
Оформляя подписку, вы разрешаете обработку персональных данных и соглашаетесь с политикой конфиденциальности