Скрываем скрипт клоаки от Facebook

Скрываем скрипт клоаки от Facebook. Эта статья, хорошее дополнение к мануалу Клоачим Facebook с помощью Shopify и Keitaro. Также полезно применить тем, кто клоачит Facebook с помощью других JS методов.

Не знаю, правда или нет, но очень часто встречаю теории о том, что якобы модераторы из Индии начали проверять HTML код ресурсов, на которые ведут рекламные кампании с Facebook, относительно наличия посторонних скриптов для клоакинга.

Возможно FB уже собрал нужные данные и теперь ИИ самостоятельно распознает посторонний код. Возможно вовсе весь этот движ с банами из-за пандемии. Просто Facebook ограничили открут бюджета. Поднял на максимум чувствительность ИИ. Ведь проверять объявления не кому. Все сотрудники на удаленке. А мошенников, которые размещают фейковые объявления, чтобы озолотиться на COVID-19 хоть отбавляй. Такие рекламные кампании ни в коем случае нельзя одобрить, иначе Facebook потеряет аудиторию. Аудитория - это актив Facebook, а не вот эти ваши "карманные сбережения". Так что не переживайте. Думаю все наладится. Возможно не будет как прежде, но станет проще чем сейчас.

К сути

После способа клоакинга описанного здесь, начал тестировать недавно появившийся метод JS клоакинга от IMKLO. Суть метода в том, что вы вставляете JS код IMKLO, например в HTML код своего магазина Шопифай. При заходе пользователя, последнему открывается айфрейм окно с рекламной кампанией. Таким образом не происходит редирект на посторонний ресурс. На первый взгляд это казалось замечательной заменой редиректу.

Спустя несколько запущенных рекламных аккаунтов с последующим баном, заметил что новые рекламные кампании вовсе перестали проходить модерацию. Все до единого объявления были отклонены по причине CLOAKING. Проверил домен кампании Keitaro на бан в Facebook. Домен за нарушение правил не заблокирован. Мысль о том, что Фейсбук заблокировал основной домен IMKLO не хотел допускать. Ведь Фейсбук палит редирект, а тут открытие айфрейм окна. Да и ребята с IMKLO уверяли что FB не палит айфрейм. Еще несколько заблокированных рекламных аккаунтов помогли меня убедить проверить домен :)
Следующим делом полез в дебаггер ФБ проверять основной домен IMKLO. Результат положительный. Домен заблокирован.

Тут столкнулся с главной проблемой клоакинга через JS метод. Домен который используется в JS скрипте, это основной домен на который привязана лицензия IMKLO. Сменить домен возможно только получив новую лицензию через саппорт. Сменил домен. Снова бан. В общем идея менять домен на котором лицензия отстой!

Пришлось напрячь мозги чтоб решить проблему. Четко ясно, что Facebook без проблем распознает посторонние скрипты JS клоак и блокирует их домены моментально. Менять каждый раз домен в скрипте - тупо! Нужно спрятать сам скрипт от ботов Facebook.

Решение

Как спрятать скрипт не нарушив его работоспособность? Нужно его закодировать. Вспомнил как в прошлом работал с попандер трафиком и кодировал изображения в текст с помощью Base64. Стало интересно как поведет себя закодированный js скрипт. Оказалось все работает без проблем. Пришлось повозится только чтобы написать скрипт-декодиратор для Вase64.

Ищете любой онлайн Base64 конвертер. Например этот. Берете свой скрипт с Кейтары:

<span id="469de8d1-3980-2007-5991-d3b69ad7b5bd"></span><script type="application/javascript">
var d=document;var s=d.createElement('script'); 
s.src='https://ххххххх.club/Fm8NQx?se_referrer=' + encodeURIComponent(document.referrer) + '&default_keyword=' + encodeURIComponent(document.title) + '&'+window.location.search.replace('?', '&')+'&frm5e64e1f63139f=script5e64e1f6313a0&_cid=469de8d1-3980-2007-5991-d3b69ad7b5bd'; 
if (document.currentScript) { 
document.currentScript.parentNode.insertBefore(s, document.currentScript);
} else {
d.getElementsByTagName('head')[0].appendChild(s);
}
if (document.location.protocol === 'https:' && 'https://хххххххх.club/Fm8NQx?se_referrer=' + encodeURIComponent(document.referrer) + '&default_keyword=' + encodeURIComponent(document.title) + '&'+window.location.search.replace('?', '&')+'&frm5e64e1f63139f=script5e64e1f6313a0'.indexOf('http:') === 0 ) {alert('The website works on HTTPS. The tracker must use HTTPS too.');}
</script>

Выбираете кодировку с текста в Base64 (цифра 2) и вставляете скрипт (цифра 1).

Копируете полученную абракадабру (цифра 3) и вставляете в написанный мной скрипт для декодирования, вместо слов: КОД BASE64

 <script>
      var string = 'КОД BASE64';
      var decodedString = atob(string);
      document.write(''+ decodedString +'');
  </script>
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>

На примере получится вот так:

 <script>
      var string = 'PHNwYW4gaWQ9IjQ2OWRlOGQxLTM5ODAtMjAwNy01OTkxLWQzYjY5YWQ3YjViZCI+PC9zcGFuPjxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCI+CnZhciBkPWRvY3VtZZTFmNjMxM2EwJy5pbmRleE9mKCdodHRwOicpID09PSAwICkge2FsZXJ0KCdUaGUgd2Vic2l0ZSB3b3JrcyBvbiBIVFRQUy4gVGhlIHRyYWNrZXIgbXVzdCB1c2UgSFRUUFMgdG9vLicpO30KPC9zY3JpcHQ+';
      var decodedString = atob(string);
      document.write(''+ decodedString +'');
  </script>
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>

Берем скрипт и вставляем перед закрывающим тегом </head> сами знаете куда :)
Некоторые ребята вообще такие скрипты прячут подальше в футер от модераторов.

Какой результат?

После таких телодвижений неоднократно запускал рекламные кампании с помощью JS метода и домен живой по сегодняшний день! Живее всех живых.

Безопасность Facebook усиливается с каждым днем. Так что не надейтесь, что это панацея от банов. Но протестировать для себя обязательно стоит.

Подписываемся на рассылку, канал телеграм и ждем нового палева!

Всем добра,
С уважением, AffBlack!