Merchant API hizmeti, ürün yüklemek ve Merchant Center hesaplarını yönetmek için Apps Script'te Merchant API'yi kullanmanıza olanak tanır.
Merchant API hakkında ayrıntılı bilgi için referans belgelerine bakın. Apps Komut Dosyası'ndaki tüm gelişmiş hizmetler gibi Merchant API hizmeti de herkese açık API ile aynı nesneleri, yöntemleri ve parametreleri kullanır.
Merchant API, ilgili hizmet ve kaynak grupları olan bir alt API'ler koleksiyonudur. Alt API'lerin listesini burada bulabilirsiniz.
Apps Script'te Merchant API hizmetini kullanmak için aşağıdaki adımları uygulayın:
Apps Komut Dosyası projenizin standart bir Google Cloud projesine bağlı olduğundan emin olun.
Bu belgede açıklandığı şekilde Apps Komut Dosyası gelişmiş hizmetini etkinleştirin:
- Yeni projeler için
appsscript.json
özelliğini etkinleştirin. - Mevcut projeler için Apps Komut Dosyası'nı etkinleştirin.
- Yeni projeler için
Standart Google Cloud projenizi Merchant Center hesabınızla Merchant API hızlı başlangıç kılavuzunda açıklandığı şekilde kaydedin.
Apps Komut Dosyası gelişmiş hizmetini etkinleştirme
Apps Komut Dosyası hizmetini aşağıdaki iki yöntemden birini kullanarak etkinleştirebilirsiniz:
appsscript.json
'da API'leri etkinleştirme
Aşağıdaki örnekte, Ürünler, Hesaplar, Raporlar ve Veri kaynakları alt API'lerini etkinleştiren bir appsscript.json
dosyası gösterilmektedir.
Apps Komut Dosyası düzenleyicide Proje Ayarları'nı
seçin."appsscript.json" manifest dosyasını düzenleyicide göster seçeneğini etkinleştirin.
Düzenleyicide
appsscript.json
dosyasını seçin.appsscript.json
dosyanızın içeriğini aşağıdakilerle değiştirin:{ "dependencies": { "enabledAdvancedServices": [ { "userSymbol": "MerchantApiAccounts", "version": "accounts_v1beta", "serviceId": "merchantapi" }, { "userSymbol": "MerchantApiDataSources", "version": "datasources_v1beta", "serviceId": "merchantapi" }, { "userSymbol": "MerchantApiProducts", "version": "products_v1beta", "serviceId": "merchantapi" }, { "userSymbol": "MerchantApiReports", "version": "reports_v1beta", "serviceId": "merchantapi" } ] }, "exceptionLogging": "STACKDRIVER", "runtimeVersion": "V8" }
Kaydet'i tıklayın.
Artık kodunuzda aşağıdaki alt API'leri şu şekilde belirtebilirsiniz:
a.
MerchantApiAccounts
b.
MerchantApiDataSources
c.
MerchantApiProducts
d.
MerchantApiReports
Ek alt API'ler veya mevcut projeler için Apps Komut Dosyası'nı etkinleştirme
Mevcut projelerde alt API'leri etkinleştirmek için aşağıdakileri yapın:
Apps Komut Dosyası projenizi açın.
Sol tarafta Düzenleyici < >'yı tıklayın.
Sol tarafta, Hizmetler'in yanındaki Hizmet ekle + seçeneğini tıklayın.
Sürüm seçicide etkinleştirmek istediğiniz alt API'yi seçin.
Tanımlayıcıya alt API'nizin adını ekleyin. Örneğin, Inventories alt API'sini etkinleştirmek için inventories_v1beta sürümünü seçin ve tanımlayıcıyı MerchantApiInventories olarak değiştirin.
Artık kodunuzda Envanterler alt API'sine
MerchantApiInventories
olarak başvurabilirsiniz.
Örnek kod
Bu bölümde, Merchant API'nin belirli özellikler için nasıl kullanılacağı açıklanmaktadır.
Ürünleri listeleme
Bu örnekte, belirli bir Merchant Center hesabındaki ürünlerin nasıl listeleneceği gösterilmektedir.
/**
* Lists all products for a given Merchant Center account.
*/
function productList() {
// IMPORTANT:
// Enable the Merchant API Products sub-API Advanced Service and call it
// "MerchantApiProducts"
// Replace this with your Merchant Center ID.
const accountId = '<MERCHANT_CENTER_ID>';
// Construct the parent name
const parent = 'accounts/' + accountId;
try {
console.log('Sending list Products request');
let pageToken;
// Set the page size to 1000. This is the maximum allowed page size.
let pageSize = 1000;
console.log('Retrieved products below:');
// Call the Products.list API method. Use the pageToken to iterate through
// all pages of results.
do {
response = MerchantApiProducts.Accounts.Products.list(parent, {pageToken, pageSize});
console.log(response);
pageToken = response.nextPageToken;
} while (pageToken); // Exits when there is no next page token.
} catch (e) {
console.log('ERROR!');
console.log(e);
}
}
Onaylanmamış ürünleri filtreleme
Bu örnekte, Merchant Center hesabında onaylanmayan ürünlerin nasıl filtreleneceği gösterilmektedir.
/**
* Demonstrates how to filter disapproved products using the Merchant API Reports service.
*/
function filterDisapprovedProducts() {
// IMPORTANT:
// Enable the Merchant API Reports sub-API Advanced Service and call it
// "MerchantApiReports"
// Enable the Merchant API Products sub-API Advanced Service and call it
// "MerchantApiProducts"
// Replace this with your Merchant Center ID.
const accountId = '<INSERT_MERCHANT_CENTER_ID>';
// Construct the parent name
const parent = 'accounts/' + accountId;
try {
console.log('Sending search Report request');
// Set pageSize to the maximum value (default: 1000)
let pageSize = 1000;
let pageToken;
// The query below is an example of a query for the productView that gets product informations
// for all disapproved products.
let query = 'SELECT offer_id,' +
'id,' +
'price,' +
'title' +
' FROM product_view' +
' WHERE aggregated_reporting_context_status = "NOT_ELIGIBLE_OR_DISAPPROVED"';
// Call the Reports.search API method. Use the pageToken to iterate through
// all pages of results.
do {
response =
MerchantApiReports.Accounts.Reports.search({query, pageSize, pageToken}, parent);
for (const reportRow of response.results) {
console.log("Printing data from Product View:");
console.log(reportRow);
// OPTIONALLY, you can get the full product details by calling the GetProduct method.
let productName = parent + "/products/" + reportRow.getProductView().getId();
product = MerchantApiProducts.Accounts.Products.get(productName);
console.log(product);
}
pageToken = response.nextPageToken;
} while (pageToken); // Exits when there is no next page token.
} catch (e) {
console.log('ERROR!');
console.log('Error message:' + e.message);
}
}
Belirli bir hesaba ait raporu alma
Bu örnekte, belirli bir Merchant Center hesabı için raporun nasıl alınacağı gösterilmektedir.
/**
* Searches a report for a given Merchant Center account.
*/
function searchReport() {
// IMPORTANT:
// Enable the Merchant API Reports sub-API Advanced Service and call it
// "MerchantApiReports"
// Replace this with your Merchant Center ID.
const accountId = '<MERCHANT_CENTER_ID>';
// Construct the parent name
const parent = 'accounts/' + accountId;
try {
console.log('Sending search Report request');
// Set pageSize to the maximum value (default: 1000)
let pageSize = 1000;
let pageToken;
// Uncomment the desired query from below. Documentation can be found at
// https://developers.google.com/merchant/api/reference/rest/reports_v1beta/accounts.reports#ReportRow
// The query below is an example of a query for the product_view.
let query = 'SELECT offer_id,' +
'id,' +
'price,' +
'gtin,' +
'item_issues,' +
'channel,' +
'language_code,' +
'feed_label,' +
'title,' +
'brand,' +
'category_l1,' +
'product_type_l1,' +
'availability,' +
'shipping_label,' +
'thumbnail_link,' +
'click_potential' +
' FROM product_view';
/*
// The query below is an example of a query for the
price_competitiveness_product_view. let query = "SELECT offer_id,"
+ "id,"
+ "benchmark_price,"
+ "report_country_code,"
+ "price,"
+ "title,"
+ "brand,"
+ "category_l1,"
+ "product_type_l1"
+ " FROM price_competitiveness_product_view"
+ " WHERE date BETWEEN '2023-03-03' AND '2025-03-10'"; */
/*
// The query below is an example of a query for the
price_insights_product_view. let query = "SELECT offer_id,"
+ "id,"
+ "suggested_price,"
+ "price,"
+ "effectiveness,"
+ "title,"
+ "brand,"
+ "category_l1,"
+ "product_type_l1,"
+ "predicted_impressions_change_fraction,"
+ "predicted_clicks_change_fraction,"
+ "predicted_conversions_change_fraction"
+ " FROM price_insights_product_view"; */
/*
// The query below is an example of a query for the
product_performance_view. let query = "SELECT offer_id,"
+ "conversion_value,"
+ "marketing_method,"
+ "customer_country_code,"
+ "title,"
+ "brand,"
+ "category_l1,"
+ "product_type_l1,"
+ "custom_label0,"
+ "clicks,"
+ "impressions,"
+ "click_through_rate,"
+ "conversions,"
+ "conversion_rate"
+ " FROM product_performance_view"
+ " WHERE date BETWEEN '2023-03-03' AND '2025-03-10'"; */
// Call the Reports.search API method. Use the pageToken to iterate through
// all pages of results.
do {
response =
MerchantApiReports.Accounts.Reports.search({query, pageSize, pageToken}, parent);
for (const reportRow of response.results) {
console.log(reportRow);
}
pageToken = response.nextPageToken;
} while (pageToken); // Exits when there is no next page token.
} catch (e) {
console.log('ERROR!');
console.log(e);
console.log('Error message:' + e.message);
if (e.stack) {
console.log('Stack trace:' + e.stack);
}
}
}
Tüm veri kaynaklarını listeleme
Bu örnekte, belirli bir Merchant Center hesabındaki tüm veri kaynaklarının nasıl listeleneceği gösterilmektedir.
/**
* Lists all data sources for a given Merchant Center account.
*/
function listDataSources() {
// IMPORTANT:
// Enable the Merchant API DataSources sub-API Advanced Service and call it
// "MerchantApiDataSources"
// Replace this with your Merchant Center ID.
const accountId = '<MERCHANT_CENTER_ID>';
// Construct the parent name
const parent = 'accounts/' + accountId;
let dataSources = [];
let primaryDataSources = [];
try {
console.log('Sending list DataSources request');
let pageToken;
let pageSize = 10;
// Call the DataSources.list API method. Use the pageToken to iterate through
// all pages of results.
do {
response =
MerchantApiDataSources.Accounts.DataSources.list(parent, {pageSize, pageToken});
for (const datasource of response.dataSources) {
dataSources.push(datasource);
if (datasource.primaryProductDataSource) {
primaryDataSources.push(datasource);
}
}
pageToken = response.nextPageToken;
} while (pageToken); // Exits when there is no next page token.
console.log('Retrieved ' + dataSources.length + ' data sources.');
console.log(
'There were ' + primaryDataSources.length +
' primary product data sources.');
} catch (e) {
console.log('ERROR!');
console.log(e);
}
}