Вопрос: Блокировка загрузки скрипта на сайте (как)?

Лучший ответ: Если для использования стороннего скрипта B вы согласились на рекламу V, то вы сейчас, получается, хотите обойти соглашение и нарушить условия сделки. Самый правильный путь - договориться иначе (перезаключить другую сделку). Если не удаётся, то уйти к конкурентам и договориться с ними на более выгодных условиях. Если и это не удаётся, то найти альтернативное решение. Ну и железобетонный последний вариант - реализовать подобный функционал самому, что бы это ни было (алгоритм, база, аудитория, информация) - всё можно сделать, собрать, накопить, привлечь, за свои деньги конечно же.

Заниматься хакерством - не самый правильный путь. Но здесь уже нет рецептов. Вы сами решаете, как именно обмануть партнёра. Решение будет зависеть от деталей, и от того, как именно устроены N, B ,V.  Дырки в них могут оказаться такими, что их можно использовать. А если партнёр заранее побеспокоился о своей безопасности, то обход скрипта V так, чтобы использовать B, может обойтись вам дорого (вы потратите много сил и времени, ну или денег, конечно же).

Худший ответ: /**
 * функция добавляет код скрипта на страницу предварительно удаляя из него указанные куски текста, 
 * @param {string} 		url  полные URL добавляемого скрипта
 * @param {string} 		replaces массив со строками, которые будут удалены (заменены на пустоту)
 */
function addScript( url , replaces=[]) {
  // получаем текст добавляемого на страницу скрипта
  fetch(url)
  .then(response=>{
    return response.text();
  })
  .then(text=>{
    // готовим регулярку для замены всех вхождени из массива replaces
    const restr = "("+replaces.join("|")+")";
    const regex = new RegExp(restr, "g");
    //  заменяем в тексте скрипта все вхождения из массива replaces
    const code = text.replace(regex,"");

    // получаем указатель на head страницы
    let head = document.getElementsByTagName( 'head' )[ 0 ];
    // создаем новый элемент script
    let script = document.createElement( 'script' );
    script.charset="utf-8";
    script.type = 'text/javascript';
    //script.src = url;
    script.innerHTML = code;
    // добавляем измененный скрипт на страницу
    head.appendChild( script );
  });
}



// Используем заготовку
// например у нас есть сторонний скрипт, который нам надо добавить на страницу => https://external.domain/js/needed.js
// но он запускаясь подгружает не нужные нам скрипты https://external.domain/js/unnecessary.js и https://external.domain/js/advertising.js
// тогда делаем так
addScript( 
  "https://external.domain/js/needed.js",
  [
    "unnecessary.js",
    "advertising.js"
  ]
);

// ну и на последок. Вы должны понимать что данное решение не панацея и его легко обойти
// например "вредные" скрипты могут иметь случайносгенерированное имя
// так же хочу предупредить, что данное решение будет сыпать ошибки в консоль, так как после удаления
// из кода загружаемого скрипта строк с именами файлов вредных скриптов, код который их загружает 
// не сможет этого сделать.
// так же данный свособ может привести к частичной или полной неработоспособности полезного скрипта
// например если полезный скрипт использует функции из подгружаемых вредных скриптов
// или если в полезном скрипте есть переменные или функции с именами, аналогичными удаляемым скриптам
// и т.д. и т.п.