<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xmlns:tt="http://teletype.in/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>@senaev tech notes</title><generator>teletype.in</generator><description><![CDATA[@senaev tech notes]]></description><image><url>https://img1.teletype.in/files/4f/87/4f87108c-31d9-4d99-9898-d4a25b41c7cf.png</url><title>@senaev tech notes</title><link>https://teletype.in/@senaev_tech</link></image><link>https://teletype.in/@senaev_tech?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=senaev_tech</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/senaev_tech?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/senaev_tech?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Sun, 12 Apr 2026 03:30:03 GMT</pubDate><lastBuildDate>Sun, 12 Apr 2026 03:30:03 GMT</lastBuildDate><item><guid isPermaLink="true">https://teletype.in/@senaev_tech/fingerprint-snapshot</guid><link>https://teletype.in/@senaev_tech/fingerprint-snapshot?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=senaev_tech</link><comments>https://teletype.in/@senaev_tech/fingerprint-snapshot?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=senaev_tech#comments</comments><dc:creator>senaev_tech</dc:creator><title>Не фингерпринтинг 🤢, а снепшоттинг 🤌</title><pubDate>Tue, 30 Jan 2024 08:22:30 GMT</pubDate><description><![CDATA[Читаю замечательную статью branch.io про диплинки, и мне очень понравился один параграф. Позволю процитировать:]]></description><content:encoded><![CDATA[
  <p id="midX">Читаю замечательную <a href="https://www.branch.io/resources/blog/deferred-deep-linking-with-device-snapshotting/" target="_blank">статью</a> branch.io про диплинки, и мне очень понравился один параграф. Позволю процитировать:</p>
  <blockquote id="qYfY">The most basic, and simplistic form of deferred deep linking is with a technique called device fingerprinting. Fingerprinting itself has a bit of a negative connotation from the web era, where advertisers would attempt use bypass cookie blockades using fingerprint parameters to uniquely identify users. When it comes to mobile, things are <strong>much different</strong> and we believe the term ‘snapshot’ is a more representative term for what actually occurs</blockquote>
  <p id="E6KX">Ну типа смотрите. Эти рекламщики в своих браузерах совсем уже распоясались. Обходят всевозможные ограничения фингерпринтами. Идентифицируют пользователей так, как хотят. Вот ведь нахалы.</p>
  <p id="ewJQ">Другое дело - мобилка. Это &quot;much different&quot; (совсем другое) и мы верим, что для нас термин &quot;снепшот&quot; подходит гораздо больше. Не нужно нас путать с этими токсичными рекламщиками из веба. Мы тут хорошее дело делаем.</p>
  <p id="tFfl">Представляю, как ребята переживают. У них по сути весь бизнес завязан на фингерпринты (простите, снепшоты). Как только Android и iOS разработают свои системы диплинков, branch.io начнут стремительно терять свой бизнес. Но лучше уж так, чем если прямо сейчас Android под соусом Privacy Sandbox начнет урезать возможности для фингерпринта в операционках.</p>
  <p id="Slg2">И все же, очень классный трюк . Нужно учиться работать с терминологией.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@senaev_tech/universal-link</guid><link>https://teletype.in/@senaev_tech/universal-link?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=senaev_tech</link><comments>https://teletype.in/@senaev_tech/universal-link?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=senaev_tech#comments</comments><dc:creator>senaev_tech</dc:creator><title>Universal Link и другие ссылки в приложения</title><pubDate>Mon, 29 Jan 2024 17:20:38 GMT</pubDate><description><![CDATA[Попытался понять принцип работы ссылок, которые ведут в приложеньки. А там полная неразбериха в терминах. Пришлось разбираться.]]></description><content:encoded><![CDATA[
  <p id="6WNd">Попытался понять принцип работы ссылок, которые ведут в приложеньки. А там полная неразбериха в терминах. Пришлось разбираться.</p>
  <p id="sdXc">Deep link - это ссылка, которая ведет не просто в приложение, а в конкретную его часть. Например, открывает конкретную страницу в приложении, или сразу применяет необходимые настройки. Примеры таких ссылок:</p>
  <ul id="yU6N">
    <li id="cOQS">Конкретный товар в приложении <code>ebay://item/view?id=360703170135</code></li>
    <li id="pBdu">Раздел с обувью <code>https://www.wildberries.ru/catalog/obuv</code></li>
    <li id="rae6">Координаты <code>geo:55.79378663446035,49.11699501723111</code></li>
    <li id="YlEx">Ссылка на почту <code>mailto:andrei@senaev.com</code></li>
  </ul>
  <p id="jnbp">Любая из ссылок выше может вести в приложение, а значит являться диплинком. Некоторые из них стандартизованы (<code>https</code>, <code>geo</code>, <code>mailto</code>), некоторые - нет (<code>ebay</code>).</p>
  <p id="LhLI">Одну и ту же ссылку (<code>geo</code>, <code>mailto</code>) могут уметь обрабатывать несколько приложений. В этом случае для выбора пользователю показывается <strong>disambiguation dialog</strong>: “В каком приложении открыть ссылку?”, “А вы точно уверены?”, “А всегда открывать тут или только сейчас?”.</p>
  <p id="PJgC">Ссылка может быть с фоллбеком на Web (<code>http</code>, <code>https</code>). Такие ссылки называются <strong>Web Link</strong>. Преимущество у Web Link очевидно - в случае если приложение не установлено, всегда есть фоллбек на браузер.</p>
  <p id="Nih4">Чтобы избежать показа disambiguation dialog, необходимо верифицировать домен и ассоциировать его с конкретным приложением. После верификации ссылка остается такой же, но теперь можно называть ее <a href="https://developer.android.com/training/app-links#add-app-links" target="_blank"><strong>Android App Link</strong></a>. Примерно так же оно работает для iOS, только называется <a href="https://developer.apple.com/documentation/xcode/supporting-associated-domains" target="_blank"><strong>Universal Link</strong></a>.</p>
  <p id="fEqM">Преимущество Universal Link очевидно - можно одну и ту же ссылку передать пользователю iOS, Android или Desktop. При этом откроется именно та страница приложения/сайта, которую хочет пользователь. Без лишних подтверждений и диалогов. Где именно откроется ссылка, будет зависеть от платформы и от того, установлено ли на ней приложение.</p>
  <p id="mnVy">Что делать если приложение не установлено? Очевидно, на устройстве откроется браузер и у нас будет два варианта.</p>
  <ol id="Vxpt">
    <li id="A6tn">Оставить пользователя в браузере. Чаще всего мы этого не хотим, нам нужно приложение, там выше конверсионность.</li>
    <li id="PZUA">Сразу же, либо по кнопке (А ВОТ СМОТРИ, У НАС ЕЩЕ ПРИЛОЖЕНИЕ ЕСТЬ) перенаправить пользователя в стор за приложением. А когда приложение будет установлено - все равно показать пользователю ту страницу, которую он хотел изначально.</li>
  </ol>
  <p id="buyg">Второе называется <strong>Deferred Deep Link</strong>. Работает это в основном на основе фингерпринта. На HTML странице JS библиотека (чаще всего AppsFlyer или <a href="http://branch.io" target="_blank">branch.io</a>) делает вызов сервера. Сервер запоминает модель устройства, IP адрес и время. После этого библиотека редиректит пользователя в стор. Когда пользователь скачивает приложение, SDK внутри приложения идентифицируют этого пользователя по фингерпринту и перенаправляет на нужную страницу.</p>
  <p id="gQ8l">Итого, еще раз зафиксируем базовые термины:</p>
  <ul id="iPTf">
    <li id="7eZh"><strong>Deep link</strong> - ссылка, которая ведет приложение. Она также может содержать в себе параметры, которые приложение обработает.</li>
    <li id="DCK2"><strong>Universal Link</strong> - разновидность Deep Link с протоколом https и реальным доменом. Причем домен ассоциирован с приложением (отдельно Apple и Google). Android App Link тоже будем называть Universal Link для удобства.</li>
    <li id="G2qj"><strong>Deferred Deep Link -</strong> разновидность Universal Link, которая умеет дожидаться установки приложения и передавать в него параметры.</li>
  </ul>
  <p id="bqFV">Источники - хорошая <a href="https://habr.com/ru/articles/686990/" target="_blank">статья</a> и вот еще <a href="https://habr.com/ru/companies/jugru/articles/352914/" target="_blank">одна</a></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@senaev_tech/how-prebid-works-with-google-ad-module</guid><link>https://teletype.in/@senaev_tech/how-prebid-works-with-google-ad-module?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=senaev_tech</link><comments>https://teletype.in/@senaev_tech/how-prebid-works-with-google-ad-module?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=senaev_tech#comments</comments><dc:creator>senaev_tech</dc:creator><title>Как GAM (Google Ad Manager) работает в Prebid и почему это хуже, чем просто &quot;через жопу&quot;</title><pubDate>Fri, 17 Nov 2023 09:35:24 GMT</pubDate><description><![CDATA[Дело в том, что Google Ad Manager - прекрасный инструмент, который замечательно решает поставленную задачу. Ты можешь приходить в него и заводить рекламные кампании (РК). Можешь сам создавать шаблоны баннеров (буквально прописывать текстом и вставлять макросы). После этого выставляешь на рекламной кампании CPM и запускаешь. Все прекрасно. Но есть подвох, связанный с пребидом.]]></description><content:encoded><![CDATA[
  <p id="IVET">Дело в том, что Google Ad Manager - прекрасный инструмент, который замечательно решает поставленную задачу. Ты можешь приходить в него и заводить рекламные кампании (РК). Можешь сам создавать шаблоны баннеров (буквально прописывать текстом и вставлять макросы). После этого выставляешь на рекламной кампании CPM и запускаешь. Все прекрасно. Но есть подвох, связанный с пребидом.</p>
  <p id="IP8a">Prebid был создан как открытый инструмент для клиентских рекламных аукционов. На сайте грузится библиотека пребида с заранее добавленными биддерами. Биддеры - это рекламные сети, код которых зашит в библиотеку. Они могут принимать участие в аукционе за рекламное место на сайте. Когда сайт загружается и нужно показать рекламу, каждый бидер запрашивает свой сервер и отдает в клиентский скрипт пребида свою ставку. Та ставка, которая побеждает, показывает свою рекламу на странице. Просто и элегантно, но не решает две важные для площадок задачи:</p>
  <ul id="EdOf">
    <li id="qcWL">Телеметрия. Площадка должна понимать, как реклама работает на сайте, сколько приносит денег, какие биддеры работают лучше, а какие хуже.</li>
    <li id="4u4D">Гугл. Как не крути, но гугл - это бесценный источник трафика. На самом деле текущие интеграции с пребидом необходимы площадке для того, чтобы &quot;дофиллить&quot; те 20% трафика, за которые гугл не готов предложить хорошую ставку, а биддеры готовы. Часто какой-нибудь биддер знает про пользователя что-то такое, чего гугл не знает. Например, что пользователь недавно пытался купить кофеварку.</li>
  </ul>
  <p id="f4Nd">Если посмотреть со стороны, то вырисовывается очевидная картина того, как это все могло бы работать. Например, гугл пишет свой адаптер для пребида и наряду с остальными биддерами принимает участие в аукционе. Дополнительно гугл пишет модуль для аналитики (такая фича тоже есть в пребиде), который позволил бы в одном месте собирать всю информацию о работе рекламы. В этой схеме счастливы все, кроме самого гугла. Он монополист и терять свою монополию совсем не хочет. Гугл знает, что многим площадкам выгодней пользоваться просто гуглом, чем совсем от гугла отказаться.</p>
  <p id="2Sjd">Получается, что Гуглу выгодно сказать &quot;либо используйте только нас, либо давайте без нас&quot;? Тут тоже нет. Во-первых, антимонопольщики и так кошмарят гугл по всем фронтам в последние годы. Во-вторых, помним про то, что гугл - не первоисточник данных о пользователе и другие рекламные сети могут знать такие &quot;интимные подробности&quot; из жизни пользователя, которые гуглу тоже было бы интересно узнать.</p>
  <p id="RKtn">Поэтому гугл выбрал третий путь - одновременно &quot;возглавить&quot; рекламный аукцион в пребиде и &quot;сделать мучительным&quot; подключение других рекламных систем.</p>
  <p id="2LuQ"><strong>Немного подробнее про &quot;возглавить&quot;:</strong></p>
  <p id="waa1">Всем площадкам, которые хотят допустить к рекламному аукциону биддеров помимо гугла, но при этом не потерять гугл, выдается <a href="https://docs.prebid.org/dev-docs/modules/gpt-pre-auction.html" target="_blank">модуль</a>, предоставляющий такую возможность. Это так называемый Pre-Auction Module, который собирает все ставки от биддеров отправляет их в гугл. Гугл в свою очередь видит все ставки других биддеров (а мы помним, что ставка прямо пропорциональна ценности пользователей) и таким образом получает данные о пользователях из других рекламных систем. В то же время гугл оставляет за собой право сделать &quot;решающую ставку&quot; - например, поставить на один цент выше, чем самая высокая ставка других биддеров. Таким образом с минимальным перевесом гугл побеждает в аукционе. И это в то время, как другие биддеры играют &quot;в закрытую&quot;, не зная начальные ставки конкурентов и зачастую ставя сильно больше, чем необходимо. Тут еще нужно напомнить, что пребид - это аукцион первой цены (сколько поставил, столько и заплатил).</p>
  <p id="2WO8"><strong>Немного подробнее про &quot;сделать мучительным&quot;:</strong></p>
  <p id="BeSW">А вот тут самое сладкое. Как мы помним, GAM умеет работать с РК по стратегии CPM. Зашел в GAM, вбил настройки РК, пополнил счет, задал цену за 1000 показов и ждешь, когда магия гугла сделает свое дело. Модуль гугла для пребида как раз работает напрямую с GAM, а GAM не умеет работать со ставками. Это касается и пребида. Биддер просто не может передать гуглу свою ставку, вместо этого биддер может передать гуглу номер рекламной кампании.</p>
  <p id="1MBu">Звучит поначалу так, как будто все это вместе работать просто не может, но нет. Оно работает, и так работает подавляющее большинство пребид площадок в интернете. Следите за руками. Для каждого биддера и для каждой возможной ставки (с определенным шагом) паблишер заводит в GAM рекламную кампанию.</p>
  <p id="lMVq">Площадка ставит на свой сайт пребид и пару биддеров (пусть будут yandex и criteo), а также модуль гугла. Первым делом идет запрос за бидами. Yandex отвечает ставкой 0.123456 EUR, criteo ставит 0.654321 EUR. Площадка настраивает на своей стороне округление бидов. Например, до цента. Получаем ставки 0.12 EUR, и 0.65 EUR. Модуль гугла преобразует эти ставки в айдишники рекламных кампаний, например <code>hb_pb_yandex=0.12</code> и <code>hb_pb_criteo=0.65</code> (важно понимать, что <code>0.12</code> - это НЕ ставка, а часть идентификатора РК в GAM). В кабинете GAM уже заведены рекламные кампании для таких айдишников, к которым привязаны соответствующие ставки. Из них гугл узнает цену, чтобы либо выбрать победителя аукциона, либо предложить свою ставку.</p>
  <p id="e7Wy">Гугл не спешит отвечать на вопросы &quot;почему так?&quot; и &quot;нельзя ли как-то по-другому?&quot;. Видимо, текущая ситуация более чем устраивает самого крупного в мире игрока на рынке рекламы.</p>

]]></content:encoded></item></channel></rss>