סקריפטים של 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);