인스타가 보는 나 리포트: 광고·저장·DM 데이터를 과장 없이 읽는 법
Instagram 공식 ZIP의 광고 분류, 광고주 목록, 시청 해시태그, 저장 게시물, DM 집계를 브라우저에서 분석하고 각 카드의 의미와 한계를 설명합니다.
CheckMate 운영자 · 최초 발행 · 사실 검토 · 약 13분
“인스타가 보는 나”는 Meta 내부 추천 알고리즘을 역공학하거나 계정의 가치를 채점하는 기능이 아닙니다. 내 Instagram ZIP에 실제로 포함된 광고 분류, 광고주 목록, 본 콘텐츠의 해시태그, 저장 게시물, 메시지 메타데이터를 읽기 쉬운 집계로 바꾸는 로컬 리포트입니다. 파일에 없는 신호는 추측해 채우지 않습니다.
같은 카드라도 해석에는 경계가 있습니다. 광고주 파일에 회사 이름이 있다고 현재 그 회사의 광고 타깃이라는 뜻은 아니고, 본 게시물의 해시태그 상위가 Instagram 추천 공식이라는 뜻도 아닙니다. DM 건수는 대화량을 세지만 관계의 친밀도나 감정을 판정하지 않습니다. 이 글은 카드별로 “계산한 값”과 “말할 수 없는 것”을 함께 적습니다.
분석은 ZIP을 선택한 브라우저 안에서 실행됩니다. DM 원문 content는 파서가 읽지 않고, 사용자명·상대 이름·파일명·파생 집계를 Firestore로 보내지 않습니다. Recovery Release의 실제 613MB ZIP 네트워크 테스트에서도 Firestore와 광고 요청이 0건이었습니다. 민감한 전체 ZIP을 서버에 보낼 이유가 없도록 만든 것이 이 리포트의 핵심 설계입니다.

