Reklamy pełnoekranowe

Reklama pełnoekranowa to rodzaj reklamy, która zajmuje większość ekranu. Dlatego gdy wyświetla się reklama pełnoekranowa, treści wydawcy nie pojawiają się na ekranie.

Możesz zidentyfikować możliwość reklamową reklamy pełnoekranowej w pytaniu o stawkę, sprawdzając, czy pole BidRequest.imp.instl w pytaniu o stawkę ma wartość true w Protobuf lub 1 w JSON.

Rozmiar boksu reklamowego

Rozmiar boksu reklamowego w przypadku reklam pełnoekranowych określa obszar, w którym można renderować kreacje, i zależy od kilku czynników, takich jak konkretne formaty i wymiary ekranu.

Pierwsza para wartości szerokości i wysokości w polu BidRequest.imp.banner.format w OpenRTB reprezentuje rzeczywisty rozmiar boksu reklamowego, a pozostałe pary to lista dopuszczalnych rozmiarów reklam, które mieszczą się w zakresie wymagań boksu.

Kreacje nie są ograniczone do zalecanych rozmiarów w pytaniu o stawkę, ale wszystkie zalecane rozmiary w pytaniu o stawkę mieszczą się w dopuszczalnym zakresie rozmiarów.

Możesz określać stawki za pomocą dowolnej kreacji, której szerokość i wysokość spełniają te kryteria:

  • mniejsza lub równa szerokości i wysokości boksu reklamowego;
  • co najmniej 50% szerokości boksu reklamowego;
  • Co najmniej 40% wysokości boksu reklamowego

Jeśli rozmiar reklamy jest zbyt duży lub zbyt mały, odpowiedź na pytanie o stawkę zostanie odfiltrowana z powodu odrzucenia INTERSTITIAL_SIZE_MISMATCH.

Jeśli w odpowiedzi na pytanie o stawkę nie podasz rozmiaru reklamy, odpowiedź zostanie odfiltrowana z powodu odrzucenia MISSING_AD_SIZE.

Przykładowe pytania o stawkę

Oto przykładowe żądania stawek w przypadku reklam pełnoekranowych.

OpenRTB Protobuf

Pokaż przykład

