Reklamy natywne to reklamy sformatowane tak, by pasowały do otaczających je treści i projektu wizualnego, co zwiększa prawdopodobieństwo ich obejrzenia i kliknięcia przez użytkowników. Zasoby reklam natywnych są dostępne w aplikacjach mobilnych oraz w witrynach na komputery i urządzenia mobilne. Więcej informacji o reklamach natywnych znajdziesz w artykule Omówienie reklam natywnych.
Reklamy natywne są obsługiwane zarówno w ramach Authorized Buyers, jak i Otwartego ustalania stawek.
Oto procedura w przypadku reklam natywnych:
- Google otrzymuje wywołanie reklamy natywnej. Wywołanie określa co najmniej jeden z poniższych szablonów reklam natywnych, z których każdy określa preferowane pola.
- Google wysyła do kupujących pytanie o stawkę RTB z listą wymaganych pól.
- Zainteresowani kupujący odpowiadają za pomocą wymaganych pól.
- Google przeprowadza aukcję, aby wybrać zwycięską stawkę i wysyłać wydawcy zasoby kreacji dostarczone przez kupującego.
- Wydawca łączy zasoby w reklamę natywną i dostosowuje je do projektu witryny.
Formaty wiadomości
Google obsługuje specyfikację OpenRTB zarówno w formatach JSON, jak i Protobuf.
W przypadku reklam natywnych OpenRTB Protobuf te pola różnią się od specyfikacji:
Specyfikacja pliku JSON (PROTOCOL_OPENRTB_2_4) |
Typ JSON | Implementacja OpenRTB (PROTOCOL_OPENRTB_PROTOBUF_2_4) |
Typ OpenRTB |
---|---|---|---|
BidRequest.imp[].native.request |
string |
BidRequest.imp[].native.request_native |
NativeRequest |
BidResponse.seatbid[].bid[].adm |
string |
BidResponse.seatbid[].bid[].adm_native |
NativeResponse |
Pola OpenRTB zawierają komunikaty Protobuf, a nie ciągi tekstowe.
Jeśli korzystasz z implementacji Protobuf OpenRTB, nie otrzymasz BidRequest.imp[].native.request
i musisz odpowiedzieć za pomocą BidResponse.seatbid[].bid[].adm_native
. Odpowiedzi na stawkę z parametrem BidResponse.seatbid[].bid[].adm
są odfiltrowywane. Identyfikatory zasobów nie są wymagane w przypadku odpowiedzi na stawkę OpenRTB Protobuf.
Jeśli do renderowania reklam natywnych używasz pakietu SDK dla kupujących, przesyłając kreacje do sprawdzenia, musisz w declared_ad
umieścić obraz type
.
Szablony reklam natywnych
Google obsługuje 2 najpopularniejsze szablony reklam natywnych innych niż wideo i reklamy wideo:
- Szablon reklamy promującej instalacje aplikacji – promuj instalacje aplikacji mobilnej i zwiększaj ich liczbę.
- Szablon reklamy z treścią – bardziej ogólne połączenie tekstu i obrazów na potrzeby reklam promujących markę lub reklam internetowych.
- Szablon reklamy wideo promującej instalacje aplikacji
- Szablon reklamy z treścią wideo
Istnieją też inne szablony, które mogą mieć inny zestaw wymagań dotyczących pól, wymiarów i rozmiarów.
Szablon reklamy promującej instalacje aplikacji
Pola wymagane i zalecane
W tabelach poniżej znajdziesz pola oznaczone jako Wymagane lub Zalecane. Obowiązują następujące zasady:
- Pola oznaczone jako Wymagane są wymagane przez licytującego.
- Pola oznaczone jako Zalecane nie są wymagane przez system licytujący, a po ich dodaniu wydawca może je wyświetlić (np. w postaci gwiazdek).
- Wezwanie do działania jest zawsze oznaczone jako Zalecane, ponieważ ustawienie domyślne jest przypisywane, jeśli nie zostanie wysłane przez licytującego, ale będzie ono zawsze widoczne po wysłaniu.
W tabeli poniżej znajdziesz pola szablonu reklam promujących instalacje aplikacji. Aplikacje mobilne używają tych pól do tworzenia reklam natywnych promujących instalacje aplikacji.
Pole | Opis | Wymagany czy zalecany? | Zawsze wyświetlane? | Zalecany rozmiar obrazu/maksymalna liczba znaków | Przykład |
---|---|---|---|---|---|
Nagłówek | tytuł aplikacji; | Wymagane | Tak | 25 znaków | Flood-It! |
Obraz | zrzut ekranu z aplikacji lub inny powiązany obraz. | Wymagane | Nie | 1200 x 627 pikseli lub 600 x 600 pikseli w zależności od formatu obrazu wymaganego przez wydawcę. | <Zrzut ekranu z gry Flood-It!> |
Treść | Główny tekst aplikacji | Wymagane | Nie | 90 znaków | Niepomyślnie prosta + intrygujące wyzwanie = przyjemnie uzależniające. |
Ikona aplikacji | Ikona aplikacji | Wymagane | Nie | 128 x 128 piks. | <Ikona aplikacji Flood-it!> |
Wezwanie do działania | Preferowane działanie użytkownika | Polecane | Tak | 15 znaków | Zainstaluj |
Ocena w gwiazdkach | Liczba gwiazdek (0–5) reprezentujących ocenę aplikacji w sklepie z aplikacjami | Polecane | Nie | 0–5 | 4.5 |
Cena | Koszt aplikacji | Polecane | Nie | 15 znaków | bezpłatnie |
Uwagi na temat długości tekstu
Jeśli kupujący wyśle komponent tekstowy (np. tekst główny) o długości przekraczającej sugerowaną maksymalną liczbę znaków, Google lub wydawca może go skrócić i skrócić. Pamiętaj, że limity obcinania w języku chińskim, japońskim i koreańskim są o połowę mniejsze. Na przykład limit nagłówka w języku angielskim wynosi 90 znaków, a w chińskim – 45.
Uwagi na temat rozmiaru obrazu
Wydawcy mogą:
- Przytnij główny obraz symetrycznie maksymalnie o 20% w jednym wymiarze (wysokość lub szerokość).
- Przeskaluj obraz bez zmiany jego proporcji.
- Obrazy o współczynniku proporcji znacznie odbiegającym od wysokości i szerokości mogą zostać odfiltrowane.
Szablon reklam w sieci reklamowej
W tabeli poniżej znajdziesz pola szablonu reklam z treścią. Wydawcy używają tych pól do tworzenia reklam natywnych z treścią.
Pole | Opis | Wymagany czy zalecany? | Zawsze wyświetlane? | Zalecany rozmiar obrazu/maksymalna liczba znaków * | Przykład |
---|---|---|---|---|---|
Nagłówek | W nagłówku reklamy | Wymagane | Tak | 25 znaków | Najniższe raty kredytów hipotecznych |
Obraz | Podstawowy obraz reklamy | Wymagane | Nie | 1200 x 627 pikseli lub 600 x 600 pikseli w zależności od formatu obrazu wymaganego przez wydawcę. | <Główny obraz reklamy> |
Treść | Treść reklamy | Wymagane | Nie | 90 znaków | Twój dom na Brooklynie jest tańszy i szybciej, niż Ci się wydaje! |
Logo | Logo reklamodawcy lub inny odpowiedni mały obraz | Polecane | Nie | 128 x 128 piks. | <logo NY Mortgage Inc.> |
Wezwanie do działania | Preferowane działanie użytkownika | Polecane | Nie | 15 znaków | Uzyskaj wycenę |
Reklamodawca | Tekst, który określa reklamodawcę lub markę | Wymagane | Nie | 25 znaków | NY Mortgage Inc. |
Szablon reklamy wideo promującej instalacje aplikacji
Pole | Opis | Wymagany czy zalecany? | Zawsze wyświetlane? | Zalecany rozmiar obrazu/maksymalna liczba znaków * | Przykład |
---|---|---|---|---|---|
Wideo | Odpowiedź wideo VAST zawierająca wszystkie zasoby niezbędne do odtworzenia reklamy wideo. | Wymagane | Nie | - | URL do pliku XML VAST zawierającego tag Flood-It! reklama wideo |
Nagłówek | tytuł aplikacji; | Wymagane | Tak | 25 znaków | Flood-It! |
Obraz | Obraz (miniatura) wyświetlana w odtwarzaczu przed kliknięciem reklamy wideo lub podczas jej wczytywania. | Wymagane | Nie | Powinien pasować do formatu filmu (na przykład 1280 x 720 dla filmu 16 x 9, 4 x 3 dla filmu 640 x 480). | Zrzut ekranu z gry Flood-It! lub z poziomu filmu |
Treść | Główny tekst aplikacji | Wymagane | Nie | 90 znaków | Niepomyślnie prosta + intrygujące wyzwanie = przyjemnie uzależniające. |
Ikona aplikacji | Ikona aplikacji | Wymagane | Nie | 128 x 128 piks. | Ikona aplikacji Flood-it! |
Wezwanie do działania | Preferowane działanie użytkownika | Wymagane | Tak | 15 znaków | Zainstaluj |
Ocena w gwiazdkach | Liczba gwiazdek (0–5) reprezentujących ocenę aplikacji w sklepie z aplikacjami | Polecane | Nie | 0–5 | 4.5 |
Cena | Koszt aplikacji | Polecane | Nie | 15 znaków | bezpłatnie |
Ograniczenia
Film: wszystkie filmy muszą mieć postać adresu URL VAST lub tagu VAST. Nie można określić nieprzetworzonego pliku wideo, np. WebM, MP4 itp.
Długość tekstu: jeśli kupujący określi w odpowiedzi zasób tekstowy, np.
body
, może on zostać skrócony i obrócony przez Google lub wydawcę. Pamiętaj, że limity obcięcia są o połowę mniejsze w języku chińskim, japońskim i koreańskim. Na przykład limit nagłówka w języku angielskim wynosi 90 znaków, a w chińskim – 45.Rozmiar obrazu – wydawcy mogą:
- Przytnij główny obraz symetrycznie maksymalnie o 20% w jednym wymiarze (wysokość lub szerokość).
- Przeskaluj obraz bez zmiany jego proporcji.
Przykład reklamy promującej instalacje aplikacji
Szablon reklamy z treścią wideo
Pole | Opis | Wymagany czy zalecany? | Zawsze wyświetlane? | Zalecany rozmiar obrazu/maksymalna liczba znaków * | Przykład |
---|---|---|---|---|---|
Wideo | Odpowiedź wideo VAST zawierająca wszystkie zasoby niezbędne do odtworzenia reklamy wideo. | Wymagane | Tak | - | URL do pliku XML VAST zawierającego tag Flood-It! reklama wideo |
Nagłówek | W nagłówku reklamy | Wymagane | Tak | 25 znaków | Najniższe raty kredytów hipotecznych |
Obraz | Obraz (miniatura) wyświetlana w odtwarzaczu przed kliknięciem reklamy wideo lub podczas jej wczytywania. | Wymagane | Nie | Powinien pasować do formatu filmu (na przykład 1280 x 720 dla filmu 16 x 9, 4 x 3 dla filmu 640 x 480). | Zrzut ekranu z filmu |
Treść | Treść reklamy | Wymagane | Nie | 90 znaków | Twój dom na Brooklynie jest tańszy i szybciej, niż Ci się wydaje! |
Logo | Logo reklamodawcy lub inny odpowiedni mały obraz | Polecane | Nie | 128 x 128 piks. | Logo NY Mortgage Inc. |
Wezwanie do działania | Preferowane działanie użytkownika | Wymagane | Nie | 15 znaków | Uzyskaj wycenę |
Reklamodawca | Tekst, który określa reklamodawcę lub markę | Wymagane | Nie | 25 znaków | NY Mortgage Inc. |
Metapola
Te metapola są używane przez wszystkie obsługiwane szablony reklam:
Bufor protokołów w czasie rzeczywistym w Authorized Buyers | Odpowiednik Authorized Buyers OpenRTB | Opis |
---|---|---|
NativeAd.click_link_url |
Link.url |
Adres URL, który zostanie wywołany przez przeglądarkę po kliknięciu reklamy przez użytkownika.
Może być pierwszym etapem łańcucha przekierowań, który ostatecznie prowadzi do strony docelowej. W przypadku reklam natywnych zalecamy użycie pola click_link_url jako pola umożliwiającego ustawienie miejsca docelowego, do którego kierowani są użytkownicy. Jest to pole wymagane w przypadku dynamicznych stron docelowych. |
Ad.click_through_url |
Bid.adomain |
Musi być ustawiony, jeśli licytujący zamierza ustalać stawki. Jest to zestaw docelowych adresów URL fragmentu kodu, w tym adresy URL, na które użytkownik trafi po kliknięciu wyświetlonej reklamy oraz wszystkie adresy URL widoczne w wyrenderowanej reklamie. Nie umieszczaj wywołań pośrednich przesyłanych do serwera reklam, które są niezwiązane z końcową stroną docelową. Odpowiedź na stawkę, która zwraca fragment kodu lub reklamę wideo, ale deklaruje, że nie zawiera żadnej funkcji W przypadku reklam innych niż natywne nie można go używać do śledzenia kliknięć ani do korzystania z innych funkcji reklam. Służy tylko jako deklaracja docelowego adresu URL. W przypadku reklam natywnych, jeśli zasada |
NativeAd.click_tracking_urls |
Link.clicktrackers |
Opcjonalnie. Dodatkowe adresy URL, które pozwalają reklamodawcom śledzić kliknięcia reklamy przez użytkowników. |
Ad.ad_choices_destination_url |
BidExt.ad_choices_destination_url |
Link do strony z ustawieniami reklam lub na stronie rezygnacji. Jeśli dostępna jest standardowa ikona Informacja, jest dodawana do kreacji natywnej i powiązana z tym adresem URL. Jest obsługiwane w przypadku reklam natywnych, ale nie jest zawarte w wiadomości natywnej w odpowiedzi na stawkę. |
Ad.impression_tracking_url |
NativeResponse.imptrackers |
Wyświetlenie natywne należy śledzić za pomocą protokołu impression_tracking_url w protokole określania stawek w czasie rzeczywistym w Authorized Buyers lub w natywnych modułach do śledzenia wyświetleń w obrębie OpenRTB. |
Pola wymagane i zalecane
Wartości required_fields
i recommended_fields
są określane przez wydawcę. Pokazujemy, jak tłumaczyć pola bitowe w celu określenia, czy pole jest wymagane czy zalecane.
Pole bitowe wykorzystuje każdy bit wartości binarnej do przechowywania wyrażenia prawda lub fałsz, co odpowiada wysyłaniu wielu sygnałów logicznych, takich jak is_logo_required
, is_header_required
itp., ale są one spakowane w całości.
Przykład
W tym przykładzie użyjemy wartości required_fields
równej 1085
.
Najpierw znajdź równoważną wartość binarną: 10000111101
Po uzyskaniu wartości binarnej możesz sprawdzić bity, aby sprawdzić, czy pole jest wymagane (1) czy nie jest wymagane (0).
Tabela poniżej mapuje te pola na ich miejsce w wartości binarnej. Odczytaj kod binarny od prawej do lewej, gdzie 1-bitowa odpowiada skrajnemu miejscu na prawo w wartości binarnej.
Pole | Rozmieszczenie wartości binarnych (od prawej do lewej) |
---|---|
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 |
Gdy spojrzymy na przykładową wartość binarną 10000111101
, 1-bitowa (najbardziej od prawej) to 1
, co oznacza wymaganą wartość. Zgodnie z tabelą wartość 1-bitowa odpowiada wartości HEADLINE
.
2-bitowa (druga wartość od prawej) to 0
, która oznacza, że nie jest wymagana. Wartość 2-bitowa odpowiada wartości BODY
.
Oto wszystkie zinterpretowane pola wymagane w naszym przykładzie:
Wartość | Opis | Wymagana? |
---|---|---|
1 |
VIDEO |
Tak |
0 |
STORE |
Nie |
0 |
PRICE |
Nie |
0 |
STAR_RATING |
Nie |
0 |
APP_ICON |
Nie |
1 |
LOGO |
Tak |
1 |
IMAGE |
Tak |
1 |
ADVERTISER |
Tak |
1 |
CALL_TO_ACTION |
Tak |
0 |
BODY |
Nie |
1 |
HEADLINE |
Tak |
Wiadomość NativeAdTemplate
Otrzymane pytanie o stawkę zawierające natywne zasoby reklamowe będzie zawierało wypełnione pytanie BidRequest.adSlot[].native_ad_template.
Komunikat NativeAdTemplate
zawiera specyfikacje:
- Pola wymagane lub zalecane.
- Wymiary obrazów, logo i ikon aplikacji.
- Specyfikacje stylu, w którym jest renderowana reklama.
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; // ... }
Wiadomość reklamy natywnej
Ustalając stawki za natywne zasoby reklamowe, kupujący musi uzupełnić BidResponse.ad[].native_ad polami zadeklarowanymi w odpowiednich polach 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; // ... } }
Przykładowe pytania o stawkę
Pytania o stawkę inne niż wideo
Plik JSON OpenRTB
Protobuf OpenRTB
Pytania o stawkę za reklamy wideo
Przykładowe odpowiedzi na stawkę
Pamiętaj, że wartości w tych odpowiedziach nie powinny odpowiadać danym powyżej. Jeśli jednak szablon w żądaniu sugeruje wymagane/opcjonalne pola, podane tu odpowiedzi są zgodne z tymi wymaganiami.