רכיבים אופציונליים של קמפיינים למיקסום הביצועים

יעדי המרה

כשיוצרים קמפיין למיקסום הביצועים, המערכת יוצרת באופן אוטומטי סדרה של יעדי המרה שתואמים לCustomerConversionGoal בחשבון. אתם יכולים לעדכן את ההגדרות האלה ולהתאים אותן אישית לכל אחד מהקמפיינים למיקסום הביצועים.

לשם כך, צריך לאחזר קודם את מזהה הקמפיין של הקמפיינים למיקסום הביצועים ואת רשימת יעדי ההמרה של הלקוח. הנה דוגמה לשינוי היעדים של קמפיין אחד, אבל אפשר גם להגדיר את הקוד כך שיעבור בלולאה על כמה קמפיינים למיקסום הביצועים.

// 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`
);

אחר כך אפשר לעבור על כל יעדי ההמרה שהתקבלו וליצור פעולת עדכון לקמפיין הנוכחי למיקסום הביצועים כדי להתאים אישית את הטירגוט לכל יעד. בדוגמת הקוד שמוצגת בהמשך הקטע הזה, כל היעדים מוגדרים ככאלה שאפשר להגיש עליהם הצעות מחיר, אבל כדאי להתאים אישית את החלק הזה של הלוגיקה כך שיתאים למה שאתם רוצים להשיג מהקמפיין.

מומלץ להגדיר יעדי המרה בטרנזקציה נפרדת משאר תהליך יצירת הקמפיין. 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});

טירגוט קמפיין

כדי לראות רשימה מלאה של סוגי הקריטריונים המותרים לטירגוט בקמפיינים למיקסום הביצועים, מומלץ לעיין במדריך ה-API.

לא צריך להוסיף קריטריונים כדי ליצור קמפיין למיקסום הביצועים, אבל הם יכולים לעזור לכם להגביל את הטירגוט בהתאם לתרחיש השימוש. בדוגמת הקוד הבאה מוסבר איך להגדיר מיקום גיאוגרפי לטירגוט. ב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 עם שם המשאב של הקהל.

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