[Serialized request](/authorized-buyers/rtb/data/request-response/openrtb_protobuf_mobile_app_interstitial_ad_request.bin){: .download}
id: "D3x8RPLO96R6T137tQ6168"
imp {
  id: "1"
  banner {
    w: 360
    h: 715
    pos: AD_POSITION_FULLSCREEN
    api: MRAID_1
    api: MRAID_2
    format {
      w: 360
      h: 715
    }
    format {
      w: 320
      h: 568
    }
  }
  displaymanager: "GoogleMobileAds-Android"
  displaymanagerver: "22.3.0"
  instl: true
  tagid: "5771994185"
  bidfloor: 2764.414643547123
  bidfloorcur: "JPY"
  secure: true
  exp: 3600
  clickbrowser: true
  metric {
    type: "click_through_rate"
    value: 0.03971313312649727
    vendor: "EXCHANGE"
  }
  metric {
    type: "viewability"
    value: 0.91
    vendor: "EXCHANGE"
  }
  [com.google.doubleclick.imp] {
    billing_id: 68640308112
    billing_id: 56606437068
    publisher_settings_list_id: 1984414516100776281
    publisher_settings_list_id: 5846951473307279661
    allowed_vendor_type: 0
    allowed_vendor_type: 57823
    ampad: AMP_AD_NOT_ALLOWED
    excluded_creatives {
      buyer_creative_id: "EXCLUDED_BUYER_CREATIVE_ID"
    }
    excluded_creatives {
      buyer_creative_id: "EXCLUDED_BUYER_CREATIVE_ID"
    }
    creative_enforcement_settings {
      policy_enforcement: POLICY_ENFORCEMENT_NETWORK_AND_PLATFORM_POLICY
      publisher_blocks_enforcement: PUBLISHER_BLOCKS_ENFORCEMENT_APPLIES
    }
    auction_environment: SERVER_SIDE_AUCTION
    ae: SERVER_SIDE_AUCTION
    jsver: "test-sdk_123456789"
  }
}
app {
  name: "Test App"
  bundle: "com.google.testapp"
  publisher {
    id: "pub-7405557148270612"
    [com.google.doubleclick.publisher] {
      country: "HK"
    }
  }
  content {
    url: "https://www.google.com"
    userrating: "4.7"
    livestream: false
    language: "en"
  }
  storeurl: "https://www.google.com"
}
device {
  ua: "OMITTED"
  geo {
    lat: 0.0
    lon: 0.0
    country: "GBR"
    region: "GB-ENG"
    zip: "RH20"
    type: IP
    utcoffset: 60
    accuracy: 2312
    [com.google.doubleclick.geo] {
      geo_criteria_id: 9191103
    }
  }
  ipv6: "2a02:c7c:7c25::"
  make: "Huawei"
  model: "LYA-L09"
  os: "android"
  osv: "10"
  connectiontype: WIFI
  devicetype: HIGHEND_PHONE
  ifa: "0f0f33d1-fa18-4a2c-bc47-79ef855b5c16"
  w: 360
  h: 715
  pxratio: 3.0
  sua {
    browsers {
      brand: "Mozilla"
      version: "5"
      version: "0"
    }
    browsers {
      brand: "AppleWebKit"
      version: "537"
      version: "36"
    }
    platform {
      brand: "Android"
      version: "10"
    }
    mobile: true
    model: "LYA-L09"
    source: USER_AGENT_STRING
  }
  [com.google.doubleclick.device] {
    metereddata: false
    chargelevel: 0.93
    charging: false
    diskspace: 2100
    audioout: AUDIO_SILENT
  }
}
user {
  id: "D17oNZQUJqB4Rt4n4Ec61AC9tee"
  consent: "OMITTED"
  [com.google.doubleclick.user] {
    consented_providers_settings {
      consented_providers: 1205
      consented_providers: 415
      additional_consent: "OMITTED"
    }
    consent: "OMITTED"
    session {
      duration: 6
      depth: 12
      requestssinceappopen: 12
      priorclicks: 0
    }
    idage: 44064000
  }
}
at: FIRST_PRICE
tmax: 1500
cur: "EUR"
cur: "JPY"
bcat: "32"
bcat: "33"
regs {
  [com.google.doubleclick.regs] {
    gdpr: true
  }
}
source {
  schain {
    complete: true
    nodes {
      asi: "testssp.com"
      sid: "pub-1111111111111111"
      hp: true
    }
    ver: "1.0"
  }
  [com.google.doubleclick.source] {
    omidpn: "Google"
    omidpv: "afma-sdk-a-v251815999.232400000.1"
  }
}
cattax: GOOGLE_CATEGORIES
[com.google.doubleclick.bid_request] {
  google_query_id: "ANy-zc395b-x973i1113tK7P9K633CKoo3Pl45uz8D40mz3v48s9Zp604a8FsGL3893PT15M"
  fcap_scope: FREQUENCY_CAPPING_SCOPE_DEVICE
  privacy_treatments {
    allow_user_data_collection: true
  }
}

OpenRTB JSON

Pokaż przykład

