קמפיינים למיקסום ביצועים שמשתמשים ב-AdsApp

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

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

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

const campaignName = "My Performance Max campaign";

const campaignIterator = AdsApp.performanceMaxCampaigns()
    .withCondition(`campaign.name = "${campaignName}"`)
    .get();

for (const campaign of campaignIterator) {
  ...
}

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

נכסים וקבוצות נכסים

מודעות מקמפיינים למיקסום ביצועים נכסים כמו סרטונים, תמונות, כותרות ותיאורים — שאתם מספקים נוצר באופן אוטומטי. סקירה כללית מלאה של סוגי הנכסים חובה, עיינו בנכס למיקסום ביצועים ב-Google Ads API guide.

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

הוספת נכס לקבוצת נכסים

קודם כול, יוצרים את הנכס:

const imageUrl = "http://www.example.com/example.png";
const imageBlob = UrlFetchApp.fetch(imageUrl).getBlob();
const assetOperation = AdsApp.adAssets().newImageAssetBuilder()
   .withName("new asset name")
   .withData(imageBlob)
   .build();
const imageAsset = assetOperation.getResult();

לאחר מכן, באמצעות הנכס שיצרתם, מוסיפים אותו לקבוצת נכסים קיימת:

// First, fetch the Performance Max campaign we want to operate on.
const campaignIterator = AdsApp.performanceMaxCampaigns()
   .withCondition(`campaign.name = '${campaignName}'`)
   .get();
let campaign;
if (campaignIterator.hasNext()) {
   campaign = campaignIterator.next();
} else {
   throw `No campaign found with name ${campaignName}.`
}

// Then, get that campaign's asset groups.
const assetGroupIterator = campaign.assetGroups().get();

// The campaign must have at least one asset group, so we can just assume so here.
const assetGroup = assetGroupIterator.next();

// Add the asset from the previous step.
assetGroup.addAsset(imageAsset, 'MARKETING_IMAGE');

הערה: צריך לציין את סוג הנכס בשלב האחרון. אפשר למצוא הרשימה המלאה של סוגי הנכסים ב-Google Ads API תיעוד

כדי להשתמש בנכס קיים, קודם צריך ליצור בורר נכסים:

const assetSelector = AdsApp.adAssets().assets();

אחר כך משתמשים במסנן withCondition כדי לצמצם את כמות הנכסים שרוצים צריך לפעול. לצפייה AssetSelector לרשימה מלאה של אפשרויות הסינון.

לבסוף, מאחזרים את האיטרטור ואיטרטור כמו ישויות אחרות:

const assetIterator = assetSelector.get();

for (const asset of assetIterator) {
   ...
}

נכסי טקסט

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

לדוגמה, כך יוצרים נכס כותרת:

assetGroup.addAsset('asset text here', 'HEADLINE');

הסרת הנכס מקבוצת הנכסים

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

כך מסירים את הנכס שנוסף בדוגמה הקודמת:

assetGroup.removeAsset(imageAsset, 'MARKETING_IMAGE');

אפשר גם לקבל רשימה של נכסים בקבוצת נכסים נתונה באמצעות המאפיין search פונקציה:

// The resource name is a unique identifier for this asset group.
const assetGroupName = assetGroup.getResourceName();
results = AdsApp.search(
   `SELECT asset.resource_name, asset_group_asset.field_type
    FROM asset_group_asset
    WHERE asset_group.resource_name = '${assetGroupName}'`
);

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

אחרי שמוסיפים את נכס היעד, מפעילים קריאה ל-remove בקבוצת הנכסים כדי להסיר את נכס מקבוצת הנכסים:

// Let's assume at least one asset is returned. We'll just remove the first
// asset, whatever it is. In your code, customize this to choose the right asset.
const row_info = results.next().asset;
assetGroup.remove(row_info.asset.resource_name, row_info.asset_group_asset.field_type);