이번에는 구글 앱스 스크립트를 사용하여 매일 날짜와 함께 특정 셀의 데이터를 기록하는 시트를 만들어 보겠습니다.
개요
이번 샘플 시트는 실제로 회사에서 활용하고 있는 시트입니다.
SNS의 팔로워 수를 기록하여 팔로워 추이를 확인 할 수 있는 시트입니다.
- IMPORTXML 이라는 함수를 포함하여 다양한 함수를 조합하여 SNS의 팔로워 수를 얻어온다.
- 얻어온 팔로우 수 데이터를 맨 아래 열에 기록하는 앱스 스크립트를 작성한다.
- 실행 트리거를 설정하여 매일 팔로우 수 데이터를 기록한다.
★샘플 스프레드시트
https://docs.google.com/spreadsheets/d/1Dohpb5RKPW93q9Dm5bOwfdnH-F51zXBwyeh5pppz2fA/edit?usp=sharing
- Google Apps Script 개발자 사이트에서 참고한 페이지
SNS 팔로워 얻어오기
URL 칸에 SNS의 URL을 입력합니다. 예시에서는 청와대에서 운영하는 SNS 주소를 입력했습니다.
NOW 칸에는 SNS별 팔로워 수를 얻어오는 함수를 넣습니다.
※ 안타깝게도 인스타그램은 천단위가 넘어가면 상세 숫자를 얻어오지 못하고, k단위로만 얻어올 수 있습니다.
(상세 숫자를 얻어오는 방법을 아시는 분은 답글남겨주세요ㅠ)
Youtube (채널 구독자 수)
※ 주의사항: 원인은 잘 모르겠습니다만, 가끔 오류가 발생하기도 합니다. 시간이 지나면 사라지기도 하니 입력 후 오류가 사라질때까지 조금 기다려주시기 바랍니다.
* 참고 자료
팔로워 수를 얻어오는 함수는 다른 블로그를 참고하였습니다.
소셜미디어 팔로워 숫자 구글 스프레드시트로 한번에 관리하기
스크립트 작성
메뉴에서 도구 > 스크립트 편집기 를 클릭합니다.
스크립트 편집 화면에 아래 코드를 넣고 저장합니다.
function myFunction() { var sheet = SpreadsheetApp.getActiveSheet(); // Get Number of SNS follower var follower_facebook = sheet.getRange(3, 2).getValues(); var follower_instagram = sheet.getRange(3, 3).getValues(); var follower_twitter = sheet.getRange(3, 4).getValues(); var follower_kakao = sheet.getRange(3, 5).getValues(); var datarange = sheet.getDataRange(); var startRows = datarange.getNumRows(); var numRows = startRows +1; // Date of today var dayToday = new Date(); // write Date sheet.getRange(numRows, 1).setValue(formatYMD(dayToday)); // write Number of SNS sheet.getRange(numRows, 2).setValue(follower_facebook); sheet.getRange(numRows, 3).setValue(follower_instagram); sheet.getRange(numRows, 4).setValue(follower_twitter); sheet.getRange(numRows, 5).setValue(follower_kakao); } function formatYMD(date) { var formattedDate = Utilities.formatDate(date, "GMT", "yyyy-MM-dd"); return formattedDate; }
프로젝트 이름은 record_sns_follower 라고 저장합니다.
함수가 두개가 넘어가면 ▶(실행)버튼이 비활성화 되기도 합니다.
당황하지말고, 실행 > 함수 실행 > myFunction 메뉴로 실행합니다.
처음 실행하실 때, 권한 요청을 해옵니다. 실행을 허용해주세요. (자세한 스샷은 생략합니다.)
실행 후, 시트에 돌아가서 7번째 열에 실행한 날짜와 실행 당시의 팔로워 수가 기록된 것을 확인합니다.
가장 마지막 열을 확인하여 기록할 열을 계산해둡니다. 예시에서는 6열 + 1 = 7열.
3열 2행(B)의 데이터를 7열, 2행(B)으로,
3열 3행(C)의 데이터를 7열, 3행(C)으로,
3열 4행(D)의 데이터를 7열, 4행(D)으로,
3열 5행(E)의 데이터를 7열, 5행(E)으로 복사하는 코드입니다.
트리거 설정
코드에 문제가 없다면, 트리거를 설정해줍니다.
시계모양 아이콘으로 된 (현재 프로젝트의 트리거) 버튼을 클릭합니다.
원하는 시간대를 설정 후 [저장]을 클릭합니다.
예시에서는 매일 자정~오전1시 사이에 실행되도록 설정했습니다.
이렇게 트리거를 설정해두면 매일 3열의 당시의 각 SNS 팔로워 수 데이터를 제일 아래 열에 복사해줍니다.
완성
완성된 시트는 잊고있어도 이렇게 매일 SNS 팔로워 수를 기록해줍니다.
매일 기록된 데이터로 SNS 팔로워 수의 추이를 확인할 수 있습니다.
※ 주의사항: 가끔 팔로워 수를 얻어오는 함수에 오류가 발생하여 데이터가 #N/A 라고 기록되기도 합니다. 기록으로 보았을 때 복불복인 것 같습니다만, 지속해서 오류가 발생하는 경우에는 함수를 고쳐야 하기도 합니다.
5/22, 5/23 에 Twitter 오류가 발생한 기록. 이때 함수를 고쳤습니다.
6/12 ~ 6/24, 6/19 에 Facebook 오류가 발생한 기록.
안녕하세요! 문의가 있어 댓글을 남깁니다. 알려주신 함수로는 트위터는 팔로워가 아닌 ‘마음에 들어요’ 의 숫자가 카운팅 되고 페이스북은 url리소스가 크다고 함수가 적용되지 않습니다. 확인 부탁드릴 수 있을까요?
좋아요좋아요
댓글 남겨주신 부분 확인해보았습니다. 제가 만든 샘플 스프레드시트에서는 트위터 팔로워 숫자가 카운팅 되고 있는 것을 확인했습니다.
페이스북은 작년 8월10일 이후로 ‘좋아요’ 수를 가져올 수 없게 되었습니다. 여러번 고쳐보려고 해외 사이트도 검색해보고, 다른 방법을 시도했었습니다만, 안타깝게도 성공하지 못했습니다. 참고 되셨기를 바랍니다.
좋아요좋아요
안녕하세요! 제가 찾던 내용이었는데 해결하게 되어서 너무 기쁩니다.
(전에 사용하던 코드는 인스타에서 N/a가 계속 떠서 포기했었거든요…)
코드를 보다가 kakao라고 정의하신게 있어서.. 혹시나 카카오톡채널은 팔로워를 확인할 수 없을지 궁금합니다.
좋은 정보 감사합니다!
좋아요좋아요
도움이 되셨다니 저도 기쁩니다~
카카오톡 채널도 팔로워 확인 가능합니다.
자세한 방법은 아래 시트에서 확인해주세요.
https://docs.google.com/spreadsheets/d/1Dohpb5RKPW93q9Dm5bOwfdnH-F51zXBwyeh5pppz2fA/edit#gid=1386591486
좋아요좋아요
앱에 인증할 수 없다고 하는데 어떻게하요?
좋아요좋아요
앱스 스크립트를 처음 실행할 때, 실행 권한을 허용하셔야 합니다.
자세한 내용은 아래 페이지를 참고하시기 바랍니다.
https://smartagent.blog/2018/05/18/appsscript01/#permission
좋아요좋아요
안녕하세요 🙂 알려주신 인스타그램 스크립트가 작동하지 않는데, 혹시 오류가 나있는지 확인 부탁드려도 될까요?
=VALUE(REGEXREPLACE(query(SPLIT(IMPORTXML(C2,”.//*[contains(text(), ‘InteractionCounter’)]”), “,”), “select Col11”), “[^0-9]”, “”))
좋아요좋아요
큰 도움이 되었습니다. 감사드려요 ~:)
좋아요좋아요
=IMPORTXML의 첫번째 값만 가져오는데
=IMPORTXML 함수 전체를 긁어오는 방법은 없나요?
좋아요좋아요