기능성 메시지 api 실패 문의

이 글의 성격은 무엇인가요?

질문 / 문제 해결

내용을 설명해주세요

안녕하세요, 푸시알림 템플릿이 승인된 상태인데 기능성 메시지 API를 테스트해보고 있는데요
이제 resultType은 success 로 잘 떨어지는데
푸시나 inbox에는 “TERMS_DISAGREED_MEMBER” 가 내려옵니다.

live / test 모두 이와같이 떨어지더라고요.
참고로 앱은 아직 승인전이긴 합니다.

기능성 메시지는 동의가 필요하지 않는 항목인데, 제가 놓치는게 있을까요?
개발가이드도 꼼꼼히 보았다고 봤는데 실마리가 안잡힙니다…

아직 앱이 아직 최초승인전이라서 그러는건지..
도와주세요..

{
  "success": {
    "fail": {
      "sentSms": [],
      "sentPush": [
        {
          "contentId": "trustee:PUSH-9a0c5b67-55c9-443a-b51f-e594f9ecbe28",
          "reachedFailReason": "TERMS_DISAGREED_MEMBER"
        }
      ],
      "sentInbox": [
        {
          "contentId": "trustee:INBOX-9a0c5b67-55c9-443a-b51f-e594f9ecbe28",
          "reachedFailReason": "TERMS_DISAGREED_MEMBER"
        }
      ],
      "sentAlimtalk": [],
      "sentFriendtalk": []
    },
    "detail": {
      "sentSms": [],
      "sentPush": [],
      "sentInbox": [],
      "sentAlimtalk": [],
      "sentFriendtalk": []
    },
    "msgCount": 0,
    "sentSmsCount": 0,
    "sentPushCount": 0,
    "sentInboxCount": 0,
    "sentAlimtalkCount": 0,
    "sentFriendtalkCount": 0
  },
  "resultType": "SUCCESS"
}

@Albert 전체 > 톱니바퀴 아이콘 > 약관 및 개인정보 처리 동의 > 사용자 최적화 제품 동의가 되어계실까요?

@dohyung 님 확인 감사드립니다.

해당 건 찾아보니 동의가 안되어있었습니다. 이걸 동의하니까 잘 작동합니다.

현재 안드로이드 5.235.0 버전인데요

1.약관 및 개인정보 처리 동의 > “사용자 최적화 제품” 메뉴가 안나옴
2.검색에서 “사용자 최적화 동의” 를 검색 하면 항목이 나옴
3.그걸 클릭해서 동의하니까 1번 메뉴에 나옴 (즉 1번은 동의한 사람만 메뉴가 나옴)

그리고 메시지 발송 성공했습니다.

여기서 매우 많은 궁금증이 생기네요..

저는 이걸 동의안한 상태인데 어째서인지 다른 미니앱에서 "기능성 메시지"는 받았거든요.

1.사용자 최적화 제품 동의 안한 상태에서 받아지는 케이스

A) 저희앱은 기능성 메시지 도착안함
B) 다른 미니앱에서 기능성 메시지 받아봤음 (해당 앱은 마케팅 동의 자체가 없는 앱인데 요 며칠사이 받음)
C) 저는 이 동의를 최근에 해제한 기억이 없습니다.

이게 말이 되려면..제가 착각해서 최근에 동의를 해제했거나,
저에게 보낸 저 미니앱의 메시지가 사실은 기능성이 아닌 광고성이어야 한다는건데…
(ㅇㅇㅇ님 기다리던 무료 이용 기한이 임박했어요…-> 기능성 메시지로 보여서요)

2.어쨌든 지금 유저는 이 사실을 모르고 푸시를 못받을수 있는데…미니앱에서 어떻게 처리해야 할까요?

서버에서 푸시를 보내고 “reachedFailReason”: “TERMS_DISAGREED_MEMBER” 로 내려온 경우
유저가 다음번에 로그인 하면 알려주는 용도로 쓰면 될지..개발가이드에 확정이 필요합니다.

그리고 유저에게 안내할때는

"토스의 “사용자 최적화 제품 동의"이 동의가 안되어 알림을 수신하실 수 없습니다.
토스 > 전체탭 > 상단 검색 > “사용자 최적화 동의” 검색 > 동의 후 알림 메시지 수신을 받을 수 있습니다.”

라고 해야할까요? 지금..구조라면 이게 맞는거 같은데 이게좀 뭔가 이상해서요.
푸시를 받기 위해서는 사용자 최적화 동의를 해야 한다는…

이미 토스 로그인 등 약관에 동의한 상태인데,이쪽에 포함해야 하지 않나 싶은데

(또 여기서 우리가 논외로 한건 OS레벨의 푸시 알림 자체를 끈 경우는…
이건 지금 얘기하기에는 너무 복잡해지니 위 이슈 해결되면 이어서 파악해보겠습니다.)

2번으로 해야할지 가이드 부탁드립니다.

말씀주신 내용은 내부에서 파악 및 논의 후에 공유드리겠습니다 :person_bowing: cc: @seonjeong

