Данный канал посвящён моему опыту в контентные проектах. Так сказать амбициозный новичок в вебмастерском деле с минимальным бюджетом. Стартуем? Для связи - @yawebmaster_vl
982подписчиков сейчас
43.0%ERR
4.0цитируемость
2постов/день
Русскийязык
Россиягео
Подписаться в Telegram
Данные обновлены 22.07.2020
Публикации всего: 31
С появлением ИИ я очень плотно с ним начал взаимодействовать, но не на уровне - "эт самое, сделай хорошо, а плохо не делай", а на уровне глубокой проработке запроса с корректировками, с вайбкодингом и тп.
И так как статей было сгенерено огромное количество, через разные нейронки, начитанность и считывание нейросетевых паттернов писания у меня огромная.
Нет, это не значит что при чтении текста я триггерюсь на длинное тире или кавычки елочки (для всех адептов таких патернов оговорка - крупные медиа в ред политике обязательно используют длинное тире и кавычки елочки, от*#*итесь вы уже от них), я триггерюсь уже на чуть более тонкие моменты, так как сам их регулярно встречаю и правлю.
Вот пример - нейронка любит экспрессию, даже если ее об этом не просят. И когда ты работаешь с нейротекстами недавно, то для тебя это офигеть какой крутой речевой оборот и он кажется логичным в контексте написанной статьи, но когда ты работаешь с ИИ долго, это уже выглядит как заклинивание на одном и том же моменте:
- "моментальный бан", "сразу же забанят", "улетит в моменте в бан"
Все эти словосочетания в том или ином виде из статей про мультиаккаунтинг и антифрод. Нейронка всегда пихает эти обороты в тексты по данной тематике, хотя по факту как таковых моментальных банов там не так чтобы и много, в основном там постепенное ограничение.
И вот к чему я это? Да просто, сижу читаю очередную партнерскую статью, за которую заплатили 30к, и понимаю что передо мной нейротворение с такими вот оборотами. И вот что делать? Статья пойдет к нему на сайт, фактически риски минимальны, да... Или нет?
Это уже включается специалист, который мог бы поработать над алгоритмами ранжирования Гугла, ведь если статья нейросетевая, Гугл ее может не пустить в выдачу, ее не будет никто читать, а значит клиентов с этой статьи мы не получим, так? А зачем нам статья за 30к? Ради ссылки?
Короче вопросики...
Вы как считаете, нейротексты, хоть и переработанные человеком могут продаваться по 30к? А по 80к?
Я считаю что не могут, но они продаются. Есть уважаемый в своей нише ресурс, который такие статьи продает по 190к (там правда размещение стоит 110, а написание те самые 80) и эти статьи читаются и читаются много (78к прочтений).
❤ 3 😁 1
Перейти к публикации →
Ох давненько я ничего не писал тут)) Аж скулы сводит))
Короче, прикольная штука приключилась со мной, начали мне писать в один день владельцы ТГ-каналов, с предложением купить у них рекламу. И так складно у них все выходит, пишут такой мед для моих ушей, что страшно становиться.
Писали причем с перерывом в час где то и с одной и той же легендой - сделаем такую рекламу вашего проекта, что вы просто охренеете.
Потом один из них меня познакомил меня со своим корефаном, который, вот повезло, тоже канал имеет свой в ТГ.
Чувствую что где-то нагреть пытаются, но не могу понять где...
Проверяю статистику - там тоже мед, все классно.
Но благо добрые люди рассказали про схему одну - закупают ребята каналы по-дешевке, делают сетки, генерят на них тексты, что не отличить от реального человеческого и идут с предложениями.
Сами друг друга пиарят, накручивают просмотры, показы комменты - в общем серьезный подход. Ну и с одного канала берут по 600-900 долларов.
Ну и математика неплохая получается, 4 канала по 600 баксов, уже 2400 за месяц, а в сетке нифига не 4 канала.
В общем, вот такие дела, малята)))
❤ 6 💯 1
Перейти к публикации →
Я в последнее время часто работаю с прокси, и обратил внимание, как изменились мобильные прокси.
Вот что вы представляете, когда слышите (или видите) это сочетание слов?
Я лично, до определённого момента, всегда ассоциировал мобильные прокси с фермой из нескольких мобильных устройств, ведь раньше именно так и поднимали сетку таких проксей. Куча мобильных девайсов, телефоны, модемы, все это мигает, пиликает (да, вот такая странная ассоциация, что сказать).
В целом, рынок мобильных прокси на заре своего развития можно было сравнить с сетью автосалонов Бентли в какой-нибудь стране СНГ (они автосалоны вроде бы есть, где-то далеко. Один или два жителя даже заходил туда пару раз... Просто спросить, естественно. Но позволить себе что-то там купить могли далеко не все). Так продолжалось какое то время, пока в 2017 году в первый раз мир проксей не увидел такое явление, как пиринговые сети... Источники могут путаться в цифрах, но период примерно тот.
Впервые такие сети стали появляться у крупных сервисов, типа Luminati и Oxylabs (в целом они то и были первыми).
Сейчас ситуация сильно изменилась, мобильные прокси встали в один ряд с резидентными, за счет повсеместного внедрения этих самых пиринговых сетей.
Пиринговые сети - это когда ip адреса мобильных операторов получают не через собственную мобильную ферму, а напрямую от пользователя, который подключен в сеть при помощи SDK-приложений. Другими словами, на смартфоне стоит игра или приложение, которое шарит ваш трафик провайдеру (вы можете знать об этом или нет, сути это не меняет - вы часть сети).
Вот откуда эти бешеные цифры у провайдеров мобильных прокси в несколько миллионов ip-адресов на разные ГЕО. Ведь получить даже тысячу ip на своей ферме - был тот еще квест, а с peer-to-peer сетью это больше не задачка со звёздочкой.
В целом технология peer-to-peer ничем не уступает по качеству мобильной ферме, но, как говориться есть нюансы. Провайдер не контролирует устройства, а значит он не может гарантировать скорость, устойчивость и латентность сети. Там все зависит от внешних факторов.
Но плюсов тут бесспорно больше - цена снижена, от 80$ за порт мы пришли к 3-5$ за Гб, а ведь есть еще и безлимитные тарифы, от 20$ в месяц.
Конечно, вопрос уже в добросовестности провайдера - у некоторых ручки так и чешутся подмешать в пул с мобильными прокси несколько резидентных, что они там выгадывают таким образом большой вопрос, а карму себе (да и просто репутацию) сильно портят.
Лекарство тут одно, периодические и систематические проверки от пулов перед запуском их в работу.
Какой же трэш, Индусы дорвались до Кворка.
Подыскиваю чувака на крауд, и полез на Кворк, а там...
Страна чудес - автопереведенные БИО исполнителей из Индустана. Они уже тут
Не так я себе представлял импортозамещение, конечно...
"Здравствуйте сэр, я экспорт по SEO"
Давно я ничего не писал, думаю пора обновить ленту.
Я долгое время писал статьи на свой аккаунт Хабр, у меня свои заказчики, для кого я пишу тексты технической и полутехнической направленности, плюс по работе я часто сталкиваюсь с техническими копирайтерами и я знаю, что текст про технологии (что то с кодом, что то про автоматизацию и т.д.) не стоит дешево, авторам неинтересно писать дешево в этой тематике, так как они лучше потратят это время на что-то, что принесет им больше денег.
И вот мне интересно почему Хабр, который позиционирует себя как супер крутой продукт так неуважительно относится к своим авторам, авторы, которые пишут ему технические тексты получают от 5 до 15к за проект (а проект это не одна статья может быть). Фактически Хабр берет с рекламодателя минимум 175к за три месяца за корпоративный блог (это самый минимальный тариф, на максимуме там 360к за 3 месяца просто за возможность писать статьи от лица компании), но своим авторам он готов платить не больше 15к😐😐😐 Я не говорю еще про какой-то кодекс, которого придерживаются сотрудники Хабра))
Кто эти технари, которые пишут им технические тексты за 15к (это кстати, верхняя планка, минимум 5к, и что то мне подсказывает платить стараются именно минимум)? Вы бы подвязались под такой проект за 5-15к?
Я когда дошел до второго вопроса, где и указана цена, сразу закрыл анкету.
Там же еще такой спрос бешеный, что они прям в анкете пишут - может быть, когда нибудь мы с вами свяжемся)))
Хабр это не про заработок - это про команду мечты, вероятно))
😢 1 💯 1 🤝 1
Перейти к публикации →
Ну, с днём сеошника! 🎉🍾🎊
А еще сегодня день пофигиста!
- Что?
- Что?
В комментах под предыдущим постом скинули мне это расширение - https://chromewebstore.google.com/detail/gsc-guardian/aomiehgfjgolamlllgbkjbnfmdmffcch
Оно накладывает апы гугла на график в серч консоли, то есть если просто надо посмотреть как себя вёл сайт (один сайт) после и во время апа - нормальный вариант.
Но если у вас несколько проектов и надо их сравнивать друг с другом, я все же буду использовать скрипт, который описал выше.
Он выводит на один график все проекты, которые туда добавить, но за расширение спасибо, я не знал о нем
# Добавляем прямоугольники (vrect) для Google Updates
for upd in GOOGLE_UPDATES:
if upd['name'] in selected_updates:
fig.add_vrect(
x0=upd['start'], x1=upd['end'],
fillcolor='red', opacity=0.1, layer='below', line_width=0,
annotation_text=upd['name'],
annotation_position="top left"
)
# Добавляем события (вертикальные линии) для выбранных ev
for ev in EVENTS:
if ev['name'] in selected_events:
date_str = pd.to_datetime(ev['date']).strftime('%Y-%m-%d')
print(f"Adding event line: {ev['name']} at {date_str}") # Диагностика
fig.add_vline(
x=date_str,
line_color='blue',
opacity=1.0,
line_width=2,
layer='above'
)
fig.add_annotation(
x=date_str,
y=1,
xref='x',
yref='paper',
text=ev['name'],
showarrow=True,
arrowhead=2,
ax=0,
ay=-40,
font=dict(color='blue', size=12)
)
# Настройка осей
fig.update_layout(
title="GSC Трафик",
xaxis_title="Дата",
yaxis_title="Значение",
legend_title="Сайты и метрики",
xaxis=dict(
tickmode='linear',
tick0=pd.to_datetime(START_DATE),
dtick=86400000.0, # один день (в мс)
tickformat="%d-%m-%Y",
rangeslider=dict(visible=True),
)
)
# Если метрик нет => вручную задаём X-ось (иначе range может оказаться [0..1])
if not selected_metrics:
print("No metrics selected -> Forcing x-range to START..END")
fig.update_xaxes(range=[START_DATE, END_DATE])
# Обработка зума (для Y-оси)
if relayoutData:
if "xaxis.range[0]" in relayoutData and "xaxis.range[1]" in relayoutData and selected_metrics:
x_start = pd.to_datetime(relayoutData["xaxis.range[0]"])
x_end = pd.to_datetime(relayoutData["xaxis.range[1]"])
mask = (filtered_df['date'] >= x_start) & (filtered_df['date'] <= x_end)
zoomed_df = filtered_df[mask]
if not zoomed_df.empty:
y_min = zoomed_df[selected_metrics].min().min()
y_max = zoomed_df[selected_metrics].max().max()
y_padding = (y_max - y_min) * 0.05
fig.update_yaxes(range=[y_min - y_padding, y_max + y_padding])
# Чтобы при переключении чекбоксов не сбрасывался зум или аннотации
fig.update_layout(uirevision='fixed')
return fig
if __name__ == '__main__':
app.run(debug=True)
В данном коде необходимо изменить следующее:
Строка 14 - вписать ваши домены, которые нужно вывести на графике
Строка 19 - указываем период, за который нужны данные (если проектов много, рекомендую не брать слишком большой период - будет долго подгружать)
Строка - 25-46 - тут я вписал апы Гугла - вы можете добавить если что то не указано
Строка 48 - тут вписываете события, которые хотите видеть на графике (они будут показаны вертикальной линией, как на скрине выше)
Строка 84 - название вашего JSON - файла (который расположен в той же папке, что и сам скрипт)
Все - вы почти готовы начинать...
Устанавливаем зависимости этой командой
pip install dash plotly pandas google-auth google-auth-oauthlib google-auth-httplib2 google-api-python-clientИ запускаем скрипт
python main.pyКогда скрипт запустится вы увидите в терминале, что дашборд доступен по локальному адресу, в моем случае это - http://127.0.0.1:8050 - переходим по этому адресу и работаем с дашбордом Ну и да, новые апы нужно будет добавлять руками уже самостоятельно, а как вы хотели, некоммерческие проекты они такие🤷
def fetch_gsc_data(property_uri, start_date, end_date, creds):
service = build('searchconsole', 'v1', credentials=creds)
body = {
'startDate': start_date,
'endDate': end_date,
'dimensions': ['date'],
'rowLimit': 10000
}
response = service.searchanalytics().query(siteUrl=property_uri, body=body).execute()
rows = response.get('rows', [])
data = []
for r in rows:
d = r['keys'][0]
data.append({
'date': d,
'clicks': r.get('clicks', 0),
'impressions': r.get('impressions', 0),
'position': r.get('position', 0)
})
df = pd.DataFrame(data)
df['date'] = pd.to_datetime(df['date'])
return df
def load_all_data(
start_date=START_DATE,
end_date=END_DATE,
sites=SITES,
creds_file="Название вашего JSON-файла"
):
creds = service_account.Credentials.from_service_account_file(
creds_file,
scopes=["https://www.googleapis.com/auth/webmasters.readonly"]
)
all_df = []
for s in sites:
df_s = fetch_gsc_data(s, start_date, end_date, creds)
df_s['domain'] = s
all_df.append(df_s)
big_df = pd.concat(all_df, ignore_index=True)
return big_df
app = dash.Dash(__name__)
GLOBAL_DF = None # кешируем загруженные данные
app.layout = html.Div([
html.H1("GSC Дашборд - Клики, Показы, Позиция"),
html.Div([
html.Label("Выберите сайт(-ы):"),
dcc.Checklist(
id='site-selector',
options=[{'label': site, 'value': site} for site in SITES],
value=SITES,
inline=True
),
]),
html.Div([
html.Label("Метрики:"),
dcc.Checklist(
id='metric-selector',
options=[
{'label': 'Клики', 'value': 'clicks'},
{'label': 'Показы', 'value': 'impressions'},
{'label': 'Позиция', 'value': 'position'},
],
# Если тут пусто, у нас нет рядов данных => ось X может стать [0..1]
value=[],
inline=True
),
]),
html.Div([
html.Label("Показать Google Updates:"),
dcc.Checklist(
id='updates-toggle',
options=[{'label': u['name'], 'value': u['name']} for u in GOOGLE_UPDATES],
value=[],
inline=True
),
]),
html.Div([
html.Label("Показать события:"),
dcc.Checklist(
id='events-toggle',
options=[{'label': e['name'], 'value': e['name']} for e in EVENTS],
value=[],
inline=True
),
]),
dcc.Graph(id='gsc-graph')
])
@app.callback(
Output('gsc-graph', 'figure'),
[
Input('site-selector', 'value'),
Input('metric-selector', 'value'),
Input('updates-toggle', 'value'),
Input('events-toggle', 'value'),
Input('gsc-graph', 'relayoutData')
]
)
def update_graph(selected_sites, selected_metrics, selected_updates, selected_events, relayoutData):
global GLOBAL_DF
if GLOBAL_DF is None:
GLOBAL_DF = load_all_data()
print("=== CALLBACK ===")
print("Selected events: ", selected_events) # Проверяем в консоли, что выбрано
fig = go.Figure()
# Фильтруем общий DF по выбранным доменам
filtered_df = GLOBAL_DF[GLOBAL_DF['domain'].isin(selected_sites)]
# Если выбраны метрики, строим линии
if selected_metrics:
for site in selected_sites:
df_site = filtered_df[filtered_df['domain'] == site].sort_values('date')
for metric in selected_metrics:
fig.add_trace(go.Scatter(
x=df_site['date'],
y=df_site[metric],
mode='lines',
name=f"{site} - {metric}"
))История названий канала
14.08.2026
название
Записки молодого вебмастера
→
Записки м̶о̶л̶о̶д̶о̶г̶о̶ вебмастера
Дата — момент, когда изменение заметил наш обход.
Новый адрес канала - @temalebedev
Илья Варламов
Переходник
y
Юлик
Я Дашка Каплан🤍