[분석] 스팀잇 '황금시간대'에 글을 올리자!

in #kr-dev7 years ago (edited)

0.

동일한 글을 썼더라도, 언제 올리냐에 따라 반응이 달라진다?

기왕 글을 썼으니 더 많은 스팀잇 유저들과 소통하고 싶은건 당연지사.
그런데 막상 몇 시에 올려야 좋을지는 잘 모르겠다.

  • 유저들이 접속을 덜 했을 때 글을 올려두면 나중에 접속하면서 피드 1순위로 보이지 않을까?
  • 혹은 한참 붐빌 때야 말로 즉각적인 반응을 받으며 널리 읽힐까? 오히려 묻힐려나?
  • 사실 황금시간대는 없고 그냥 랜덤이야말로 답일까?

아침에 기상하자마자 스팀잇 체크, 점심 때 커피 한 잔과 또 스팀잇, 퇴근하면서 스팀잇, 자기 전에도 스팀잇을 살피고 있다면... 당신은 스팀잇 중독자!

스팀 API를 통해 작은 궁금증을 해결해보자 한다.

1.

좋은 주말입니다 여러분 :) 일병 크립토 @hellocrypto 입니다.

그동안 군대 사지방 접속이 잘 안 되서 힘들었지만, 다행히 스팀 API 문서를 뽑아둬서 천천히 공부해볼 수 있었습니다. 실험 좀 이리저리 해본 뒤 나중에 '컴맹도 따라하는 스팀 API'(가제) 시리즈를 연재해볼까 합니다.

아무튼 바로 본론에 들어가겠습니다.

API 무엇?

API(Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스)는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다. (위키피디아)

......? 스팀 API 무엇?

스팀이 개발자에게 스팀 기능을 쉽게 접속/사용할 수 있게 공개한 '약속'입니다. 예를 들자면, 보팅봇 처럼 업보트와 댓글을 코드를 통해 자동화 시킬 수 있죠.

이렇게 파이썬 언어를 통해 단 3줄로,

from steem import Steem
s = Steem()
s.get_account_count()

현재 스팀에 가입된 총 유저 수는 766255명이라고 알 수 있죠.

hellocrypto: 스팀님from steem import Steem, 님s = Steem() 유저 몇 명 있어요s.get_account_count()?
STEEM: 766255
hellocrypto: ...말이 짧다?

황금시간대를 알아내기 위해 kr 태그 '최신글'을 스팀 API를 통해 불러옵니다.

s.get_discussions_by_created({"tag": "kr", "limit": 3})

그럼 아래와 같이 글 하나당 수 많은 정보를 담은 결과가 돌아옵니다.

이중에서 이번 분석에 활용될 정보는:

  • pending payout value (PPV): 예상 보상
  • children: 댓글 수
  • net_votes: 업보트 수
  • created: 작성 일자/시간
  • author: 작성자
  • permlink: 글 고유 링크

이를 이용해 스팀잇 황금시간대를 알아볼 수 있는 방법은 무척 많겠지만,

이번 글에서 kr 태그를 가진 최신 글들을 마구 긁어와서 일주일 간 어느 요일, 어느 시간대에 올린 글이 PPV, 댓글, 업보트가 가장 많았는지 알아보겠습니다.

글 작성하기 앞서 사전 코딩해본 결과, 이상하게도 스팀 API를 통해 글을 불러오니 일주일 이상 과거 기록은 듬성듬성하게 돌아옵니다. 노드 설정 문제인지, API 자체 문제인지 아직 잘 모르겠네요.

어쩔 수 없이 2.12~16 기간, 즉 이번주 평일 기준으로 5일간의 글 정보를 다뤄보겠습니다.

2.

kr 태그의 최신글 목록을 받아오는 API는 아쉽게도 100개 제한이 있습니다.

s.get_discussions_by_created({"tag": "kr", "limit": 100})

분명 일주일 간 그 이상의 글이 발행됐을텐데 말이죠?

다행히 방법은 있습니다!

