본문 바로가기
App Dev/Flutter

[Flutter] 일부 앱이 Apple의 SKAdNetwork를 사용하도록 구성되지 않았습니다. ATT(App Tracking Transparency)문제 해결하기

by hyen_ 2022. 10. 12.
300x250

flutter 앱에 admob 배너광고를 달고 몇일이 지나니 상단에 이런 메시지가 뜹니다.

 

일부 앱이 Apple의 SKAdNetwork를 사용하도록 구성되지 않았습니다.

앱 설치와 같은 모든 광고 활동을 인정받으려면 Google의 네트워크 ID로 SKAdNetwork를 구성해야합니다.

 

이 경고가 발생한 후 벌써 한달이 지난시점에 작성해보는 글입니다.. ATT를 도대체가 정말 해야하는건지 싶어서 고민하는데 한달이 걸렸네요. 어떤 블로그를 보아도 명확하게 '추적 허용메시지 안달면 안되요!!' 라는 분들이 없어서 그냥 한달동안 게시만 했는데 올린 앱을 받는 사람이 많이 없기도 해서 그런지 수익도 안나고 광고도 애드센스답지 못하게 다채롭지 못한것을 발견했습니다.

여기서 다채롭지 못하다는건 너무 하나의 광고배너만 출력되는겁니다. 안드로이드로 출시한 admob 광고 송출을 하고있는 제 앱은 게임분야도 나오고, 제가 들어갔던 쇼핑몰 품목들도 뜨고 그랬거든요. 

 

그래서 결심했습니다. SKAdNetwork 구성을 해야겠다.

ios14 이상부터 사용자의 패턴 추적을 위한 앱 추적 투명성 프레임워크를 달아야 수익손실을 막을 수 있다고 합니다.

 

첫번째 (필수)

 

iOS 14 이상에 대비하기  |  Google Developers

iOS 14 이상에 대비하기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 이 가이드에서는 iOS 14에 맞게 앱을 준비하기 위해 변경해야 할 사항을 설명합니다. 핵

developers.google.com

구글 개발자 애드몹사이트에 있는 SKAdNetworkItems 소스들을 복사합니다. (key, array태그 모두)

 

