Google, Ad Manager API ile etkileşim kurmak için 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'ye @google-ads/admanager
olarak yayınlar.
package.json
"dependencies": {
"@google-ads/admanager": "^0.4.0"
}
Komut satırı
npm install @google-ads/admanager
Kimlik bilgilerini yapılandırma
Node.js istemci kitaplığı, kimlik doğrulamak 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 hizmetin, her REST yöntemi için yöntemler içeren bir ServiceClient
nesnesi vardır.
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 isteklerinin ve yanıtlarının günlüğe kaydedilmesini destekler. İstemci kitaplığı, varsayılan olarak günlüğe kaydetmeyi devre dışı bırakır.
Varsayılan günlüğün standart çıkışa kaydedilmesini etkinleştirmek için ortam değişkenini
GOOGLE_SDK_NODE_LOGGING
Google API 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ı
başlıklı makaleye 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 bağlayabilirsiniz. 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ı, bir hata mesajı ve API destek ekibine sağlayabileceğiniz 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ıklanı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;
}
}