Reklamy pełnoekranowe

Reklama pośrednia (lub reklama pełnoekranowa) to typ reklamy, która zajmuje większość ekranu. W rezultacie treści wydawcy nie pojawiają się na ekranie podczas wyświetlania reklamy pośredniej.

Możliwość wyświetlenia reklamy przejściowej możesz zidentyfikować w żądaniu stawki, sprawdzając, czy w Protobuf pole BidRequest.imp.instl ma wartość true, a w JSON – 1.

Rozmiar boksu reklamowego

Rozmiar boksu reklamowego w przypadku reklam pełnoekranowych wskazuje obszar, który może być użyty do renderowania kreacji. Zależny jest on od kilku czynników, takich jak konkretne formaty i wymiary ekranu.

Pierwszy z par szerokości i wysokości w polu BidRequest.imp.banner.format w OpenRTB odpowiada rzeczywistemu rozmiarowi boksu reklamowego, a pozostałe pary to lista dozwolonych rozmiarów reklamy, które mieszczą się w ramach wymagań boksu.

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

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

  • Mniejsze lub równe szerokości i wysokości boksu reklamowego
  • Większa lub równa 50% szerokości boksu reklamowego
  • Większa lub równa 40% wysokości boksu reklamowego

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

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

Przykładowe pytania o stawkę

Oto kilka przykładowych żądań stawek dotyczących reklam pełnoekranowych.

OpenRTB Protobuf

Wyświetlanie próbki

[Zaszyfrowane żądanie](/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 w formacie JSON

Wyświetlanie próbki

{
  "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:

  • Uwzględnij atrybuty formatowania w fragmentach kreacji HTML, aby wyśrodkować reklamy w miejscu docelowym. W przeciwnym razie reklamy są renderowane w lewym górnym rogu boksu reklamowego.

  • Odpowiedz reklamą pełnoekranową, która zajmuje jak najwięcej miejsca w boksie reklamowym. Nie wypełniaj boksu reklamy pełnoekranowej reklamą o znacznie mniejszym rozmiarze. Na przykład reklama o rozmiarze 320 x 480 jest za mała na boks reklamy pełnoekranowej o rozmiarze 420 x 800.

  • Nie dodawaj przycisku zamykania:

    • Nasz pakiet SDK automatycznie wyświetla przycisk zamknięcia (w odpowiednich przypadkach), aby użytkownicy mogli go kliknąć.
    • Format MRAID useCustomClose() nie jest obsługiwany.
  • Aby wybrać dopuszczalne rozmiary reklamy w odpowiedzi na pytanie o stawkę, użyj zalecanych rozmiarów z pytania 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 można było określać stawki w odpowiedniej orientacji.

Reklamy pełnoekranowe bez rozmiaru (elastyczne)

Interaktywna reklama przejściowa bez rozmiaru (nazwana też reklamą elastycznym lub płynną) zmienia rozmiar dynamicznie, aby zajmować całą szerokość i wysokość boksu reklamowego. Autoryzowani kupujący nie zmieniają rozmiaru kreacji za Ciebie. Musisz przesłać kreację, która automatycznie dostosowuje rozmiar.

Reklamy pełnoekranowe bez rozmiaru wystarczy przesłać do sprawdzenia tylko raz, mimo że mogą być wyświetlane w różnych rozmiarach. Aby mieć pewność, że Twoja kreacja nie zostanie ponownie sprawdzona w przypadku każdego rozmiaru boksu reklamowego, zalecamy:

Odpowiedź na stawkę

  • Użyj atrybutu BidResponse.seatbid.bid.ext.attribute, aby zadeklarować wartość Rendering: Sizeless AdX (atrybut 105) w odpowiedzi na stawkę. Deklarowalne atrybuty kreacji znajdziesz w pliku danych buyer-declarable-creative-attributes.txt.

  • W elementach BidResponse.seatbid.bid.wBidResponse.seatbid.bid.h wpisz rozmiar, w jakim chcesz renderować kreację na podstawie wymagań dotyczących rozmiaru reklamy. Przykładowo: 360 x 480 w przypadku boksu reklamowego 360 x 480. Kreacja może się nadal wyświetlać w innych rozmiarach. W przypadku przestarzałego protokołu Google RTB należy wypełnić pola BidResponse.Ad.widthBidResponse.Ad.height.

Jeśli do istniejącej kreacji dodasz atrybut Rendering: Sizeless AdX, kreacja będzie musiała zostać ponownie sprawdzona.

Wstępne zatwierdzenie kreacji

  • Podczas przesyłania kreacji do sprawdzenia uwzględnij atrybut RENDERING_SIZELESS_ADX w polu declaredAttributes. W interfejsie Real-time Bidding API atrybuty kreacji są reprezentowane za pomocą wartości wyliczeniowej typu string. Więcej informacji o odpowiednictwie tych wartości do numerycznych identyfikatorów z pliku buyer-declarable-creative-attributes.txt znajdziesz w przewodniku po mapowaniu.
  • Prześlij kreację w rozmiarze, który zamierzasz wyświetlać, czyli w rozmiarze typowym dla kreacji wyskakujących. Kreacja może nadal wyświetlać się w innych rozmiarach.
  • Każda kreacja bez rozmiaru wlicza się do limitu kreacji tylko raz, nawet jeśli wyświetla się w kilku rozmiarach.