<key>SKAdNetworkItems</key>
      <array>
        <dict>
          <key>SKAdNetworkIdentifier</key>
          <string>cstr6suwn9.skadnetwork</string>
        </dict>
        <dict>
          <key>SKAdNetworkIdentifier</key>
          <string>4fzdc2evr5.skadnetwork</string>
        </dict>
        <dict>
          <key>SKAdNetworkIdentifier</key>
          <string>2fnua5tdw4.skadnetwork</string>
        </dict>
        <dict>
          <key>SKAdNetworkIdentifier</key>
          <string>ydx93a7ass.skadnetwork</string>
        </dict>
        <dict>
          <key>SKAdNetworkIdentifier</key>
          <string>5a6flpkh64.skadnetwork</string>
        </dict>
        <dict>
          <key>SKAdNetworkIdentifier</key>
          <string>p78axxw29g.skadnetwork</string>
        </dict>
        <dict>
          <key>SKAdNetworkIdentifier</key>
          <string>v72qych5uu.skadnetwork</string>
        </dict>
        <dict>
          <key>SKAdNetworkIdentifier</key>
          <string>c6k4g5qg8m.skadnetwork</string>
        </dict>
        <dict>
          <key>SKAdNetworkIdentifier</key>
          <string>s39g8k73mm.skadnetwork</string>
        </dict>
        <dict>
          <key>SKAdNetworkIdentifier</key>
          <string>3qy4746246.skadnetwork</string>
        </dict>
        <dict>
          <key>SKAdNetworkIdentifier</key>
          <string>3sh42y64q3.skadnetwork</string>
        </dict>
        <dict>
          <key>SKAdNetworkIdentifier</key>
          <string>f38h382jlk.skadnetwork</string>
        </dict>
        <dict>
          <key>SKAdNetworkIdentifier</key>
          <string>hs6bdukanm.skadnetwork</string>
        </dict>
        <dict>
          <key>SKAdNetworkIdentifier</key>
          <string>prcb7njmu6.skadnetwork</string>
        </dict>
        <dict>
          <key>SKAdNetworkIdentifier</key>
          <string>v4nxqhlyqp.skadnetwork</string>
        </dict>
        <dict>
          <key>SKAdNetworkIdentifier</key>
          <string>wzmmz9fp6w.skadnetwork</string>
        </dict>
        <dict>
          <key>SKAdNetworkIdentifier</key>
          <string>yclnxrl5pm.skadnetwork</string>
        </dict>
        <dict>
          <key>SKAdNetworkIdentifier</key>
          <string>t38b2kh725.skadnetwork</string>
        </dict>
        <dict>
          <key>SKAdNetworkIdentifier</key>
          <string>7ug5zh24hu.skadnetwork</string>
        </dict>
        <dict>
          <key>SKAdNetworkIdentifier</key>
          <string>9rd848q2bz.skadnetwork</string>
        </dict>
        <dict>
          <key>SKAdNetworkIdentifier</key>
          <string>n6fk4nfna4.skadnetwork</string>
        </dict>
        <dict>
          <key>SKAdNetworkIdentifier</key>
          <string>kbd757ywx3.skadnetwork</string>
        </dict>
        <dict>
          <key>SKAdNetworkIdentifier</key>
          <string>9t245vhmpl.skadnetwork</string>
        </dict>
        <dict>
          <key>SKAdNetworkIdentifier</key>
          <string>4468km3ulz.skadnetwork</string>
        </dict>
        <dict>
          <key>SKAdNetworkIdentifier</key>
          <string>2u9pt9hc89.skadnetwork</string>
        </dict>
        <dict>
          <key>SKAdNetworkIdentifier</key>
          <string>8s468mfl3y.skadnetwork</string>
        </dict>
        <dict>
          <key>SKAdNetworkIdentifier</key>
          <string>av6w8kgt66.skadnetwork</string>
        </dict>
        <dict>
          <key>SKAdNetworkIdentifier</key>
          <string>klf5c3l5u5.skadnetwork</string>
        </dict>
        <dict>
          <key>SKAdNetworkIdentifier</key>
          <string>ppxm28t8ap.skadnetwork</string>
        </dict>
        <dict>
          <key>SKAdNetworkIdentifier</key>
          <string>424m5254lk.skadnetwork</string>
        </dict>
        <dict>
          <key>SKAdNetworkIdentifier</key>
          <string>uw77j35x4d.skadnetwork</string>
        </dict>
        <dict>
          <key>SKAdNetworkIdentifier</key>
          <string>578prtvx9j.skadnetwork</string>
        </dict>
        <dict>
          <key>SKAdNetworkIdentifier</key>
          <string>4dzt52r2t5.skadnetwork</string>
        </dict>
        <dict>
          <key>SKAdNetworkIdentifier</key>
          <string>e5fvkxwrpn.skadnetwork</string>
        </dict>
        <dict>
          <key>SKAdNetworkIdentifier</key>
          <string>8c4e2ghe7u.skadnetwork</string>
        </dict>
        <dict>
          <key>SKAdNetworkIdentifier</key>
          <string>zq492l623r.skadnetwork</string>
        </dict>
        <dict>
          <key>SKAdNetworkIdentifier</key>
          <string>3qcr597p9d.skadnetwork</string>
        </dict>
      </array>

복사한 이 코드를 

ios > Runner > Info.plist 파일을 열어서  <dict>태그 안에 복사한것을 넣었습니다.

 

 

 

두번째 (필수)

flutter에는 app_tracking_transparency 패키지를 제공합니다.

저는 직접 pubspec.yaml 파일에  pub get을 하는방식으로 진행했습니다.

 

이 글을 보시는 때와 버전이 다를수도 있으니 Flutter 공식사이트에서 버전을 확인하세요.

 

app_tracking_transparency | Flutter Package

This Flutter plugin allows you to display ios tracking authorization dialogue and request permission to collect data.

pub.dev

2022-10-12 기준으로는 앱추적메시지만 띄우려면

pubspec.yaml 파일로 들어가서 dependecies 아래에 코드를 추가합니다.

app_tracking_transparency: ^2.0.2+4

 

경우1) 나는 앱추적 동의 팝업 메시지만 나오게 하고싶다.

dart파일에 아래 코드를 작성하세요.

 

