iOS 광고 정책의 대변화. 뭐가, 어떻게 바뀌는 것인가?

iOS 14에서 사용자 정보 이용 정책 변화는 세가지의 큰 틀로 이루어져 있습니다.

  1. AppTrackingTransparency Framework: 사용자에게 IDFA 취득/사용을 승인받는 새로운 프로세스 도입
  2. SKAdNetwork: 앱 설치의 출처 (+광고 성과 측정)를 확인하는 새로운 시스템 도입
  3. 사용자 개인 정보 취득/사용 정책의 변화

아래에서 위 세가지 변화에 대해서 상세히 알아보도록 하겠습니다.


1. AppTrackingTransparency (ATT) 프레임워크의 도입을 통해서 IDFA 취득/사용을 사용자에게 승인받는 절차가 완전히 달라집니다.

마케터에게는 아주 불리한 변화.

ATT 프레임워크 설명

ATT는 사용자에게 ‘사용자의 IDFA를 취득하고 이를 광고 노출의 목적으로 사용해도 되는지 동의’를 얻는 프로세스를 말합니다. iOS 14 부터는 모든 앱은 아래 화면과 같은 창을 띄어서 사용자에게 IDFA 취득 동의를 받아야 합니다.

ATT 팝업창 예시

광고 대상 앱 그리고 광고 매체 역할을 하는 앱 이 두곳에서 모두 사용자 동의를 얻어야 IDFA를 사용할 수 있습니다. 예를 들어,

  • 광고 대상 A앱은 123라는 사용자의 ATT 동의를 받았지만 광고 매체 역할을 하는 B앱은 123라는 사용자의 ATT 동의를 받지 못했다면, 앱 A는 IDFA 값을 가지고 있을 수 있지만 앱 B에서 노출하는 광고에 IDFA값을 사용하여서 광고 성과 추적, 타게팅 등을 할 수 없습니다.

iOS 14 이전에도, Limit App Tracking (LAT)라는 기능을 통해서 사용자는 IDFA 취득 및 사용에 대해서 승락/거부할 수 있었습니다. LAT와 새롭게 도입되는 ATT의 차이는

  • LAT는 디폴트값이 IDFA 수집/사용 ‘가능’이였고 ATT는 디폴트값이 IDFA 수집/사용 ‘불가’.
  • LAT 활성/비활성화는 일반 사용자들이 접근이 어려웠으나 ATT는 각 앱별로 앱 내에서 팝업 형식으로 사용자에게 설정이 노출됨.
