Определите, использует ли веб-страница аналитику Google

1

У меня есть сервер узлов. Я передаю Url в запрос, а затем извлекаю контуры с помощью cherio. Теперь то, что я пытаюсь сделать, это определить, использует ли эта веб-страница аналитика Google. Как мне это сделать?

request({uri: URL}, function(error, response, body)
{
    if (!error)
    {
        const $ = cheerio.load(body);
        const usesAnalytics = body.includes('googletag') || body.includes('analytics.js') || body.includes('ga.js');
        const isUsingGA = ?;
    }
}

С официального сайта аналитики говорят, что вы можете найти некоторые строки, которые указывают на то, что GA активен. Я попытался проверить тело для них, но они всегда возвращают false, даже если на этой странице работает GA. Я включил это в код выше.

Я посмотрел на веб-сайты, которые его используют, и я не вижу ничего в своем индексе, который предположил бы, что они его используют. Его единственное, когда я иду к их источникам и вижу, что они его используют. Как я могу обнаружить это в узле?

  • 0
    «Я пытался отсканировать тело на наличие строк, но я не думаю, что это работает» - Можете ли вы отредактировать свой вопрос, чтобы включить пример этого? Нам намного легче помочь вам, когда мы увидим, что вы пробовали.
  • 1
    конечно, я добавил это. @TylerRoper
Показать ещё 3 комментария
Теги:
google-analytics

1 ответ

0
Лучший ответ

У меня есть сценарий Node, который использует Puppeteer для отслеживания запросов, отправленных с веб-сайта.

Я написал это некоторое время назад, поэтому некоторые части могут быть неактуальны для вас, но здесь вы идете:

'use strict';

 const puppeteer = require('puppeteer');


function getGaTag(lookupDomain){

 return new Promise((resolve) => {
  (async() => {
        var result = [];
        const browser = await puppeteer.launch({ headless: true });

        const page = await browser.newPage();
        await page.setRequestInterception(true);

        page.on('request', request => {

            const url = request.url();
            const regexp = /(UA|YT|MO)-\d+-\d+/i;

            // look for tracking script
            if (url.match(/^https?:\/\/www\.google-analytics\.com\/(r\/)?collect/i)) {

                console.log(url.match(regexp));
                console.log('\n');
                result.push(url.match(regexp)[0]);
            }
            request.continue();
        });

        try {
            await page.goto(lookupDomain);
            await page.waitFor(9000);

        } catch (err) {
            console.log("Couldn't fetch page " + err);
        }

        await browser.close();
        resolve(result);

    })();

})    

}

getGaTag('https://store.google.com/').then(result => {
    console.log(result)
})

Запуск node ga-check.js теперь возвращает идентификатор UA трекера Google Analytucs в домене поиска: [ 'UA-54090495-1' ] который в этом случае является https://store.google.com.

Надеюсь это поможет!

  • 1
    спасибо я попробую это

Ещё вопросы

Сообщество Overcoder
Наверх
Меню