구매자 SDK 광고 형식

구매자 SDK 광고는 자체 SDK로 렌더링된 광고 소재를 사용합니다.

입찰을 통합하는 게시자의 모바일 앱 인벤토리 어댑터가 입찰가를 수락하도록 앱에 직접 삽입해야 합니다. 광고를 게재할 수 있습니다. 렌더링 방식은 SDK 구현과 SDKRenderedAd 입찰 응답입니다.

구매자 SDK 렌더링 광고 또는 다른 광고로 입찰할 수 있습니다. 형식 Google 모바일 광고 SDK에서 지원되지만 두 개가 모두 포함된 입찰이 필터링됩니다.

요구사항

구매자 SDK 광고는 승인된 구매자에게 제공됩니다. 이 형식에는 도움이 될 수 있습니다 기술계정 관리자에게 문의하여 구매자 SDK 광고를 위한 계정을 구성하세요. 그런 다음 입찰 전략에서 이 어댑터는 SDK가 Google 모바일 광고 SDK와 통신할 수 있습니다 게시자는 모바일 앱에 연결해야 합니다.

광고 인벤토리나 리뷰 를 포함하는 것이 좋습니다. 기술계정 관리자에게 문의 알 수 없는 경우에 유용합니다.

입찰 요청에서 이 광고 형식을 지원하는 경우 입찰 시 sdk_rendered_ad 필드를 설정하여 응답을 참조하세요.

입찰 요청

모바일 앱 인벤토리의 입찰 요청에는 SDK 및 다음에서 렌더링에 사용할 수 있는 게시자 앱의 어댑터 필드:

SDK ID

입찰 요청을 사용하여 입찰에 제공해야 하는 id을(를) 찾을 수 있습니다. 설정합니다.

다음 필드를 참고하세요.

  • OpenRTB: BidRequest.app.ext.installed_sdk
  • Google RTB 프로토콜 (지원 중단됨): BidRequest.mobile.installed_sdk

InstalledSdk 메시지에 관한 자세한 내용은 OpenRTBGoogle 프로토콜 가이드를 참조하세요.

광고 단위 매핑

입찰 요청을 사용하여 입찰 슬롯과 일치하는 광고 단위 매핑을 읽을 수 있습니다.

다음 필드를 참고하세요.

  • OpenRTB: BidRequest.imp.ext.ad_unit_mapping
  • Google RTB 프로토콜 (지원 중단됨): BidRequest.AdSlot.ad_unit_mapping

AdUnitMapping 객체에 관한 자세한 내용은 OpenRTB Google 프로토콜 가이드를 참조하세요.

보안 처리된 신호

게시자는 입찰자에게 보안 처리된 신호를 공유할 수 있습니다. 다음 위치에서 읽을 수 있습니다. OpenRTB의 BuyerGeneratedRequestData 객체 또는 지원 중단된 Google RTB 프로토콜의 SecureSignal 객체입니다.

다음 필드를 참고하세요.

  • OpenRTB: BidRequest.imp.ext.buyer_generated_request_data.data
  • Google RTB 프로토콜 (지원 중단됨): BidRequest.AdSlot.SecureSignal.data

보안 신호가 표시되는 방식에 대한 자세한 내용은 OpenRTB Google 프로토콜 가이드를 참조하세요.

테스트 요청

'테스트 요청' 입력란을 보면 입찰 요청이 테스트

다음 필드를 참고하세요.

  • OpenRTB: BidRequest.test
  • Google RTB 프로토콜 (지원 중단됨): BidRequest.is_test

Test 필드에 관한 자세한 내용은 다음을 참고하세요. OpenRTB Google 프로토콜 가이드를 참조하세요.

샘플 입찰 요청

id: "<bid_request_id>"
imp {
  id: "1"
  banner {
    w: 320
    h: 50
    ...
  }
...
  adx_ext {
   ...
    ad_unit_mapping {
      keyvals {
        key: "key_1"
        value: "value_1"
      }
      keyvals {
        key: "key_2"
        value: "value_2"
      }
      ...
      format: FORMAT_BANNER
    }
  }
}
app {
 ...
  adx_ext {
    installed_sdk {
      id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
      sdk_version {
        major: 1
        minor: 2
        micro: 30
      }
      adapter_version {
        major: 1
        minor: 2
        micro: 3000
      }
    }
    installed_sdk {
    ...
    }
    ...
  }
}
device {
  ...
}
user {
  ...
  }
  adx_ext {
    eids {
      source: "com.google.ads.mediation.partner.PartnerMediationAdapter"
      uids {
        id: "<partner_signal_string>"
      }
    }
  }
}
at: 1
tmax: 1000
cur: "USD"
test: 1
...
adx_ext {
  google_query_id: "<query_string>"
  ...
}

