Ad Manager SOAP API, Ad Manager verilerinizi okumak ve yazmak, ayrıca rapor çalıştırmak için kullanılan eski bir API'dir. Taşıma yapabiliyorsanız Ad Manager API'yi (Beta) kullanmanızı öneririz. Ancak Ad Manager SOAP API sürümleri, normal yaşam döngüleri boyunca desteklenir. Daha fazla bilgi için Ad Manager SOAP API Desteği Sonlandırma Takvimi'ne bakın.
Aşağıdaki kılavuzda, Ad Manager SOAP API ile Ad Manager API (Beta) arasındaki farklar özetlenmiştir.
Bilgi
Standart Ad Manager SOAP API hizmeti yöntemlerinin Ad Manager API'de eşdeğer kavramları vardır. Ad Manager API'sinde tek varlıkları okumak için de yöntemler bulunur. Aşağıdaki tabloda, Order yöntemleri için örnek bir eşleme gösterilmektedir:
| SOAP yöntemi | REST yöntemleri |
|---|---|
getOrdersByStatement
|
networks.orders.get networks.orders.list |
Kimliği doğrula
Ad Manager API (Beta) ile kimlik doğrulaması yapmak için mevcut Ad Manager SOAP API kimlik bilgilerinizi kullanabilir veya yeni kimlik bilgileri oluşturabilirsiniz. Her iki seçenekte de öncelikle Google Cloud projenizde Ad Manager API'yi etkinleştirmeniz gerekir. Daha fazla bilgi için Kimlik doğrulama başlıklı makaleyi inceleyin.
Bir istemci kitaplığı kullanıyorsanız GOOGLE_APPLICATION_CREDENTIALS ortam değişkenini hizmet hesabı anahtar dosyanızın yoluna ayarlayarak varsayılan uygulama kimlik bilgilerini ayarlayın. Daha fazla bilgi için Uygulama Varsayılan Kimlik Bilgileri'nin işleyiş şekli başlıklı makaleyi inceleyin.
Yüklü uygulama kimlik bilgilerini kullanıyorsanız aşağıdaki biçimde bir JSON dosyası oluşturun ve ortam değişkenini bunun yolu olarak ayarlayın:
{
"client_id": "CLIENT_ID",
"client_secret": "CLIENT_SECRET",
"refresh_token": "REFRESH_TOKEN",
"type": "authorized_user"
}
Aşağıdaki değerleri değiştirin:
CLIENT_ID: Yeni veya mevcut müşteri kimliğiniz.CLIENT_SECRET: Yeni veya mevcut istemci gizli anahtarınız.REFRESH_TOKEN: Yeni veya mevcut yenileme jetonunuz.
Linux veya macOS
export GOOGLE_APPLICATION_CREDENTIALS=KEY_FILE_PATHWindows
set GOOGLE_APPLICATION_CREDENTIALS=KEY_FILE_PATH
Filtre farklılıklarını anlama
Ad Manager API (Beta) sorgu dili, tüm Yayıncı Sorgu Dili (PQL) özelliklerini destekler ancak önemli söz dizimi farklılıkları vardır.
Order nesnelerini listelemeyle ilgili bu örnekte, bağlama değişkenlerinin kaldırılması, büyük/küçük harfe duyarlı operatörler ve ORDER BY ile LIMIT ifadelerinin ayrı alanlarla değiştirilmesi gibi önemli değişiklikler gösterilmektedir:
Ad Manager SOAP API
<filterStatement>
<query>WHERE name like "PG_%" and lastModifiedDateTime >= :lastModifiedDateTime ORDER BY id ASC LIMIT 500</query>
<values>
<key>lastModifiedDateTime</key>
<value xmlns:ns2="https://www.google.com/apis/ads/publisher/v202502" xsi:type="ns2:DateTimeValue">
<value>
<date>
<year>2024</year>
<month>1</month>
<day>1</day>
</date>
<hour>0</hour>
<minute>0</minute>
<second>0</second>
<timeZoneId>America/New_York</timeZoneId>
</value>
</value>
</values>
</filterStatement>
Ad Manager API (Beta)
JSON biçimi
{
"filter": "displayName = \"PG_*\" AND updateTime > \"2024-01-01T00:00:00-5:00\"",
"pageSize": 500,
"orderBy": "name"
}
URL kodlu
GET https://admanager.googleapis.com/v1/networks/123/orders?filter=displayName+%3D+\"PG_*\"+AND+updateTime+%3E+\"2024-01-01T00%3A00%3A00-5%3A00\"
Ad Manager API (Beta), Ad Manager SOAP API'den aşağıdaki söz dizimi farklılıklarıyla birlikte tüm PQL özelliklerini destekler:
ANDveORoperatörleri, Ad Manager API'de (Beta) büyük/küçük harfe duyarlıdır. Küçük harfandveor, Ad Manager API'deki (Beta) alanlarda arama yapma özelliği olan yalın değişmez arama dizeleri olarak değerlendirilir.Büyük harfli operatörler kullanma
// Matches unarchived Orders where order.notes has the value 'lorem ipsum'. notes = "lorem ipsum" AND archived = falseKüçük harfler bire bir eşleşme olarak değerlendirilir
// Matches unarchived Orders where order.notes has the value 'lorem ipsum' // and any field in the order has the literal value 'and'. notes = "lorem ipsum" and archived = false*karakteri, dize eşleştirme için joker karakterdir. Ad Manager API'si (Beta),likeoperatörünü desteklemez.Ad Manager SOAP API PQL
// Matches orders where displayName starts with the string 'PG_' displayName like "PG_%"Ad Manager API (Beta)
// Matches orders where displayName starts with the string 'PG_' displayName = "PG_*"Alan adları, karşılaştırma operatörünün sol tarafında görünmelidir:
Geçerli filtre
updateTime > "2024-01-01T00:00:00Z"Geçersiz filtre
"2024-01-01T00:00:00Z" < updateTimeAd Manager API (Beta), bağlama değişkenlerini desteklemez. Tüm değerler satır içi olmalıdır.
Boşluk içeren dize değişmezleri çift tırnak içine alınmalıdır (örneğin,
"Foo bar"). Dize değişmezlerini sarmak için tek tırnak kullanamazsınız.
Sıralama ölçütü ifadelerini kaldırma
Ad Manager API'de (Beta) sıralama düzeni belirtmek isteğe bağlıdır. Sonuç kümeniz için bir sıralama düzeni belirtmek istiyorsanız PQL ORDER BY ifadesini kaldırın ve bunun yerine orderBy alanını ayarlayın:
GET networks/${NETWORK_CODE}/orders?orderBy=updateTime+desc
Ötelemelerden sayfalama jetonlarına geçiş
Ad Manager API'si (Beta), büyük sonuç kümelerinde sayfalandırma için LIMIT ve OFFSET
yan tümceleri yerine sayfalama jetonlarını kullanır.
Ad Manager API'si (Beta), sayfa boyutunu kontrol etmek için pageSize parametresini kullanır.
Ad Manager SOAP API'deki LIMIT ifadesinin aksine, sayfa boyutunun atlanması, sonuç kümesinin tamamını döndürmez. Bunun yerine, liste yönteminde varsayılan sayfa boyutu 50 kullanılır. Aşağıdaki örnekte pageSize ve pageToken, URL parametreleri olarak ayarlanıyor:
# Initial request
GET networks/${NETWORK_CODE}/orders?pageSize=50
# Next page
GET networks/${NETWORK_CODE}/orders?pageSize=50&pageToken=${TOKEN_FROM_INITIAL_REQUEST}
Ad Manager SOAP API'nin aksine, Ad Manager API (Beta) ek sayfalar olsa bile istenen sayfa boyutundan daha az sonuç döndürebilir. Ek sonuç olup olmadığını belirlemek için nextPageToken alanını kullanın.
Sayfalama için kaydırma gerekmemesine rağmen çoklu iş parçacığı için skip
alanını kullanabilirsiniz. Çoklu iş parçacığı kullanırken aynı sonuç kümesinden okuduğunuzdan emin olmak için ilk sayfadaki sayfalara ayırma jetonunu kullanın:
# First thread
GET networks/${NETWORK_CODE}/orders?pageSize=50&pageToken=${TOKEN_FROM_INITIAL_REQUEST}
# Second thread
GET networks/${NETWORK_CODE}/orders?pageSize=50&pageToken=${TOKEN_FROM_INITIAL_REQUEST}&skip=50
Raporları taşıma
SOAP API yalnızca kullanımdan kaldırılan Raporlar aracındaki raporları okuyabilir ve çalıştırabilir. Buna karşılık, REST API yalnızca etkileşimli raporları okuyabilir, yazabilir ve çalıştırabilir.
Raporlama araçları ve API'ler farklı bir kimlik alanına sahiptir. SOAP API'deki bir SavedQuery öğesinin kimliği, REST API'de kullanılamaz.
SavedQuery kullanıyorsanız raporu kullanıcı arayüzünde etkileşimli rapora taşıyabilir ve iki kimlik alanı arasında eşleme oluşturabilirsiniz. Raporları taşıma hakkında daha fazla bilgi için Raporları etkileşimli raporlara taşıma başlıklı makaleyi inceleyin.
API farklılıklarını anlama
SOAP API ve REST API'nin rapor tanımlarını ve sonuçlarını işleme şekli arasında bazı farklar vardır:
SOAP API, bir raporda yalnızca
NAMEistendiğinde sonuçlara otomatik olarak karşılık gelen birIDboyutu ekliyordu. REST API'de, sonuçlara dahil edilmesi içinIDboyutunuReportDefinitionöğesine açıkça eklemeniz gerekir.SOAP API'de metrikler için açık türler yoktu. REST API,
Dimensionenum değerinde belgelenen bir veri türü tanımlar.ENUMboyutlarının açık numaralandırmalar olduğunu unutmayın. Sonuçları ayrıştırırken yeni ve bilinmeyen enum değerlerini işlemeniz gerekir.SOAP API,
DimensionsveDimensionAttributesöğelerini ayırıyordu. REST API'de her ikisini de içeren birleştirilmiş birDimensionenum'u bulunur.SOAP API'de boyut sayısı sınırı yoktu. Etkileşimli raporlar hem kullanıcı arayüzünde hem de API'de 10 boyutla sınırlıdır. Aynı kimlik alanına göre ayrılan boyutlar tek bir boyut olarak sayılır. Örneğin,
ORDER_NAME,ORDER_IDveORDER_START_DATE'nin dahil edilmesi, sınır hesaplanırken yalnızca 1 boyut olarak kabul edilir.