Модель монетизации популярного сервиса email рассылок unisender основана на количестве почтовых контактов. Растет количество контактов, растет тариф.

Зачем нам контакты которые не читают наши письма. Unisender предлагает email валидатор, но он платный. А мы предпочитаем не платить когда можно этого н еделать.

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

  1. Скачать отчеты о рассылках и разместить их (csv файлы) в новой/пустой директории. Допустим нас интересуют отчеты о новогодних скидках и черной пятнице. Скачаем необходимые нам отчеты.
https://planerka.app/blog/content/images/size/w1000/2024/01/12--1-.webp
  1. Создадим python скрипт
import os
import csv

# Создаем словарь для хранения данных
data_dict = {}

# Получаем список файлов в текущей директории
files = [file for file in os.listdir() if file.endswith('.csv')]

# Проходим по каждому файлу
for file in files:
    with open(file, 'r', encoding='utf-8') as csv_file:
        # Читаем CSV файл
        csv_reader = csv.DictReader(csv_file, delimiter=';')
        
        # Проходим по каждой записи в файле
        for row in csv_reader:
            email = row.get('Email', '')
            
            # Проверяем, есть ли запись с таким email в словаре
            if email in data_dict:
                # Если запись существует, добавляем новый столбец со статусом отправки
                result = row.get('Результат отправки', '')
                if result not in ['ok_read', 'ok_link_visited']:
                    data_dict[email][file] = result
            else:
                # Если записи нет, создаем новую запись в словаре
                result = row.get('Результат отправки', '')
                if result not in ['ok_read', 'ok_link_visited']:
                    data_dict[email] = {'Email': email, file: result}

# Создаем заголовок для новых столбцов
headers = ['Email'] + files

# Создаем новый CSV файл для записи данных
with open('merged_data_filtered.csv', 'w', encoding='utf-8', newline='') as merged_file:
    csv_writer = csv.DictWriter(merged_file, fieldnames=headers, delimiter=';')
    
    # Записываем заголовок
    csv_writer.writeheader()
    
    # Записываем данные
    for email_data in data_dict.values():
        csv_writer.writerow(email_data)
  1. Запускаем скрипт из терминала
romanrabochiy$ python3 unisender_cleaner.py
  1. Результатом работы скрипта будет файл merged_data_filtered.csv со списком контактов не прочитавших ни ОДНО письмо или ни разу не переходившие по ссылкам из письма.
  2. Файл merged_data_filtered.csv импортировать в Unisender в новый список контактов, назвать его - "К удалению". После этого удалить этот список вместе с контактами внутри.

Как сделать это без кода?

При помощи excel 😎

Подключайте Планёрку

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

promo

Последнее обновление: март 20, 2024