{
  "id": "D3x8RPLO96R6T137tQ6168",
  "imp": [
    {
      "id": "1",
      "banner": {
        "w": 360,
        "h": 715,
        "pos": 7,
        "api": [
          3,
          5
        ],
        "format": [
          {
            "w": 360,
            "h": 715
          },
          {
            "w": 320,
            "h": 568
          }
        ]
      },
      "displaymanager": "GoogleMobileAds-Android",
      "displaymanagerver": "22.3.0",
      "instl": 1,
      "tagid": "5771994185",
      "bidfloor": 2764.414643547123,
      "bidfloorcur": "JPY",
      "secure": 1,
      "exp": 3600,
      "clickbrowser": 1,
      "metric": [
        {
          "type": "click_through_rate",
          "value": 0.03971313312649727,
          "vendor": "EXCHANGE"
        },
        {
          "type": "viewability",
          "value": 0.91,
          "vendor": "EXCHANGE"
        }
      ],
      "ext": {
        "billing_id": [
          "68640308112",
          "56606437068"
        ],
        "publisher_settings_list_id": [
          "1984414516100776281",
          "5846951473307279661"
        ],
        "allowed_vendor_type": [
          0,
          57823
        ],
        "ampad": 2,
        "excluded_creatives": [
          {
            "buyer_creative_id": "EXCLUDED_BUYER_CREATIVE_ID"
          },
          {
            "buyer_creative_id": "EXCLUDED_BUYER_CREATIVE_ID"
          }
        ],
        "creative_enforcement_settings": {
          "policy_enforcement": 2,
          "publisher_blocks_enforcement": 1
        },
        "auction_environment": 0,
        "ae": 0,
        "jsver": "test-sdk_123456789"
      }
    }
  ],
  "app": {
    "name": "Test App",
    "bundle": "com.google.testapp",
    "publisher": {
      "id": "pub-7405557148270612",
      "ext": {
        "country": "HK"
      }
    },
    "content": {
      "url": "https://www.google.com",
      "userrating": "4.7",
      "livestream": 0,
      "language": "en"
    },
    "storeurl": "https://www.google.com"
  },
  "device": {
    "ua": "OMITTED",
    "geo": {
      "lat": 0.0,
      "lon": 0.0,
      "country": "GBR",
      "region": "GB-ENG",
      "zip": "RH20",
      "type": 2,
      "utcoffset": 60,
      "accuracy": 2312,
      "ext": {
        "geo_criteria_id": 9191103
      }
    },
    "ipv6": "2a02:c7c:7c25::",
    "make": "Huawei",
    "model": "LYA-L09",
    "os": "android",
    "osv": "10",
    "connectiontype": 2,
    "devicetype": 4,
    "ifa": "0f0f33d1-fa18-4a2c-bc47-79ef855b5c16",
    "w": 360,
    "h": 715,
    "pxratio": 3.0,
    "sua": {
      "browsers": [
        {
          "brand": "Mozilla",
          "version": [
            "5",
            "0"
          ]
        },
        {
          "brand": "AppleWebKit",
          "version": [
            "537",
            "36"
          ]
        }
      ],
      "platform": {
        "brand": "Android",
        "version": [
          "10"
        ]
      },
      "mobile": 1,
      "model": "LYA-L09",
      "source": 3
    },
    "ext": {
      "metereddata": 0,
      "chargelevel": 0.93,
      "charging": 0,
      "diskspace": 2100,
      "audioout": 3
    }
  },
  "user": {
    "id": "D17oNZQUJqB4Rt4n4Ec61AC9tee",
    "consent": "OMITTED",
    "ext": {
      "consented_providers_settings": {
        "consented_providers": [
          "1205",
          "415"
        ],
        "additional_consent": "OMITTED"
      },
      "consent": "OMITTED",
      "session": {
        "duration": 6,
        "depth": 12,
        "requestssinceappopen": 12,
        "priorclicks": 0
      },
      "idage": 44064000
    }
  },
  "at": 1,
  "tmax": 1500,
  "cur": [
    "EUR",
    "JPY"
  ],
  "bcat": [
    "32",
    "33"
  ],
  "regs": {
    "ext": {
      "gdpr": 1
    }
  },
  "source": {
    "schain": {
      "complete": 1,
      "nodes": [
        {
          "asi": "testssp.com",
          "sid": "pub-1111111111111111",
          "hp": 1
        }
      ],
      "ver": "1.0"
    },
    "ext": {
      "omidpn": "Google",
      "omidpv": "afma-sdk-a-v251815999.232400000.1"
    }
  },
  "cattax": 500,
  "ext": {
    "google_query_id": "ANy-zc395b-x973i1113tK7P9K633CKoo3Pl45uz8D40mz3v48s9Zp604a8FsGL3893PT15M",
    "fcap_scope": 3,
    "privacy_treatments": {
      "allow_user_data_collection": 1
    }
  }
}

Sprawdzone metody

