توفّر نصوص "إعلانات Google" بعض إدارة حملات Shopping. يمكنك استخدام النصوص البرمجية للعمل مع حملات التسوّق الحالية وإنشاء التسلسلات الهرمية لمجموعات المنتجات وتدبيرها وعرض تقارير التسوّق. ومع ذلك، لا يمكنك استخدام النصوص البرمجية لإنشاء حملات تسوّق أو ضبط مواقع تسوّق على مستوى الحملة (مثل أولوية الحملة وفلاتر المستودع وما إلى ذلك) أو ربط حسابات Merchant Center.
استرداد الحملات والمجموعات الإعلانية على Shopping
تتوفّر "حملات Shopping" من خلال مجموعة
shoppingCampaigns
العنصر
AdsApp
. يمكنك retrieving them as usual through scripts:
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
.
يؤدي ذلك أيضًا إلى حذف التسلسل الهرمي الكامل لمجموعة المنتجات ضمن مجموعة المنتجات التي تتم إزالتها.
ستضمن النصوص البرمجية أنّ التسلسل الهرمي لمجموعة المنتجات في حالة متّسقة بعد إنشاء كل مجموعة منتجات، ولن تحتاج إلى إنشاء مجموعة المنتجات المقابلة لـ "كل شيء آخر" أو حذفها عند تعديل البنية التسلسلية لمجموعات المنتجات.
مجموعة المنتجات "كل شيء آخر"
تحتوي التسلسلات الهرميّة لمجموعات منتجات Shopping على مجموعة منتجات "كل شيء آخر" (أو "غير ذلك")
في كل مستوى للتعامل مع المنتجات التي لا تتطابق مع
الشرط المخصّص الذي أنشأته في التسلسل الهرمي لمجموعات المنتجات. يمكنك استخدام الوسيطة
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
لمساعدتك في تتبُّع أداء حملات التسوّق. يمكنك قراءة مزيد من المعلومات حول الإبلاغ عن المحتوى في دليل البلاغات.