여러분 커뮤니티에서 가장 많이 사용되는 이모지 반응은 무엇인가요?

Reactions on Meta에서 이어지는 논의입니다:

제가 파트타임으로 일하는 사이트에서 리액션이 어떻게 사용되는지 궁금했습니다. 이 포럼은 대학 입시에 관한 내용으로, 학생들이 꿈에 그리던 대학에 합격하거나 불합격했다는 게시물 등이 올라옵니다. 저희는 :+1:을 “좋아요” 이모지로 사용하므로, 기본 "좋아요"인 :heart:에 비해 :+1:의 사용 빈도가 훨씬 높습니다. 조사한 결과는 다음과 같습니다:

리액션 게시물 수 횟수
:+1: 260494 720859
:100: 16116 25738
:heart: 13315 23523
:tada: 7538 22674
:rofl: 7200 15720
:mending_heart: 6341 26875
:bulb: 3854 4404
:astonished: 2795 4911
:smile: 2286 2881
:joy: 1758 2623
:sob: 1708 2360
:angry: 1613 3396
:wink: 336 352
:heavy_check_mark: 30 43

게시물에 가장 많이 사용되는 이모지를 살펴본 뒤 초기 리액션 목록을 만들었습니다. 이후 멤버들의 피드백을 바탕으로 목록을 조정했습니다. 저는 :heavy_check_mark:를 좋아했지만, 커뮤니티가 그렇지 않다는 것은 매우 이른 시점에 분명해졌습니다. 그래서 다른 것으로 교체했습니다.

자신의 사이트와 비교해 보고 싶다면, 제가 사용했던 쿼리는 다음과 같습니다:

select ':'||reaction_value||':' reaction, 
       count(*) posts, 
       coalesce(sum(reaction_users_count), sum(like_count)) count
from discourse_reactions_reactions drr
     join posts p on post_id = p.id
group by reaction_value
order by count(*) desc

재미있는 사실: 게시물에서 :gift: 이모지가 왜 이렇게 많이 사용되는지 파악하는 데 애를 먹었습니다. 결국 원인을 찾아냈는데, 그 주범은 바로 :robot:였습니다.

10개의 좋아요

이 문제를 Community Building 채널로 옮겨서 더 많은 분들의 관심을 받으세요. :eyes:

다만, 쿼리가 좋아요(Likes)를 제대로 집계하지 못하고 있거나, 적어도 우리 것 중 일부는 제대로 집계하지 못하고 있는 것 같습니다(반응(Reactions)을 중간에 활성화했기 때문일 수 있음)

반응 게시물 수 개수
:heart: 52295 144915
:+1: 1167 1224
:100: 1101 1236

반면에:

reaction_value 개수
:heart: 1371442
:100: 1236
:+1: 1224
참고로, 이 쿼리의 작은 변형 버전을 사용해 테이블을 생성하고 있습니다:
SELECT source.reaction_value,
       count
FROM

 (
 (
 
SELECT 
    CASE WHEN post_action_type_id = 2 THEN 'heart' END AS reaction_value,
    COUNT(*) AS count
FROM post_actions
WHERE post_action_type_id = 2
  AND deleted_at IS NULL
GROUP BY 1

)
UNION ALL
(

SELECT 
    reaction_value,
    SUM(reaction_users_count) AS count
FROM discourse_reactions_reactions
WHERE reaction_value <> 'heart'
GROUP BY 1

)
) AS source

GROUP BY 1,2
ORDER BY 2 DESC

교차 검증을 위해 보고서 섹션에도 기본 제공되는 쿼리가 있습니다(다만, 이 테이블은 복사해서 붙여넣기가 좀 어렵습니다 :slight_smile:) - /admin/reports/reactions

4개의 좋아요

아. 두 가지 매우 다른 것을 카운트하고 있으므로 이 쿼리를 실행하는 올바른 방법은 UNION ALL입니다. 제 쿼리에는 discourse_reactions_reactions에 항목이 없는 게시물을 포함시키기 위해 외부 조인(outer join)이 필요합니다. 이를 추가하니 쿼리가 타임아웃되어 이것이 문제를 해결하는지 확인할 수 없습니다. 어쨌든 여기서는 Union이 정답입니다.

다만 post_actions가 좋아요를 과다 집계할 수 있을지 궁금합니다. 사용자가 게시물을 좋아요한 뒤 그 반응을 삭제하거나 변경하는 경우를 고려하고 있나요?

College Confidential에서는 좋아요에 :+1: 을 사용했으므로 쿼리에서 'heart’를 '+1’로 변경해야 했습니다. 해당 쿼리의 결과는 다음과 같습니다:

reaction count
:+1: 2089798
:mending_heart: 28167
:100: 27070
:heart: 24676
:tada: 24055
:rofl: 16778
:astonished: 5325
:bulb: 4590
:angry: 3547
:smile: 3078
:joy: 2623
:sob: 2443
:wink: 369
:heavy_check_mark: 43
2개의 좋아요

좋은 지적입니다. 다시 가서 AND deleted_at IS NULL 조건을 추가하겠습니다.

1개의 좋아요