توفر نصوص "إعلانات Google" البرمجية بعض الإمكانات لإدارة حملات التسوّق. يمكنك استخدام النصوص البرمجية للتعامل مع حملات التسوّق الحالية، وإنشاء وإدارة التسلسلات الهرمية لمجموعات المنتجات، وعرض تقارير التسوّق. ومع ذلك، لا يمكنك استخدام النصوص البرمجية لإنشاء حملات تسوّق أو ضبط خصائص التسوّق على مستوى الحملة (مثل أولوية الحملة وفلاتر المستودع وما إلى ذلك) أو ربط حسابات Merchant Center.
استرداد حملات التسوّق والمجموعات الإعلانية
تتوفّر حملات التسوّق من خلال مجموعة shoppingCampaigns
لكائن AdsApp. يمكنك استردادها كالمعتاد من خلال النصوص البرمجية:
const campaignName = "My first shopping campaign";
const campaignIterator = AdsApp.shoppingCampaigns()
.withCondition(`campaign.name = "${campaignName}"`)
.get();
for (const campaign of campaignIterator) {
...
}
بعد استرداد حملة، يمكنك الحصول على مجموعاتها الإعلانية بطريقة مماثلة. لا يُفضَّل ذلك إلا إذا كنت بحاجة إلى اتّخاذ إجراء بشأن الحملة ومجموعاتها الإعلانية معًا.
const adGroupIterator = campaign.adGroups()
.withCondition(`ad_group.name = "${adGroupName}"`)
.get();
for (const adGroup of adGroupIterator) {
...
}
إذا كنت تخطّط لاتّخاذ إجراء بشأن مجموعات إعلانية معيّنة فقط، يمكنك استخدام الـ
AdsApp.shoppingAdGroups() طريقة
لجلب المجموعات الإعلانية بدون جلب الحملة أولاً:
const adGroupIterator = AdsApp.shoppingAdGroups()
.withCondition(`campaign.name = "${campaignName}"`)
.withCondition(`ad_group.name = "${adGroupName}"`)
.get();
for (const adGroup of adGroupIterator) {
...
}
إعلانات المنتجات
تتيح لك نصوص "إعلانات Google" البرمجية استرداد إعلانات منتجاتك باستخدام ads()
طريقة ShoppingAdGroup. يمكنك إنشاء إعلانات منتجات جديدة باستخدام
طريقة newAdBuilder() في ShoppingAdGroup.
التكرار خلال التسلسل الهرمي لمجموعة المنتجات
يمكنك الوصول إلى جذر التسلسل الهرمي لمجموعة المنتجات باستخدام الـ
rootProductGroup طريقة الـ ShoppingAdGroup. يمكنك بعد ذلك استخدام
طريقة children لتكرار مجموعات المنتجات الفرعية واجتياز الـ
تسلسل الهرمي لمجموعة المنتجات. كل عقدة هي كائن ProductGroup، ويمكنك
استخدام طريقة getDimension لمعرفة النوع الفعلي لمجموعة المنتجات. يمكنك أيضًا تحويلها إلى نوع أكثر تحديدًا (مثل
ProductBrand) باستخدام طريقة التحويل المقابلة (مثل
asBrand). يوضّح مقتطف الرمز البرمجي التالي كيفية اجتياز
التسلسل الهرمي لمجموعة المنتجات بشكلٍ متكرّر.
walkTree(shoppingAdGroup.rootProductGroup(), 1);
function walkTree(root, level) {
// Logger.log(root.getDimension());
let description = "";
switch (root.getDimension()) {
case "ROOT":
description = "Root";
break;
case "CATEGORY":
description = root.asCategory().getName();
break;
case "BRAND":
description = root.asBrand().getName();
break;
// Handle more types here.
...
}
if (root.isOtherCase()) {
description = "Other";
}
const padding = new Array(level + 1).join('-');
console.log("%s, %s, %s, %s, %s, %s",
padding,
description,
root.getDimension(),
root.getMaxCpc(),
root.isOtherCase(),
root.getId().toFixed());
const children = root.children().get();
for (const child of children) {
walkTree(child, level + 1);
}
}
اختيار مجموعة منتجات معيّنة
يمكنك اختيار مجموعات منتجات معيّنة في تسلسل هرمي لمجموعة المنتجات باستخدام طريقة
productGroups في مثيل AdsApp أو ShoppingCampaign أو
ShoppingAdGroup. هذا النهج أبسط من اجتياز التسلسل الهرمي الكامل لمجموعة المنتجات عند اختيار مجموعات منتجات معيّنة لأغراض إدارة عروض الأسعار. يوضّح مقتطف الرمز البرمجي التالي كيفية اختيار جميع مجموعات المنتجات التي حصلت على أكثر من خمس نقرات ونسبة نقر إلى ظهور أكبر من 0.01 خلال الشهر الماضي، وزيادة عرض سعرها بمقدار 0.01.
function main() {
const productGroups = AdsApp.productGroups()
.withCondition("metrics.clicks > 5")
.withCondition("metrics.ctr > 0.01")
.forDateRange("LAST_MONTH")
.get();
for (const productGroup of productGroups) {
productGroup.setMaxCpc(productGroup.getMaxCpc() + 0.01);
}
}
تعديل تسلسل هرمي لمجموعة المنتجات
يمكنك إضافة مجموعة منتجات فرعية إلى مجموعة منتجات حالية باستخدام طريقة
newChild. يمنحك ذلك كائن ProductGroupBuilderSpace
، يمكنك بعد ذلك استخدامه لإنشاء مجموعة منتجات مناسبة. يضيف مقتطف الرمز البرمجي التالي قسمًا فرعيًا لعلامة تجارية باسم "cardcow" ضمن الجذر، ثم يقسّمه فرعيًا أكثر للمنتجات الجديدة والمجدَّدة.
const root = shoppingAdGroup.rootProductGroup();
// Add a brand product group for a "cardcow" under root.
const brandProductGroup = root.newChild()
.brandBuilder()
.withName("cardcow")
.withBid(1.2)
.build()
.getResult();
// Add new conditions for New and Refurbished cardcow brand items.
const newItems = brandProductGroup.newChild()
.conditionBuilder()
.withCondition("New")
.withBid(1.5)
.build()
.getResult();
// Refurbished items will use the bid from "cardcow" product group.
const refurbishedItems = brandProductGroup.newChild()
.conditionBuilder()
.withCondition("Refurbished")
.build()
.getResult();
وبالمثل، يمكنك إزالة قسم فرعي باستخدام طريقة remove في
ProductGroup. يؤدي ذلك أيضًا إلى حذف التسلسل الهرمي الكامل لمجموعة المنتجات تحت مجموعة المنتجات التي تتم إزالتها.
ستضمن النصوص البرمجية أن يكون التسلسل الهرمي لمجموعة المنتجات في حالة متّسقة بعد إنشاء كل مجموعة منتجات، لذا ليس عليك إنشاء مجموعة المنتجات المقابلة لـ "كل شيء آخر" أو حذفها عند تعديل بنية التسلسل الهرمي لمجموعة المنتجات.
مجموعة المنتجات "كل شيء آخر"
تحتوي التسلسلات الهرمية لمجموعات منتجات التسوّق على مجموعة منتجات "كل شيء آخر" ("أخرى") على كل مستوى للتعامل مع المنتجات التي لا تتطابق مع الشرط المخصّص الذي أنشأته في التسلسل الهرمي لمجموعة المنتجات. يمكنك استخدام طريقة
isOtherCase للتمييز بين مجموعة منتجات عادية أضفتها ومجموعة المنتجات "أخرى".
يسترد مقتطف الرمز البرمجي التالي مجموعة المنتجات "أخرى" ضمن التسلسل الهرمي لمجموعة المنتجات الجذر، ويطبع عرض سعرها.
const root = shoppingAdGroup.rootProductGroup();
const childProductGroups = root.children().get();
let everythingElseProductGroupFound = false;
for (const childProductGroup of childProductGroups) {
if (childProductGroup.isOtherCase()) {
console.log("'Everything else' product group found. Type of the " +
"product group is %s and bid is %s.",
childProductGroup.getDimension(),
childProductGroup.getMaxCpc());
everythingElseProductGroupFound = true;
break;
}
}
if (!everythingElseProductGroupFound) {
console.log("No 'Everything else' product group found under root " +
"product group.");
}
عند تقسيم مجموعة منتجات فرعية نهائية، تنشئ النصوص البرمجية تلقائيًا مجموعة منتجات "أخرى" لضمان بقاء التسلسل الهرمي لمجموعة المنتجات صالحًا. ترث مجموعة المنتجات "أخرى" عرض سعر مجموعة المنتجات الرئيسية.
إنشاء مجموعة إعلانية جديدة للتسوّق
تتيح لك النصوص البرمجية في "إعلانات Google" إنشاء مجموعة إعلانية جديدة للتسوّق باستخدام الـ
newAdGroupBuilder طريقة في ShoppingCampaign. بعد إنشاء
ShoppingAdGroup، يمكنك استخدام طريقة createRootProductGroup
لإنشاء تسلسل هرمي جديد لمجموعة المنتجات.
التقارير
تتيح لك النصوص البرمجية في "إعلانات Google" استخدام تقريرَي product_group_view و
shopping_performance_view لمساعدتك في تتبُّع أداء
حملات التسوّق. يمكنك الاطّلاع على مزيد من المعلومات حول إعداد التقارير في
دليل التقارير.