경우2) 앱추적 동의 메시지가 뜨기전에 안내 다이얼로그를 추가하고싶다.

Flutter 패키지 공식사이트에서 제공하는 아래 코드를 넣으면 됩니다.

다이얼로그 추가하고 (안내문같은) > 앱추적동의 요청메시지 뜨는 순서로 하려면

 

 

세번째 (필수)

 <key>NSUserTrackingUsageDescription</key>
 <string>여기는 사용자에게 설명하는 문구작성하는 자리입니다</string>

여기서 좀 중요하다고 생각하는데,

<string>태그 안에는 이 앱을 추적하는 이유를 사용자에게 친절하게 설명하는 글을 작성하는게 좋습니다.

이 문구는 제가 아래 처럼 노란색으로 칠해놓은 부분에 들어갈 말이기 때문입니다.

가급적 이 말로 하여금 사용자들이 앱에 추적 금지 요청 을 누르지 않게끔 하는게 중요합니다. 이 앱을 만든 사람에게는 더 나은 앱을 제작하기위한 중요한 데이터 수집이 되기 때문이지요.(광고수익이 될 수도 있고, 사용자 패턴분석을 기반으로한 앱데이터 수집일수도 있습니다.)

 

네번째 (선택)

저는 만일의 상황을 대비해 프레임워크까지 직접 추가해보았습니다.

빌드 중인지 어느때에 오류메시지가 떴었는데, 이를 해결하는 방법을 찾다보니 아래와같이 프레임워크 추가방법이 나와서 해본 방법이니 꼭 따라하지 않고도 추적메시지가 올바르게 뜬다면 네번째 방법은 하지 않으셔도 됩니다

 

순서1

ios 폴더에 오른쪽마우스를 누르고 >  Flutter > Open iOS module in Xcode 를 눌러 xcode를 켭니다.

TARGETS > General > Frameworks, Libraries,and Embedded Content > + 버튼클릭해서

apptra 만 검색해도 나옵니다!

AppTrackingTransparency.framework 를 추가합니다. 만약, 이것이 되어있으신 분들은 넘어가셔도 됩니다!

 

 

순서2

TARGETS > Build Phases > Link Binary With Libraries 

> AppTrackingTransparency.framework 에 Required 를 Optional로 바꿉니다.

 

 


이 글을 작성하기까지 참고했던 사이트와 이미지 입니다.

 

 

구글 개발자 공식사이트

 

iOS 14 이상에 대비하기  |  Google Developers

iOS 14 이상에 대비하기 알림 이 페이지를 개발자 프로필에 저장하여 중요 업데이트에 대한 알림을 받으세요. 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

developers.google.com

 

 

 

일부 앱이 Apple의 SKAdNetwork를 사용하도록 구성되지 않았습니다 앱 설치와 같은 모든 광고 활동을

Admob 은 사용자를 패턴을 추적하여 좋은 광고를 제공하기 위해 사용자의 정보를 수집하고 있습니다. 하지만 IOS 14 버전 이상 부터는 사용자의 패턴을 추적하기 위해서는 사용자의 허락을 받는 절

storm2044.tistory.com

 

SKAdNetwork의 정의와 모바일 마케팅에 미치는 영향 - 벙글코리아

애플은 수년간 개인 정보 보호 중심의 모바일 광고 환경으로의 전반적인 전환을 꾸준히 준비해왔습니다. i...

blog.naver.com

 

 

애드브릭스, iOS 14 업데이트 주요사항

Apple은 iOS 14.5 버전부터 AppTrackingTransparency를 강제하기로 발표했습니다. [보도자료] 애플은 WWDC 2020에서 iOS14를 공개하면서 이전보다 강화된 사용자 데이터 보호정책 실행을 예고하였습니다. 구체

www.igaworksblog.com

 

 

Flutter Tip - AppTrackingTransparency 추적 허용 dialog 띄우기

Flutter로 열심히 개발한 어플에 광고수익을 내기 위해서는 보통 Admob 또는 다른 광고플랫폼을 개발한 어플에 붙인 뒤 출시를 하게 됩니다. 이러한 여러 광고플랫폼들은 최근 사용자가 스마트폰의

coicoitech.tistory.com

 

300x250
반응형

댓글