입찰 응답

입찰 응답에서 필수 필드는 다음과 같습니다.

  • 공개 RTB: <ph type="x-smartling-placeholder">
      </ph>
    • BidResponse.seatbid.bid.adomain
    • BidResponse.seatbid.bid.ext.billing_id
    • BidResponse.seatbid.bid.crid
    • BidResponse.seatbid.bid.w
    • BidResponse.seatbid.bid.h
  • Google RTB 프로토콜 (지원 중단됨): <ph type="x-smartling-placeholder">
      </ph>
    • BidResponse.Ad.click_through_url
    • BidResponse.Ad.AdSlot.billing_id
    • BidResponse.Ad.buyer_creative_id
    • BidResponse.Ad.width
    • BidResponse.Ad.height

또한 입찰 응답에 SdkRenderedAd가 포함되어야 합니다. 있습니다.

SDK ID

id 필드를 사용하여 광고를 렌더링할 SDK의 ID를 제공합니다.

다음 필드가 포함된 입찰 요청에서 ID를 찾을 수 있습니다.

  • OpenRTB: BidRequest.app.ext.installed_sdk
  • Google RTB 프로토콜 (지원 중단됨): BidRequest.mobile.installed_sdk

InstalledSdk 메시지에 관한 자세한 내용은 OpenRTB Google 프로토콜 가이드를 참조하세요.

선언된 광고

declared_ad 필드를 사용하여 입찰 요청의 CreativeEnforcementSettings 요건이 충족되며 광고의 사용할 수 있습니다. html_snippet, video_url, video_vast_xml 또는 native_response가 채워져야 합니다.

declared_ad을(를) 채우지 않으면 Google에서 광고 소재를 검토할 수 없으며 광고 소재의 모든 입찰이 입찰에서 필터링됩니다.

데이터 렌더링

rendering_data 필드를 사용하여 구매자 SDK가 다음을 수행할 데이터를 제공합니다. 사용할 수 있습니다.

  • OpenRTB: BidResponse.seatbid.bid.ext.sdk_rendered_ad.rendering_data
  • Google RTB 프로토콜 (지원 중단됨): BidResponse.ad.sdk_rendered_ad.rendering_data

구매자 SDK 광고를 게재하기 위한 입찰은 declared_ad에서 광고 소재를 지정해야 합니다. 필드를 확인합니다. 선언된 광고는 rendering_data를 정확하게 나타내야 합니다.

다음은 샘플 SdkRenderedAd 객체입니다.

{
  "id": "1234567",
  "rendering_data": "\xd58...,\xd4\x89\xd\xf9",
  "declared_ad": {
    "html_snippet": "<iframe src=\"https://example.com/ads?id=123&
      curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>",
  }
}

실시간 입찰 API를 사용하여 리뷰 를 포함하는 것이 좋습니다.

자세한 내용은 GoogleOpenRTB 프로토콜 가이드 SdkRenderedAd 필드에 대한 자세한 내용을 확인하세요.

샘플 입찰 응답

다음은 각 광고 형식에 대한 샘플 입찰 응답입니다.

id: "<bid_request_id>"
seatbid {
  bid {
    id: "<bidder_generated_response_id>"
    impid: "1"
    price: 99
    adomain: "https://play.google.com/store/apps/details?id=com.test.app"
    cid: "<billing_id>"
    crid: "<creative_id>"
    w: 320
    h: 50
    burl: "https://abc.com/billing?td=fn&win_price=${AUCTION_PRICE}"
    adx_ext {
      sdk_rendered_ad {
        id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
        rendering_data: "<rendering_data_string>"
        declared_ad {
          click_through_url: "https://play.google.com/store/apps/details?id=com.test.app"
          html_snippet: "<!doctype html> <html> ... </html>"
        }
      }
      event_notification_token {
        payload: "<payload_string>"
      }
      billing_id: 141763360450
    }
  }
}
bidid: "<bidder_generated_response_id>"
cur: "USD"

