Como analisar perfil de concorrentes no Instagram

Com um plugin para implementação no Google Sheets é possível extrair dados de quantos perfis quiser no Instagram.

Usei o script para criar uma planilha com concorrentes, analisando quantidade de seguidores, quantidade de seguindo, número de likes, comentários e, principalmente, engajamento.

Crie um documento no Google Sheets e dê um nome para a página

No meu caso, dei o nome do documento [DG] Automações Adveronix, pois estou usando junto do Adveronix.

Nessa planilha, insira as colunas:

DataSeguidoresNovos seguidoresSeguindoNovos seguindoMediaLikesComentáriosEngajamento

Crie um novo script na página

Em extensões > app scripts, abra o editor de scripts:

Adicione o script de scrap

Adicione o código abaixo na parte do código:

function MultipleAccounts() {
  //Set up multiple sheets and instagram accounts
  insertFollowerCount ("Nome da pagina1", "123131231231");
  insertFollowerCount ("concorrente1", "1231313113123312");
  insertFollowerCount ("concorrente2", "31312312");
  insertFollowerCount ("concorrente3", "199261123132695");
}

var instagram_base_url = "https://www.instagram.com/graphql/query/";

function insertFollowerCount(sheetName, user_id) {
  Logger.log(user_id)
  Logger.log(sheetName)
  
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName(sheetName);
  var previousData = prevData(sheetName);
  var followers = getFollowers(user_id);
  var following = getFollowing(user_id);
  var medias = getMedias(user_id);
  var engagement = getEngagement(medias, followers);
  sheet.appendRow([Utilities.formatDate(new Date(), "GMT-0300", "dd-MM-yyyy HH:MM"), followers, followers-previousData.followers, following, following-previousData.following, medias.count, engagement.totalLikes, engagement.totalComments, engagement.EngagementRatio]);

  Logger.log(sheet)
  Logger.log(ss)

};

function getFollowers(user_id) {
  return parseInt(fetch(instagram_base_url +  "?query_hash=37479f2b8209594dde7facb0d904896a&variables=%7B%22id%22%3A%22" + user_id + "%22%2C%22first%22%3A24%7D")['data']['user']['edge_followed_by']['count']);
}

function getFollowing(user_id) {
  return parseInt(fetch(instagram_base_url + "?query_hash=58712303d941c6855d4e888c5f0cd22f&variables=%7B%22id%22%3A%22" + user_id + "%22%2C%22first%22%3A24%7D")['data']['user']['edge_follow']['count']);
}

function getMedias(user_id) {
  return fetch(instagram_base_url + "?query_hash=f2405b236d85e8296cf30347c9f08c2a&variables=%7B%22id%22%3A%22" + user_id + "%22%2C%22first%22%3A12%7D")['data']['user']['edge_owner_to_timeline_media'];
}

function getEngagement(medias, followers) {
    var totalComments = 0,
        totalLikes = 0;
    for (var i = 0; i < 12; i++) {
        totalComments += parseInt(medias.edges[i].node.edge_media_to_comment.count);
    };
    for (var l = 0; l < 12; l++) {
        totalLikes += parseInt(medias.edges[l].node.edge_media_preview_like.count);
    };
    var engagementRatio = (((totalLikes + totalComments)) / followers) / 12;
    return {
        mediaCount: parseInt(medias.count),
        totalComments: totalComments,
        totalLikes: totalLikes,
        EngagementRatio: engagementRatio
    }
}

