Protected Audience 미디에이션을 사용한 여러 판매자 입찰 지원

의견 보내기

판매 측 광고 플랫폼은 일반적으로 광고 수익을 극대화할 수 있도록 광고 수요 소스를 다각화합니다. 광고 미디에이션을 사용하면 광고 네트워크 또는 서비스가 여러 광고 네트워크를 호출하여 지정된 광고 슬롯에 가장 적합한 광고를 결정합니다. 이 제안서에서는 Android의 Protected Audience API를 확장하여 개인 정보를 보호하는 방식으로 폭포식 구조 미디에이션 기능을 구현하는 방법을 소개합니다. 오늘날 광고 네트워크에서는 앱 개발자가 여러 광고 판매자의 광고 입찰에서 미디에이션할 수 있는 다양한 방법을 제공합니다.

  1. 폭포식 구조 미디에이션: 앱 개발자는 광고 네트워크를 순서가 지정된 목록으로 정의합니다. 대개 이 목록은 지정된 네트워크의 이전 eCPMs을 기준으로 순서가 지정됩니다. 이 목록을 미디에이션 체인이라고 합니다. 앱 개발자의 미디에이션 플랫폼은 이 목록을 바탕으로 광고 네트워크를 나열된 순서대로 호출하여 관련 광고 수요 소스를 확인합니다.
  2. 프로그래매틱 미디에이션: 광고 기회 입찰에 참가하는 여러 광고 네트워크를 앱 개발자가 구성합니다. 이러한 네트워크에서는 기회의 가치 평가 방식에 따라 실시간으로 입찰할 수 있습니다.
  3. 하이브리드 미디에이션: 폭포식 구조 미디에이션과 프로그래매틱 미디에이션 기법이 조합된 형태입니다.

폭포식 구조 미디에이션

폭포식 구조 미디에이션에서 광고 기회가 발생하면 광고 SDK가 백엔드 서버에 요청을 보냅니다. 서버는 낙찰된 광고 소재로 요청에 응답하는 대신, 이전 eCPM에 따라 정렬된 광고 네트워크 목록을 포함하는 미디에이션 체인으로 응답합니다.

폭포식 구조 미디에이션 모델의 다이어그램
그림 1. 폭포식 구조 미디에이션 모델

기존 폭포식 구조 모델에서는 광고 SDK가 미디에이션 체인에 지정된 순서대로 각 광고 네트워크(또는 자체 입찰 SDK)를 호출합니다. 광고 네트워크가 광고 요청을 충족할 수 있는 경우 광고 네트워크는 그 광고를 렌더링합니다. 그러지 않으면 체인의 다음 네트워크로 요청이 전송됩니다. 이 프로세스는 요청이 처리되거나 체인이 소진될 때까지 반복됩니다.

폭포식 구조 미디에이션은 보통 퍼스트 파티 광고 수요 소스의 eCPM 재평가에 따라 정기적으로 미디에이션 체인의 순서를 다시 지정하는 방법으로 최적화합니다.

프로그래매틱 미디에이션

프로그래매틱 미디에이션('헤더 입찰'이라고도 함)은 광고 요청을 처리할 기회를 얻을 광고 네트워크를 결정할 때 이전 eCPM을 사용하는 방식을 대체합니다. 프로그래매틱 미디에이션에서는 제공업체가 실시간 입찰가를 대신 사용하여 낙찰된 광고를 찾습니다.

프로그래매틱 미디에이션 모델의 다이어그램
그림 2: 프로그래매틱 미디에이션 모델

하이브리드 미디에이션

일부 프로그래매틱 미디에이션 솔루션은 폭포식 구조와 입찰의 하이브리드 모드에서 광고 네트워크를 결합하여, 광고를 더욱 세부적으로 관리하면서도 실시간 eCPM을 사용하여 참여 광고 네트워크의 수익을 극대화하는 이점을 얻습니다.