# 1. 최신 100개를 가져온 뒤 list에 저장하고,
newest_batch = s.get_discussions_by_created({"tag": "kr", "limit": 100})
# 2. 맨 마지막 글의 '작성자'와 '고유링크'를 기억해둡니다
author, permlink, created = newest_batch[-1]['author'], newest_batch[-1]['permlink'], newest_batch[-1]['created']
# 3. 그럼 처음 100개에 이어서 다음 100개를 불러올 수 있습니다
fetch_batch = s.get_discussions_by_created({"tag": "kr", "limit": 100, "start_author": author, "start_permlink": permlink})

이와 같은 방식을 계속 반복하다보면, 6일 전인 월요일 글까지 불러올 수 있죠 :)

그런 다음, 이번 분석에서 불필요한 16일(토), 17일(일), 그리고 11일(일)을 제거해주고 살짝 데이터 전처리를 해주면 준비 완료!

이번 주 평일 총 5일간 KR 태그를 지닌 글은 무려 8,031개!

  • 글 하나당 평균 약 5.43 PPV, 댓글 11.63개, 업보트 12.54
  • 최다 기록은 251.974 PPV, 댓글 251개, 업보트 934개

A-1. 요일별로 수익(PPV)이 다를까?

목요일, 그리고 특히 금요일이 다른 요일보다 살짝 더 높은 PPV를 보이네요.

A-2. 요일별로 업보트가 다를까?

금요일이 유독 높습니다.

아무래도 월요일 글들이 더 오래됐으니 금요일 대비 더 업보트가 누적되지 않았을까 싶었는데 그렇진 않네요.

A-3. 요일별로 댓글 수가 다를까?

화요일이 가장 댓글이 많네요.

수, 목, 금 순으로 점차 낮아지는걸 보니 시간에 따라 누적량의 차이가 여기에 적용된걸 수도 있겠네요?

B-1. 시간대별로 수익(PPV)이 다를까?

여러분이 가장 궁금했을 그래프입니다!

새벽과 아침이 가장 저조합니다.

황금시간대는 22시와 18시가 압도적입니다. 그리고 준(?)황금시간대는 23시, 12시, 19시네요.

그렇다면 이론상 목/금에 22시/18시에 쓰는게 이상적일 수도 있겠습니다 :)

B-2. 시간대별로 업보트가 다를까?

역시 22시에 폭발하네요.

B-3. 시간대별로 댓글 수가 다를까?

댓글 수가 낮은 시간대가 몇몇 보이네요.

새벽 올빼미들도 잠드는 4시, 저녁/퇴근 시간대의 18시가 가장 낮군요.

C-1. 업보트가 많을수록 PPV가 높을까?

C-2. 댓글이 많을수록 PPV가 높을까?

C 결과에서는 유의미한 패턴은 딱히 없습니다.

D. 요일별로 글 작성량

결과가 신기해서 코드가 잘못 됐나 싶었지만, 확인 결과 문제 없네요.

12일 월요일에 2,035개 글이 올라왔고, 금요일은 거의 반토막인 1,151개네요.

A 결과에서 금요일이 유독 PPV와 업보트 평균치가 다른 요일 비해 높은 이유가 여기서 밝혀지네요.

E. 시간대별로 글 작성량

역시 재밌는 결과네요.

저녁시간대 진입부터 늦밤까지 글 작성량이 상대적으로 현저히 낮습니다.

마치며,

결론내자면 스팀잇 평일 황금시간대는,

1. 목요일과 금요일 18시 혹은 22시
2. 요일 상관 없이 글 작성량이 낮은 저녁시간대도 괜찮아 보임
3. 시간대 상관없이 업보트 수는 비슷하나, PPV 생각하자면 새벽은 피하자

이번주 5일치 데이터로만 분석했기에 절대적인 결과는 아닙니다 :)

1월 전체로 분석했으면 더 정확한 결과였을텐데 아쉽네요.

스팀 API로 일주일 넘은 과거 기록 불러올 때 오류가 발생 이유를 빨리 찾아내봐야겠어요.

