اجزای اختیاری Performance Max

اهداف تبدیل

وقتی یک کمپین Performance Max ایجاد می‌کنید، مجموعه‌ای از اهداف تبدیل به طور خودکار ایجاد می‌شوند که با CustomerConversionGoal های موجود در حساب مطابقت دارند. می‌توانید با به‌روزرسانی آنها، این اهداف را به طور خاص برای هر یک از کمپین‌های Performance Max خود سفارشی کنید.

برای انجام این کار، ابتدا باید شناسه کمپین کمپین(های) Performance Max خود و لیستی از تمام اهداف تبدیل مشتری را دریافت کنید. در اینجا مثالی از تغییر اهداف یک کمپین آورده شده است، اگرچه می‌توانید کد خود را طوری تنظیم کنید که چندین کمپین Performance Max را به صورت حلقه‌ای طی کند.

// Query for a campaign by name. Update this logic to pull the campaigns you'd
// like to edit
const campaignName = "My PMax campaign";
let campaignId = "";

const search = AdsApp.search(`SELECT campaign.id FROM campaign WHERE campaign.name = "${campaignName}"`);
if (search.hasNext()) {
  campaignId = search.next().campaign.id;
  console.log(`Updating conversion goals for ${campaignName}: ${campaignId}`);
}
else
{
  console.log(`No campaign named "${campaignName}" found`);
  // Perform further error handling here
}

// Query for a list of customer conversion goals
const searchResults = AdsApp.search(
  `SELECT
     customer_conversion_goal.category,
     customer_conversion_goal.origin
   FROM customer_conversion_goal`
);

سپس می‌توانید تمام اهداف تبدیلی که دریافت کرده‌اید را بررسی کنید و یک عملیات به‌روزرسانی برای کمپین فعلی Performance Max ایجاد کنید تا هدف‌گذاری برای هر هدف را سفارشی‌سازی کنید. نمونه کدی که بعداً در این بخش نشان داده شده است، تمام اهداف را روی biddable تنظیم می‌کند، اما شما می‌خواهید آن بخش از منطق را مطابق با آنچه می‌خواهید از کمپین خود به دست آورید، سفارشی‌سازی کنید.

توصیه می‌کنیم اهداف تبدیل را در یک تراکنش جداگانه از بقیه فرآیند ایجاد کمپین تنظیم کنید. CampaignConversionGoalOperation مستلزم آن است که partialFailure برای درخواست روی false تنظیم شود. اگر می‌خواهید این کد را در همان تراکنشی که برای اولین بار کمپین را ایجاد می‌کنید اجرا کنید، باید کل مجموعه عملیات را طوری تنظیم کنید که شکست جزئی خاموش باشد. این کد نمونه نحوه انجام این عملیات را در یک تراکنش جداگانه نشان می‌دهد.

operations = [];
while (searchResults.hasNext()) {
  const row = searchResults.next();
  const conversionGoal = row.customerConversionGoal;

  operations.push({
    "campaignConversionGoalOperation": {
      "update": {
        "resourceName": `customers/${customerId}/campaignConversionGoals/${campaignId}~${conversionGoal.category}~${conversionGoal.origin}`,
        // Insert your logic here to determine whether you want this particular
        // campaign conversion goal to be biddable or not.
        // This code will just default everything to being biddable, but that
        // is not necessarily best for your use case.
        "biddable": true
      },
      "updateMask": "biddable"
    }
  });
}

AdsApp.mutateAll(operations, {partialFailure: false});

هدف‌گذاری کمپین

برای هدف‌گیری کمپین در Performance Max، حتماً راهنمای API را برای فهرست کاملی از انواع معیارهای مجاز بررسی کنید.

معیارهای اضافی برای ایجاد یک کمپین Performance Max لازم نیست، اما می‌توانند برای محدود کردن هدف‌گذاری بر اساس مورد استفاده شما مفید باشند. مثال کد بعدی نحوه تنظیم یک هدف موقعیت جغرافیایی را نشان می‌دهد. می‌توانید برای فرمت انواع دیگر معیارها به مستندات CampaignCriterion مراجعه کنید.

شما می‌توانید این معیارها را به همراه خود کمپین به عنوان بخشی از همان فراخوانی mutateAll ایجاد کنید. این مثال کد فرض می‌کند که شما کد خود را به این شکل ساختاربندی می‌کنید.

operations.push({
  "campaignCriterionOperation": {
    "create": {
      "campaign": campaignOperation.campaignOperation.create.resourceName,
      "negative": false,
      "location": {
        // 1023191 represents New York City
        "geoTargetConstant": "geoTargetConstants/1023191"
      }
    }
  }
});

سیگنال‌های گروه دارایی

قبل از شروع، در مورد سیگنال‌های گروه دارایی در مستندات API مطالعه کنید. این سیگنال‌ها با پیوند دادن یک گروه دارایی به یک معیار موجود AudienceInfo یا SearchThemeInfo تنظیم می‌شوند. اگر می‌خواهید از یک audience استفاده کنید، به جای فیلد searchTheme فیلد audience را با نام منبع audience مشخص کنید.

operations.push({
  "assetGroupSignalOperation": {
    "create": {
      "assetGroup": assetGroupOperation.assetGroupOperation.create.resourceName,
      "searchTheme": {
        "text": "mars cruise"
      }
    }
  }
});