Google DAI platformunu kullanırken, bir akışta yaklaşan canlı/doğrusal reklam arası için hedefleme verileri sağlamak isteyebilirsiniz. Erken Reklam Arası Bildirimi (EABN) API, yüksek hacimli akışlarda reklam kararı için ölçeklenebilirlik sağlayan anahtar/değer çiftlerini kullanarak araya özel hedefleme uygulamanıza olanak tanır.
EABN API'ye yapılan çağrılar, hedeflenecek öğe anahtarını ve bir sonraki aranın beklenen süresini içermelidir. Süre, gerçek reklam arası uzunluğuna olabildiğince yakın olmalıdır. Gönderilen beklenen süre, sağlanan reklam arasından daha kısaysa aranın geri kalanı için Gereğinden az doldurulan reklam arası dolgu türü (varsayılan olarak boş seçenek listesidir) kullanılır. Gönderilen beklenen süre, sağlanan reklam arasından uzunsa reklam aranız reklam tamamlanmadan önce sona erebilir.
Bu zorunlu alanlara ek olarak özel hedefleme parametreleri, uygulanacak reklam kapsülü şablonunun adını veya varsa SCTE35 Cue Out verilerini de gönderebilirsiniz.
Ön koşullar
Hizmet hesabı oluşturma
EABN API'ye erişmek için Google hizmet hesabına ihtiyacınız vardır.
- Google Cloud hesabınız varsa hizmet hesabı oluşturmak için IAM modülünü kullanabilirsiniz. Daha fazla bilgi için Hizmet hesapları oluşturma ve yönetme başlıklı makaleye bakın.
- Google Cloud hesabınız yoksa aşağıdaki adımları uygulayarak Google API Konsolu'ndan hizmet hesabı oluşturabilirsiniz:
- Yeni bir proje oluşturun veya mevcut bir projeyi seçin.
- Kimlik bilgileri sayfasında Hizmet hesaplarını yönet'i tıklayın.
- Hizmet hesapları sayfasında HİZMET HESABI OLUŞTUR'u tıklayın.
- Hizmet hesabı oluştur sayfasında hesap ayrıntılarını girin. Ardından OLUŞTUR'u tıklayın.
Bir hizmet hesabını başarıyla oluşturduktan sonra, hesabın kimlik doğrulama için kullanılacak JSON anahtarını kopyalayın.
EABN API'yi etkinleştirin
Hizmet hesabınız oluşturulduktan sonra hesap yöneticinizden bu hesap için EABN API'yi etkinleştirmesini isteyin.
DAI API'sini etkinleştirme
Hizmet hesabınız için EABN API etkinleştirildikten sonra hesapta DAI API'yi etkinleştirin:
Google API kitaplığında "DAI API" ifadesini arayın.
DAI API'sini seçip etkinleştirin.
EABN API'sini kullanma
JSON/REST isteklerini kullanarak EABN API'yi çağırabilirsiniz.
Kimlik doğrulama
EABN API'ye kimliği doğrulanmış çağrı yapmak için hizmet hesabınızdaki JSON anahtarını ve https://www.googleapis.com/auth/video-ads
kapsamını kullanarak OAuth2 hizmet hesabı kimlik bilgileri oluşturmanız gerekir. Daha fazla bilgi için Sunucudan Sunucuya Uygulamalar için OAuth 2.0'ı Kullanma bölümüne bakın.
Bu kod, EABN API'ye yapılan her çağrı için Auth başlığı olarak elde edilen kimlik doğrulama jetonunu içermelidir.
Erken reklam arası bildirimi gönderme
Erken reklam arası bildirimi göndermek için aşağıdaki URL'yi ve istek gövdesini kullanarak bir POST isteği gönderin:
POST dai.googleapis.com/v1/adBreaks
İstek içeriği
Nesne | ||
---|---|---|
adBreak |
Gerekli | adBreak mülkleri için sarmalayıcı nesnesi |
assetKey |
Gerekli | Aranın oluşturulduğu LiveStreamEvent için benzersiz bir tanımlayıcı |
expectedDuration |
Gerekli | Google'ın standart süre biçimi (xx.xxx'in saniye sayısı olduğu xx.xxxs) kullanılarak bu reklam arasının süresi. |
scte35CueOut |
İsteğe bağlı | Scte35 işaret noktasından Base-64 olarak kodlanmış veriler. splice_insert() veya time_signal() komutunu içerebilir.
Örnekler:
|
custParams |
İsteğe bağlı | AM360'ta özel ölçüt hedefleme için bu arayla ilgili reklam isteklerine dahil edilecek, = ile ayrılmış ve & ile birleştirilen anahtar/değer çiftleri.Örnek: key=value&key2=value2,value3 Hedefleme hakkında daha fazla bilgi için Akışınıza hedefleme parametreleri sağlama bölümünü inceleyin. |
ptpln |
İsteğe bağlı | Reklam kapsülü şablon adı |
Yanıt başlığı
HTTP/1.1 200 OK
Yanıt gövdesi
Yanıt gövdesi, adBreak
nesnesinde gönderilen tüm parametrelerin yanı sıra akış içinde oluşturulan reklam arasının dahili DAI tanımlayıcısını içeren ek bir daiBreakId
alanını içerir.
Örnek
İstek
POST /v1/adBreaks HTTP/1.1
Content-Type: application/json
{
"adBreak": {
"assetKey": "asset1",
"expectedDuration": "30s",
"scte35CueOut": "/DA0AAAAAAAA///wBQb+cr0AUAAeAhxDVUVJSAAAjn/PAAGlmbAICAAAAAAsoKGKNAIAmsnRfg==",
"custParams": "param1=value1¶m2=value2",
"ptpln": "podtemplate"
}
}
Yanıt
HTTP/1.1 200 OK
{
"assetKey": "asset1",
"expectedDuration": "30s",
"custParams": "param1=value1¶m2=value2",
"scte35CueOut": "/DA0AAAAAAAA///wBQb+cr0AUAAeAhxDVUVJSAAAjn/PAAGlmbAICAAAAAAsoKGKNAIAmsnRfg==",
"ptpln": "podtemplate",
"daiBreakId": 1
}
Örnek uygulama (Python)
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from absl import app
from google.auth.transport.requests import AuthorizedSession
from google.oauth2 import service_account
SERVICE_ACCOUNT_KEY_FILE = "~/eabn_key.json"
ASSET_KEY = "asset1"
SCOPES = ['https://www.googleapis.com/auth/video-ads']
EABN_API_URL = 'https://dai.googleapis.com/v1/adBreaks'
def main():
credentials = service_account.Credentials.from_service_account_file(
SERVICE_ACCOUNT_KEY_FILE, scopes=SCOPES)
authed_session = AuthorizedSession(credentials)
data = {
'assetKey': ASSET_KEY,
'expectedDuration': '120s',
'custParams': 'param1=value1¶m2=value2',
'scte35CueOut': '/DA0AAAAAAAA///wBQb+cr0AUAAeAhxDVUVJSAAAjn/PAAGlmbAICAAAAAAsoKGKNAIAmsnRfg==',
}
r = authed_session.post(EABN_API_URL, json={'adBreak': data})
print(r.status_code)
print(r.headers)
print(r.text)
if __name__ == '__main__':
app.run(main)