... the last videos from Moho Animation Software - the official youtube channel :

2D, 3D, game, games, online game, game development, game engine, programming, OpenGL, Open AI, math, graphics, design, graphic, graphics, game development, game engine, programming, web development, web art, web graphic, arts, tutorial, tutorials,
function onOpen() { // Creează un meniu personalizat în Spreadsheet var ui = SpreadsheetApp.getUi(); ui.createMenu('Verificare Reclame Blogger') .addItem('Verifică Reclame', 'checkBloggerAds') .addItem('Verifică și Trimite Email', 'checkBloggerAdsAndEmail') .addToUi(); } function checkBloggerAds() { // Obține foaia activă var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); // Citește datele din coloana A (website-urile) var range = sheet.getRange("A2:A" + sheet.getLastRow()); var urls = range.getValues(); var results = []; // Indicatori specifici pentru Google Ads/AdSense pe Blogger var adsScriptPattern = "adsbygoogle.js"; // Pentru coloana B var bloggerAdsPatterns = [ "data-ad-client", // Atribut specific AdSense "google_ad_client", // Folosit în codurile mai vechi sau automate 'class="adsbygoogle"' // Tag-ul <ins> folosit pentru reclame ]; // Verifică fiecare URL for (var i = 0; i < urls.length; i++) { var url = urls[i][0]; if (url) { // Verifică dacă URL-ul nu este gol try { var response = UrlFetchApp.fetch(url, { muteHttpExceptions: true }); var content = response.getContentText(); var scriptFound = content.includes(adsScriptPattern); var bloggerAdsFound = false; // Verifică indicatorii specifici Blogger for (var j = 0; j < bloggerAdsPatterns.length; j++) { if (content.includes(bloggerAdsPatterns[j])) { bloggerAdsFound = true; break; } } // Adaugă rezultatele pentru coloanele B și C results.push([scriptFound ? "Da" : "Nu", bloggerAdsFound ? "Da" : "Nu"]); } catch (e) { results.push(["Eroare: " + e.message, "Eroare: " + e.message]); } } else { results.push(["", ""]); } } // Scrie rezultatele în coloanele B și C if (results.length > 0) { sheet.getRange(2, 2, results.length, 2).setValues(results); } } function checkBloggerAdsAndEmail() { // Obține foaia activă var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); // Citește datele din coloana A (website-urile) var range = sheet.getRange("A2:A" + sheet.getLastRow()); var urls = range.getValues(); var results = []; var emailBody = "Rezultatele verificării reclamelor Google Ads pe blogurile Blogger:\n\n"; emailBody += "URL | Script adsbygoogle.js | Implementare Blogger\n"; // Indicatori specifici pentru Google Ads/AdSense pe Blogger var adsScriptPattern = "adsbygoogle.js"; // Pentru coloana B var bloggerAdsPatterns = [ "data-ad-client", "google_ad_client", 'class="adsbygoogle"' ]; // Verifică fiecare URL și construiește corpul email-ului for (var i = 0; i < urls.length; i++) { var url = urls[i][0]; if (url) { // Verifică dacă URL-ul nu este gol try { var response = UrlFetchApp.fetch(url, { muteHttpExceptions: true }); var content = response.getContentText(); var scriptFound = content.includes(adsScriptPattern); var bloggerAdsFound = false; // Verifică indicatorii specifici Blogger for (var j = 0; j < bloggerAdsPatterns.length; j++) { if (content.includes(bloggerAdsPatterns[j])) { bloggerAdsFound = true; break; } } // Adaugă rezultatele pentru coloanele B și C și la email results.push([scriptFound ? "Da" : "Nu", bloggerAdsFound ? "Da" : "Nu"]); emailBody += `${url} | ${scriptFound ? "Da" : "Nu"} | ${bloggerAdsFound ? "Da" : "Nu"}\n`; } catch (e) { results.push(["Eroare: " + e.message, "Eroare: " + e.message]); emailBody += `${url} | Eroare: ${e.message} | Eroare: ${e.message}\n`; } } else { results.push(["", ""]); } } // Scrie rezultatele în coloanele B și C if (results.length > 0) { sheet.getRange(2, 2, results.length, 2).setValues(results); } // Trimite email-ul MailApp.sendEmail({ to: "catalinfest@gmail.com", subject: "Rezultate Verificare Reclame Google Ads pe Blogger", body: emailBody }); }