Admob 은 사용자를 패턴을 추적하여 좋은 광고를 제공하기 위해 사용자의 정보를 수집하고 있습니다.

 

하지만 IOS 14 버전 이상 부터는 사용자의 패턴을 추적하기 위해서는 사용자의 허락을 받는 절차가 추가되어

일부 앱이 Apple의 

Admob 을 사용하기 위해서는 SKAdNetwork 를 설정하셔야 합니다.

 

 

 

프로젝트를 선택하여 xcode 에 진입합니다.

 

info.plist 를 선택합니다.

 

 

 

 

Information Property List 에서 + 버튼을 누른후 아래와 같이 구성합니다.

<key>SKAdNetworkItems</key>
  <array>
    <dict>
      <key>SKAdNetworkIdentifier</key>
      <string>cstr6suwn9.skadnetwork</string>
    </dict>
  </array>

 

 

 

 

 

 

위의 작업을 모두 완료하시면 첫번째 작업은 완료되었습니다.

 

이제 앱 추적 승인 요청을 작업하겠습니다.

 

 

Information Property List 에서 + 버튼을 누른후 아래와 같이 구성합니다.

<key>NSUserTrackingUsageDescription</key>
<string>This identifier will be used to deliver personalized ads to you.</string>

 

이제 AppDelegate.swift 파일로 이동합니다.

 

 

어플리케이션이 시작하는 시점에 광고 추적여부를 확인하는 팝업을 띄우는 코드를 넣습니다.

import AppTrackingTransparency
import AdSupport

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?


    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
	requestIDFA()
        return true
    }
    
    func requestIDFA() {
      ATTrackingManager.requestTrackingAuthorization(completionHandler: { status in
        // Tracking authorization completed. Start loading ads here.
        // loadAd()
      })
    }
}

 

 

이제 어플리케이션이 시작하는 시점에 광고를 추적할수있도록 할건지 여부에 대한 팝업을 띄우실수있습니다.

 

 

 

 

App Store Connect 에서 개인정보 섹션이 업데이트 되었습니다.

 

Admob 만을 사용하는 사용자는 아래 내용을 따라 하시면 됩니다.

 

본인의 어플리케이션에서 사용자의 정보를 다루거나 다른 광고 플렛폼을 사용하신다면 그에 맞게 추가적으로 작성하셔야 합니다.

 

 

이제 전과 같이 어플리케이션을 업데이트 하면 아래와 같은 오류를 만나실수있습니다.

 


Unable to Submit for ReviewThe items below are required to start the review process:
  • Before you can submit this app for review, an Admin must provide information about the app’s privacy practices in the App Privacy section. Learn More
  • Your app contains NSUserTrackingUsageDescription, indicating that it may request permission to track users. To submit for review, update your App Privacy response to indicate that data collected from this app will be used for tracking purposes, or update your app binary and upload a new build. Learn More

 

2020년 12월 8일부터  App Store Connect 에서 개인정보 보호 섹션을 작성하여야 합니다.

 

App Store Connect 으로 이동하셔서 업데이트할 어플리케이션을 선택합니다.

 

 

App Privacy 로 이동합니다.

 

 

Get Started 를 클릭합니다.

 

 

귀하 또는 제 3자가 데이터를 수집하는지 여부를 물어보는 질문이며, 애드몹에서는 데이터를 수집하기때문에

 

  • Yes, we collect data format this app 

를 선택 하시면 됩니다.

 

 

 

이제 어떤 사용자 데이터를 사용하는지 선택하시면 됩니다.

 