기존 LAT 설정창 (출처: http://allaboutdnt.com/type/mobile/)
  • LAT 설정은, 한번의 설정을 통해서 모든 앱에서의 설정을 관리하였음. 즉, LAT를 비활성화 해놓은 기기는 설치되어있는 모든 앱이 IDFA를 취득하고 활용할 수 있었음. 반대로 ATT에서는 앱 별로 사용자가 설정을 하는 구조.

ATT에서는 디폴트값이 IDFA 수집/사용 ‘불가’이란 점 그리고 각 앱별로 사용자의 동의를 얻어야한다는 높은 장벽을 넘어야 IDFA 수집/사용이 가능하기에 전체 사용자의 20% 이하만을 대상으로 IDFA를 취득하고 광고를 위한 성과 추적이 가능할것으로 예상됩니다.

ATT 프레임워크 기술적 설명

앱은 iOS에서 제공하는 ‘requestTrackingAuthorization’이라는 기능을 앱 개발사가 원하는 시점에 실행하여서 ATT 승인/비승인 선택 창을 사용자에게 띄울 수 있습니다.

  • 해당 승인/비승인 창을 띄우는것은 신규, 혹은 재설치 이후 단 1번만 가능하고 이 설정은 지속됨 (즉, 비승인 한 경우에라도 다시 이 창을 띄어서 사용자 동의를 다시 요청할 수 없음)
  • ATT 동의를 얻기 전까지는, IDFA 수집 자체가 불가능함 (OS 레벨에서 제한함)

ATT 프레임워크를 UI/UX에 맞추어서 어떻게 구축할지에 대한 논의할지는, 다음 글에서 논의하도록 하겠습니다.

ATT 프레임워크 도입이 마케팅에 미치는 영향

ATT 프레임워크 도입이 마케팅 효율 그리고 확정성에는 악영향을 미칠 수 밖에 없습니다. 승인 절차의 허들이 매우 높을것으로 예상되기 때문에 대부분의 iOS 사용자들의 IDFA값은 수집하거나 사용할 수 없을것으로 예상됩니다. 큰 광고 성과의 하락, 광고 도달을 하락, 광고 수익화의 하락, 광고 성과 집계 정확도의 하락으로 이어질것으로 생각됩니다.

구체적으로 어떤 영향을 미칠지에는 다음 글에서 논의하도록 하겠습니다.


2. SKAdNetwork (SKAN) 시스템의 도입을 통해서 광고 성과를 측정하는 방식이 완전히 달라집니다.

지난 수년간의 퍼포먼스 마케팅 기술의 발전이 퇴행합니다…

SKAN 설명

SKAN은 광고 성과 부여 (Attribution)를 애플이 직접 해주는 시스템입니다. 즉, 어트리뷰션을 MMP가 아닌 애플이 진행하게 됩니다.

위에서 설명한 ATT 구조상, 앞으로는 광고 성과를 추적할 수 있는 사용자 비율이 매우 낮을것으로 예상됩니다 (MMP가 광고 성과 추적을 할 수 있는 식별값이 없어지기에). IDFA 없이 어트리뷰션을 가능하게 만들기 위해 애플에서는 SKAN 시스템을 도입하였습니다.

MMP의 어트리뷰션 대비해서 SKAN에서의 어트리뷰션은 치명적인 제약 사항이 있습니다:

  • SKAN에서는, 단 1개의 Post-install event만 추적 가능 (i.e. 1개 초과분에 대해서는 추적을 못하기에 명확한 ROAS 등 계산은 현실적으로 불가능함)
  • Post-install event의 경우, 앱 설치 이후 24시간 이내에 발생한 Event만 추적 가능 (추가 설명은 아래 기술적 설명에서 다룰 예정)
  • 인스톨/이벤트에 대한 Postback 전달은 실시간이 아니며 최소 25시간이 걸림
  • 사용자 1명당 성과를 알 수 없고, 캠페인 레벨에서 합산된 (Aggregate) 성과만 알 수 있음
  • SKAN은 최대 100개의 ‘캠페인’만 지원하기때문에 캠페인 세분화가 제한적임
  • Impression 기반 View-through attribution 지원하지 않음
  • Attribution window는 뭔지, Last click basis로 하는것인지 등 어트리뷰션 방법에 대한 명확한 공개되지 않았음 (아마도 Last click으로 진행하는것으로 보임)
  • Reengagement (이미 앱이 설치되어 있는 상황) 캠페인 성과 측정 불가

이런 제약사항 때문에, SKAN은 마케팅 성과에 대한 많은 인사이트를 주지 못하는 시스템입니다.

ATT 동의를 얻었기에 MMP에서 어트리뷰션을 할 수 있는 상황에서도 병렬로 SKAN을 사용할 수 있습니다.

SKAN 기술적 설명 Part 1 – 작동 프로세스

SKAN 작동 플로우 (출처: Apple)

위 표를 보면서 SKAN 작동방식을 설명하겠습니다.

  1. 광고 매체 역할을 하는 앱 (앱 A)이 실행됩니다.
  2. Ad Network는, 유니크한 ID값이 포함된 앱 B에 대한 광고를 앱 A에 전달하고 앱 A는 이를 노출합니다.
  3. 사용자는 광고를 터치합니다.
  4. 사용자는 앱 B의 앱스토어로 보내집니다.
  5. 사용자가 앱 B를 설치하고 실행합니다.
  6. 설치된 앱 B는 ‘registerAppForAdnetworkAttribution()’이라는 기능을 실행합니다. 이 기능을 통해서 기기 내에서 어트리뷰션 작업이 시작됩니다.
  7. 스탭 6이 이루어 지고 나면 앱 B에서는 최소 25시간 지속되는 타이머가 시작됩니다. (이 타이머는 연장될 수 있습니다. 타이머에 대한 상세 설명은 아래에서.) 앱 B는 이 기간동안 Post-install Event가 발생하길 기다립니다. Post-install Event가 발생하면 ‘updateConversionValue(_:)’라는 기능을 실행하고 Post-install Event를 기록합니다.
  8. 위 타이머가 만료되면 앱 B는 해당 인스톨을 만들어 냈다고 인식된 Ad Network에게 인스톨 포스트백 (여기에는 Post-install Event 데이터와 해당 앱 인스톨이 신규인지 재설치인지의 대한 정보가 포함)을 전달합니다. 이게 처음이자 마지막 포스트백입니다.
    • 이 포스트백에는 해당 인스톨/Post-install Event에 대한 시간 정보는 포함되지 않습니다

여기서 강조할것 한가지는, 해당 Postback은 Ad Network로 보내집니다. 즉, 해당 인스톨 이력은 MMP가 아닌, 애플도 아닌, Ad Network만이 알고 있습니다.

위에서 6번 (Conversion Value) 그리고 7번 (Conversion Timer) 기능이 작동하는 방식이 SKAN 환경에서 광고 최적화 방법론에 가장 핵심이기 때문에 아래에 추가적으로 설명하겠습니다.

SKAN 기술적 설명 Part 2 – Conversion Value 세부 설명

Conversion Value는, Post-install Event (인스톨 이후 행동)을 말합니다. 앱 인스톨이 발생하고 난 이후 인스톨 외에 더 추적하길 원하는 사용자의 행동을 집계하는 값입니다. SKAN의 Conversion Value는 기존 MMP 제공 어트리뷰션 시스템에서의 Post-install Event 개념과 동일하지만 작동하는 방법은 다릅니다.

  • Conversion Value 저장 방법
    • 기존 MMP 제공 어트리뷰션 시스템에서는 Post-install Event를 바이너리한 값 (예: 회원가입 완료는 1, 미완료는 0)으로 저장하거나 실제 값 (예: 구매 금액이 10,000원이라면 10,000)으로 저장하였습니다.
    • 하지만 SKAN에서 Conversion Value는, ‘6 bit’ 값으로 저장됩니다. 즉, 000000, 000001, 000010, 000011 이런 식으로 6 bit 값이 가질 수 있는 총 64개 조합 중 (6 bit 값은 총 6자리 숫자이고, 각 자리는 0 혹은 1의 값을 가질 수 있기에 2 x 2 x 2 x 2 x 2 x 2 = 64개의 조합이 가능합니다) 하나로 저장됩니다.
    • 이 구조에서는, 예를 들어 사용자가 50,000원의 구매를 발생시켰고 이 값을 추적하려면 50,000 이라는 값을 직접 넣을 수 없습니다. 따라서, 50,000를 6 bit 값으로 변경해서 기록해야 합니다.
    • 이 6 bit 값을 잘 활용하는것이 SKAN 기반의 광고 최적화에서는 크리티컬할것이고 어떻게 사용할지에 대한 고민은 추후 Part 4에서 다루어보도록 하겠습니다.
  • Conversion Value의 제약
    • SKAN에서는 단 1개의 Conversion Value만 추적 가능합니다. 이 값은 업데이트 될 수는 있지만 Postback을 통해서는 최종 1개의 이력에 대해서만 전달받습니다.
    • 예를 들어, 사용자가 총 3번의 구매를 하였고 순서대로 5,000원, 10,000원, 8,000원을 구매하였다고 가정해보겠습니다. 이런 경우, Conversion Value값이 5,000 → 10,000 → 8,000 (앞에 서술하였듯이 이 값은 6 bit 으로 전환되어서 저장)로 업데이트 될 수 있습니다만 결국은 1개의 값만 가지고 있을 수 있습니다.

위에 보시다싶히, Conversion Value를 구성하는것에는 다양한 전략들이 나올 수 있고 몇가지 전략들을 Part 4에서 알아보도록 하겠습니다.

SKAN 기술적 설명 Part 3 – Conversion Timer 세부 설명

‘컨버전 타이머’, ‘포스트백 타이머’는 리메이크에서 임의로 이름을 지어서 사용하는것이며 애플의 공식 표현은 아님

SKAN에서는 기존 MMP SDK들의 방식과는 다르게 인스톨 혹은 앱내 행동이 발생하자마자 포스트백을 송출하지 않고 Conversion Timer라는 기능을 통해 시간을 두고 포스트백을 발송합니다. 그리고 이 시간은 2개의 타이머에 의해서 정해집니다.

  • 타이머 1 ‘컨버전 타이머’: 앱 인스톨이 되고 최초 실행이 되고 나면 (‘registerAppForAdnetworkAttribution()’ 실행 시점), 24시간의 타이머가 시작됩니다.
    • 만약 24시간 경과 전에 Conversion Value가 업데이트 되면 이 타이머는 다시 24시간으로 리셋됩니다.
    • 6 bit으로 표현된 Conversion Value 값이 ‘상승’ 할때만 타이머가 리셋 됩니다. 즉, 기존 값이 001000이라면, 001000보다 ‘큰’ 값 (001001, 001100 등)이 업데이트 될때만 리셋됩니다.
    • 6 bit value가 ‘커질때’만 리셋이 되기에 이론상으로 최대 63번 리셋을 반복할 수 있습니다. 6 bit value는 총 64개의 조합을 가질 수 있으니 최초 000000에서 시작하여서 111111까지 업데이트는 63번 가능하기 때문입니다.
  • 타이머 2 ‘포스트백 타이머’: 타이머 1이 끝나고 나면, 랜덤하게 1~24시간 시간을 가진 또 하나의 타이머가 생성되고 이 타이머 마저도 끝난다면 포스트백을 매체에 전달합니다. (포스트백 타이머 기간에 발생한 Conversion Value는 무시됩니다.)

왜 이런 랜덤한 타이머 기능을 추가했을까 고민했을때, 포스트백 발생 시간을 난해하게 하여서 사용자 데이터를 맵핑하지 못하게 하려는 취지인것 같습니다.

‘컨버전 타이머’가 최대치인 63번 리셋된다고 가정하고, ‘포스트백 타이머’가 최고치인 24시간으로 발생한다면 인스톨 발생 후 65일 이후에 포스트백을 받게되는 상황이 생길 수도 있는 구조입니다.

SKAN 시스템 도입이 마케팅에 미치는 영향

SKAN 시스템은 심각한 제약들을 담고 있기 때문에 마케팅 효율 그리고 확정성에는 악영향을 미칠 수 밖에 없습니다. 아직 불확실성이 있으나, SKAN 시스템에 의존하는 퍼포먼스 마케팅은 지금까지 Adtech 업계가 만들어온 Progress를 모두 버리고 엄청난 패널티를 가진 상태로 진행되어야 할것으로 보입니다. 큰 광고 성과의 하락, 광고 도달 하락, 광고 수익화의 하락, 광고 성과 집계 정확도의 하락으로 이어질것으로 생각됩니다.

구체적으로 어떤 영향을 미칠지에는 다음 글에서 논의하도록 하겠습니다.


3. 사용자 개인 정보 취득/사용 정책이 개정되었습니다.

애플은 ‘광고 목적으로 데이터 취득/사용’의 전반적인 정책 개정도 이번 iOS 14 릴리즈와 함께 시행하였습니다. 몇가지 키 포인트들을 정리해봤습니다 (원문).

  • “추적이란 맞춤형 광고 또는 광고 측정 목적으로 앱에서 수집된 사용자 또는 기기 데이터와 다른 회사의 앱, 웹사이트 또는 오프라인 속성에서 수집된 사용자 또는 기기 데이터를 연결하는 행위”
    • 애플은 ‘광고 타겟팅’ 뿐만아니라 ‘성과 측정’도 사용자의 추적의 범위에 포함된다고 말하고 있습니다.
  • “이메일, 광고 ID 또는 기타 ID 목록을 타사 광고 네트워크와 공유하고 해당 정보를 다른 개발자의 앱에서 해당 사용자를 다시 대상으로 삼거나 유사 사용자를 찾는 데 사용하는 경우.”
    • ‘Look-a-like’ 생성도 제약을 걸었습니다.
  • “광고를 맞춤화하거나 광고 효율성을 측정하기 위해 앱의 사용자 데이터와 다른 개발자의 앱 사용자 데이터를 결합하는 타사 SDK를 앱에 배치하는 경우”
    • 이 조항은 번역이 어색해서 영어 원문을 읽으시는게 더 명확합니다.
    • MMP에 대해서도 제약을 걸었습니다.
  • “앱의 사용자 또는 기기 데이터가 사용자 기기의 타사 데이터에만 연결되어 있고, 기기에서 사용자 또는 기기를 식별할 수 있는 방식으로 전송되지 않는 경우.”
    • 1)데이터가 사용자의 기기 밖으로 전송되지 않으면 추적에 범위에 포함되지 않음 2) 사용자의 데이터와, 제 3자의 데이터를 결합은 하지만 사용자나 기기를 식별하지 않으면 문제 없음.

ATT를 통한 사용자 동의 없이는, 기존에 퍼포먼스 마케팅에서 해왔던 데이터 분석, 가공, 활용 행동들의 거의 대부분을 할 수 없다고 봐야할 것 같습니다. 단 이 개정사항들은 해석의 여지가 남아있는것도 많고, 실제로 시행 가능할지 의문이 드는 사항들도 많습니다. 정책 실 적용 실행시점까지 지속적으로 지켜봐야 할것입니다.


리메이크 디지털 에이전시

“디지털 광고를 새롭게 만듭니다”

https://remakedigital.com

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s