Google Ads स्क्रिप्ट की मदद से परफ़ॉर्मेंस मैक्स कैंपेन को मैनेज करने का सबसे सही तरीका यह है कि म्यूटेट रणनीति का इस्तेमाल करके, परफ़ॉर्मेंस मैक्स कैंपेन को सीधे तौर पर मैनेज किया जाए.
परफ़ॉर्मेंस मैक्स कैंपेन सिर्फ़ mutate
फ़ंक्शन की मदद से बनाए जा सकते हैं.
हालांकि, अगर आपको परफ़ॉर्मेंस मैक्स कैंपेन को फिर से पाना है, ऐसेट ग्रुप मैनेज करने हैं, और रिपोर्ट जनरेट करनी हैं, तो AdsApp
ऑब्जेक्ट का इस्तेमाल भी किया जा सकता है.
परफ़ॉर्मेंस मैक्स कैंपेन को वापस पाना
परफ़ॉर्मेंस मैक्स कैंपेन, AdsApp
ऑब्जेक्ट के performanceMaxCampaigns
कलेक्शन के ज़रिए उपलब्ध होते हैं. इन्हें पहले की तरह वापस पाया जा सकता है:
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
को कॉल करें:
// This example assumes at least one asset is returned. We'll remove the first
// asset, whatever it is. In your code, customize this to choose the right
// asset to be removed.
const row_info = results.next().asset;
assetGroup.remove(row_info.asset.resource_name, row_info.asset_group_asset.field_type);