페이스북 유저 데이터 분석해보기

온라인 광고를 하면 한국 사람들이 제일 많이 생각하는게 네이버에 검색 키워드를 거금을 주고 사는식으로 광고하는 거다. 처음 네이버가 생겼을 때만해도 온라인 광고 시장이 덜 성숙했기 때문에 그만해도 괜찮았을텐데, 요즘은 Tag를 어떤걸 집어넣고, 검색 노출을 위해서 초반에 유저를 어떻게 끌어모으고 등등에 대해서 다양한 방법이 생겼다. 굳이 큰 돈을 안 들이고도 잘 쓴 블로그 글 몇 개를 페이스북, 인스타그램 같은 소셜 네트워크에 잘 뿌리기만해도 엄청난 노출효과를 거둬들이는 경우도 많다.

말이 나온 김에 페이스북 이용 데이터를 한번 분석해보자.

 

1. 페이스북 설정

우선 페이스북 개발자 페이지 (https://developers.facebook.com)에 들어간다. 뭐 새로운 개발을 하는 건 아니고, 그냥 페이스북 플랫폼에서 제공하는 앱을 하나 만들꺼다. 이 앱이 페이스북에서 필요한 데이터를 긁어올 수 있도록하는 일종의 “Crawler”가 된다고 생각하면 된다.

Get Started 를 선택하면, 간단히 약관에 동의하냐는 질문이 나오고, Yes를 고르면, 아래와 같은 화면이 나온다

App ID와 이름, 이메일 주소 등등 통상적인 내용을 입력하면 된다. 필자는 facebook-datamining으로 입력했더니 Face가 들어가면 안 되고, fb가 들어가면 안 되고 등등 여러가지 조건이 있길래 귀찮아서 RAnalyze라고 했는데, 원하는 내용을 아무거나 입력하면 된다.

그렇게 넘어가면 아래와 같은 App ID 첫 화면이 나온다.

여기서 왼쪽 메뉴 중 Dashboard를 들어가면 아래같은 메세지가 나온다. 여기서 App ID와 App Secret이 일종의 로그인 ID와 비밀번호 같은 정보니까 꼼꼼하게 저장해두자

이제 왼쪽 하단에 있는 “+Add Product” 라는 메뉴를 고른다. Product Set up 이라는 메뉴가 나오는데, 거기서 Facebook Login 을 고른다.

왼쪽 메뉴에 보면 Quick Start와 Settings가 있을텐데, 우선 Settings에 들어가서 아래와 같이 설정한다.

아마 대부분의 설정은 똑같을 것이고 Valide OAuth redirect URIs에 http://localhost:1410/ 을 추가로 입력하면 될 것이다. 별로 대단한 건 아니고, 외부에서 방금만든 페이스북 (가상) 앱으로 로그인할 수 있도록 하는 설정인데, 이 셋팅 덕분에 R에서 바로 페이스북 데이터를 긁어올 수 있게 된다. (뒤에서 볼 것이다.)

그리고 Quick Start 메뉴는 무시하고 (iOS, Android, Web 중 어느 플랫폼에서 쓰는건지를 묻고, 필요한 SDK를 설치할 수 있도록 해 주는데, 우리는 R로 데이터를 긁어오는데 쓰는 목적이므로 설정할 필요가 없다.)

 

2. R에서 스크립트 짜기

이제 페이스북 셋팅은 끝났고, R로 스크립트만 잘 짜면 된다. 우선 R에서 facebook 데이터를 쓸 수 있도록 해 놓은 패키지들을 설치해보자.


install.packages("Rfacebook")
install.packages("RCurl")

library(Rfacebook)
library(RCurl)

fb_oauth <- fbOAuth(app_id="183xxxxxxxx3748", app_secret="7bfxxxxxxxxcf0",extended_permissions = TRUE)

두 개의 패키지들을 설치하고, 그 패키지들을 메모리에 로드하고, 아까 위에서 OAuth 설정했던대로 R이 페이스북 앱으로 로그인 할 수 있도록 설정해준다. 여기서 app_id와 app_secret은 자신의 것을 쓰면 된다.

자 fb_oauth 라인을 실행하면 R 콘솔에서 press any key to continue… 가 나올 것인데, 아무키나 누르면 페이스북 로그인 창이 뜬다. 거기서 평소대로 로그인을 하면,

위와 같은 창이 뜨는데, RAnalyze라고 방금 만든 앱이 필자의 개인 정보를 긁어올 수 있도록 허락한다는 거다. 뭐 어차피 내 정보는 이미 모두에게 공개된터라 별 일없이 Continue as Keith를 눌러준다. 그리고는 뭔가 잡다한 설정을 다 끝내고나면 아래와 같은 브라우저 창이 뜬다.

그리고 R console로 돌아가보면,

 

빨간색 줄이 몇 줄 더 생겼다. 이제 R에서 페이스북 앱의 데이터를 긁어올 수 있는 준비가 끝났다는 뜻이다. 제대로 됐는지 궁금하다면,


me <- getUsers("me",token=fb_oauth, private_info=TRUE)
me$name

이렇게 R에 명령어를 넣어보라. R console에 당신의 페이스북 이름이 뜰 것이다.

 

3. R에서 읽어볼 수 있는 페이스북 stat들

몇가지 간단한 페이스북 stat들을 뽑아내보자

A. “좋아요”(Like)를 누른 페이지들 or 다른 유저 이름


likes = getLikes(user="me", token = fb_oauth)
sample(likes$names, 10)

위의 user = “me”는 필자를 말하는거고, 다른 유저 데이터를 받을 수 있는 권한이 있으면 그 유저의 이름을 쓰면 된다. 아래에 10은 랜덤하게 10개의 이름을 뽑은 샘플을 보여달라는 명령어다.

 

B. 페이스북의 Status 를 업데이트하고 싶으면


updateStatus("this is just a test", token=fb_oauth)

 

C. 특정 단어가 들어간 페이지를 찾고 싶으면


searchPages( string="data science", token=fb_oauth, n=200)

여기서 string 에는 찾고 싶은 특정 단어를 입력하고, n = 200은 찾고 싶은 페이지 숫자를 지정하는 것이다

비슷한 명령어로 아예 그 페이지에 대한 정보를 저장하고 싶으면


getPage(page="nytimes", token=fb_oauth, n=200, since = '2017/01/01', until = '2017/06/30')

이 코드로 New York Times의 기사들 리스트 200개를 뽑아왔다. 뒤의 since와 until은 검색 기간의 처음과 끝을 지정해주는 명령어다.

 

D. 기타 정보들


page[which.max(page$likes_count),]
page[which.max(page$comments_count),]
page[which.max(page$shares_count),]

좋아요를 제일 많이 받은 페이지, 댓글이 제일 많이 달린 페이지, 공유가 제일 많이된 페이지를 찾아준다

 

E. 응용 1 – 좋아요를 누른 유저들 목록


post <- getPost(summary$id[1], token=fb_oauth, comments = FALSE, n.likes=2000)
likes <- post$likes
head(likes)

각 포스팅별로 좋아요를 누른 유저들의 목록을 뽑고, 그 유저들의 이름을 찾아내는 방식이다.

 

F. 응용 2 – 댓글 목록


post<- getPost(page$id[1], token=fb_oauth, n.comments=1000, likes=FALSE)
comments <- post$comments
fix(comments)

같은 방식으로 댓글 내용 전체를 긁어온다.

 

G. 응용 3 – 특정 페북 그룹의 포스팅 저장

ids <- searchGroup(name="datascience", token=fb_oauth)
group <- getGroup(group_id=ids[1,]$id, token=fb_oauth, n=25)

데이터 사이언스 그룹에 올라온 포스팅을 긁어와준다.

 

4. 정리

필자가 갖고 있는 페북 페이지들은 그다지 많은 유저가 방문하질 않아서 이런 분석이 큰 도움이 될지 모르겠지만, 아마 큰 회사의 페이스북 계정을 운영하는 광고 담당자라면 이런 데이터를 바탕으로 회사 광고 정책에 영향을 끼칠 수 있는 정보를 찾아낼 수 있을 것이다.

실제로 필자가 미쿡에서 면접을 봤던 어느 정치 컨설팅 회사는 아주 유사한 방식으로 각 후보의 선거 운동 결과를 분석하고 있었다. 예를 들어 미시간 주에 공화당 대통령 후보 중 한 사람이 1시간 타운홀 미팅을 하고 그 영상을 5분 짜리 4-5개로 나눠서 Youtube에 올린다음, 그 링크들을 Facebook에 띄워놓고, 얼마나 공유가 되고 있는지, 좋아요는 어디에서 달리는지, 그 중 신규유저는 몇 명인지, 그 유저는 어느 지역에서 거주하고 있는지 등등의 정보를 끌어모아서 유권자의 반응을 살펴더라.

진짜 빅데이터는 저장 용량이 큰 데이터가 아니라 유저의 행동 데이터라고 했던 기억이 나시는가? 페이스북에서 Like를 누르고, Share 버튼을 누른 기록이야말로 진정한 행동 데이터가 아닐까?

 

You may also like...

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다