1. 어떤 파일이 어떤 카드가 되는가
리포트는 파일 경로를 느슨하게 추측하지 않고 알려진 후보를 찾은 뒤 각 섹션을 독립적으로 파싱합니다. 광고 분류는 other_categories_used_to_reach_you.json, 광고주 수는 advertisers_using_your_activity_or_information.json을 우선 찾습니다. 시청 관심사는 stories_viewed, posts_viewed, videos_watched의 해시태그를 집계하고, 저장 분석은 saved_posts에서 소유자·해시태그·캡션 키워드·월별 시점을 셉니다.
DM은 messages/inbox 아래 스레드별 message_N.json을 순서대로 합칩니다. participants, sender_name, timestamp_ms만 사용해 1:1과 단체방의 메시지 수·발신 비율·첫/마지막 시점을 계산합니다. 메시지의 content 필드는 의도적으로 읽지 않습니다. 활동 히트맵은 좋아요·댓글·스토리 좋아요·저장에 포함된 timestamp를 모아 요일과 시간대의 분포를 보여줍니다.
| 화면 카드 | 주요 입력 | 로컬 계산 | 없을 때 |
|---|---|---|---|
| 광고 분류 | other_categories_used_to_reach_you | 파일의 분류 라벨 목록 | 카드 숨김 |
| 광고주 목록 | advertisers_using_your_activity_or_information | 고유 이름 수와 목록 | 카드 숨김 |
| 시청 해시태그 | stories/posts/videos viewed | 항목 수와 해시태그 빈도 | 카드 숨김 |
| 저장 취향 | saved_posts | 태그·키워드·소유자·월별 수 | 카드 숨김 |
| DM 관계 | messages/inbox/message_N | 메시지 수·발신 비율·기간 | 카드 숨김 |
| 활동 히트맵 | 좋아요·댓글·스토리·저장 timestamp | 요일·시간대 분포 | timestamp 없으면 숨김 |
2. 광고 분류와 광고주 목록을 읽을 때의 한계
광고 분류 카드는 Meta가 내보내기 파일에 넣은 category 문자열을 보여줍니다. 이 값이 언제 생성됐는지, 현재도 활성인지, 실제 광고 한 편에 어떻게 사용됐는지는 파일만으로 알 수 없습니다. 그래서 “Meta가 당신을 정확히 이런 사람으로 확정했다”가 아니라 “이 ZIP에 이런 분류 라벨이 기록돼 있다”고 읽어야 합니다.
광고주 목록도 마찬가지입니다. 파일 이름은 내 활동 또는 정보를 사용한 광고주를 뜻하지만, 목록에 등장한 회사가 지금 나를 직접 감시하거나 현재 캠페인에서 타깃으로 삼는다는 증거는 아닙니다. CheckMate는 이름을 과장된 경고로 바꾸지 않고 개수와 원문 라벨을 보여줍니다. 더 자세한 통제는 Accounts Center의 광고 설정과 Off-Meta Activity에서 직접 확인해야 합니다.
| 관찰한 값 | 합리적인 해석 | 피해야 할 단정 |
|---|---|---|
| 광고 카테고리 라벨 | 내보내기 시점 파일에 포함된 분류 | Meta가 현재 나를 그 정체성으로 확정 |
| 광고주 이름 | 파일의 광고주 목록에 존재 | 회사가 현재 내 계정을 보고 있음 |
| 광고주 수 | 해당 파일에서 중복 제거한 이름 수 | 현재 활성 광고 캠페인 수 |
3. 시청·저장 데이터는 “추천 알고리즘 공식”이 아니라 행동 기록이다
시청 해시태그는 ZIP의 stories_viewed, posts_viewed, videos_watched 항목에서 해시태그를 찾아 빈도를 셉니다. fyp, reels, viral, 맞팔처럼 주제성이 약한 범용 태그는 랭킹에서 제외합니다. 상위 태그가 최근 관심의 단서가 될 수는 있지만, 캡션에 태그가 없는 콘텐츠와 파일에 빠진 시청 기록은 반영하지 못합니다.
저장 분석은 saved_posts의 각 항목을 한 표로 세고, 같은 캡션에 단어가 여러 번 나와도 저장 한 건 안에서는 한 번만 카운트합니다. 소유자 username, 해시태그, 캡션의 2~10자 한글 또는 3~20자 영문 키워드, timestamp의 월을 집계합니다. 자주 나온 단어는 내가 저장한 주제의 후보이지 성격·구매 의도·정치 성향을 판정하는 값이 아닙니다.
이 차이를 지키면 리포트를 행동 도구로 쓸 수 있습니다. 예를 들어 저장 목록이 한 주제에 과도하게 몰렸다면 실제로 다시 보는 자료인지 정리할 수 있고, 밤 시간 활동이 길다면 사용 습관을 점검할 수 있습니다. 반대로 “알고리즘 점수 83점” 같은 하나의 숫자로 축약하면 입력 누락과 의미 차이가 사라져 오해가 커집니다.
- 태그 빈도는 해당 ZIP에 캡션·태그가 남은 항목만 포함한다.
- 저장 키워드 랭킹은 일반 불용어를 제외하지만 문맥과 반어를 이해하지 못한다.
- 월별 추이는 timestamp가 있는 저장 항목만 포함한다.
- 활동량이 많다고 계정 품질·성공 가능성·정신 건강이 높거나 낮다고 판단하지 않는다.
4. DM 집계는 내용을 읽지 않아도 관계의 양을 보여줄 수 있다
DM 파서는 스레드 참가자와 보낸 사람, 시각만 읽고 content를 건너뜁니다. 1:1 대화에서는 전체 메시지 수와 내가 보낸 수의 비율, 첫 기록과 마지막 기록을 계산합니다. 단체방은 제목, 참가자 수, 메시지 수만 집계합니다. 여러 message_1, message_2 파일이 있으면 숫자 순서대로 합칩니다.
메시지가 많다는 사실은 연락 빈도를 말하지만 친밀도, 호감, 갈등, 관계의 질을 증명하지 않습니다. 업무 단체방은 메시지가 많아도 사적인 친밀감과 무관할 수 있고, 친한 사람과는 통화나 다른 앱을 더 쓸 수 있습니다. “베프 랭킹” 같은 재미있는 표현을 보더라도 실제 의미는 ZIP 안 메시지 수 순위입니다.
민감한 이름은 결과를 보는 사용자의 브라우저에만 렌더링됩니다. 공유 카드나 향후 익명 벤치마크를 만들 때는 상대 이름·DM 내용·정확한 시각을 업로드 데이터에서 제외해야 합니다. 집단 백분위는 충분한 표본, 별도 옵트인, 코호트 기준, 최소 표본 수가 마련되기 전에는 표시하지 않는 것이 현재 원칙입니다.
| 집계 | 계산 | 의미의 한계 |
|---|---|---|
| 전체 DM 수 | 읽은 message_N 항목 수 | 삭제·누락·다른 앱 대화는 모름 |
| 발신 비율 | 내 sender_name 메시지 / 전체 | 관계의 균형이나 호감 판정 아님 |
| 대화 기간 | 유효 timestamp 최소·최대 | 연속적인 대화였다는 뜻 아님 |
| 단체방 순위 | 방별 메시지 수 | 참여도나 친밀도 순위 아님 |
5. 카드가 없거나 숫자가 다를 때 확인할 순서
전체 ZIP을 받았다고 모든 섹션이 반드시 있는 것은 아닙니다. Meta의 export 스키마, 계정 사용 이력, 선택 항목, 국가, 앱 버전에 따라 파일이 빠지거나 경로가 달라질 수 있습니다. CheckMate는 데이터가 없고 파싱 오류도 없으면 해당 카드 자체를 숨깁니다. 일부 섹션만 실패하면 경고와 섹션 이름을 보여주고 나머지는 계속 표시합니다.
숫자가 Instagram 앱의 인사이트와 다르다면 먼저 기간과 시점을 맞춥니다. ZIP은 요청 또는 생성 시점의 기록이고 앱은 현재 값일 수 있습니다. 다음으로 분할 파일 누락과 HTML 형식 여부를 확인합니다. 마지막으로 오류 문구와 ZIP 내부 경로만 운영자에게 알려주세요. 원본 ZIP과 메시지 내용은 보내지 않아도 됩니다.
- 1요청 범위 확인
광고·저장·메시지·활동 중 원하는 섹션을 실제로 선택했는지 봅니다.
- 2형식과 시점 확인
JSON인지, 요청·생성·분석 날짜가 얼마나 떨어져 있는지 확인합니다.
- 3분할 파일 확인
message_N, post_comments_N, followers_N 파일이 여러 개인지 봅니다.
- 4섹션 오류만 기록
어떤 카드가 실패했는지와 표시된 오류 문구를 기록하고 다른 결과는 그대로 사용합니다.
확인한 출처와 검증 방법
- Meta Newsroom — Accounts Center의 정보 관리 기능 — Instagram 정보 다운로드와 Off-Meta Activity 관리 위치를 확인했습니다.
- Instagram Help Center — 정보 사본 내보내기 — 사용자가 본인 정보를 직접 받을 수 있는 공식 기능의 기준입니다.
- CheckMate 개인정보 처리방침 — 원본 ZIP, DM 원문, 사용자명과 파생 집계의 현재 처리 범위를 공개합니다.
자주 묻는 질문
광고주 목록에 나온 회사가 지금 저를 타깃으로 삼는 건가요?
그렇게 단정할 수 없습니다. 해당 이름이 내보내기 파일에 포함됐다는 사실만 확인할 수 있습니다. 현재 광고 설정은 Meta 계정 센터에서 별도로 확인하세요.
DM 원문을 AI가 읽나요?
아닙니다. 현재 파서는 content 필드를 읽지 않고 참가자·발신자·timestamp로 메시지 수와 비율만 계산합니다. OpenAI 같은 외부 AI API에도 보내지 않습니다.
리포트 카드가 하나도 안 보이는 이유는 무엇인가요?
관계 항목만 선택했거나, 계정에 해당 기록이 없거나, export 경로가 달라졌을 수 있습니다. 전체 선택 JSON으로 다시 요청하고 파싱 경고가 있는지 확인하세요.
내 Instagram 점수나 상위 몇 퍼센트도 나오나요?
아직 실제 코호트 백분위는 제공하지 않습니다. 충분한 익명 옵트인 표본, 공개 산식, 최소 표본 기준이 없는데 상위 X%를 표시하면 가짜 벤치마크가 되기 때문입니다.