//paste your cookie value below.
var header = {'cookie': 'ig_did=B5ABB6E8-F1B9-43B4-B058-1257581C1E08; mid=XpIClAAEAAH0USwTJMl0IZMoQlfb; fbm_124024574287414=base_domain=.instagram.com; ig_nrcb=1; datr=rVCxYOMe4R6dhmxfgdNaMBBJ; ds_user_id=1123641; sessionid=1123641:46535JiAeSzYjn:26; csrftoken=7ec7RZpjoUYP09hRcdhxyMg1kXSbP1Su; shbid="13644\0541123641\0541658789952:01f7a957ba17e1b0e80dee009b5f8596eab31a9a7c2e2b46e4890878c1ba5693c92b6839"; shbts="1627253952\0541123641\0541658789952:01f72f4451968b30fff166534b7411ee42a7072c336d788496b7e6498c49635f5c4b1db9"; fbsr_124024574287414=NYDx8JvZLizitwZWGYKWKEgQ0yhP1IPvK_uV2Wu0hOU.eyJ1c2VyX2lkIjoiMTAwMDAyMTQ1NzI4NTczIiwiY29kZSI6IkFRQ3FwQVlUU25yR0hkZEdmakNsLVZHSUtJcm9RdVBveXotYjY5bElldXdmMGdXa3A2V29raU9fcS1IckF2WTZGVjVGeGRtSWJNMGt3UUtJUlRRNzAyenhvVm5IaDNxVGJCMDVnY2FfRDZiY2tzTmtiQjVLaXFRTkZQYUpNY2J1Q1RueHdPckxPZE9LNGlVejRCaUl2X1RCUWZGYVpqd2pTSFNSZUtQeDdxSk5RSnExTEFPY2hLTXhmM0lkZ3ZMUjZEMHpBS0N4bTlRY0pKa2stTFVRWDdwUkZhT1ZRZmhPNG1rYTMycGtjZnFTYWFkV2g0aUpWVFlkd0ZXai1MdElyLTdiYUo2ZHloYzFYd1hlZzFvRUJhY3ktRXhkZ0N6dlFHa1NSa2VDRzRzNlVPeDJOd3U3LV8yems5bklISHBlTUZwRms3UzEzT2YtX2RpdXRkaWd3MW8zIiwib2F1dGhfdG9rZW4iOiJFQUFCd3pMaXhuallCQUZ1OEREd2QyRVA4dU5rdUpkdHNNZXRQclpBSXQ4cVE2S29wTW1MNnRTaFUwbkZ6V0lIRFZRbndoSTN2Uk4wQUtISURkcHprOFpCUW1QQ2JsS1hrWXVwU2c3TkhQazZld2Joa1Y3dE03a0Q3ampNNTd2OFJSQ3BpRUpLMUJnNkkwdVhXODQ2bUY4WGIyWFY1UFVIMkdwT3NPaUpOQ2hHWkFoWEROalJvcm9xandjamRlT3JCcXBPQUNZYzFRWkRaRCIsImFsZ29yaXRobSI6IkhNQUMtU0hBMjU2IiwiaXNzdWVkX2F0IjoxNjI3MzI5MDA3fQ; rur="FTW\0541123641\0541658865035:01f751ef3d8b5ba11c02a82725238bec5536b64ac782b6426c17cf5e544071c09f916eab"'};

function fetch(url) {
  var ignoreError = {
    "muteHttpExceptions": true,
    "validateHttpsCertificates":false,
    "headers":header
  };
  var source = UrlFetchApp.fetch(url, ignoreError).getContentText();
  var data = JSON.parse(source);
  return data;
}

function prevData(sheetName) {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getSheetByName(sheetName);
    var Avals = sheet.getRange("B1:B").getValues();
    var Alast = Avals.filter(String).length;
    var prevFollowers = sheet.getRange("B"+Alast).getValues();
    var prevFollowing = sheet.getRange("D"+Alast).getValues();

  return {
    followers: parseInt(prevFollowers),
    following: parseInt(prevFollowing)
  }
   
};

Rode o script e tudo ok!

Você também pode agendar o scrap em “acionadores”

Igor Fediczko

Igor Fediczko

Meu nome é Igor Fediczko, mas muitos me chamando de igordisco. 37 anos, apaixonado por política desde sempre. Apaixonado por ? cachorros e por ?‍? tecnologia.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *