flutter 앱에 admob 배너광고를 달고 몇일이 지나니 상단에 이런 메시지가 뜹니다.
일부 앱이 Apple의 SKAdNetwork를 사용하도록 구성되지 않았습니다.
앱 설치와 같은 모든 광고 활동을 인정받으려면 Google의 네트워크 ID로 SKAdNetwork를 구성해야합니다.
이 경고가 발생한 후 벌써 한달이 지난시점에 작성해보는 글입니다.. ATT를 도대체가 정말 해야하는건지 싶어서 고민하는데 한달이 걸렸네요. 어떤 블로그를 보아도 명확하게 '추적 허용메시지 안달면 안되요!!' 라는 분들이 없어서 그냥 한달동안 게시만 했는데 올린 앱을 받는 사람이 많이 없기도 해서 그런지 수익도 안나고 광고도 애드센스답지 못하게 다채롭지 못한것을 발견했습니다.
여기서 다채롭지 못하다는건 너무 하나의 광고배너만 출력되는겁니다. 안드로이드로 출시한 admob 광고 송출을 하고있는 제 앱은 게임분야도 나오고, 제가 들어갔던 쇼핑몰 품목들도 뜨고 그랬거든요.
그래서 결심했습니다. SKAdNetwork 구성을 해야겠다.
ios14 이상부터 사용자의 패턴 추적을 위한 앱 추적 투명성 프레임워크를 달아야 수익손실을 막을 수 있다고 합니다.
첫번째 (필수)
구글 개발자 애드몹사이트에 있는 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 공식사이트에서 버전을 확인하세요.
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로 바꿉니다.
이 글을 작성하기까지 참고했던 사이트와 이미지 입니다.
구글 개발자 공식사이트
'App Dev > Flutter' 카테고리의 다른 글
[Flutter] 'Flutter/Flutter.h' file not found 오류 그만뜨게하기... (2) | 2022.12.16 |
---|---|
[flutter] ventura 업데이트 후 하위 sdk(MacOSX12.3sdk) 추가하기 (0) | 2022.11.25 |
[Flutter] appbar의 두가지 디자인 (+플러터 앱바 소스코드) (0) | 2022.09.10 |
[flutter] IOS reject 사유(Guideline 2.3.10 - Performance - Accurate Metadata) (0) | 2022.08.20 |
[Flutter] iOS Observatory not discovered after 30 seconds 오류 해결하기(iPhone is busy) (0) | 2022.08.09 |
댓글