전면 광고

id: "<bid_request_id>"
seatbid {
  bid {
    id: "<bidder_generated_response_id>"
    impid: "1"
    price: 400
    adomain: "https://play.google.com/store/apps/details?id=com.test.app"
    cid: "<billing_id>"
    crid: "<creative_id>"
    w: 412
    h: 775
    adx_ext {
      sdk_rendered_ad {
        id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
        rendering_data: "<rendering_data_string>"
        declared_ad {
          click_through_url: "https://play.google.com/store/apps/details?id=com.test.app"
          video_vast_xml: "<VAST version=\"2.0\"><Ad>...</Ad></VAST>"
        }
      }
      event_notification_token {
        payload: "<payload_string>"
      }
    }
  }
}
bidid: "<bidder_generated_response_id>"
cur: "USD"

보상형 동영상

id: "<bid_request_id>"
seatbid {
  bid {
    id: "<bidder_generated_response_id>"
    impid: "1"
    price: 400
    adomain: "https://play.google.com/store/apps/details?id=com.test.app"
    cid: "<billing_id>"
    crid: "<creative_id>"
    w: 412
    h: 775
    adx_ext {
      sdk_rendered_ad {
        id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
        rendering_data: "<rendering_data_string>"
        declared_ad {
          click_through_url: "https://play.google.com/store/apps/details?id=com.test.app"
          video_vast_xml: "<VAST version=\"2.0\"><Ad>...</Ad></VAST>"
        }
      }
      event_notification_token {
        payload: "<payload_string>"
      }
    }
  }
}
bidid: "<bidder_generated_response_id>"
cur: "USD"

네이티브

id: "<bid_request_id>"
seatbid {
  bid {
    id: "<bidder_generated_response_id>"
    impid: "1"
    price: 400
    adomain: "https://play.google.com/store/apps/details?id=com.test.app"
    cid: "<billing_id>"
    crid: "<creative_id>"
    w: 1200
    h: 627
    adx_ext {
      sdk_rendered_ad {
        id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
        rendering_data: "<rendering_data_string>"
        declared_ad {
          click_through_url: "https://play.google.com/store/apps/details?id=com.test.app"
          native_response {
            ...
            assets {
              id: 1
              title {
                text: ""
              }
            }
            assets {
              id: 2
              data {
                value: "<some_string>"
              }
            }
            assets {
              id: 3
              data {
                value: "View now"
              }
            }
            assets {
              id: 4
              img {
                url: "<valid_image_url>"
                w: 1200
                h: 627
                type: 3
              }
            }
            assets {
              id: 5
              img {
                url: "<valid_image_url>"
                w: 100
                h: 100
                type: 1
              }
            }
            assets {
              id: 6
              data {
                value: ""
              }
            }
            assets {
              id: 7
              data {
                value: "<some_string>"
              }
            }
            link {
              url: "<destination_link>"
            }
          }
        }
      }
      event_notification_token {
        payload: "<payload_string>"
      }
    }
  }
}
bidid: "<bidder_generated_response_id>"
cur: "USD"

광고 소재 검토

광고 소재는 게재 전에 Google의 정책 및 게시자 설정을 변경할 수 있습니다.

검토를 위해 광고 소재를 제출하는 방법에는 다음 두 가지가 있습니다.

실시간 입찰 API (권장)

buyers.creatives.create 드림 실시간 입찰 API의 메서드를 호출하여 검토를 위해 광고 소재를 제출합니다.

API는 광고 소재당 한 번만 제출하면 되며, 확인할 수 있습니다.

입찰 응답

입찰 응답에서 새 광고 소재를 바로 제출할 수 있습니다.

SdkRenderedAd 객체의 declared_ad 필드를 사용하여 제출해야 합니다. 검토를 위해 구매자 SDK 광고 소재가 포함된 입찰 응답을 전송합니다.

입찰 응답에 제출된 광고 소재는 여러 입찰 후에만 검토됩니다. 검토가 완료되기 전에 게재된 모든 입찰은 입찰에서 필터링됩니다. 실시간 입찰 인터페이스를 사용하여 또는 실시간 입찰 API 광고 소재의 상태를 확인할 수 있습니다.

다음 광고 소재 가이드에서 확인하세요.