Singular의 SKAdNetwork 솔루션과 연동 파트너가 되는 방법을 안내합니다. 별도의 문서인 어트리뷰션과 연동하기에서 별도의 필수 연동 사항 부분도 확인하세요.
고객사라면 본 문서 대신 Singular의 SKAdNetwork 솔루션을 확인하세요.
SKAdNetwork란 무엇인가요?
Apple이 도입한 App Tracking Transparency는 전통적인 유저 레벨 모바일 측정 방식을 제한합니다. 2021년 초부터 (Apple의 2020년 9월 3일 업데이트 참조) iOS 광고 식별자(IDFA)는 데이터 공유를 동의(옵트인)한 유저에서만 사용 가능합니다. 전통적인 방법으로 캠페인을 측정하던 광고주는 iOS 디바이스에 의존도가 높은 시장에서 캠페인 성과 데이터의 일부분만 받을 수 있게 됩니다.
이의 대안으로 Apple은 집계 캠페인 측정을 위한 프라이버시 중심 프레임워크인 SKAdNetwork를 제공합니다. SKAdNetwork는 iOS 11.3에서 소개된 이후 iOS 14에서 상당 부분 업데이트(SKAdNetwork 2.0 버전)되었습니다.
SKAdNetwork를 등록한 광고 네트워크 파트너는 유저의 데이터 공유 동의 여부과 무관하게 자동으로 "SKAdNetwork 포스트백"을 전달받습니다.
Singular의 SKAdNetwork 솔루션과 연동해야 하는 이유는 무엇인가요?
2020년 9월 3일 업데이트: 특정 프라이버시 기능 도입에 대한 Apple의 지연 안내와 AppTrackingTransparency 동작 업데이트에 따라 아래 답변은 여전히 iOS 14 런칭과 관련이 있습니다. IDFA는 내년 초까지는 전통적인 트래킹 방식으로 사용 가능하지만 Apple은 SKAdNetwork를 통한 프라이버시 중심 측정의 사용을 강조하고 있습니다. Singular는 광고주가 SKAdNetwork 측정에 의존하게 될 내년 초 시점에 대비하서 파트너가 가급적 빠른 시일 내에 SKAdNetwork(및 Singular)와 연동할 수 있도록 최선을 다하고 있습니다. 또한 이 지연 사항은 업계가 IDFA 기반 어트리뷰션과 병행하여 SKAdNetwork 데이터를 완전히 이해할 수 있는 귀중한 기회이기도 합니다. 블로그 포스트에서 해당 주제와 관련한 내용을 더 확인하세요.
SKAdNetwork는 그 자체로 광고주, 퍼블리셔, 광고 네트워크 및 모바일 측정 제공 업체간에 핵심 성과 데이터를 분산시켜 광고주가 마케팅 의사 결정에 필요한 데이터에 접근하는 것을 보다 어렵게 합니다.
Singular의 SKAdNetwork 솔루션인 SKAN은 광고주가 유저 디바이스, 광고 네트워크 및 MMP인 Singular 간의 정보를 교환해서 광고주에게 필요한 데이터를 수집합니다.
- SKAdNetwork 포스트백이 디바이스로부터 광고 네트워크와 MMP에 전송됨
- 전환값과 해당 값의 의미가 MMP로부터 광고 네트워크에 전달됨
- 캠페인 ID와 해당 값의 의미가 광고 네트워크로부터 MMP에 전달됨
Singular의 보안 SKAN 내에서의 데이터 플로우 다이어그램
Singular의 SKAdNetwork 솔루션 연동에는 무엇이 포함되나요?
Singular의 SKAdNetwork 솔루션 연동은 Singular와의 일반적인 어트리뷰션 연동과는 별도의 프로세스입니다. Singular의 SKAdNetwork 솔루션과 아래의 과정처럼 연동하기 위해서는 정상 동작하는 Singular와의 어트리뷰션 연동이 선행되어야 합니다.
1. SKAdNetwork 등록
광고 네트워크 파트너는 SKAdNetwork 사용 전 Apple에 등록을 해야 합니다. Apple은 등록된 파트너에게 "ad network ID"를 발급합니다.
2. SKAdNetwork 포스트백 처리
옵션 A (권장 사항): 보안 SKAN
메서드 | 307 Redirect |
리디렉션 URL | https://skadnetwork.singular.net/api/v1/skan_postback |
307 redirect를 사용해서 Singular가 디바이스에서 전송한 SKAdNetwork 포스트백과 동일한 포스트백을 받도록 허용합니다.
Singular를 MMP로 사용하는 고객사를 위한 SKAdNetwork 포스트백을 받으면 307 redirect을 사용해서 Singular가 SKAdNetwork 포스트백과 동일한 포스트백을 받도록 허용합니다. 해당 포스트백을 Singular의 skan_postback 전용 엔드포인트로 리디렉션하세요.
옵션 B: SKAdNetwork 포스트백 컨텐츠를 Singular로 전송
메서드 | POST request |
엔드포인트 URL | https://skadnetwork.singular.net/api/v1/skan_postback |
페이로드 | SKAdNetwork에서 받은 전체 페이로드 포스트백 |
광고 네트워크 파트너로서 skan_postback 엔드포인트를 사용해서 SKAdNetwork로부터 받은 전체 페이로드를 포함한 수정되지 않은 포스트백을 Singular에 보낼 수 있습니다. 포스트백은 추가 파라미터 역시 포함해야 합니다.
Singular로 보내는 포스트백은 다음과 같은 형태입니다.
{
"version": "2.0",
"ad-network-id": "com.example",
"campaign-id": 42,
"transaction-id": "6aafb7a5-0170-41b5-bbe4-fe71dedf1e28",
"app-id": 525463029,
"attribution-signature": "MDYCGQCsQ4y8d4BlYU9b8Qb9BPWPi+ixk\/OiRysCGQDZZ8fpJnuqs9my8iSQVbJO\/oU1AXUROYU=",
"redownload": 1,
"source-app-id": 1234567891,
"conversion-value": 20,
"skan_ip": "136.25.2.194",
"skan_timestamp": 1601555400,
"adn_campaign_id": "102",
"adn_campaign_name": "My Campaign"
}
더 자세한 정보를 파라미터 레퍼런스에서 확인할 수 있습니다..
3. 전환 이벤트 포스트백 처리
Singular에 위 옵션 중 하나를 선택하여 SKAdNetwork 포스트백을 보낸 이후, Singular는 SKAdNetwork 전환 이벤트에 대한 정보를 포함한 알림 포스트백을 파트너사로 전송합니다.
이는 일반적으로 ID, 혹은 핑거프린트 기반의 어트리뷰션 및 이벤트에 기반한 포스트백을 전송하던 Singular의 기존 포스트백과 마찬가지로 귀사에서 전환 정보를 저장하고 처리할 수 있도록 합니다.
Singular는 귀사의 프로세스에 적합하도록 포스트백을 받기를 희망하는 엔드포인트와 포스트백 템플릿 설정을 귀사의 팀과 논의하고 작업할 예정입니다.
주의: SKAdNetwork 전환 포스트백은 Singular와 어트리뷰션 연동으로 받고 있던 어트리뷰션 및 이벤트 포스트백과는 완전히 별개(별도 설정도 필요)입니다.
일례로 Singular가 파트너사에게 보내는 포스트백은 다음과 같은 형태입니다. (Singular 포스트백 매크로 신택스)
{
"transaction-id": {SKAN_POSTBACK.TRANSACTION_ID},
"conversion_event":{CONVERSION.PARTNER_CONVERSION_NAME},
"is_attributed":{SKADNETWORK_IS_VALID},
"original-conversion-value":{SKAN_POSTBACK.CONVERSION_VALUE},
"mmp-conversion-name":{CONVERSION.ADVERTISER_CONVERSION_NAME},
"mmp-conversion-value":{CONVERSION.ADVERTISER_CONVERSION_VALUE},
"mmp-conversion-currency":{CONVERSION.ADVERTISER_CONVERSION_CURRENCY},
"advertiser-app":{SKAN_POSTBACK.APP_ID},
"attribution-type":"skadnetwork",
"mmp":"singular"
}
레퍼런스 항목에서 SKAdNetwork 컨버전 이벤트 포스트백에 지원하는 전체 매크로를 확인하세요.
4. Campaign ID 처리
SKAdNetwork 포스트백을 Singular로 리포팅하기 위해 보안 SKAN 메서드를 사용한다면 Singular skan_campaign_info API를 통해 SKAdNetwork 캠페인 ID와 해당 의미를 보내서 광고주가 가치 높은 캠페인 성과 정보를 받도록 할 수 있습니다.
Singular의 SKAdNetwork 솔루션과 연동하고 싶습니다. 어떻게 시작하나요?
- 준비 사항:
- 광고 네트워크가 Singular 어트리뷰션과 연동되어 있는지 확인합니다.
- SKAdNetwork에 등록하고 Apple이 발급한 "ad network ID"를 확인합니다.
- 요구 사항 수집: Singular SKAdNetwork 연동이란? 문서를 확인하고 연동 세부 사항과 사용 가능한 옵션을 이해합니다.
- Singular의 SKAdNetwork 솔루션 연동 서식을 작성합니다.
- Singular 연동팀의 답신 수신: Singular 연동 팀은 귀사의 서식을 확인하고 질문 사항이 있거나 필요 정보를 모두 받았는지 답변합니다.
- 연동 테스트: 연동을 진행한 이후 Singular는 귀사 측에서 연동을 테스트할 수 있는 방법에 대해 안내합니다.
레퍼런스: SKAdNetwork 포스트백
이 항목은 Singular가 Singular로의 인바운드 SKAdNetwork 포스트백(디바이스 → Singular, 광고 네트워크 → Singular)를 위해 지원하는 API 엔드포인트와 파라미터를 안내합니다.
엔드포인트: https://skadnetwork.singular.net/api/v1/skan_postback
메서드: POST
파라미터:
*는 필수 값을 의미합니다.
소스 | 파라미터 | 파라미터 정의 | 유형 |
SKAdNetwork | version * | SKAdNetwork 포스트백의 "version" SKAdNetwork 2.0 버전 필요 | String |
SKAdNetwork | ad-network-id * | SKAdNetwork 포스트백의 "ad-network-id" | String |
SKAdNetwork | transaction-id * | SKAdNetwork 포스트백의 "transaction-id" | String |
SKAdNetwork | campaign-id * | SKAdNetwork 포스트백의 "campaign-id" | Integer |
SKAdNetwork | app-id * | SKAdNetwork 포스트백의 "app-id" | Integer |
SKAdNetwork | attribution-signature * | SKAdNetwork 포스트백의 "attribution-signature" | String |
SKAdNetwork | redownload * | SKAdNetwork 포스트백의 "redownload" SKAdNetwork 2.0 버전 필요 | Integer |
SKAdNetwork | source-app-id * | SKAdNetwork 포스트백의 "source-app-id" SKAdNetwork 2.0 버전 필요 | Integer |
SKAdNetwork | conversion-value * | SKAdNetwork 포스트백의 "conversion-value" SKAdNetwork 2.0 버전 필요 | Integer |
Ad Network | skan_timestamp * | SKAdNetwork 포스트백이 수신된 타임스탬프, Unix 포맷(초) | Integer |
Ad Network | skan_ip * | SKAdNetwork 포스트백 송신자의 IP 주소 | String |
Ad Network | adn_campaign_id * | 캠페인 ID | String |
Ad Network | adn_campaign_name * | 캠페인 이름 | String |
Ad Network | adn_creative_id | 크리에이티브 ID | String |
Ad Network | adn_creative_name | 크리에이티브 name | String |
Ad Network | adn_sub_campaign_id | 서브캠페인 ID. "ad group"이나 "ad set"의 표시도 가능 | String |
Ad Network | adn_sub_campaign_ name | 서브캠페인 이름. "ad group"이나 "ad set"의 표시도 가능 | String |
Ad Network | adn_sub_adnetwork_ name | 서브 광고 네트워크, 광고 네트워크 계층의 추가적인 레벨 표시도 가능 | String |
레퍼런스: 전환 이벤트 포스트백
상세 요구 사항 (Singular → 광고 네트워크)
이 항목은 This section documents available values that Singular can include in Singular로부터 파트너로 보내는 SKAdNetwork 전환 이벤트 포스트백에 포함할 수 있는 값을 안내합니다. 광고 네트워크에 전환값(conversion value) 정보를 제공하기 위한 목적입니다.
본 값은 GET와 POST 페이로드 양측 모두에서 사용 가능합니다..
소스 | 값 | 값 정의 | 유형 |
SKAdNetwork | {SKAN_POSTBACK.VERSION} | SKAdNetwork 포스트백의 "version" from the SKAdNetwork 2.0 버전에서 사용 가능 | String |
SKAdNetwork | {SKAN_POSTBACK. AD_NETWORK_ID} | SKAdNetwork 포스트백의 "ad-network-id" | String |
SKAdNetwork | {SKAN_POSTBACK. CAMPAIGN_ID} | SKAdNetwork 포스트백의 "campaign-id" | Integer |
SKAdNetwork | {SKAN_POSTBACK. TRANSACTION_ID} | SKAdNetwork 포스트백의 "transaction-id" | String |
SKAdNetwork | {SKAN_POSTBACK.APP_ID} | SKAdNetwork 포스트백의 "app-id" | Integer |
SKAdNetwork | {SKAN_POSTBACK. ATTRIBUTION_SIGNATURE} | SKAdNetwork 포스트백의 "attribution-signature" | String |
SKAdNetwork | {SKAN_POSTBACK. REDOWNLOAD} | SKAdNetwork 포스트백의 "redownload" SKAdNetwork 2.0 버전에서 사용 가능 | Integer |
SKAdNetwork | {SKAN_POSTBACK. SOURCE_APP_ID} | SKAdNetwork 포스트백의 "source-app-id" SKAdNetwork 2.0 버전에서 사용 가능 | Integer |
SKAdNetwork | {SKAN_POSTBACK. CONVERSION_VALUE} | SKAdNetwork 포스트백의 "conversion-value" SKAdNetwork 2.0 버전에서 사용 가능 | Integer |
SKAdNetwork | {ATTRIBUTION_IP} | SKAdNetwork 포스트백의 IP 예: 136.25.2.194 | String |
Singular | {SKADNETWORK_IS_VALID} |
ISingular가 인스톨 서명을 검증할 수 있었는지 여부 (0 또는 1) | Integer |
Singular | {ATTRIBUTION_COUNTRY} | SKAdNetwork 포스트백의 IP에 기반한 2글자 국가 코드 (예: US) |
String |
Singular | {ATTRIBUTION_STATE} | SKAdNetwork 포스트백의 IP에 기반한 주/구 단위의 지역 예: California | String |
Singular | {ATTRIBUTION_CITY} | SKAdNetwork 포스트백의 IP에 기반한 시 단위의 지역 예: San Francisco | String |
Singular | {CONVERSION.PARTNER_ CONVERSION_NAME} | Singular에서 자동 매핑한 지원되는 전환 모델과 이름, 파트너로부터 지원되는 이벤트 이름 예: Partner Purchase Event | String |
Singular | {CONVERSION.ADVERTISER_ CONVERSION_NAME} | 광고주가 정의한 전환 이름 예: My Purchase Event | String |
Singular | {CONVERSION.ADVERTISER_ CONVERSION_VALUE} | 전환을 위해 광고주가 정의한 전환값(conversion value) 예: 5 | String |
Singular | {CONVERSION.ADVERTISER_ CONVERSION_CURRENCY} | 지원되는 전환 모델, 전환의 통화 코드 (주로 계정의 통화) 예: USD | String |
Singular | {CONVERSION.ADVERTISER_ CONVERSION_MODEL_TYPE} | 광고주가 사용하는 전환 모델 유형 예: Revenue | String |
Singular | {CONVERSION.ADVERTISER_ CONVERSION_MODEL_NAME} | 광고주가 전환 모델에 설정한 이름 예: 나의 IAP Revenue 모델 | String |
(추후 추가 예정) 레퍼런스: 캠페인 정보 API
Get_skan_campaign_info
특정 광고주의 SKAdNetwork 캠페인 ID와 관련된 Singular의 캠페인 정보 기록을 검색하려면 get_skan_campaign_info를 사용하세요.
Set_skan_campaign_info
특정 광고주의 SKAdNetwork 캠페인 ID와 관련된 Singular의 캠페인 정보 기록을 생성하고자 업데이트하려면 set_skan_campaign_info를 사용하세요.