Admob 에서는 다음과 같은 데이터를 사용합니다.

  • 기기의 일반적인 위치를 예상하는 데 사용될 수 있는 IP 주소
  • 문제를 진단하고 SDK를 개선하는 데 사용될 수 있는 비사용자 관련 비정상 종료 로그. 진단 정보는 광고 및 분석을 목적으로도 사용될 수 있습니다.
  • 사용자 행동을 평가하고, 기존 제품 기능의 효과를 파악하고, 새 기능을 계획하는 데 사용될 수 있는 사용자 관련 실적 데이터(예: 앱 실행 시간, 응답 실패율, 에너지 사용량). 광고를 표시하는 다른 항목과 공유하는 등 광고를 표시하는 데 실적 데이터가 사용될 수 있습니다.
  • 제3자 광고 및 분석을 목적으로 사용될 수 있는 기기 ID(예: 기기의 광고 식별자 또는 기타 앱 한정 기기 식별자
  • 사용자에게 게재된 광고 등의 광고 데이터는 분석 및 광고 기능을 강화하는 데 사용될 수 있습니다.
  • 기타 사용자 제품 상호작용(예: 앱 실행 탭)과 상호작용 정보(예: 동영상 조회수)가 광고 실적을 개선하기 위해 사용될 수 있습니다.

 

 

위와 같은 추가 데이터를 선택하줍니다.

 

  • 기기의 일반적인 위치를 예상하는 데 사용될 수 있는 IP 주소

 

 

 

  • 제3자 광고 및 분석을 목적으로 사용될 수 있는 기기 ID(예: 기기의 광고 식별자 또는 기타 앱 한정 기기 식별자

 

 

  • 사용자에게 게재된 광고 등의 광고 데이터는 분석 및 광고 기능을 강화하는 데 사용될 수 있습니다.
  • 기타 사용자 제품 상호작용(예: 앱 실행 탭)과 상호작용 정보(예: 동영상 조회수)가 광고 실적을 개선하기 위해 사용될 수 있습니다.

 

 

  • 문제를 진단하고 SDK를 개선하는 데 사용될 수 있는 비사용자 관련 비정상 종료 로그. 진단 정보는 광고 및 분석을 목적으로도 사용될 수 있습니다.

 

 

 

이제 모든 내용을 저장합니다.

 

Set up Coarse Location 을 클릭하여 상세 내용을 추가하여줍니다.

 

 

Third-Party Advertising, Analytics 를 선택 Next 를 클릭하고,

 

사용자 연결과 추적 모두 Yes 를 선택하여줍니다.

Coarse Location

Third-Party Advertising, Analytics

 

Is the coarse location data collected from this app linked to the user’s identity?

Yes, coarse location data collected from this app is linked to the user’s identity

 

Do you or your third-party partners use coarse location data for tracking purposes?

Yes, we use coarse location data for tracking purposes

 

 

동일한 방법으로 나머지도 작성하여 줍니다.

 

Identifiers

Third-Party Advertising, Analytics

 

Is the coarse location data collected from this app linked to the user’s identity?

Yes, coarse location data collected from this app is linked to the user’s identity

 

Do you or your third-party partners use coarse location data for tracking purposes?

Yes, we use coarse location data for tracking purposes

 

Product Interaction

Third-Party Advertising, Analytics

 

Is the coarse location data collected from this app linked to the user’s identity?

Yes, coarse location data collected from this app is linked to the user’s identity

 

Do you or your third-party partners use coarse location data for tracking purposes?

Yes, we use coarse location data for tracking purposes

 

 

Advertising Data

 

Third-Party Advertising, Analytics

 

Is the coarse location data collected from this app linked to the user’s identity?

Yes, coarse location data collected from this app is linked to the user’s identity

 

Do you or your third-party partners use coarse location data for tracking purposes?

Yes, we use coarse location data for tracking purposes

 

Crash Data

Third-Party Advertising, Analytics

 

Is the coarse location data collected from this app linked to the user’s identity?

Yes, coarse location data collected from this app is linked to the user’s identity

 

Do you or your third-party partners use coarse location data for tracking purposes?

Yes, we use coarse location data for tracking purposes

 

Performance Data

Third-Party Advertising, Analytics

 

Is the coarse location data collected from this app linked to the user’s identity?

Yes, coarse location data collected from this app is linked to the user’s identity

 

Do you or your third-party partners use coarse location data for tracking purposes?

Yes, we use coarse location data for tracking purposes

 

마지막으로 Publish 를 누르시면 모든 작업이 완료됩니다.

 

 

 

 

참고

levelup.gitconnected.com/filling-out-the-app-privacy-section-in-app-store-connect-for-admob-users-bca0768ad86e

 

Filling out the App Privacy Section in App Store Connect for AdMob Users

A step-by-step walkthrough of the new app App Privacy questionnaire for developers using the AdMob SDK

levelup.gitconnected.com

developers.google.com/admob/ios/data-disclosure?hl=ko

 

Apple의 App Store 데이터 공개사항 요건에 대비하기  |  iOS  |  Google Developers

Apple에서는 App Store에 앱을 게시하는 개발자가 앱의 데이터 사용과 관련하여 특정 정보를 공개하도록 하고 있습니다. Apple에서는 2020년 12월 8일부터 새로운 앱을 출시하고 앱을 업데이트할 때 이

developers.google.com

 

 파일을 정리하다 보니 파일 생성일과 수정일을 수정해야 할일이 생겼는데,

 

 찾다보니 생각보다 잘 안나와서 제가 했던 방법 공유합니다.

 

우선 두가지를 사용하는데요, "SetFile" 과 "touch" 입니다.

 

만약 "SetFile" 가 없으시다면 여기서 설치 방법을 확인 하실수있습니다.

 

사용방법은 매우 간단합니다.

 

우선 터미널을 열어주세요.

 

그리고 아래처럼 입력합니다.

 

SetFile -d "날짜" 경로
SetFile -d "11/20/2016 00:00:00" ./thumb.jpg

 

위처럼 사용하실수있습니다.

 

날짜를 "11/20/2016 00:00:00" 포멧에 맞춰서 바꿔주시면 되구요, 뒤에 경로를 쓰시면 됩니다.

 

만약 여러개를 변경 하고싶으시다면

 

SetFile -d "11/20/2016 00:00:00" ./*

이렇게 쓰시면 됩니다.

 

그리고 수정날짜는 이렇게 바꾸시면 됩니다.

 

touch -mt 200912150000 ./*

 

참 쉽죠잉~

 

이글은 알게된 정보를 기록한 것입니다.

 참쓰잘데기 없는 일이라고 생각할수도  있겠지만 해보고 싶어서 계속 탐구해봤습니다.

보는 와중에 이상하게 한글 정보는 없었네요. 그래서 블로그에도 남깁니다.


Android 에서 Matrix 클래스에는 좌표 변환을위한 3x3 행렬이 있습니다. 

행렬로 구성되어 비트맵을 회전하거나 스케일 조정등에도 쉽게 이용이 가능합니다.

하지만 Matrix 로 만들어진 정보를 다시 x, y 좌표의 Rectangle 정보로 가져오기 위한 방법입니다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
    private fun parseMatrix( matrix:Matrix, width:Int, height:Int ) : Array<PointF> {
        var values = FloatArray( 9 )
        matrix.getValues( values )
 
        var startPoint = PointF( values[2], values[5] )
        var rightTopPoint = PointF( width * values[0], width * values[3] )
        var bottomLeftPoint = PointF( height * values[1], height * values[4] )
        var bottomRightPoint = PointF( rightTopPoint.x + bottomLeftPoint.x, rightTopPoint.y + bottomLeftPoint.y)
 
        return arrayOf( startPoint
            , PointF( startPoint.x + rightTopPoint.x, startPoint.y + rightTopPoint.y )
            , PointF( startPoint.x + bottomLeftPoint.x, startPoint.y + bottomLeftPoint.y )
            , PointF( startPoint.x + bottomRightPoint.x, startPoint.y + bottomRightPoint.y ))
    }
cs


Matrix 의 배열값을 가져오면 위와같이 3x3 배열이 나옵니다.


| scaleX skewX transX | 
| skewY scaleY transY | 
| pers0 pers1 pers2 |

scaleXhorizontal scale factor
skewXhorizontal skew factor
transXhorizontal translation
skewYvertical skew factor
scaleYvertical scale factor
transYvertical translation
pers0input x-axis perspective factor
pers1input y-axis perspective factor
pers2perspective scale factor


  trans 는 좌표 정보를 담고있고, scale 은 배율 정보,  skew 는 기울기에 대한 정보를 담고있습니다.

 Matrix 의 왼쪽 상단의 좌표 정보를 알고싶다면 transX, TransY 정보를 보면 되고,

 Matrix 의 오른쪽 상단의 좌표 정보를 알고싶다면 scaleX, skewY 정보를

 Matrix 의 왼쪽 하단의 좌표 정보를 알고싶다면 skewX, scaleY 정보를 보면 됩니다.


결국 3x3 배열 안에서 기준으로 값이 정의 되기 때문에 만약 100x100 이미지의 경우 각각 그 크기만 큼을 곱해주면

원하는 값을 알수있게 됩니다.









 참고 사이트.

https://docs.microsoft.com/en-us/dotnet/api/skiasharp.skmatrix?view=skiasharp-1.68.0

https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/graphics/skiasharp/transforms/matrix

https://skia.org/user/api/SkMatrix_Reference




 개빌자 계약 4.8 항 위반으로 인하여 앱이 삭제된이후 놀라셨을 분들을 위해 대응 방안을 남깁니다.



 PIONE STUDIO 개발자님, 안녕하세요.

************************************* 을(를) 검토한 결과 정책 위반으로 Google Play에서 앱이 삭제되었습니다. 귀하의 앱은 정책을 따르는 업데이트를 제출할 때까지 사용자에게 제공되지 않습니다.

귀하의 앱은 Android 광고 ID 사용 및 개발자 배포 계약의 4.8 조항을 위반하였습니다.

귀하의 앱이 개인정보나 기기정보를 다룬다면 개발자님은 유효한 개인정보 보호정책을 제공해 주셔야 합니다. 앱이 개인정보 취급방침 요구사항의 적용을 받는 Android 광고 식별자를 수집하고 전송하는 것으로 확인되었습니다. 앱이 Android 광고 ID를 수집하는 경우 Play Console의 지정된 입력란과 앱 내에서 유효한 개인정보 취급방침을 기입해주시기 바랍니다.

귀하의 앱을 제출하여 검토를 받으려면 다음 단계를 따라주십시오.

  1. Android 광고 ID 사용정책개인정보이용정책과 개발자 배포계약을 참조하시고 앱을 수정해주시기 바랍니다. 귀하의 앱이 민감한 사용자 정보를 수집한다면 위 정책을 준수하고 앱의 스토어 목록 페이지 및 앱 내에 유효한 개인정보 취급방침 하이퍼링크를 기입해주시기 바랍니다.  
  2. 앱이 개발자 프로그램 정책을 준수하는지 확인해주시기 바랍니다. 추가 정책 위반이 있는 경우 앱이 단속될수 있습니다.
  3. Play Console에 로그인하여 앱을 업데이트해주시기 바랍니다.

또는 개발자님은 앱 내의 민감한 사용자 정보 수집기능을 삭제 하실 수 있습니다. 그럴 경우, 개인정보 취급방침을 제출하지 않아도 됩니다. 승인이 되면 귀하의 앱은 설치, 평점 및 리뷰가 유지된 상태로 앱을 다시 사용하실 수 있습니다.

정책을 검토한 후 귀하의 앱이 부당하게 삭제되었다고 판단되면  Google 정책 지원팀에 문의하시기 바랍니다. 영업일 기준 이틀이내에 연락드리겠습니다.

Google Play 사용자에게 명료한 정보를 제공하는데 도움을 주셔서 감사합니다.

Kris

Google Play 팀 올림


이라는 내용이 메일로 전달되어 부랴부랴 구글 검색에 들어가 확인보았습니다.


https://groups.google.com/forum/#!topic/adlib-network/Dfd7P2zTyn0


http://rinear.tistory.com/entry/PlayStore-%EC%A0%95%EC%B1%85%EC%9C%84%EB%B0%98%EB%A9%94%EC%9D%BC%EB%8C%80%EC%B2%98-Android-%EA%B4%91%EA%B3%A0-ID-%EC%82%AC%EC%9A%A9-%EB%B0%8F-%EA%B0%9C%EB%B0%9C%EC%9E%90-%EB%B0%B0%ED%8F%AC-%EA%B3%84%EC%95%BD%EC%9D%98-48-%EC%A1%B0%ED%95%AD%EC%9D%84-%EC%9C%84%EB%B0%98



결론은 삭제시 방안은 앱 스토어 등록 정보에서 개인정보 URL 을 입력하는

방법으로 복구할수있습니다.


https://app-privacy-policy-generator.firebaseapp.com/


이곳에서 개인정보 보호 정책을 만드셔서 업데이트 하시면 됩니다.


저도 지금 업데이트하고 기다리는 중인데.. 두근두근 하네요.


정상복구되면 업데이트 하겠습니다.



'개발' 카테고리의 다른 글

[서버이전] curl 사용하기  (0) 2022.04.12
Mac 에서 파일 생성일 수정일 수정하기  (0) 2020.12.14
코노하 (Conoha) 사용간 단점.  (0) 2018.01.27
[알고리즘] 등차수열  (1) 2017.08.24
Unity3d 베지에 곡선  (0) 2017.03.31


 우선 장점은 너무도 많이 나와있다. 자동화 되어있는 시스템덕분에 


갑작스럽게 사람이 몰릴때 바로 증설해 놓고 있다가 적어질때 다시 해지 할수있어


빠르게 대응 할수있는 점이 가장 큰 점인것 같다.


그래서 이전에 phps.kr 에서 스쿨호스팅을 사용하다가 현재는 홈페이지 서버만 거기에 두고 모두


코노하(Conoha) 로 옮겼다.


그런데..!!


지금 서버는 정상적으로 돌아가는데 나는 접속이 안된다.


이건 뭐.. 뭐가 문제인지를 모르겠다.


현재 보조 서버에 게시글이 계속 올라가는거 보면 메인서버가 살아있는것은 확실한데,


phpMyAdmin 으로 접속하려 하면 접속이 안된다.


터미널 접속은 되지만 엄청 느리게 되고,


접속 상태에서 apache, mysql 모두 정상적으로 동작하지만


ping 성공률은 60% 남짓이다.


이럴때 보면 커뮤니티도 없고 같이 이야기를 나눌 사람이 없어서 좀 외롭다.


이런증상을 겪는 사람은 왜 나만 있냐고!!



# 2018.01.28


다행히 다음날 정상화 되었다.


역시 회선 문제가 아니었을까 싶다.




 개발에 다시금 흥미를 되찾기 위해서 심심풀이로 문제 풀기 시작!


 

등차수열) 다음과 같이 증가하는 값에 대한 알고리즘을 구하시오!




 3

 6

 10

 15

 3

 4

 5

1

 1



세번째 줄은 증가 없음

두번째 줄은 1 씩 증가.

첫번째 줄은 현재값에서 두번째 줄의 값을 더하기.


이것을 공식으로 풀면 다음과 같다.








베지에 곡선


베지에 곡선 혹은 베지어 곡선(Bézier Curve)은 개의 점으로부터 얻어지는 차 곡선으로 수치 해석 분야에서 상당히 중요한 위치를 차지하고 있다. 특히 3차 베지에 곡선은 포스트스크립트 글꼴, 메타폰트(METAFONT), 김프 등에서 부드러운 곡선을 생성하는 데에 이용되고 있으며, 트루 타입 폰트에는 2차 베지에 곡선 알고리즘을 사용한다.

프랑스의 자동차 제조사 르노사의 기술자인 피에르 베지에가 1962년 자동차 몸체 디자인에 사용하면서부터 널리 알려졌다.



커브, 곡선을 그림에 있어 가장 유용한 방법이라 할수있다.



1차(Linear) 베지에 곡선




1차 베지에 곡선은 p0 지점에서 p1 의 지점까지 직선으로 이동하는 것이며, t 는 0 에서 1 까지 변화하는 값이다.



B(t) = (1−t)*P0 + t*P1, t∈[0,1]



10% 진행된 상황에서 ( t = 0.1 ) p0 의 위치는 (1,1) 그리고 p1 의 위치가 (2,2) 일때 위치는 다음과 같다.


[ 1.1 , 1.1 ] = ( 1 - 0.1 ) * [ 1 , 1 ] + ( 0.1 ) * [ 2 , 2 ];



공식을 unity c# 코드로 구현할 경우 경우 다음과 같다.



 






2차(Quadratic) 베지에 곡선



 




2 차 베지에 곡선은 1차 베지에 곡선에서 포인트가 하나 추가된 것이다.



B(t) = (1 − t)2P0 + 2t(1 - t)P1 + t2P2, t∈[0,1]


이를 글로 풀어 쓸경우 다음과 같다. 


p0 - p1 의 베이지 곡선을 구한다음 이를 pa 라 한다. 

p1 - p2 의 베이지 곡선을 구한다음 이를 pb 라 한다. 

pa - pb 의 베이지 곡선을 구한다.




공식을 unity c# 코드로 구현할 경우 경우 다음과 같다.



'개발' 카테고리의 다른 글

코노하 (Conoha) 사용간 단점.  (0) 2018.01.27
[알고리즘] 등차수열  (1) 2017.08.24
Unity UnityException: Unable to install APK!  (1) 2017.01.11
Unity 화면밖으로 객체가 나갈경우 이벤트  (0) 2016.12.17
Unity3d Time 클래스  (0) 2016.12.17


UnityException: Unable to install APK!

Installation failed. See the Console for details.

 

 별다른 로그 없이 위와같은 내용만 표출하고 빌드가 안되는 않는 현상이 발생하여 찾아보니,


 현재 폰에 설치 되어있는 같은 패키지 어플을 삭제하고 다시 시도하니 정상동작하였습니다.


  출처 : http://answers.unity3d.com/questions/815011/unable-to-install-apk.html

'개발' 카테고리의 다른 글

[알고리즘] 등차수열  (1) 2017.08.24
Unity3d 베지에 곡선  (0) 2017.03.31
Unity 화면밖으로 객체가 나갈경우 이벤트  (0) 2016.12.17
Unity3d Time 클래스  (0) 2016.12.17
[Spring Boot] MojoFailureException 오류  (1) 2016.10.12


Renderer.OnBecameInvisible()


카메라 밖으로 객체가 나갈경우 호출된다.



'개발' 카테고리의 다른 글

Unity3d 베지에 곡선  (0) 2017.03.31
Unity UnityException: Unable to install APK!  (1) 2017.01.11
Unity3d Time 클래스  (0) 2016.12.17
[Spring Boot] MojoFailureException 오류  (1) 2016.10.12
swift Imageview not antialias  (0) 2016.06.03

+ Recent posts