View in English

  • 메뉴 열기 메뉴 닫기
  • Apple Developer
검색
검색 닫기
  • Apple Developer
  • 뉴스
  • 둘러보기
  • 디자인
  • 개발
  • 배포
  • 지원
  • 계정
페이지에서만 검색

빠른 링크

5 빠른 링크

비디오

메뉴 열기 메뉴 닫기
  • 컬렉션
  • 주제
  • 전체 비디오
  • 소개

더 많은 비디오

  • 소개
  • 요약
  • 자막 전문
  • 코드
  • AdAttributionKit의 새로운 기능

    중복 재참여 전환을 측정하고 앱에 대한 광고 어트리뷰션 규칙을 사용자 정의하는 방법 등 AdAttributionKit의 새로운 기능을 알아보세요. 전 세계 및 지역 전반에서 걸쳐 광고 캠페인의 성공 정도를 측정할 수 있는 새로운 포스트백 속성에 대한 인사이트를 얻을 수 있습니다. 또한 AdAttributionKit 구현을 테스트하는 데 사용할 수 있는 새로운 기능과 모범 사례도 소개합니다. 이 세션를 최대한 활용하려면 ‘AdAttributionKit 소개'를 먼저 시청하는 것이 좋습니다.

    챕터

    • 0:00 - 서론
    • 3:23 - 중복 전환 기간 측정하기
    • 7:50 - 어트리뷰션 규칙 사용자 정의하기
    • 14:46 - 포스트백에서 지역 데이터 받기
    • 18:12 - AdAttributionKit 테스트하기

    리소스

    • AdAttributionKit
    • Configuring attribution rules for your app
    • Creating postbacks in developer settings
    • Enabling Developer Mode on a device
    • Identifying conversion values with conversion tags
    • Supplying an install verification token
    • Verifying a postback
      • HD 비디오
      • SD 비디오

    관련 비디오

    WWDC25

    • 개발 과정에 개인정보 보호 통합하기

    WWDC24

    • AdAttributionKit 소개
  • 비디오 검색…

    안녕하세요, 저는 App Store 엔지니어링 팀의 엔지니어 Mike입니다 광고된 앱의 개발자를 위해 빌드된 새 AdAttributionKit 기능을 소개해 드리겠습니다 안녕하세요, 저는 Commerce Engineering 팀의 엔지니어 Yuchi입니다 포스트백 소비자를 위한 어트리뷰션 구성 및 데이터 수신의 새로운 기능을 안내할 예정입니다

    Apple은 개인정보 보호가 기본적 인권이라고 믿습니다 그렇기에 AdAttributionKit을 처음부터 구축해 사용자의 개인정보를 보호하면서 광고 캠페인의 성공 여부를 측정할 수 있도록 했습니다 먼저 AdAttributionKit의 작동 방식을 요약해 보겠습니다 AdAttributionKit 흐름은 세 당사자로 구성됩니다 광고 네트워크는 광고 페이로드를 생성하고 퍼블리셔 앱에 전달합니다

    퍼블리셔 앱은 광고된 앱의 광고 표시를 처리합니다 마지막으로 광고된 앱은 사용자가 앱에서 취한 동작으로 참여도를 측정합니다 이 액터들은 AdAttributionKit의 종단간 흐름에서 각기 다른 시점에 역할을 수행합니다

    종단간 흐름은 광고 네트워크가 앱의 광고 페이로드를 생성하는 데서 시작됩니다 광고 네트워크는 퍼블리셔 앱에 광고 페이로드를 전달하고 퍼블리셔 앱은 대상자에게 광고를 표시합니다

    대상자는 광고를 보거나 탭해 상호작용할 수 있으며 그러면 설치 또는 재참여 전환이 이루어집니다

    설치 전환은 광고와 상호작용한 결과로 App Store 또는 대체 앱 마켓플레이스에서 앱을 설치하면 발생합니다

    재참여 전환은 이미 설치한 앱의 광고와 상호작용해 광고된 앱으로 직접 이동하면 발생합니다

    전환이 발생하면 광고주는 사용자가 앱에서 수행하는 상호작용과 참여를 측정합니다 전환 기간이 종료되면 전환 및 참여 측정값을 나타내는 데이터가 포스트백 형태로 광고 네트워크에 전송됩니다 이로써 AdAttributionKit의 종단간 흐름이 완성됩니다 참고로 AdAttributionKit은 iOS 17.4와 함께 출시되었으며 설치 전환에 대한 지원이 포함되어 있었는데요 iOS 18에서는 재참여 지원이 추가되었습니다 AdAttributionKit 시작에 대한 자세한 내용은 WWDC24 “AdAttributionKit 소개” 세션에 정리되어 있습니다 이 내용을 기초로 이제 종단간 흐름의 다양한 부분을 향상하기 위해 빌드된 새로운 기능을 보여 드리겠습니다

    광고된 앱의 개발자가 앱에서 사용할 수 있는 측정 및 테스트 흐름과 관련된 새롭고 강력한 기능을 소개해 드릴 텐데요 광고 네트워크이거나 포스트백 데이터 다운스트림 소비자라면 포스트백의 어트리뷰션 흐름 및 새 데이터를 위해 빌드된 개선 사항을 Yuchi가 설명합니다

    이번 세션은 네 부분으로 나뉩니다 먼저 제가 앱 내에서 중복 재참여 전환을 측정할 수 있도록 하는 전환 태그를 살펴봅니다

    다음으로 Yuchi가 앱의 어트리뷰션 규칙을 맞춤화하는 방법을 설명하고 포스트백에 추가된 새 지리 데이터를 알아봅니다

    마지막으로 제가 iOS 설정 앱의 새 테스트 기능으로 AdAttributionKit 구현을 테스트하는 방법을 안내합니다

    중복 전환 기간을 측정하는 방법을 자세히 살펴보겠습니다

    종단간 다이어그램 내부의 재참여 흐름을 중점적으로 보죠

    iOS 18.3까지는 앱의 활성 재참여 전환이 항상 하나만 가능했습니다

    iOS 18.4부터는 앱의 활성 재참여 전환 기간이 동시에 여러 개일 수 있습니다 앱은 또한 전환 태그를 수신할 수 있습니다 전환에 대한 일종의 책갈피인데요 전환 태그를 사용하면 업데이트할 재참여 전환을 지정할 수 있습니다 앱에서 전환 태그를 사용하는 시나리오를 살펴보겠습니다 개발자는 여러 개의 재참여 캠페인을 실행해 앱에서 고객에게 제공하는 다양한 세일을 홍보할 수 있습니다

    한 고객이 앱의 할인 제품을 홍보하는 광고를 보고 탭해 봅니다 이 상호작용은 고객을 앱으로 딥링크하고 시스템에서 재참여 전환을 생성합니다 몇 분 후에 고객이 해당 제품을 구매하지 않고 앱을 종료합니다 시나리오가 계속 진행되어 몇 시간 후 같은 고객이 앱에서 두 번째 할인 품목을 홍보하는 다른 광고를 보고 탭합니다 그러면 시스템에 다른 재참여 전환이 생성됩니다 앱에서 얼마간 시간이 지난 후 고객은 결국 첫 번째 할인 품목을 구매하기로 합니다 이 경우 전환 태그를 사용해 Discount 1에 해당하는 원래 전환의 전환 가치를 업데이트할 수 있습니다 앱에서 동시에 여러 제품의 재참여 캠페인을 실행할 때 매우 유용하죠 중복 전환 기간을 측정하려면 앱의 Info.plist에서 EligibleForAdAttributionKitOverlappingConversions 키를 YES로 설정하면 됩니다 이렇게 하지 않으면 중복되는 이전 전환이 예전처럼 잠금 처리됩니다 다음으로 앱이 전환 태그를 받는 방법을 보여 드리겠습니다

    앱이 옵트인하면 재참여가 발생했을 때 AdAttributionKit이 앱에 전달하는 재참여 URL에 전환 태그가 추가됩니다 재참여 URL은 화면에 맞춤형 렌더링 또는 StoreKit 렌더링 광고가 있을 때 API에 전달되는 범용 링크입니다 태그는 AdAttributionKit 재참여 열림 매개변수의 값으로 전달됩니다 이 예시 URL에서 태그는 1과 같습니다

    앱이 재참여 URL을 수신하면 이런 함수를 사용해 전환 태그를 추출할 수 있습니다 그 과정을 자세히 보겠습니다 먼저 함수가 URLComponents를 사용해 전달된 URL의 컴포넌트를 가져옵니다 그리고 쿼리 항목 목록을 가져오죠 재참여로 앱이 열려 있으면 AdAttributionKit은 항상 재참여 열림 매개변수를 추가합니다

    이어서 URL에 연결된 쿼리 매개변수 목록을 살펴봅니다 URL에 대한 재참여 열림 매개변수를 찾으면 해당 매개변수의 값을 즉시 반환합니다 쿼리 매개변수를 찾지 못하면 함수가 nil을 반환합니다

    이제 앱에 전환 태그가 준비되었으니 이를 사용해 해당 전환을 직접 업데이트할 수 있습니다

    전환 태그를 생성한 재참여 전환에 태그를 연결하는 것이 좋은데 해당 전환의 결과로 발생하는 유의미한 이벤트를 다시 묶을 수 있기 때문입니다

    또한 전환 태그는 앱에 로컬로 또는 서버 측 데이터 저장소에 저장해야 합니다

    해당 동작에 대해 측정하고자 하는 동작을 고객이 앱에서 수행하면 해당 전환의 태그를 검색합니다

    이제 전환 태그를 사용해 코드에서 전환을 직접 업데이트하는 방법을 보여 드리겠습니다

    이 함수는 전환 태그의 전환 값을 가져와 특정 포스트백을 업데이트합니다 PostbackUpdate 구조체를 초기하면 업데이트할 전환에 대한 전환 태그를 전달합니다 그런 다음 Postback API를 호출해 전환 값을 업데이트할 수 있습니다

    전환 태그 없이 updateConversionValue API를 호출할 수도 있는데 그러면 시스템이 가장 최근의 전환 포스트백을 업데이트합니다 이렇게 중복 전환 기간이 있을 때 전환 태그를 사용해 포스트백을 업데이트하는 방법을 살펴보았습니다 포스트백의 전환 가치 측정은 AdAttributionKit 사용이라는 퍼즐에서 하나의 조각일 뿐입니다 다운스트림에서 수신한 포스트백 데이터의 해석이 시스템의 또 다른 중요한 측면이며 앱의 비즈니스를 위한 마케팅 결정에 도움이 될 수 있습니다 Yuchi, 여기서 전달해 주실 업데이트 내용이 있나요? 물론이죠 수신한 포스트백 데이터를 더 효과적으로 소비하고 해석할 수 있는 새로운 기능을 보여 드리겠습니다 포스트백 데이터에서 가장 유의미한 신호를 캡처할 수 있도록 앱의 어트리뷰션 규칙을 맞춤화하는 기능이 추가되었습니다 이를 통해 어트리뷰션 흐름을 조정할 수 있습니다

    어트리뷰션 흐름을 조정하는 방법은 두 가지입니다 첫 번째는 구성 가능한 어트리뷰션 기간입니다

    종단간 광고 어트리뷰션 흐름을 다시 보면 AdAttributionKit은 광고 최근성과 광고 유형을 기반으로 어트리뷰션을 수행합니다

    AdAttributionKit에서 지원하는 두 가지 광고 유형은 클릭 스루 광고, 보기 스루 광고죠

    다양한 광고 유형은 일반적으로 서로 다른 시간대를 타겟팅합니다 예를 들면 10일 내 전환 촉진이 목표인 클릭 스루 광고죠 전환이 목표 기간보다 늦게 만약 노출 표시 시간으로부터 20일 후에 발생한다면 이 전환은 더 이상 이 광고로 발생한 것으로 간주되어서는 안 됩니다 그리고 이 광고 타겟팅 기간을 어트리뷰션 기간이라고 합니다 어트리뷰션 기간의 정의는 광고 표시 시간부터 어트리뷰션에 이 광고를 고려할 수 있는 가장 늦은 시간까지입니다 광고의 어트리뷰션 기간에 전환이 발생하면 이 광고는 이 전환의 어트리뷰션을 두고 경쟁하게 됩니다 이외에는 이 광고가 이 전환의 어트리뷰션을 두고 경쟁하지 않죠 이전에는 30일 이내에 게재된 모든 클릭 스루 광고와 1일 이내에 게재된 보기 스루 광고가 어트리뷰션에 고려되었습니다 이 기간의 유연성을 높이기 위해 구성 가능한 어트리뷰션 기간이 도입됩니다 광고주는 Info.plist 파일에 원하는 어트리뷰션 기간을 지정할 수 있습니다 이 예에서는 구성을 설명하는 데 JSON 파일을 사용하는데 앱의 Info.plist 파일을 편집할 때 동일한 키와 구조를 사용할 수 있습니다 어트리뷰션 기간은 광고 네트워크, 광고 상호작용 유형별로 정의할 수 있습니다 유형은 보기 스루 광고 클릭 스루 광고죠 예를 들어 보겠습니다 com.example.adNetwork라는 광고 네트워크에 대해 광고주가 어트리뷰션 기간을 클릭 스루 광고 2일 보기 스로 광고 1일로 지정했죠 광고 네트워크 파트너가 한 가지 유형의 광고에 주로 집중한다면 이곳의 다른 광고 유형은 완전히 무시해야 할 수 있습니다 그러려면 ignoreInteractionType 키를 지정하면 됩니다 이 키는 “view”나 “click”으로 설정할 수 있으며 둘을 동시에 설정하지는 못합니다 여러 광고 네트워크와 협력한다면 한 곳씩 어트리뷰션 기간을 지정하기가 번거로울 수 있습니다 이 경우 전역 키를 추가해 모든 협력 광고 네트워크의 기간을 지정할 수 있습니다 기본적으로 모든 광고 네트워크에 적용되는 키죠 전역 기간 외에 특정 광고 네트워크의 어트리뷰션 기간도 구성할 수 있습니다 이 구성은 전역 구성보다 우선합니다 광고 네트워크나 전역 구성이 없으면 현재 사용되는 기본 어트리뷰션 기간으로 대체됩니다 이 예에서 com.example.adNetwork 광고의 클릭 스루 광고에 대한 어트리뷰션 기간은 5일이고 해당 광고 네트워크의 보기 스루 광고는 무시됩니다 다른 모든 광고 네트워크의 경우 보기 스루 광고의 어트리뷰션 기간은 3일입니다 어트리뷰션 기간 개념은 재참여 광고가 아니라 설치 광고에만 적용됩니다 재참여 광고 상호작용 및 전환은 서로 시간 간격 없이 잇달아 발생하기 때문입니다 어트리뷰션 흐름을 조정하는 두 번째 방법은 구성 가능한 쿨다운입니다 종단간 광고 어트리뷰션 흐름을 다시 볼까요 광고 기반 전환 후 사용자 참여 측정에 집중해 보죠 광고 네트워크의 광고 게재 후 광고 기반 전환이 발생하면 광고주가 사용자 참여를 측정하는 기간이 열립니다 이 기간을 전환 기간이라고 합니다 광고주는 구독, 앱 내 구입 등 사용자가 앱에서 한 활동을 기반으로 전환의 가치를 측정할 수 있습니다 이때 updateConversionValue API를 호출합니다 실제로 이러한 광고 어트리뷰션 중 대다수는 같은 기기 같은 광고된 앱에 대해 동시에 발생할 수 있습니다 전환 기간은 중복될 수 있는데 이 경우 측정값이 가장 적절한 전환에 대해 기록되지 않을 수 있습니다

    좀 더 구체적인 예를 들어 보겠습니다 사용자가 광고를 클릭해 광고된 앱을 다운로드하고 잠시 후 앱 내 구입을 수행한 결과로 설치 광고에 대해 높은 사용자 가치 측정값이 발생했습니다 하지만 이 사용자가 앱을 설치한 직후 재참여 광고를 탭해 앱을 열면 어떻게 될까요? 그러면 앱 내 구입이 설치 광고가 아니라 재참여 광고에 잘못 어트리뷰션되겠죠 아마 여러분이 원하는 측정 목표가 아닐 것입니다

    재참여 전환 직후 재참여 광고가 이어졌을 때도 같은 시나리오가 발생할 수 있습니다 첫 번째 재참여 광고가 아니라 두 번째 재참여 광고에 어트리뷰션되는 것입니다 이를 방지하려면 각 전환 후에 다른 신호를 차단하는 기간을 설정하고 이 기간만 사용해 해당 전환을 유발한 광고의 가치를 측정해야 합니다 이것을 구성 가능한 어트리뷰션 쿨다운이라고 합니다 구성 가능한 어트리뷰션 쿨다운은 전환 유형별로 지정할 수 있습니다 쿨다운은 해당 특정 유형의 각 전환부터 시작되며 해당 쿨다운이 완전히 끝나기 전 발생한 다른 모든 전환은 전환에 어트리뷰션되지 않습니다 광고주는 Info.plist 파일에서 원하는 어트리뷰션 쿨다운을 지정할 수 있습니다 이 예에서 광고주는 설치에 6시간, 재참여에 1시간의 쿨다운을 지정했습니다 이 구성에서 사용자가 설치 광고를 클릭한 후 T 시점에 앱을 설치했다고 해 보죠 설치에 구성된 쿨다운은 6시간이고요 이 사용자가 설치 기준 4시간 후에 재참여 광고를 탭해 앱을 열었다면 이 재참여 전환은 광고에 어트리뷰션되지 않습니다 만약 재참여 광고를 탭해 앱을 연 것이 설치 기준 7시간 후에 발생했다면 재참여는 광고 어트리뷰션을 받습니다 구성 가능한 어트리뷰션 기간과 어트리뷰션 쿨다운 모두에서 JWS 형식은 노출과 포스트백에 대해 변경되지 않습니다 이러한 구성 가능한 기능 외에도 포스트백에 새로운 지리 정보가 추가되어 다양한 국가에서 광고 캠페인의 성공 여부를 측정할 수 있습니다

    종단간 광고 어트리뷰션 흐름을 다시 보죠 이제 포스트백을 살펴보겠습니다

    포스트백은 AdAttributionKit의 출력으로서 어트리뷰션 사용자 참여 측정값 등 전환에 대한 정보를 전송합니다 포스트백은 광고 네트워크에 전달되며 선택에 따라 광고된 앱의 개발자에게도 전달됩니다 광고주와 광고 네트워크는 광고 전달을 최적화하기 위해 전환의 지리 정보에 접근하고 싶을 것입니다 현재 일부 구현에서는 이 정보를 얻는 데 소스 식별자를 사용합니다 최신 AdAttributionKit에서는 국가 코드가 포스트백의 새 필드로 제공됩니다 다양한 컨텍스트에서 국가 코드가 나타내는 내용을 보죠

    App Store에서 설치한 앱의 경우 포스트백의 국가 코드는 앱을 다운로드한 App Store 스토어프런트에서 파생되며 사용자 계정 설정에서 선택된 위치를 기준으로 합니다 재참여 전환의 경우 포스트백은 앱을 처음 설치했을 때의 위치를 그대로 사용합니다 iOS 17.4에서는 대체 앱 마켓플레이스가 설치 확인 토큰을 제공해 Apple 기기에 앱 설치 신호를 전달할 수 있습니다 설치 확인 토큰은 JWS 토큰으로서 다운로드 타임스탬프 다운로드한 앱 ID 등 앱 설치에 대한 정보가 포함된 페이로드가 있습니다 새로운 iOS 버전부터 대체 앱 마켓플레이스는 설치 확인 토큰 페이로드에 새 국가 코드 필드를 제공합니다 서명하고 Apple로 보내면 됩니다 그러면 Apple에서 값을 검증하고 포스트백 국가 코드 필드에 코드를 채웁니다 국가 코드는 설치 확인 토큰의 선택 사항 필드입니다 시스템이 설치 확인 토큰에서 국가 코드를 찾지 못하면 포스트백에 국가 코드가 포함되지 않습니다

    대체 앱 마켓플레이스를 통한 전환의 국가 코드 값은 대체 앱 마켓플레이스가 지원되는 곳으로 한정됩니다

    이렇게 국가 코드가 포스트백에 추가되는 방식을 살펴보았습니다 국가 코드는 서명되지 않은 필드로서 ad-interaction-type 서명된 JWS 토큰 그리고 coarse-conversion-value와 병렬입니다 국가 코드 필드는 군중 익명성 알고리즘의 적용을 받으며 이는 AdAttributionKit에서 모든 포스트백에 적용합니다 군중 익명성 알고리즘은 개인정보를 보호하는 Apple의 광고 어트리뷰션에서 핵심입니다 광고주와 광고 네트워크에 식별 가능한 정보를 공개하기에 앞서 각 개인의 고유한 정보를 큰 군중 속에 혼합하는 거죠

    포스트백에 국가 코드가 포함되는 경우는 한 국가 내에서 유사한 전환으로 묶을 만한 충분한 볼륨이 있을 때에 한합니다 포스트백 내 국가 코드 기재에 적합한 군중 익명성 계층은 현재 시행 중인 네 가지 군중 익명성 계층 외의 보너스 계층입니다 즉 어떠한 상황에서도 광고주와 광고 네트워크가 현재 수신 중인 데이터를 잃는 일이 없습니다 지금까지 포스트백 데이터에 대한 최신 업데이트 사항이었고요 이제 Mike가 새 AdAttributionKit 테스트 기능을 소개합니다 Yuchi, 유익한 내용 감사합니다 AdAttributionKit의 새로운 기능을 모두 살펴보았으니 구현을 테스트하는 새로운 방법을 설명하겠습니다

    종단간 다이어그램으로 돌아가 광고 전달과 전환 흐름을 보죠

    이것이 앱의 AdAttributionKit 구현을 테스트할 때 사용하는 일반적 흐름인데요

    먼저 광고된 앱의 광고 페이로드를 생성하고 제공해야 합니다 그리고 별도의 퍼블리셔 앱에서 광고를 표시하고 상호작용한 후 설치 또는 재참여 전환을 수행해 앱의 개발 포스트백을 생성합니다

    iOS 18.4에서 이제 iOS 설정 앱으로 직접 개발 포스트백을 생성할 수 있습니다

    개발자 설정 생성 포스트백으로 새로운 테스트가 가능합니다 이제 앱이 Xcode나 Ad Hoc 배포 같은 기타 배포 메커니즘에서 실행되는 경우 전환 값 업데이트를 테스트할 수 있습니다 포스트백에 포함될 데이터도 직접 제어할 수 있습니다 다양한 포스트백 데이터 계층을 처리하는 서버 구현을 테스트할 때 유용하죠

    이제 개발자 설정을 사용해 앱의 포스트백을 생성하는 방법을 보여 드리겠습니다

    시작하기 전에 기기에서 개발자 모드를 활성화해야 합니다 다음으로 설정 앱의 개발자 설정에서 Ad Attribution

    Testing(광고 어트리뷰션 테스트) 섹션으로 스크롤합니다 AdAttributionKit Developer Mode (AdAttributionKit 개발자 모드) 위에 새 Development Postbacks (개발 포스트백) 페이지가 있죠

    Development Postbacks(개발 포스트백) 페이지를 탭하면 앱의 포스트백을 구성하거나 적격 포스트백을 전송하거나 기기에서 모든 개발 포스트백을 지울 수 있는 옵션이 표시됩니다 개발 포스트백을 구성하려면 앱의 번들 식별자를 입력하고 Configure(구성) 버튼을 탭합니다

    앱의 포스트백을 생성하기 전에 앱을 기기에 설치해야 합니다

    첫 번째 단계는 포스트백의 대상을 지정하는 것입니다 이는 서버의 URL에 해당합니다 테스트에는 프로덕션 포스트백을 수신하는 URL과 다른 개발 URL을 사용하는 것이 좋습니다 앱에서 자동으로 포스트백 사본 URL을 가져올 수도 있습니다 이를 사용해 시스템이 생성하는 잘 알려진 URL이 서버가 노출하는 URL과 일치하는지 확인할 수 있죠

    다음으로 포스트백의 속성을 입력합니다 속성을 편집해 원하는 어떤 유형의 전환이든 나타내도록 포스트백을 구성할 수 있습니다

    이제 iOS에서 국가 코드를 새로운 속성으로 구성할 수 있습니다 덕분에 Yuchi가 설명한 포스트백의 국가 코드를 테스트할 수 있습니다

    속성을 구성한 후 개별 포스트백의 데이터 세분성을 조정할 수 있습니다 세분성은 서버로 전송되는 정보의 세밀함을 제어합니다 이를 사용해 서버 구현에서 다양한 포스트백 데이터 계층을 올바르게 처리하는지 검증할 수 있습니다

    포스트백 구성을 완료했으면 버튼을 탭해 앱에 대해 생성합니다

    이제 앱에 개발 포스트백이 마련되었으므로 전환 가치를 업데이트할 수 있습니다

    개발 포스트백은 테스트 중 updateConversionValue(_:) API를 호출해 업데이트합니다 개발 포스트백이 자동으로 전송하기를 기다리거나 포스트백 전환 기간이 끝났을 때 Transmit Development Postbacks(개발 포스트백 전송) 버튼을 탭합니다

    개발자 설정 생성 포스트백은 종단간 흐름 생성 포스트백과 주요한 차이점이 있습니다 포스트백의 JSON 웹 서명에서 볼 수 있는 변경 사항을 볼까요

    이것은 포스트백으로 받게 되는 헤더의 스니펫인데요

    개발자 설정 생성 포스트백은 새로운 키로 서명되며 새 하위 항목 값을 통해 표시되죠 새 공개 키를 받아 포스트백의 서명을 검증하기 위해 포스트백을 확인하는 방법은 문서를 참고하세요 포스트백의 페이로드에도 언급할 만한 차이점이 있는데요 광고 네트워크 식별자는 항상 development.adattributionkit으로 설정되기 때문에 개발자 설정 생성 포스트백과 프로덕션 포스트백을 구별하기 쉽습니다

    포스트백의 광고된 항목 식별자는 0일 수도 있습니다 예를 들어 테스트 중에 Xcode의 앱을 실행한 경우에 그렇습니다

    이렇게 AdAttributionKit에 추가된 새 테스트 기능을 살펴보았습니다 AdAttributionKit 구현을 개발하고 테스트할 때 이 새 테스트 기능이 작업 흐름 간소화에 도움이 될 것입니다 오늘 새 AdAttributionKit 기능에 대해 자세히 알아보았는데요 앱에서 중복 전환 기간을 측정하는 것과 국가 코드 및 포스트백을 수신하는 것 등 광고 어트리뷰션에 다양하게 영향을 미치는 업데이트입니다

    다음 단계로, 앱의 어트리뷰션 규칙을 구성할 준비가 되셨다면 앱의 Info.plist에 새로운 구성 키를 추가해 보세요 새로운 테스트 기능을 사용해 프로덕션에 릴리즈하기 전 개발 초반에 AdAttributionKit 구현을 테스트하세요 SKAdNetwork를 사용하신다면 지금 AdAttributionKit으로 마이그레이션해 새로운 기능을 모두 활용하여 빌드해 보세요 Apple의 개인정보 보호 우선 광고 프레임워크를 사용해 보고 피드백을 제공해 주시는 개발자 커뮤니티에 감사드립니다 Apple의 빌드 사항 그리고 사용자 개인정보를 보호하는 앱을 위한 우수한 광고 환경 제공 방식에 도움이 됩니다 감사합니다!

    • 5:42 - Function that retrieves a conversion tag from a URL

      func retrieveConversionTag(fromURL url: URL) -> String? {
          guard let components = URLComponents(url: url, resolvingAgainstBaseURL: true) else {
              print("Could not get components for URL.")
              return nil
          }
      
          guard let queryItems = components.queryItems else {
              print("URL does not contain query items.")
              return nil
          }
      
          for item in queryItems {
              guard item.name == Postback.reengagementOpenURLParameter else {
                  continue
              }
              return item.value
          }
          return nil
      }
    • 6:55 - Function that updates conversion value using a conversion tag

      func updateConversionValue(_ conversionValue: Int, conversionTag: String) async {
          do {
              let update = PostbackUpdate(fineConversionValue: conversionValue,
                                          lockPostback: false,
                                          conversionTag: conversionTag)
              try await Postback.updateConversionValue(update)
          }
          catch {
              print("An error occurred while updating the conversion value: \(error)")
          }
      }
    • 9:32 - Example Info.plist for configuring attribution window

      {
        "AdAttributionKitConfigurations": {
          "AttributionWindows": {
            "com.example.adNetwork": {
              "install": {
                "click": 2,
                "view": 1
              }
            }
          }
       }
    • 9:58 - Example Info.plist for configuring attribution window

      {
        "AdAttributionKitConfigurations": {
          "AttributionWindows": {
            "com.example.adNetwork": {
              "install": {
                "click": 2,
                "view": 1
              }
            }
          }
       }
    • 10:14 - Example Info.plist for configuring attribution window

      {
        "AdAttributionKitConfigurations": {
          "AttributionWindows": {
            "com.example.adNetwork": {
              "install": {
                "click": 2,
                "ignoreInteractionType": "view"                     
              }
            }
          }
       }
    • 10:30 - Example Info.plist for configuring attribution window

      {
        "AdAttributionKitConfigurations": {
          "AttributionWindows": {
            "global": {
              "install": {
                "view": 3
              }
            }
            "com.example.adNetwork": {
              "install": {
                "click": 5,
                "ignoreInteractionType": "view"
              }
            }
          }
       }
    • 11:05 - Example Info.plist for configuring attribution window

      {
        "AdAttributionKitConfigurations": {
          "AttributionWindows": {
            "global": {
              "install": {
                "view": 3
              }
            }
            "com.example.adNetwork": {
              "install": {
                "click": 5,
                "ignoreInteractionType": "view"
              }
            }
          }
       }
    • 13:52 - Example Info.plist for configuring attribution cooldown

      {
        "AdAttributionKitConfigurations": {
          "AttributionCooldown": {
            "install-cooldown-hours": 6,
            "reengagement-cooldown-hours": 1
          {
        }
      }
    • 16:02 - Example install verification token payload

      {

        "iss": 13421973,
        "iat": 1745255692,
        "iid": "34890933",
        "vid": "46392455",
        "aud": "AppleDownloadVerification-v1",
        "bid": "com.example.marketplace",
        "dtype": "download",
        "nonce": "9BC2C5CC-A1F8-4F93-9D6A-4D524685B67E"
      }
    • 16:26 - Example install verification token payload

      {
  
        "iss": 13421973,
        "iat": 1745255692,
        "iid": "34890933",
        "vid": "46392455",
        "aud": "AppleDownloadVerification-v1",
        "bid": "com.example.marketplace",
        "dtype": "download",
        "nonce": "9BC2C5CC-A1F8-4F93-9D6A-4D524685B67E",
        "ccode": "MT"
      }
    • 17:05 - Example postback with country code

      {
         "ad-interaction-type": "click",
         "jws-string": "eyJraWQiOiJhcHBsZS1jYXMtaWRlbnRpZmllci8wIiwiYWxnIjoiRVMyNTYifQ.eyJhZHZlcnRpc2VkLWl0ZW0taWRlbnRpZmllciI6Njg0OTM5LCJjb252ZXJzaW9uLXR5cGUiOiJyZS1lbmdhZ2VtZW50IiwibWFya2V0cGxhY2UtaWRlbnRpZmllciI6ImNvbS5hcHBsZS5BcHBTdG9yZSIsImFkLW5ldHdvcmstaWRlbnRpZmllciI6InRlc3QuYWRhdHRyaWJ1dGlvbmtpdCIsImltcHJlc3Npb24tdHlwZSI6ImFwcC1pbXByZXNzaW9uIiwicG9zdGJhY2stc2VxdWVuY2UtaW5kZXgiOjAsInNvdXJjZS1pZGVudGlmaWVyIjoiODM0NCIsImRpZC13aW4iOnRydWUsInBvc3RiYWNrLWlkZW50aWZpZXIiOiIzZjUwZmU1Ny0yOWFlLTQ4NjEtOGMwYi1hYzZhZGRkZmY3MmMiLCJwdWJsaXNoZXItaXRlbS1pZGVudGlmaWVyIjo1ODM4NDkyfQ.AemK1x2ahIPKOnFEEscG4wvipRtR1G6DzpNF4M4joPb8POIH4FJjm4VvcNgLXc9rWBrEDQPvDblduoc7MFcK5w",
         "coarse-conversion-value": "medium",
         "country-code": "MT"
      }
    • 0:00 - 서론
    • 사용자 개인 정보 보호를 염두에 두고 설계된 AdAttributionKit을 사용하면 광고주가 사용자 익명성을 유지함과 동시에 광고 캠페인의 성공 여부를 측정할 수 있습니다. 이 시스템에는 세 가지 주요 참여자가 참여합니다. 바로 광고 네트워크, 게시자 앱, 광고 앱입니다. 이 프로세스는 광고 네트워크가 게시자 앱에 광고를 전달하는 것으로 시작한 다음 사용자에게 표시합니다. 광고와의 상호작용은 설치 또는 재참여로 이어질 수 있는데, 이는 광고된 앱을 통해 측정됩니다. 특정 전환 기간이 지나면 데이터는 포스트백을 통해 광고 네트워크로 전송됩니다. iOS 17.4에서 출시되고 이후 iOS 18에서 재참여를 지원하도록 업데이트된 AdAttributionKit에는 이제 중복되는 재참여 전환을 측정하는 전환 태그, 사용자 정의 가능한 어트리뷰션 규칙, 포스트백의 새로운 지역 데이터, iOS 설정 앱 내에서의 향상된 테스트 가능성과 같은 새로운 기능이 포함되어 있습니다.

    • 3:23 - 중복 전환 기간 측정하기
    • iOS 18.4에서는 이제 앱에서 여러 개의 활성 재참여 전환 창을 동시에 가질 수 있습니다. 이전에는 한 번에 하나의 전환만 활성화되었습니다. 북마크 역할을 하는 전환 태그는 이제 사용자가 여러 광고 또는 캠페인과 상호작용할 때 어떤 재참여 전환을 업데이트할지 지정합니다. 이는 여러 제품에 대한 동시 프로모션을 실행할 때 특히 유용합니다. 이와 같은 새로운 기능을 활성화하려면 앱의 Info.plist 파일에서 ‘EligibleForAdAttributionKitOverlappingConversions’ 키를 설정해야 합니다. 옵트인하면 전환 태그가 재참여 URL에 추가되기 때문에 추후 사용할 수 있도록 추출하여 저장할 수 있습니다. 누군가 앱 내에서 작업을 수행하면 해당 전환 태그가 검색되어 Postback API를 통해 전환 값을 직접 업데이트함으로써 관련 캠페인에 대한 전환의 정확한 어트리뷰션을 보장합니다.

    • 7:50 - 어트리뷰션 규칙 사용자 정의하기
    • 이제 광고주는 앱에 대한 어트리뷰션 규칙을 사용자 정의할 수 있습니다. 이러한 새로운 기능을 사용하면 어트리뷰션 흐름을 조정하는 두 가지 주요 방법이 가능합니다. 구성 가능한 어트리뷰션 기간. 이 기능을 사용하면 광고주는 광고가 표시된 후에도 여전히 어트리뷰션이 고려될 수 있는 기간을 지정할 수 있습니다. 이전에는 30일 이내의 모든 클릭스루 광고와 1일 이내의 모든 뷰스루 광고가 고려되었습니다. 이제 광고주는 광고 네트워크 및 광고 상호작용 유형별로 이러한 기간을 설정할 수 있습니다. 또한 ‘ignoreInteractionType’ 키를 지정하여 특정 네트워크의 특정 광고 유형을 무시하거나 특정 구성으로 재정의되지 않는 한 모든 네트워크에 적용되는 글로벌 어트리뷰션 기간의 길이를 설정할 수도 있습니다. 구성 가능한 쿨다운 기간. 이 기능을 사용하면 여러 전환이 중복되어 사용자 참여가 잘못 분류되는 것을 방지할 수 있습니다. 전환 후에는 Info.plist에서 쿨다운 기간을 설정할 수 있는데, 이 기간에는 다른 전환이 적용되지 않습니다. 이를 통해 해당 광고에 대한 전환 가치가 정확하게 측정됩니다. 광고주는 설치 또는 재참여 전환 등 전환 유형별로 쿨다운 기간을 지정할 수 있습니다.

    • 14:46 - 포스트백에서 지역 데이터 받기
    • AdAttributionKit에는 이제 특히 국가 코드 등 새로운 지리 정보가 포함된 향상된 포스트백이 추가되어 광고주와 광고 네트워크가 다양한 국가에 걸쳐 광고 게재를 최적화하는 데 도움이 됩니다. 포스트백의 국가 코드 필드는 최초 설치 및 재참여를 위한 App Store 스토어프론트에서 파생되었습니다. iOS 17.4 이상에서 대체 앱 마켓플레이스에서 설치된 앱의 경우, 국가 코드가 설치 검증 토큰 페이로드에 포함되고 Apple에서 검증된 다음 포스트백에 추가됩니다. 이와 같은 새로운 필드는 사용자 개인 정보 보호를 보장하기 위해 Apple 군중 익명화 알고리즘을 따르고 동일 국가 내에서 충분한 볼륨이 있는 전환에 대한 포스트백에만 포함되어 기존 정보를 손상시키지 않고 추가 계층의 데이터를 제공합니다.

    • 18:12 - AdAttributionKit 테스트하기
    • iOS 18.4에서는 이제 iOS 설정 앱에서 앱에 대한 개발 포스트백을 직접 생성할 수 있습니다. 이러한 새로운 기능을 사용하면 앱이 프로덕션에 출시되기 전에 전환 값을 업데이트하고 다양한 데이터 계층의 포스트백을 처리하기 위한 서버 구현을 검증하는 등 다양한 시나리오를 테스트할 수 있습니다. 앱의 번들 식별자, 대상 URL, 새로운 국가 코드 속성을 포함한 다양한 속성을 지정하여 포스트백을 구성할 수 있습니다. 또한 각 포스트백의 데이터 세분성을 조정할 수도 있습니다. 개발자 설정에서 생성된 포스트백은 프로덕션 포스트백과 구별하기 위해 새로운 서명 키와 광고 네트워크 식별자(‘development.adattributionkit’) 및 광고 항목 식별자에 대한 특정 값과 같은 고유한 특성을 갖습니다. 이 개선 사항을 통해 AdAttributionKit 구현을 위한 개발 및 테스트 워크플로가 간소화됩니다.

Developer Footer

  • 비디오
  • WWDC25
  • AdAttributionKit의 새로운 기능
  • 메뉴 열기 메뉴 닫기
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    메뉴 열기 메뉴 닫기
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • SF Symbols
    메뉴 열기 메뉴 닫기
    • 손쉬운 사용
    • 액세서리
    • 앱 확장 프로그램
    • App Store
    • 오디오 및 비디오(영문)
    • 증강 현실
    • 디자인
    • 배포
    • 교육
    • 서체(영문)
    • 게임
    • 건강 및 피트니스
    • 앱 내 구입
    • 현지화
    • 지도 및 위치
    • 머신 러닝 및 AI
    • 오픈 소스(영문)
    • 보안
    • Safari 및 웹(영문)
    메뉴 열기 메뉴 닫기
    • 문서(영문)
    • 튜토리얼
    • 다운로드(영문)
    • 포럼(영문)
    • 비디오
    메뉴 열기 메뉴 닫기
    • 지원 문서
    • 문의하기
    • 버그 보고
    • 시스템 상태(영문)
    메뉴 열기 메뉴 닫기
    • Apple Developer
    • App Store Connect
    • 인증서, 식별자 및 프로파일(영문)
    • 피드백 지원
    메뉴 열기 메뉴 닫기
    • Apple Developer Program
    • Apple Developer Enterprise Program
    • App Store Small Business Program
    • MFi Program(영문)
    • News Partner Program(영문)
    • Video Partner Program(영문)
    • Security Bounty Program(영문)
    • Security Research Device Program(영문)
    메뉴 열기 메뉴 닫기
    • Apple과의 만남
    • Apple Developer Center
    • App Store 어워드(영문)
    • Apple 디자인 어워드
    • Apple Developer Academy(영문)
    • WWDC
    Apple Developer 앱 받기
    Copyright © 2025 Apple Inc. 모든 권리 보유.
    약관 개인정보 처리방침 계약 및 지침