Google, Ad Manager API ile etkileşim kurmak için bir Node.js istemci kitaplığı sağlar.
Ön koşul
Node.js istemci kitaplığını kullanmak için Node.js'nin yüklü olması gerekir. Daha fazla bilgi için Node.js®'yi indirme başlıklı makaleyi inceleyin.
İstemci kitaplığını yükleme
Başlamak için tercih ettiğiniz IDE'de yeni bir proje oluşturun veya bağımlılığı mevcut bir projeye ekleyin. Google, istemci kitaplığı yapılarını npm'de @google-ads/admanager olarak yayınlar.
package.json
"dependencies": {
"@google-ads/admanager": "^0.15.0"
}
Komut satırı
npm install @google-ads/admanager
Kimlik bilgilerini yapılandırma
Node.js istemci kitaplığı, kimlik doğrulaması için OAuth2 ve Uygulama Varsayılan Kimlik Bilgileri'ni (ADC) kullanır. ADC kimlik bilgilerinizi oluşturma ve yapılandırma hakkında bilgi edinmek için Kimlik doğrulama başlıklı makaleyi inceleyin.
İlk isteğinizi gönderme
Her hizmette, her REST yöntemi için yöntemleri olan bir ServiceClient nesnesi bulunur.
Her yöntemin örnekleri için GitHub deposuna googleapis/google-cloud-node bakın.
Aşağıdaki örnekte bir Network nesnesi okunmaktadır:
// Resource name of the Network
const name = 'networks/NETWORK_CODE'
// Imports the Admanager library
const {NetworkServiceClient} = require('@google-ads/admanager').v1;
// Instantiates a client
const admanagerClient = new NetworkServiceClient();
async function callGetNetwork() {
// Construct request
const request = {
name,
};
// Run request
const response = await admanagerClient.getNetwork(request);
console.log(response);
}
callGetNetwork();
HTTP isteklerini ve yanıtlarını günlüğe kaydetme
Node.js istemci kitaplığı, HTTP isteklerini ve yanıtlarını günlüğe kaydetmeyi destekler. İstemci kitaplığı, günlük kaydını varsayılan olarak devre dışı bırakır.
Standart çıkışa varsayılan günlük kaydını etkinleştirmek için GOOGLE_SDK_NODE_LOGGING ortam değişkenini Google API'leri paket adlarının virgülle ayrılmış listesi olarak ayarlayın.
Değişken değerini all olarak ayarlayarak tüm Google API'leri için günlük kaydını etkinleştirebilirsiniz. Mevcut tüm istemci kitaplığı paket adları için Google Cloud Node.js İstemci Kitaplıkları'na bakın.
Node.js
// Enable logging for the Google Ad Manager API
process.env.GOOGLE_SDK_NODE_LOGGING = 'admanager';
// Enable logging for the Google Ad Manager and pubsub APIs.
process.env.GOOGLE_SDK_NODE_LOGGING = 'admanager,pubsub';
// Enable logging for all Google APIs
process.env.GOOGLE_SDK_NODE_LOGGING = 'all';
Linux veya macOS
# Enable logging for the Google Ad Manager API.
export GOOGLE_SDK_NODE_LOGGING=admanager
# Enable logging for the Google Ad Manager and pubsub APIs.
export GOOGLE_SDK_NODE_LOGGING=admanager,pubsub
# Enable logging for all Google APIs
export GOOGLE_SDK_NODE_LOGGING=all
Windows
# Enable logging for the Google Ad Manager API.
set GOOGLE_SDK_NODE_LOGGING=admanager
# Enable logging for the Google Ad Manager and pubsub APIs.
set GOOGLE_SDK_NODE_LOGGING=admanager,pubsub
# Enable logging for all Google APIs
set GOOGLE_SDK_NODE_LOGGING=all
Alternatif olarak, günlük kaydı arka ucunu değiştirebilir veya günlük etkinliklerini kancalayabilirsiniz. Daha fazla bilgi için Google Günlük Kaydı Araçları başlıklı makaleyi inceleyin.
Hataları işleme
Node.js istemci kitaplığında, tüm Ad Manager API hataları GaxiosError türünde bir istisna oluşturur.
Ad Manager API hataları, API destek ekibine sağlayabileceğiniz bir hata mesajı ve benzersiz bir requestId değeri içerir. Sorun giderme konusunda yardım almak için API destek ekibiyle iletişime geçme başlıklı makaleyi inceleyin. Aşağıdaki örnekte requestId değeri ve hata mesajı ayıklanmaktadır:
const admanagerClient = new NetworkServiceClient();
try {
const network = admanagerClient.getNetwork(
{ name: 'networks/NETWORK_CODE' }
);
console.log(network);
} catch(e) {
if (e instanceof GaxiosError) {
// Load the error
const apiError = JSON.parse(e.message).error;
const requestInfoType = 'type.googleapis.com/google.rpc.RequestInfo';
const requestInfo = apiError.details.find(detail => detail['@type'] === requestInfoType);
console.error(apiError.status + ' - ' + apiError.message);
console.error('RequestId: ' + requestInfo.requestId);
} else {
throw e;
}
}