하이브리드 미디에이션 모델에서는 광고 네트워크와 미디에이션 제공업체가 폭포식 구조 요소와 실시간 입찰 요소를 통합하여 앱 개발자의 유연성을 높일 수 있습니다. 하이브리드 모델을 사용하면 앱 개발자는 이전 eCPM을 기반으로 광고 네트워크를 구성하여 이들에게 광고를 게재할 기회를 먼저 주고, 그다음에 참여 네트워크에서 실시간 입찰을 실행하여 광고 기회를 채울 수 있습니다.

Protected Audience 폭포식 구조 미디에이션

Android의 Protected Audience API는 여러 입찰(미디에이션 그래프의 개별 노드와 관련된 각각의 입찰)을 진행해 폭포식 구조 미디에이션을 지원합니다. 입찰에서 낙찰자가 없는 경우 체인이 소진될 때까지 그다음 네트워크 입찰 노드가 호출됩니다. 폭포식 구조 미디에이션 프로세스는 다음과 같습니다.

  1. 미디에이션 SDK가 문맥 광고 서버 엔드포인트에서 미디에이션 체인을 가져옵니다. 이 엔드포인트는 문맥 광고 또는 미디에이션 체인을 반환할 수 있습니다.
  2. 광고 서버 엔드포인트가 미디에이션 체인을 반환하면 미디에이션 SDK는 체인의 각 항목을 순서대로 반복하며 참여 광고 네트워크의 SDK를 호출하여 문맥 광고 및 리마케팅 광고 선택을 실행합니다. 체인의 각 항목은 특정 노출수, 클릭수 또는 광고 시간에 따른 특정 가격으로 광고 공간을 구매하고자 하는 광고 네트워크의 요청을 나타냅니다.
  3. 체인의 광고 항목 중에서 낙찰된 광고를 선택하는 항목이 없는 경우, 미디에이션 SDK는 리마케팅 광고와 문맥 광고를 모두 고려하는 Protected Audience 광고 선택을 실행하여 자체 광고 네트워크에서 광고를 표시할 수도 있습니다.

Protected Audience의 폭포식 구조 미디에이션 흐름 다이어그램
그림 3. Protected Audience API를 사용한 폭포식 구조 미디에이션

위 다이어그램은 미디에이션 SDK가 구현할 수 있는 폭포식 구조 미디에이션 알고리즘의 예를 보여주지만, 여기에는 퍼스트 파티 광고 네트워크의 최적화 기능이 없습니다. Protected Audience API는 광고 선택 워크플로의 체인을 허용하고 낙찰된 노출을 보고함으로써 퍼스트 파티 광고 네트워크 최적화를 지원합니다.

AdSelection Outcome

selectAds()의 반환 유형은 AdSelectionOutcome 객체입니다. AdSelectionOutcome에는 낙찰된 광고의 렌더링 URI와 함께, 낙찰된 광고 항목의 광고 소재를 식별하는 불투명 정수 AdSelectionId가 포함되어 있습니다.

AdSelectionOutcome {
  Uri renderUri;
  Long AdSelectionId;
}

AdSelectionIdAdSelectionOutcome을 가리키는 포인터 역할을 합니다. 현재 AdSelectionIdreportResult() 메서드에 ReportImpressionInput 매개변수로 전달되어, reportWin()reportResult() 메서드가 호출되는 정확한 광고를 식별하는 데 도움이 됩니다.

체인 광고 선택 제안서

AdSelectionFromOutcomesConfigselectAds()를 오버로드하는 것이 좋습니다.

val config = AdSelectionFromOutcomesConfig.Builder()
        .setSeller(seller)
        .setAdSelectionIds(listOf(outcome1pAdSelectionId))
        .setSelectionSignals({"bid_floor": bidFloorOfNextNetworkInline})
        .setSelectionLogicUri(selectionLogicUri)
        .build()
adSelectionClient.selectAds(config)