사실 황금시간대를 알아도 딱 맞춰 글을 올리는건 쉽지 않습니다.

그 외 많은 변수들도 있겠지만, 저희가 항상 스팀잇에 접속할 수 있는건 아니잖아요? 그래서 스팀잇에 글을 예약해서 올릴 수 있는 웹서비스를 차차 만들어볼까 합니다. 해외 서비스 몇 개 있긴 하지만 UI가 불편하고 무엇보다 영어입니다ㅠㅠ

제가 KR 커뮤니티에게 공헌하는 첫 프로젝트가 되지 않을까 싶습니다!

+) 아직 아이디어 단계로 매일 한 번 유저의 정보(팔로워 수, 댓글 수, SP 등등)를 기록하는 아카이브와 손쉬운 봇 생성기도 준비해보고 있습니다!

잠깐! 읽어보셨나요? :)
A. [EVENT] 팔로워 100 돌파 이벤트! (6 SBD)
B. [분석] 스팀잇에서 '성공'하고 싶어졌다면?

앞으로 작성될 주제들:
A. 알파고를 학습시켜 새로 '창조'하는 포켓몬!
B. ICO 투자 입문서 101

재밌었다면 업보트 & 리스팀 부탁드리며, @hellocrypto 를 팔로우 하시면 꾸준하고 알찬 글들을 만날 수 있답니다 :) 이상 현실ㅠㅠ 일병 크립토였습니다. 필승!

Sort:  

Cheer Up!

  • from Clean STEEM activity supporter

스스로 홍보하는 프로젝트에서 나왔습니다.
오늘도 좋은글 잘 읽었습니다.
오늘도 여러분들의 꾸준한 포스팅을 응원합니다.

와와, 세상에나 이렇게 분석하시는 분이 있다니요. 좋은 정보 잘 보고 갑니다.
by 스알못(스팀잇알지도못하는사람)

멋지네요

데이터는 분석해야 맛이죠 ^^

도움이 되는 글 잘 읽었습니다^^ 보팅&팔로우 하고 갑니다^^

정성스러운 분석 잘 봤습니다. 근데 SNS도 그렇고 이런 분석이 참 무의미 할 때가 있습니다. 정말 예상치 못하게 글이 터지기도 하니까요. 그래도 이런 분석을 참고하면 그 확률을 조금 더 높일 수 있을 것으로 기대합니다.

@speedwg 님 맞습니다 :) 이렇게 관계적인 측면이 높은 요소에서 절대적인 공식은 없더라구요. 그래도 참고사항은 되었으면 하는 마음에 작성해봤습니다! 다음엔 더 많은 데이터를 활용해 보다 신뢰도 높은 글을 준비해보겠습니다~

절대적인 답은 없지만 이런 빅데이터들을 계속 찾아나가면 최대한 근접한 결과값은 찾을 수 있을 것 같습니다 : )

궁금했지만 알기 힘들거나 추측했던 정보인데, 이렇게 분석을 통해보니 유용하네요^^ 해당 시간에 글을 집중해서 써봐야겠습니다. 분석글 잘 봤습니다.

읽어주셔서 감사합니다 :) 제 작은 분석이 조금이나마 도움이 됐다면 기쁘네요

좋은 분석글입니다.
목, 금요일 오후 6시, 10시. 기억해야겠어요!

감사합니다 :) 조만간 심화 후속 편도 올리겠습니다!

잼나게 읽었습니다. 감사합니다.

아주 좋은 내용 잘 읽었습니다

그런데 view count는 보상에 영향을 미치지 않는데 정책이 이렇게 짜여진 이유가 있는지 궁금합니다

view count는 프로그램적으로 얼마든지 늘릴 수 있는 허점이 존재합니다 :) 그리고 스팀잇 유저가 어떤 글이든 읽을 수는 있되, 업보트를 통해 '공감'을 표현해야 보상이 작성자에게 가는 현재 시스템이 맞지 않을까 싶네요.