حملات التسوّق

توفر النصوص البرمجية في "إعلانات Google" بعض إدارة حملات Shopping الحملات. يمكنك استخدام والنصوص البرمجية للعمل مع حملات Shopping الحالية، وإنشاء المنتجات وإدارتها الهرمية الجماعية وتشغيل تقارير التسوق. ومع ذلك، لا يمكنك استخدام النصوص البرمجية إنشاء حملات Shopping، وتعيين خصائص shopping على مستوى الحملة (ل مثال: أولوية الحملة، وفلاتر المستودع، وما إلى ذلك)، أو ربط حساب 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 يؤدي ذلك أيضًا إلى حذف التسلسل الهرمي لمجموعة المنتجات بالكامل أسفل المنتج جارٍ إزالة المجموعة.

ستضمن النصوص البرمجية أن يكون العرض الهرمي لمجموعة المنتجات في حالة متسقة بعد إنشاء كل مجموعة منتجات، حتى لا تحتاج إلى إنشاء أو حذف مجموعة منتجات تتطابق مع "كل شيء آخر" عند تحديث المنتج هيكل التسلسل الهرمي للمجموعة.

عنوان "كل شيء آخر" مجموعة منتجات

العروض الهرمية لمجموعات المنتجات على 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.");
}

عند إجراء تقسيم فرعي لمجموعة منتجات الخصائص التفصيلية، يتم إنشاء النصوص البرمجية تلقائيًا و"الأخرى" مجموعة منتجات لضمان بقاء التسلسل الهرمي لمجموعة المنتجات صالحة. "الآخر" مجموعة المنتجات تكتسب عرض سعر المنتج الرئيسي المجموعة.

إنشاء مجموعة إعلانية جديدة على Shopping

تسمح لك نصوص "إعلانات Google" البرمجية بإنشاء مجموعة إعلانية جديدة على Shopping باستخدام newAdGroupBuilder طريقة ShoppingCampaign بمجرد إنشاء ShoppingAdGroup، يمكنك استخدام createRootProductGroup لإنشاء تسلسل هرمي جديد لمجموعة المنتجات.

التقارير

تتيح النصوص البرمجية على "إعلانات Google" product_group_view و shopping_performance_view لمساعدتك في تعقب أداء حملات Shopping. يمكنك لمزيد من المعلومات عن التقارير في دليل التقارير