이렇게 하면 미디에이션 SDK가 낙찰된 광고의 입찰가를 다음 인라인 네트워크의 입찰가 하한선과 비교할 수 있습니다.

예시 1:

예시 2:

낙찰된 노출 보고

selectAds(AdSelectionFromOutcomes)에서 낙찰된 광고가 있으면 해당 광고가 미디에이션에서 낙찰됩니다. 그런 다음 selectAds(AdSelectionFromOutcomes)에서 낙찰된 광고의 광고 선택 ID 및 상응하는 AdSelectionConfig를 사용하여 reportImpression이 호출됩니다.

낙찰자가 네트워크의 selectAds(AdSelectionConfig)에서 반환되면 해당 호출의 광고 선택 ID와 구성을 사용하여 reportImpression이 호출됩니다.

폭포식 구조 미디에이션 실행

폭포식 구조 미디에이션 프로세스를 통해 실행하기 위한 작업 순서는 다음과 같습니다.

  1. 퍼스트 파티 광고 선택을 실행합니다.
  2. 미디에이션 체인을 반복합니다. 서드 파티 네트워크마다 다음을 실행합니다.
    1. 퍼스트 파티 outcomeId 및 서드 파티 SDK의 입찰가 하한선을 포함한 AdSelectionFromOutcomeConfig를 빌드합니다.
    2. 이전 단계의 configselectAds()를 호출합니다.
    3. 결과가 비어 있지 않으면 광고를 반환합니다.
    4. 현재 SDK 네트워크 어댑터의 selectAds() 메서드를 호출합니다. 결과가 비어 있지 않으면 광고를 반환합니다.
  3. 체인에서 낙찰자가 없으면 퍼스트 파티 광고를 반환합니다.

권장사항

퍼스트 파티 최적화 전에 문맥 입찰 실행

리마케팅 수요는 높은 입찰가를 생성하여 미디에이션 체인에서 낙찰 성과를 낳을 수 있습니다. 잘림은 리마케팅 잠재고객 목록을 미세 조정하여 퍼스트 파티 최적화를 실현하는 데 자주 사용되는 프로세스입니다.

Protected Audience API 리마케팅 수요는 Protected Audience 입찰을 통해 클라이언트 측에서만 사용할 수 있습니다. 따라서 서버 측에서 퍼스트 파티 최적화를 실행하기가 어려울 수 있습니다. 퍼스트 파티 최적화 문제를 해결하려면 먼저 문맥 입찰을 실행한 다음, 이 페이지의 앞부분에서 설명한 것처럼 낙찰된 광고 결과에 따라 퍼스트 파티 최적화를 실행합니다.

기기 내 미디에이션 체인을 작게 유지

최적의 성과를 얻으려면 기기 내 미디에이션 체인을 작게 유지해야 합니다. 기기 내 실행의 계산 비용은 미디에이션 체인의 일부로 실행되는 입찰 수에 선형일 수 있습니다. 즉, 노드가 많을수록 계산 주기 요구사항이 늘어나고 지연 시간도 증가합니다. 기기 내 미디에이션 실행에 노드를 전달할 때 지연 시간이 수익에 미치는 영향을 고려하세요.

추가 고려사항

Protected Audience API는 여러 광고 슬롯의 미디에이션을 위한 포괄적 솔루션은 제공하지 않습니다. 각 광고 슬롯은 독립적으로 처리되어야 합니다.

Protected Audience Mediation API는 폭포식 구조 미디에이션과 제한된 프로그래매틱 미디에이션을 지원합니다. 추가적 프로그래매틱 미디에이션의 사용 사례 지원에 관한 자세한 내용은 향후에 공유할 예정입니다.

문맥 광고를 가져온 후 Protected Audience 광고 선택이 실행되므로 Protected Audience API를 호출할 경우 광고 요청의 엔드 투 엔드 지연 시간에 영향을 줄 수 있습니다.