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

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

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

קמפיינים למיקסום ביצועים זמינים דרך האוסף 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.

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

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

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

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

דוחות

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

SELECT
  campaign.id,
  campaign.url_expansion_opt_out,
  campaign.status,
  campaign.bidding_strategy_type,
  metrics.clicks,
  metrics.cost_micros,
  metrics.impressions,
  metrics.conversions,
  metrics.all_conversions
FROM campaign
WHERE campaign.advertising_channel_type = 'PERFORMANCE_MAX'
  AND metrics.clicks > 0

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

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