November 23, 2020

Как собирать статистику аккаунта автоматически в Гугл таблицу?

Я не люблю делать руками то, что можно автоматизировать. Недавно узнала об автоматическом сборе статистики в Гугл таблицу. Очень удобно. Сейчас расскажу.

Думаю, логично, что должен быть аккаунт Гугл. Если его нет, идем и регистрируемся. Заходим на Гугл диск и создаем новую таблицу. Чтобы ее создать Нажимаем кнопку СОЗДАТЬ в левом столбце и выбираем ТАБЛИЦА. Дайте название таблице, например, 2020.

!ВАЖНО! Все эти действия можно выполнять только с компьютера, а вот отслеживать потом можно будет и с телефона.

Название таблицы и вкладки должны совпадать, можно ввести цифры, можно назвать так же, как называется аккаунт клиента.

Заполняем первую строку столбцы от А до G. Называем их так: Дата, Подписчики, Подписки, Посты, Лайки на последних 12 постах, Комментарии на последних 12 постах, ER. Не путай названия столбцов местами, иначе показатели будут отображаться не там, где нужно.

Далее заходим в раздел ИНСТРУМЕНТЫ и выбираем РЕДАКТОР СКРИПТОВ.

Редактор скриптов откроется в новой вкладке браузера. Стираем тот код, который там написан и вставляем вот этот:

var sheetName = "2020";
// Your instagram user id
var user_id = "16087212170"; //find your id here : https://codeofaninja.com/tools/find-instagram-user-id

var instagram_base_url = "https://cors-anywhere.herokuapp.com/https://www.instagram.com/graphql/query/";
var following = "?query_hash=58712303d941c6855d4e888c5f0cd22f&variables=%7B%22id%22%3A%22" + user_id + "%22%2C%22first%22%3A24%7D"
var followers = "?query_hash=37479f2b8209594dde7facb0d904896a&variables=%7B%22id%22%3A%22" + user_id + "%22%2C%22first%22%3A24%7D"
var medias = "?query_hash=f2405b236d85e8296cf30347c9f08c2a&variables=%7B%22id%22%3A%22" + user_id + "%22%2C%22first%22%3A12%7D"


function insertFollowerCount() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(this.sheetName);
var followers = getFollowers();
var folloging = getFollowing();
var medias = getMedias();
var engagement = getEngagement(medias, followers);

sheet.appendRow([Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd"), followers, folloging, medias.count, engagement.totalLikes, engagement.totalComments, engagement.EngagementRatio]);
};

function getFollowers() {
return parseInt(fetch(instagram_base_url + followers)['data']['user']['edge_followed_by']['count']);
}

function getFollowing() {
return parseInt(fetch(instagram_base_url + following)['data']['user']['edge_follow']['count']);
}

function getMedias() {
return fetch(instagram_base_url + medias)['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
}
}

function fetch(url) {
var ignoreError = {
"validateHttpsCertificates":false,
"muteHttpExceptions": true,
"headers": {
origin: "https://script.google.com/"
}

};
var source = UrlFetchApp.fetch(url, ignoreError).getContentText();
var data = JSON.parse(source);
return data;
}

Следующим этапом нужно заменить вот здесь var sheetName = "2020"; 2020 на название вашей вкладки (у меня это 2020) - первая строка в коде. Вот сюда var userid = "16087212170" пишем id аккаунта, с которого собираем данные.

Узнать свой ID можно через бесплатный сервис. Очень важно вставлять именно цифры ID, а не ссылки. В этом сервисе просто вставляем в поиск ник своего аккаунт и готово.

Сохраняем, жмем на дискетку. Вверху есть вкладка ВЫПОЛНИТЬ, нажимаем и выбираем ЗАПУСТИТЬ ФУНКЦИЮ, а затем insert follower data.

Дальше предоставляем разрешения, которые запросит Гугл. Нажимаем ДОПОЛНИТЕЛЬНЫЕ НАСТРОЙКИ, ниже будет ПЕРЕЙТИ НА СТРАНИЦУ ПРОЕКТ БЕЗ НАЗВАНИЯ и подтверждаем. Если все было сделано правильно, то в таблице появится первая строка с данными.

А теперь нам нужно, чтобы эти данные собирались автоматически без нашего участия. Возвращаемся к редактору скриптов и нажимаем вверху ИЗМЕНИТЬ, дальше нажимаем ТРИГГЕРЫ ТЕКУЩЕГО ПРОЕКТА и создаем новый триггер.

В правой колонке в графе ИСТОЧНИК МАРОПРИЯТИЯ ставим ТРИГГЕР ПО ВРЕМЕНИ, в графе ТИП ТРИГГЕРА ставим ПО ДНЯМ и нажимаем сохранить.

Собирать данные можно и чаще, если это необходимо. Просто выставьте нужные настройки. И готово.

Елена Юнкина

АИ 16

Telegram: The_Hellen

Instagram: lena_yunkina