Google zaleca stosowanie tych sprawdzonych metod:

  • W fragmentach kodu kreacji HTML umieść atrybuty formatowania, aby wyśrodkować reklamy w boksie reklamowym. W przeciwnym razie reklamy będą renderowane w lewym górnym rogu boksu reklamowego.

  • Wyświetl reklamę pełnoekranową, która zajmuje jak najwięcej miejsca w boksu reklamowym. Nie wypełniaj boksu reklamowego przeznaczonego na reklamę pełnoekranową znacznie mniejszą reklamą. Na przykład reklama o rozmiarze 320 x 480 jest zbyt mała, aby wyświetlać ją w jednostce reklamowej pełnoekranowej o rozmiarze 420 x 800.

  • Nie dodawaj przycisku zamykania:

    • Nasz pakiet SDK automatycznie wyświetla przycisk zamknięcia (w stosownych przypadkach), aby użytkownicy mogli go kliknąć.
    • MRAID useCustomClose() nie jest obsługiwany.
  • Użyj zalecanych rozmiarów z pytania o stawkę, aby wybrać akceptowane rozmiary reklam w odpowiedzi na pytanie o stawkę.

  • Porównaj pola BidRequest.device.wBidRequest.device.h, aby wybrać kreacje o odpowiedniej orientacji.

    • Zalecamy stosowanie kreacji w orientacji pionowej i poziomej, aby móc określać stawki w odpowiedniej orientacji.

Reklamy pełnoekranowe bez określonego rozmiaru (elastyczne)

Pełnoekranowe reklamy bez rozmiaru (nazywane też elastycznymi reklamami pełnoekranowymi) dynamicznie zmieniają rozmiar, aby zajmować całą szerokość i wysokość boksu reklamowego. Authorized Buyers nie zmienia rozmiaru kreacji. Musisz przesłać kreację, która dynamicznie zmienia rozmiar.

Reklamy pełnoekranowe bez określonego rozmiaru wystarczy przesłać do sprawdzenia tylko raz, nawet jeśli mogą się wyświetlać w różnych rozmiarach. Aby uniknąć ponownego sprawdzania kreacji w przypadku każdego rozmiaru boksu reklamowego, zalecamy:

Odpowiedź na pytanie o stawkę

  • Użyj BidResponse.seatbid.bid.ext.attribute, aby zadeklarować Rendering: Sizeless AdX (atrybut 105) w odpowiedzi na pytanie o stawkę. Atrybuty kreacji, które można zadeklarować, znajdziesz w pliku danych buyer-declarable-creative-attributes.txt.

  • W polach BidResponse.seatbid.bid.wBidResponse.seatbid.bid.h wpisz rozmiar, w jakim ma się renderować kreacja, zgodnie z wymaganiami dotyczącymi rozmiaru reklamy. Na przykład w przypadku boksu reklamowego o wymiarach 360 x 480 wpisz 360x480. Kreacja może nadal wyświetlać się w innych rozmiarach. W przypadku wycofanego protokołu RTB od Google wypełniasz pola BidResponse.Ad.widthBidResponse.Ad.height.

Jeśli dodasz atrybut Rendering: Sizeless AdX do istniejącej kreacji, musi ona zostać ponownie sprawdzona.

Wstępne zatwierdzanie kreacji

  • Przesyłając kreację do sprawdzenia, w polu declaredAttributes podaj atrybut RENDERING_SIZELESS_ADX. W interfejsie Real-time Bidding API atrybuty kreacji są reprezentowane za pomocą wartości wyliczeniowej w postaci ciągu znaków. Aby dowiedzieć się więcej o tym, jak te wartości odpowiadają numerycznym identyfikatorom z pliku buyer-declarable-creative-attributes.txt, zapoznaj się z przewodnikiem po mapowaniu.
  • Prześlij kreację w rozmiarze, w jakim ma się ona wyświetlać, czyli w rozmiarze typowym dla kreacji pełnoekranowych. Kreacja może nadal wyświetlać się w innych rozmiarach.
  • Każda kreacja bez rozmiaru jest wliczana do limitu kreacji tylko raz, nawet jeśli wyświetla się w wielu rozmiarach.