네이티브 광고는 주변 콘텐츠와 시각적 요소에 어울리도록 형식이 지정된 광고입니다. 사용자가 보고 클릭할 가능성이 더 높도록 해야 합니다. 네이티브 광고 인벤토리는 모바일 앱, 데스크톱 및 모바일 웹사이트에서 사용할 수 있습니다. 네이티브 광고에 대한 자세한 내용은 네이티브 광고 개요 광고.
네이티브 광고는 Authorized Buyers와 공개 입찰
네이티브 광고의 워크플로는 다음과 같습니다.
- Google에 네이티브 광고가 호출됩니다. 이 호출은 아래 네이티브 광고 템플릿 중 하나 또는 둘 다(각각 선호하는 네이티브 필드를 사용합니다.
- Google은 구매자에게 확인할 수 있습니다
- 관심 있는 구매자가 요청한 필드로 응답합니다.
- Google은 입찰을 진행하여 낙찰가를 선정하고 게시자에게 전달됩니다.
- 게시자가 애셋을 네이티브 광고로 조합하고 스타일을 지정합니다. 사이트 디자인에 맞게 조정됩니다.
메시지 형식
Google은 OpenRTB 사양을 JSON 및 Protobuf에서 확인할 수 있습니다.
OpenRTB Protobuf 네이티브 광고의 경우 사양과 다른 필드는 다음과 같습니다.
JSON 사양 (PROTOCOL_OPENRTB_2_4) |
JSON 유형 | OpenRTB 구현 (PROTOCOL_OPENRTB_PROTOBUF_2_4) |
OpenRTB 유형 |
---|---|---|---|
BidRequest.imp[].native.request |
string |
BidRequest.imp[].native.request_native |
NativeRequest |
BidResponse.seatbid[].bid[].adm |
string |
BidResponse.seatbid[].bid[].adm_native |
NativeResponse |
OpenRTB 필드는 문자열이 아닌 Protobuf 메시지입니다.
OpenRTB Protobuf 구현을 사용하는 경우
BidRequest.imp[].native.request
이며 다음과 같이 응답해야 합니다.
BidResponse.seatbid[].bid[].adm_native
입니다. 다음으로 입찰 응답:
BidResponse.seatbid[].bid[].adm
이(가) 필터링되었습니다. OpenRTB에는 애셋 ID가 필요하지 않습니다.
Protobuf 입찰 응답입니다.
구매자 SDK를 사용하여 네이티브 광고를 렌더링하는 경우
다음과 같은 경우 declared_ad
에 이미지 type
를 포함해야 합니다.
검토를 위해 광고 소재를 제출하는 것이 좋습니다.
네이티브 광고 템플릿
Google은 동영상 및 동영상 이외의 광고에 가장 일반적으로 사용되는 두 가지 네이티브 광고 템플릿을 동영상 네이티브 광고:
- 앱 설치 광고 템플릿 - 홍보 모바일 앱 설치를 유도할 수 있습니다.
- 콘텐츠 광고 템플릿 - 더 일반적 브랜드 또는 웹 광고용 텍스트 및 이미지 조합
- 동영상 앱 설치 광고 템플릿
- 동영상 콘텐츠 광고 템플릿
다른 템플릿도 있으며 필드, 크기, 크기를 지정할 수 있습니다
앱 설치 광고 템플릿
필수 및 권장 필드
아래 표에는 필수 또는 권장 입력란이 표시되어 있습니다. 다음 규칙이 적용됩니다.
- 필수로 표시된 입력란은 입찰자가 필수 입력란입니다.
- 권장이라고 표시된 입력란은 입찰자가 반드시 제공하지 않아야 합니다. 제공되는 경우 게시자가 이를 표시하거나 표시하지 않을 수 있습니다 (예: 별표 평점).
- 클릭 유도 문구 (CTA)는 입찰자가 보내지 않은 경우 기본값이 할당되지만 항상 표시됩니다.
다음 표에는 앱 설치 광고 템플릿의 필드가 나와 있습니다. 모바일 앱에서는 이 필드를 사용하여 기본 앱 설치 광고를 생성합니다.
필드 | 설명 | 필수 또는 권장 | 항상 표시 여부 | 권장 이미지 크기/최대 글자 수 | 예 |
---|---|---|---|---|---|
광고 제목 | 앱 제목 | 필수 | 예 | 25자 | Flood-It! |
이미지 | 앱의 스크린샷 또는 다른 관련 이미지 | 필수 | 아니요 | 필요한 가로세로 비율에 따라 1,200px x 627px 또는 600px x 600px 확인할 수 있습니다 | <Flood-It! 게임의 스크린샷> |
본문 | 앱의 기본 텍스트 | 필수 | 아니요 | 90자(영문 기준) | 간단하지만 설레는 챌린지 = 유쾌하게 중독성 있는 게임 |
앱 아이콘 | 앱 아이콘 | 필수 | 아니요 | 128 x 128 px | <Flood-it! 앱 아이콘> |
클릭 유도 문구 | 선호하는 사용자 작업 | 추천 | 예 | 15자 | 설치 |
별표 평점 | 을 나타내는 별 개수 (0~5개) 앱 스토어의 앱 평점 | 추천 | 아니요 | 0~5명 | 4.5 |
가격 | 앱 비용 | 추천 | 아니요 | 15자 | 무료 |
텍스트 길이 관련 참고사항
구매자가 최대 문자 수를 제안하면 텍스트가 잘리고 Google 또는 게시자에 의해 생략된 것입니다. 잘린 부분은 중국어, 일본어, 한국어의 경우 크기가 절반으로 되어 있습니다. 예를 들어 제목 제한은 영어에서 90, 중국어에서 45입니다.
이미지 크기 관련 참고사항
게시자는 다음을 수행할 수 있습니다.
- 기본 이미지를 한 크기 (높이 또는 세로 방향)에서 최대 20% 까지 대칭으로 자릅니다 .
- 가로세로 비율을 변경하지 않고 이미지 크기를 조정합니다.
- 이미지의 가로세로 비율이 실제와 크게 다른 이미지 기준으로 필터링될 수 있습니다.
콘텐츠 광고 템플릿
다음 표에는 콘텐츠 광고 템플릿의 필드가 나와 있습니다. 게시자 이러한 입력란을 사용하여 네이티브 콘텐츠 광고를 만들 수 있습니다.
필드 | 설명 | 필수 또는 권장 | 항상 표시 여부 | 권장 이미지 크기/최대 글자 수 * | 예 |
---|---|---|---|---|---|
광고 제목 | 광고 헤더 | 필수 | 예 | 25자 | 최저 주택담보대출 금리 |
이미지 | 광고의 기본 이미지 | 필수 | 아니요 | 필요한 가로세로 비율에 따라 1,200px x 627px 또는 600px x 600px 확인할 수 있습니다 | <광고 기본 이미지> |
본문 | 광고 콘텐츠 | 필수 | 아니요 | 90자(영문 기준) | 생각보다 저렴하고 신속하게 브루클린의 즐거운 고향을 방문해 보세요. |
로고 | 광고주 로고 또는 다른 관련 작은 이미지 | 추천 | 아니요 | 128 x 128 px | <NY Mortgage Inc. 로고> |
클릭 유도 문구 | 사용자가 선호하는 작업 | 추천 | 아니요 | 15자 | 견적 받기 |
광고주 | 광고주 또는 브랜드를 식별하는 텍스트 | 필수 | 아니요 | 25자 | 뉴욕 모기지 주식회사 |
동영상 앱 설치 광고 템플릿
필드 | 설명 | 필수 또는 권장 | 항상 표시 여부 | 권장 이미지 크기/최대 글자 수 * | 예 |
---|---|---|---|---|---|
동영상 | 동영상 광고를 재생하는 데 필요한 모든 애셋이 포함된 동영상 VAST 응답입니다. | 필수 | 아니요 | - | Flood-It!이 포함된 VAST XML의 URL 동영상 광고 |
광고 제목 | 앱 제목 | 필수 | 예 | 25자 | Flood-It! |
이미지 | 동영상 광고를 클릭하기 전이나 로드 중에 플레이어에 표시되는 이미지 (썸네일) | 필수 | 아니요 | 동영상의 가로세로 비율과 일치해야 합니다 (예: 16x9 동영상의 경우 1280x720, 640x480 동영상의 경우 4x3). | Flood-It! 게임의 스크린샷 또는 동영상에서 확인하세요. |
본문 | 앱의 기본 텍스트 | 필수 | 아니요 | 90자(영문 기준) | 간단하지만 설레는 챌린지 = 유쾌하게 중독성 있는 게임 |
앱 아이콘 | 앱 아이콘 | 필수 | 아니요 | 128 x 128 px | Flood-it! 앱 아이콘 |
클릭 유도 문구 | 선호하는 사용자 작업 | 필수 | 예 | 15자 | 설치 |
별표 평점 | 앱 스토어의 앱 평점을 나타내는 별표 수 (0~5) | 추천 | 아니요 | 0~5명 | 4.5 |
가격 | 앱 비용 | 추천 | 아니요 | 15자 | 무료 |
제한사항
동영상: 모든 동영상은 VAST URL 형식이어야 합니다. VAST 태그를 생성할 수 있습니다. WebM, MP4 등의 원본 동영상 파일은 지정할 수 없습니다.
텍스트 길이: 구매자가
body
이므로 잘리거나 생략될 수 있습니다. Google 또는 게시자입니다. 자르기 제한은 중국어, 일본어, 한국어 예를 들어 제목 한도는 영어에서 90자입니다. 중국어의 경우 45입니다.이미지 크기: 게시자가 할 수 있는 작업은 다음과 같습니다.
- 기본 이미지를 한 크기 (높이)에서 최대 20% 까지 대칭으로 자릅니다. 지정할 수 있습니다.
- 가로세로 비율을 변경하지 않고 이미지 크기를 조정합니다.
앱 설치 광고의 예
동영상 콘텐츠 광고 템플릿
필드 | 설명 | 필수 또는 권장 | 항상 표시 여부 | 권장 이미지 크기/최대 글자 수 * | 예 |
---|---|---|---|---|---|
동영상 | 동영상 광고를 재생하는 데 필요한 모든 애셋이 포함된 동영상 VAST 응답입니다. | 필수 | 예 | - | Flood-It!이 포함된 VAST XML의 URL 동영상 광고 |
광고 제목 | 광고 헤더 | 필수 | 예 | 25자 | 최저 주택담보대출 금리 |
이미지 | 동영상 광고를 클릭하기 전이나 로드 중에 플레이어에 표시되는 이미지 (썸네일) | 필수 | 아니요 | 동영상의 가로세로 비율과 일치해야 합니다 (예: 16x9 동영상의 경우 1280x720, 640x480 동영상의 경우 4x3). | 동영상 스크린샷 |
본문 | 광고 콘텐츠 | 필수 | 아니요 | 90자(영문 기준) | 생각보다 저렴하고 신속하게 브루클린의 즐거운 고향을 방문해 보세요. |
로고 | 광고주 로고 또는 다른 관련 작은 이미지 | 추천 | 아니요 | 128 x 128 px | NY Mortgage Inc. 로고 |
클릭 유도 문구 | 사용자가 선호하는 작업 | 필수 | 아니요 | 15자 | 견적 받기 |
광고주 | 광고주 또는 브랜드를 식별하는 텍스트 | 필수 | 아니요 | 25자 | 뉴욕 모기지 주식회사 |
메타 필드
다음 메타 필드는 지원되는 모든 광고 템플릿에서 공유됩니다.
승인됨 구매자 실시간 프로토콜 버퍼 | 승인됨 구매자 OpenRTB 상응 대상 | 설명 |
---|---|---|
NativeAd.click_link_url |
Link.url |
사용자가 광고를 클릭할 때 브라우저에서 호출할 URL입니다.
궁극적으로는
방문 페이지 네이티브 광고의 경우 click_link_url 를 설정할 필드로 사용하는 것이 좋습니다.
사용자가 최종적으로 도착하게 될 목적지입니다. 케이스에서 이 필드를 사용해야 합니다.
동적 방문 페이지의 역할을 합니다 |
Ad.click_through_url |
Bid.adomain |
입찰자가 입찰하려는 경우 설정해야 합니다. 목적지 집합입니다.
사용자가 이동하게 될 URL을 포함한 스니펫의 URL
표시된 광고, 렌더링된 UI에서 볼 수 있는 모든 URL을
있습니다. 광고 서버에 대한 중간 호출은
최종 방문 페이지 스니펫 또는 동영상 광고를 반환하는 BidResponse
선언하지 않는 경우 네이티브가 아닌 광고의 경우 클릭 추적이나 다른 광고에 사용되지 않습니다. 기능 도착 URL 선언으로만 사용됩니다. 네이티브 광고의 경우 |
NativeAd.click_tracking_urls |
Link.clicktrackers |
선택사항입니다. 광고주가 사용자 클릭을 추적할 수 있는 추가 URL 합니다. |
Ad.ad_choices_destination_url |
BidExt.ad_choices_destination_url |
광고 관심설정 또는 선택 해제 페이지 링크. 있는 경우, 표준 AdChoices 아이콘이 네이티브 광고 소재에 추가되며 이 URL에 연결됩니다. 이 는 네이티브 광고에는 지원되지만 입찰 응답입니다. |
Ad.impression_tracking_url |
NativeResponse.imptrackers |
네이티브 노출수는
Authorized Buyers 실시간 입찰에서의 impression_tracking_url
proto 또는 Native imtrackers에 연결합니다. |
필수 및 권장 필드
required_fields
드림
및 recommended_fields
는 게시자가 지정합니다.
이 비트 필드를 변환하여 필드가 필요한지 아니면
좋습니다.
비트 필드는 이진 값의 각 비트를 사용하여 참 또는 거짓 값을 저장합니다.
구문을
is_logo_required
, is_header_required
등(모두 제외)
있습니다.
예
이 예에서는 required_fields
값을 사용합니다.
1085
입니다.
먼저 등가 바이너리 값을 찾습니다.
<ph type="x-smartling-placeholder">10000111101
</ph>
바이너리 값을 가지게 되면 비트를 검사하여 필드가 필수 (1) 또는 필요하지 않음 (0)입니다.
아래 표에서는 필드를 바이너리 값의 위치에 매핑합니다. 자세한 내용은 가장 오른쪽 위치에 해당하는 1비트로, 오른쪽에서 왼쪽으로 포함되어 있습니다.
필드 | 바이너리 값 배치 (오른쪽에서 왼쪽) |
---|---|
HEADLINE |
1 |
BODY |
2 |
CALL_TO_ACTION |
4 |
ADVERTISER |
8 |
IMAGE |
16 |
LOGO |
32 |
APP_ICON |
64 |
STAR_RATING |
128 |
PRICE |
256 |
STORE |
512 |
VIDEO |
1024 |
예제 바이너리 값 10000111101
을 보면, 1비트는
(맨 오른쪽)은 1
로, 필수 값을 나타냅니다. 출처:
테이블에서 1비트는 HEADLINE
에 해당합니다.
2비트 (오른쪽에서 두 번째 값)는 다음을 나타내는 0
입니다.
않습니다. 2비트는 BODY
에 해당합니다.
다음은 예시에 있는 해석된 모든 필수 필드입니다.
값 | 설명 | 필수 여부 |
---|---|---|
1 |
VIDEO |
예 |
0 |
STORE |
아니요 |
0 |
PRICE |
아니요 |
0 |
STAR_RATING |
아니요 |
0 |
APP_ICON |
아니요 |
1 |
LOGO |
예 |
1 |
IMAGE |
예 |
1 |
ADVERTISER |
예 |
1 |
CALL_TO_ACTION |
예 |
0 |
BODY |
아니요 |
1 |
HEADLINE |
예 |
NativeAdTemplate 메시지
네이티브 인벤토리가 포함된 입찰 요청을 받으면
BidRequest.adSlot[].native_ad_template이 채워져 있습니다.
NativeAdTemplate
메시지는 다음 사양을 제공합니다.
- 필수 또는 권장 필드입니다.
- 이미지, 로고, 앱 아이콘의 크기
- 광고가 렌더링되는 스타일의 사양.
message BidRequest { //... message AdSlot { //... message NativeAdTemplate { // Defines the bits used in required_fields and recommended_fields. // There is one bit for each of the fields in BidResponse.Ad.NativeAd enum Fields { NO_FIELDS = 0x0; HEADLINE = 0x1; BODY = 0x2; CALL_TO_ACTION = 0x4; ADVERTISER = 0x8; IMAGE = 0x10; LOGO = 0x20; APP_ICON = 0x40; STAR_RATING = 0x80; PRICE = 0x100; DEPRECATED_STORE = 0x200; VIDEO = 0x400; } // Bitfield describing which fields are required by the publisher. Bid // responses with no value for these fields will be rejected. Click // and view tracking urls are always implicitly required. optional int64 required_fields = 1; // Bitfield describing which fields are recommended by the publisher. // All recommended field are supported, but not all recommended fields // are required. optional int64 recommended_fields = 2; // max_safe_length indicates the maximum number of Unicode characters that // are guaranteed to be shown without truncation. Longer strings may be // truncated and ellipsized by Ad Exchange or the publisher during // rendering. optional int32 headline_max_safe_length = 3; optional int32 body_max_safe_length = 4; optional int32 call_to_action_max_safe_length = 5; optional int32 advertiser_max_safe_length = 6; optional int32 price_max_safe_length = 15; // The width and height from which to calculate the required aspect ratio. // You can provide a larger image in the response. Images that have aspect // ratios substantially different than those implied by the height and // width may be filtered. optional int32 image_width = 7; optional int32 image_height = 8; optional int32 logo_width = 9; optional int32 logo_height = 10; optional int32 app_icon_width = 11; optional int32 app_icon_height = 12; // Globally distinct id for the specific style, HTML, and CSS with which // the native ad is rendered. optional int32 style_id = 16; // Type of style layout for each native ad template. enum LayoutType { PIXEL = 0; FLUID = 1; } optional LayoutType style_layout_type = 17 [default = PIXEL]; // If the style_layout_type is Pixel, width and height of the // entire native ad after rendering. If the style_layout_type is // Fluid, the style_height and style_width may optionally // not be populated. optional int32 style_height = 18; optional int32 style_width = 19; } repeated NativeAdTemplate native_ad_template = 51; } // NativePlacementType describes placement of native ad slot with respect to // surrounding context. enum NativePlacementType { PLACEMENT_UNKNOWN = 0; // In the feed of content - for example as an item inside the organic // feed/grid/listing/carousel. PLACEMENT_IN_FEED = 1; // In the atomic unit of the content - for example, in the article page or single // image page. PLACEMENT_ATOMIC_UNIT = 2; // Outside the core content - for example in the ads section on the right // rail, as a banner-style placement near the content, etc. PLACEMENT_OUTSIDE = 3; // Recommendation widget, most commonly presented below the article // content. PLACEMENT_RECOMMENDATION = 4; } optional NativePlacementType native_placement_type = 45; // ... }
NativeAd 메시지
네이티브 인벤토리에 입찰할 때 구매자는
BidResponse.ad[].native_ad
상응하는 BidRequest.adSlot[].native_ad_template
에 필수 필드가 선언되어 있어야 합니다.
message BidResponse { //... message Ad { //... message NativeAd { // A short title for the ad. optional string headline = 1; // A long description of the ad. optional string body = 2; // A label for the button that the user is supposed to click. optional string call_to_action = 3; // The name of the advertiser or sponsor, to be displayed in the ad // creative. optional string advertiser = 4; // Next tag to use: 4 message Image { optional string url = 1; // Image width and height are specified in pixels. You may provide a // larger image than was requested, so long as the aspect ratio is // preserved. optional int32 width = 2; optional int32 height = 3; } // A large image. optional Image image = 5; // A smaller image, for the advertiser's logo. optional Image logo = 6; // The app icon, for app download ads. optional Image app_icon = 7; // The video file. Only set this field if the video field is requested. oneof video { // The URL to fetch a video ad. The URL should return an XML response // that conforms to VAST standards. string video_url = 13; // The VAST document to be returned. string video_vast_xml = 16; } // The app rating in the app store. Must be in the range [0-5]. optional double star_rating = 8; // The URL that the browser/SDK will load when the user clicks the ad. // This can be the landing page directly, or the first step of a redirect // chain that eventually leads to it. For backward compatibility, if this // is not set, the first Ad.click_through_url is used. optional string click_link_url = 14; // The URL to use for click tracking. The SDK pings click tracking url on // a background thread. When resolving the url, HTTP 30x redirects are // followed. The SDK ignores the contents of the response; this URL // has no effect on the landing page for the user. // This field is planned to be deprecated and we are moving to the // repeated click_tracking_urls field. optional string click_tracking_url = 11; // The URLs to use for click tracking. This will be used throughout the // serving stack and will incorporate any URL in click_tracking_urls. repeated string click_tracking_urls = 15; // The price of the promoted app including the currency info. optional string price = 10; }; optional NativeAd native_ad = 18; // The set of destination URLs for the snippet. This includes the URLs that // the user will go to if they click on the displayed ad, and any URLs that // are visible in the rendered ad. Do not include intermediate calls to the // adserver that are unrelated to the final landing page. A BidResponse that // returns a snippet or video ad but declares no click_through_url will be // discarded. Only set this field if html_snippet or video_url or native_ad // are set. This data is used as a destination URL declaration, for example // for post-filtering of publisher-blocked URLs or ad categorization. // // For non-native ads, it is not used for click tracking or any // other ad functionality; it is only used as a destination URL // declaration. // // For native ads, if NativeAd.click_link_url is not set, the first // value of click_through_url is used to direct the user to the landing // page. In addition, all values are used as destination // URL declarations (similar to the non-native case). repeated string click_through_url = 4; //... // The URLs to call when the impression is rendered. The SDK pings // impression urls on a background thread and ignores the contents // of the response. repeated string impression_tracking_url = 19; // Link to ad preferences page. This is only supported for native ads. // If present, a standard AdChoices icon is added to the native ad creative and // linked to this URL. optional string ad_choices_destination_url = 21; // ... } }
입찰 요청의 예
동영상이 아닌 입찰 요청
OpenRTB JSON
OpenRTB Protobuf
동영상 입찰 요청
<ph type="x-smartling-placeholder">입찰 응답의 예
이 응답의 값은 참조하세요. 하지만 요청의 템플릿이 필수/선택사항을 제안하는 경우 필드의 경우 응답은 해당 요구사항을 준수합니다.