Skip to content

Commit ccbe5d4

Browse files
committed
[fix] #-: GA4 리포트 임베드 섹션별 분리
1 parent 987e8e0 commit ccbe5d4

1 file changed

Lines changed: 48 additions & 40 deletions

File tree

scripts/ga_daily_report.py

Lines changed: 48 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -94,53 +94,61 @@ def main():
9494
gallery = upload.get("gallery", 0)
9595
qr = upload.get("qr", 0)
9696

97-
def field(name, lines):
98-
return {"name": name, "value": "\n".join(lines) or "없음", "inline": False}
97+
def lines_to_value(lines):
98+
return "\n".join(lines) or "없음"
9999

100-
map_lines = [
101-
f"진입 {ev.get('map_view', 0)}회 ({us.get('map_view', 0)}명)",
102-
f"재검색 {ev.get('map_re_search', 0)}회",
103-
f"브랜드 필터 {ev.get('map_brand_filter_toggle', 0)}회",
100+
map_desc = "\n".join([
101+
f"진입 **{ev.get('map_view', 0)}** ({us.get('map_view', 0)}명)",
102+
f"재검색 **{ev.get('map_re_search', 0)}**",
103+
f"브랜드 필터 **{ev.get('map_brand_filter_toggle', 0)}**",
104104
] + brand_lines + [
105-
f"부스 선택 {ev.get('booth_select', 0)}회 ({us.get('booth_select', 0)}명)",
106-
f"길찾기 {ev.get('map_route_click', 0)}회",
105+
f"부스 선택 **{ev.get('booth_select', 0)}회** ({us.get('booth_select', 0)}명)",
106+
f"길찾기 **{ev.get('map_route_click', 0)}회**",
107+
])
108+
109+
pose_desc = "\n".join([
110+
f"진입 **{ev.get('pose_view', 0)}회** ({us.get('pose_view', 0)}명)",
111+
f"필터 토글 **{ev.get('pose_filter_toggle', 0)}회**",
112+
f"랜덤 시작 **{ev.get('pose_random_start', 0)}회**",
113+
f"북마크 **{ev.get('pose_bookmark', 0)}회**",
114+
])
115+
116+
archive_desc = "\n".join([
117+
f"진입 **{ev.get('archiving_view', 0)}회** ({us.get('archiving_view', 0)}명)",
118+
f"사진 상세 **{ev.get('photo_detail_view', 0)}회**",
119+
f"메모 작성 **{ev.get('photo_memo_create', 0)}회**",
120+
f"앨범 생성 **{ev.get('album_create', 0)}회**",
121+
f"업로드 갤러리 **{gallery}회** | QR **{qr}회**",
122+
])
123+
124+
embeds = [
125+
{
126+
"title": f"📊 GA4 일간 리포트 · {yesterday}",
127+
"description": f"👥 DAU **{dau}명** | 신규 **{new_users}명**",
128+
"color": 0x5865F2,
129+
},
130+
{
131+
"title": "🗺 지도",
132+
"description": map_desc,
133+
"color": 0x57F287,
134+
},
135+
{
136+
"title": "🧘 포즈",
137+
"description": pose_desc,
138+
"color": 0xFEE75C,
139+
},
140+
{
141+
"title": "📦 아카이브",
142+
"description": archive_desc,
143+
"color": 0xEB459E,
144+
"footer": {"text": "neki · GA4 자동 리포트"},
145+
},
107146
]
108147

109-
pose_lines = [
110-
f"진입 {ev.get('pose_view', 0)}회 ({us.get('pose_view', 0)}명)",
111-
f"필터 토글 {ev.get('pose_filter_toggle', 0)}회",
112-
f"랜덤 시작 {ev.get('pose_random_start', 0)}회",
113-
f"북마크 {ev.get('pose_bookmark', 0)}회",
114-
]
115-
116-
archive_lines = [
117-
f"진입 {ev.get('archiving_view', 0)}회 ({us.get('archiving_view', 0)}명)",
118-
f"사진 상세 {ev.get('photo_detail_view', 0)}회",
119-
f"메모 작성 {ev.get('photo_memo_create', 0)}회",
120-
f"앨범 생성 {ev.get('album_create', 0)}회",
121-
]
122-
123-
upload_lines = [
124-
f"갤러리 {gallery}회 | QR {qr}회",
125-
]
126-
127-
embed = {
128-
"title": f"📊 GA4 일간 리포트 · {yesterday}",
129-
"color": 0x5865F2,
130-
"fields": [
131-
{"name": "👥 DAU", "value": f"**{dau}명** (신규 {new_users}명)", "inline": False},
132-
field("🗺 지도", map_lines),
133-
field("🧘 포즈", pose_lines),
134-
field("📦 아카이브", archive_lines),
135-
field("📤 사진 업로드", upload_lines),
136-
],
137-
"footer": {"text": "neki · GA4 자동 리포트"},
138-
}
139-
140148
payload = {
141149
"username": "네키 GA 봇",
142150
"avatar_url": "https://i.ifh.cc/PbdkGM.jpg",
143-
"embeds": [embed],
151+
"embeds": embeds,
144152
}
145153

146154
resp = requests.post(DISCORD_WEBHOOK_URL, json=payload)

0 commit comments

Comments
 (0)