저도 최근에 기능성 메시지를 연동하면서 같은 이슈로 한참 헤매다가 이 글을 보고 원인을 찾을 수 있었어요. 먼저 공유해 주신 분께 감사드립니다.

공식 문서에는 사용자 인증 토큰이 필요하며, 사용자에게 메시지를 전송할 수 있는 scope 권한이 포함돼야 해요 정도로만 안내되어 있어서, TERMS_DISAGREED_MEMBER처럼 토스 앱 사용자 설정 레벨의 실패 사유는 예상하기 어려웠습니다. 검색해봐도 이 포럼 글 외에는 참고할 자료가 거의 없었어요.

관련해서, 추후에 네이티브 앱이 OS의 알림 권한 상태를 조회하는 것처럼 미니앱에서도 발송 전에 수신 가능 여부를 사전에 확인할 수 있으면 연동이 훨씬 수월할 것 같습니다.

현재 메시지 수신에 필요한 권한 레이어 (제가 이해한 바로는)

  1. OS 알림 권한 — 디바이스 설정
  2. 사용자 최적화 제품 동의 — 토스 앱 전체 설정
  3. 미니앱 알림 권한 — 로그인 시 scope 동의

이 중 어느 단계에서 수신이 막혀 있는지 파트너 앱 입장에서는 미리 알 수 없다 보니, 실제로 발송해봐야 reachedFailReason으로만 확인이 가능합니다. 이 때문에 사용자에게 선제적으로 안내하거나 설정 페이지로 유도하는 게 어려운 상황입니다.

현재 저희 서비스에서 안내하고 있는 방식

알림이 수신되지 않는 경우 아래처럼 세 가지 경우를 모두 텍스트로 안내하고 있습니다. 어떤 레이어가 원인인지 알 수 없다 보니 사용자 입장에서도 정확히 어디를 켜야 하는지 찾기 어렵습니다.

알림이 수신되지 않는다면?

  • OS 알림 허용 — 기기 설정에서 토스 앱 알림 권한을 켜주세요.
  • 미니앱 알림 허용 — 이 페이지 상단 ⋯ 버튼 > 설정 > 알림에서 켜주세요.
  • 사용자 최적화 동의 — 토스 앱 [전체 → 검색 → 사용자 최적화 동의]에서 동의해주세요.

혹시 가능하시다면 고려해 주시면 좋을 것 같은 부분

  1. 위 3가지 권한 상태를 각각 조회할 수 있는 SDK 메서드가 있다면 좋을 것 같아요 (예: getMessagePermissionStatus())
  2. 꺼져 있는 레이어의 설정 화면으로 이동시킬 수 있는 딥링크나 SDK 메서드도 함께 있으면 사용자 안내가 훨씬 자연스러워질 것 같습니다.
  3. reachedFailReason의 가능한 값과 의미가 문서화되면 비슷한 이슈를 겪는 다른 개발자분들께도 도움이 될 것 같습니다.

사용자가 “왜 알림이 안 오지?” 하고 혼란을 겪지 않도록, 파트너 앱에서 적극적으로 도와줄 수 있는 수단이 있으면 좋겠다는 바람에서 의견 남깁니다. 검토해 주시면 감사하겠습니다.

최근 '알림 동의문’이 추가된 이후로 'TERMS_DISAGREED_MEMBER’이 발생하고 있어 이 글을 찾게 되었습니다.

앞서 남겨주신 해결 방안을 모두 적용해 테스트 해보았지만 여전히 같은 사유로 기능성 스마트 발송이 안되고 있는 상황입니다.
(기존 승인된 기능성 스마트 발송 건들은 문제 없이 수신되고 있습니다)

현재 가이드 상으로는 알림 동의문을 어떠한 플로우로 사용자에게 띄워야 하는지, 또한 어떻게 띄울수 있는지 확인해볼 수 있는 내용이 없는 듯 하고, 또한 이게 정말 필요한 플로우 인지 혹은 버그인 것인지 정확히 분간이 되지 않는 상황입니다.

바쁘시겠지만 중요한 기능 중 한 부분이라서, 확인 한 번 부탁드리겠습니다.
@dohyung

안녕하세요, 공유드리는 문서 참고하셔서 유저로부터의 알림동의문의 동의를 받으셔야 합니다 :bow:

기존 알림동의문 없이 발송되던 기능성 푸시 메시지도 일괄 검토해서, 알림동의문이 필요한 푸시메시지들에 대해 별도 가이드 드릴 예정이니 미리 참고 부탁드립니다.

알림동의문이 필요한 푸시메시지라고 답변 주셨는데

알림 동의문이 필요 없는 푸시 메시지들은 어떤것들인가요 ?

서비스 종료/약관 변경 고지/결제 실패/배송 완료 등 반드시 고지가 필요한 즉, 서비스 이용에 영향을 미치는 경우들이 해당할 수 있습니다.

정책적으로 좀 더 궁금하신 부분이 있다면 채널톡으로 문의 부탁드려요.