Обновить

Хеширование данных для Яндекс
кейс работы с AI

Задача: нужно хешировать данные о покупателях и передать в Яндекс для мэтчинга. Данные о покупателях в моём случае в двух столбцах таблицы XLSX: номер телефона и дата покупки. В Яндекс нужно передать TXT файл с хешированными данными по алгоритму MD5.

Решение: скрипт на Python от ChatGPT. Скачать скрипт вместе с примером исходных данных.

Комментарии: В скрипте hash.py указываете путь к источнику данных таблицы XLSX и путь по которому нужно сохранить данные в хешированном виде в файле с расширением TXT. При необходимости можно сменить алгоритм хеширования с MD5 на SHA-256.

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

— Срок — Период, за который делаем мэтчинг хешей.
— Сумма за период (до НДС) — сколько было потрачено на рекламу за период.
— Кол‑во записей — сколько хешей было в файле клиента.
— Кол‑во совпадений — сколько хешей нашлось в системе.
— Сумма совпадений — сумма покупок по тем пользователям, которые совпали по файлу клиента.
— Ср. чек — средний чек клиента за период работы рекламы.
— ДРР — показатель, отражающий отношение рекламных расходов к доходам от этой рекламы.
— % авторизованных от общего числа — процент пользователей, которые пользуются версиями Карт будучи авторизованными.
— Кол‑во авторизованных от общего числа — показываем, сколько авторизованных пользователей было из тех, которые выслал клиент.
— % авторизованных с записью — показываем процент авторизованных пользователей, которые совершили покупку.
— Кол‑во авторизованных с записью — показываем, сколько авторизованных пользователей совершили покупку.

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

import pandas as pd
import hashlib

# Считайте данные из Excel
df = pd.read_excel('D:\\Проекты\\проект\\хэшер\\Данные о покупателях.xlsx')

# Хешируйте данные
def hash_data(data):
    hashed_data = []
    for index, row in df.iterrows():
        hashed_row = []
        for value in row:
            hashed_value = hashlib.md5(str(value).encode()).hexdigest()
            hashed_row.append(hashed_value)
        hashed_data.append(hashed_row)
    return hashed_data

hashed_data = hash_data(df)

# Формируйте хеш-строку
def form_hash_string(hashed_data):
    hash_string = ''
    for row in hashed_data:
        for value in row:
            hash_string += value + ','
        hash_string = hash_string[:-1] + '\n'
    return hash_string

hash_string = form_hash_string(hashed_data)

# Сохраните хеш-строку в файл
with open('D:\\Проекты\\проект\\хэшер\\Данные о покупателях MD5.txt', 'w') as f:
    f.write(hash_string)

Без привлечения ресурсов разработчика, без знаний Phyton и с помощью ChatGPT решил небольшую задачу. Продолжаю перестраивать работу в интернет-маркетинге, чтобы осознать возможности AI и больше использовать искусственный интеллект в разных задачах. Решение от DeepSeek пока не изучал.

Может пригодится:
Требования к файлам для Яндекс Аудиторий.
Про Advanced Matching для рекламодателей Яндекса. Поможет повысить эффективность рекламы.

Теги:
Рейтинг0
Комментарии0

Как я, учась в айти, работаю на 15-тонном советском станке и автоматизирую его без CAM‑системы и комментариев

Мне 19. Днем я очный студент айтишник, а в остальное время — единственный человек в цеху, кто работает на 15-тонном советском горизонтально‑фрезерном станке ИР-500. Мозги у этого монстра под стать эпохе: древняя корейская стойка Fanuc 0-M 1982 года.

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

Но есть проблема, передачу файлов через кабель он не поддерживает, CAM‑систему не подключить..
Для меня, привыкшего к созданию 3D‑моделей и визуализации всех траекторий в Fusion360 — было непросто адаптироваться.

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

Пока детали требовали обработки в пару проходов, было все отлично. Но потом...

Началось спагетти из g‑кода. Пошли заказы на глубокое торцевание (или более сложные траектории, но сегодня не об этом), где можно потратить пол смены на написание программы.

Как я, учась в айти, работаю на 15-тонном советском станке и автоматизирую его без CAM‑системы и комментариев

Публикации