अभियान ड्राफ़्ट और प्रयोग

Google Ads स्क्रिप्ट, कैंपेन ड्राफ़्ट और एक्सपेरिमेंट के साथ काम करती हैं. इनका इस्तेमाल, Search और Display Network कैंपेन में बदलाव करने और उनकी जांच करने के लिए किया जाता है.

ड्राफ़्ट, किसी मौजूदा कैंपेन का क्लोन होता है. यह अपने विज्ञापन नहीं दिखाता, लेकिन इसका इस्तेमाल ओरिजनल कैंपेन में बदलाव किए बिना, बदलावों को स्टेज करने के लिए किया जा सकता है. इसके बाद, स्टेज किए गए बदलावों को बेस कैंपेन पर लागू किया जा सकता है.

एक्सपेरिमेंट में, ओरिजनल कैंपेन के साथ-साथ पसंद के मुताबिक बनाया गया कैंपेन भी चलता है. साथ ही, यह कैंपेन ट्रैफ़िक के तय किए गए प्रतिशत के लिए विज्ञापन दिखाता है. एक्सपेरिमेंट के नतीजों के आधार पर, बदलावों को ओरिजनल कैंपेन पर लागू किया जा सकता है. इसके अलावा, एक्सपेरिमेंट को किसी अलग कैंपेन में बदला जा सकता है या एक्सपेरिमेंट वाले कैंपेन को बंद किया जा सकता है.

इस गाइड में, स्क्रिप्ट में ड्राफ़्ट और एक्सपेरिमेंट का इस्तेमाल करने के बुनियादी वर्कफ़्लो के बारे में बताया गया है.

ड्राफ़्ट

कोई ड्राफ़्ट बनाना

किसी मौजूदा बेस कैंपेन से ड्राफ़्ट बनाने के लिए, DraftBuilder का इस्तेमाल करें और उसे कोई यूनीक नाम दें. बेस कैंपेन, सर्च कैंपेन, Display एक्सपैंशन के साथ Search Network कैंपेन या डिसप्ले कैंपेन (Display Network के लिए मोबाइल ऐप्लिकेशन कैंपेन को छोड़कर) होना चाहिए. साथ ही, इसमें शेयर किया गया बजट नहीं होना चाहिए.

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

const draftBuilder = campaign.newDraftBuilder()
    .withName("INSERT_DRAFT_NAME_HERE")
    .build();

const draft = draftBuilder.getResult();

DraftBuilder.build() DraftOperation दिखाता है, जो स्क्रिप्ट में एक सामान्य ऑपरेशन है. ज़्यादा जानकारी के लिए, बिल्डरों के लिए हमारी गाइड देखें.

किसी draft की पहचान, उसके बेस कैंपेन आईडी और ड्राफ़्ट आईडी के कॉम्बिनेशन से की जाती है. ज़्यादा जानकारी के लिए, DraftSelector.withIds() देखें.

ड्राफ़्ट कैंपेन को प्रोविज़न करना

draft ऑब्जेक्ट, बेस कैंपेन और ड्राफ़्ट कैंपेन को जोड़ता है. बेस कैंपेन में अपडेट लागू करने के लिए, ड्राफ़्ट कैंपेन के ज़रिए बदलावों को लागू किया जाता है.

किसी भी अन्य कैंपेन की तरह, ड्राफ़्ट कैंपेन में भी कई एट्रिब्यूट होते हैं. जैसे, मानदंड, विज्ञापन ग्रुप, बिड, और विज्ञापन. इन एट्रिब्यूट को पाने और सेट करने के तरीके होते हैं.

const draftCampaign = draft.getDraftCampaign();

draftCampaign.setAdRotationType("CONVERSION_OPTIMIZE");
draftCampaign.createNegativeKeyword("shoes");

विज्ञापन की नीति की जांच, ड्राफ़्ट कैंपेन के लिए ठीक उसी तरह की जाती है जिस तरह बेस कैंपेन के लिए की जाती है. नीति का उल्लंघन करने वाले विज्ञापनों वाले ड्राफ़्ट कैंपेन से एक्सपेरिमेंट नहीं चलाया जा सकेगा.

ड्राफ़्ट लागू करना

ड्राफ़्ट कैंपेन को चालू करने के बाद, इनमें से कोई एक काम किया जा सकता है:

  1. अगर आपको बदलावों का इस्तेमाल नहीं करना है, तो ड्राफ़्ट को हटाया जा सकता है. ड्राफ़्ट को हटाने की कार्रवाई को वापस नहीं लाया जा सकता. हालांकि, इसे Google Ads के यूज़र इंटरफ़ेस (यूआई) के ड्राफ़्ट टैब में जाकर, सभी ड्राफ़्ट में देखा जा सकता है.

        draft.remove();
    
  2. अगर आपको ड्राफ़्ट में किए गए बदलावों को सेव करना है, तो उन्हें लागू करें:

        draft.startApplying();
    

    इस तरीके से, बेस कैंपेन में अपडेट लागू करने की प्रोसेस शुरू हो जाती है. इसलिए, Google Ads के यूज़र इंटरफ़ेस (यूआई) में ड्राफ़्ट का स्टेटस लागू किया जा रहा है... दिखेगा. हालांकि, इस तरीके से प्रोसेस पूरी होने पर आपको सूचना नहीं मिलेगी.

  3. अगर आपको पहले अपने बदलावों को आज़माना है, तो ड्राफ़्ट का इस्तेमाल करके कोई एक्सपेरिमेंट बनाया जा सकता है.

प्रयोग

कोई एक्सपेरिमेंट बनाना

experiment, ड्राफ़्ट जैसा ही होता है. इसे भी किसी बेस कैंपेन से बनाया जाता है. ExperimentBuilder की मदद से experiment बनाया जाता है. इससे, दो "आर्म" वाला एक्सपेरिमेंट अपने-आप बन जाएगा. ये एक्सपेरिमेंट के अलग-अलग हिस्सों को दिखाते हैं. एक ग्रुप (जिसे कंट्रोल ग्रुप कहा जाता है) में बेस कैंपेन होगा. वहीं, दूसरे ग्रुप (जिसे ट्रीटमेंट ग्रुप कहा जाता है) में नया ड्राफ़्ट कैंपेन होगा. एक्सपेरिमेंट शेड्यूल करने से पहले, आपको ऊपर दिए गए ड्राफ़्ट के चरणों के हिसाब से इसे पसंद के मुताबिक बनाना होगा.

एक्सपेरिमेंट बनाते समय, पक्का करें कि आपने बिल्डर में ये सभी चीज़ें सेट की हों:

withCampaign
वह कैंपेन जिसके आधार पर आपको एक्सपेरिमेंट करना है.
withTrafficSplitPercent
ट्रैफ़िक का कितना हिस्सा एक्सपेरिमेंट ग्रुप को मिलेगा. 50% के लिए, 50 की जानकारी दें.
withStartDate और withEndDate
इससे कैंपेन के शुरू और खत्म होने की तारीख के बारे में पता चलता है. YYYYMMdd फ़ॉर्मैट में बताएं.
withType
आपके इस्तेमाल किए जा रहे नेटवर्क के हिसाब से, SEARCH_CUSTOM या DISPLAY_CUSTOM में से कोई एक.
withSuffix
यह एक ऐसा सफ़िक्स तय करता है जिसे ट्रीटमेंट कैंपेन के नाम में जोड़ा जाएगा. ऐसा तब होगा, जब कैंपेन बनाया जाएगा.
withGoals
इस एक्सपेरिमेंट के लक्ष्यों के बारे में बताता है. यह सिर्फ़ आपको याद दिलाने के लिए है कि इसे बनाते समय आपके लक्ष्य क्या थे. डिफ़ॉल्ट वैल्यू [{metric: 'CLICKS', direction: 'INCREASE'}] होनी चाहिए.

ट्रैफ़िक को बांटने के लिए तय किया गया प्रतिशत यह तय करता है कि बेस कैंपेन के बजाय एक्सपेरिमेंट कैंपेन के विज्ञापन, ट्रैफ़िक के किस हिस्से को दिखाए जाएंगे. इस वजह से, हर बेस कैंपेन के लिए एक समय पर सिर्फ़ एक एक्सपेरिमेंट चल सकता है.

const experiment = AdsApp.newExperimentBuilder()
  .withCampaign(campaign)
  .withTrafficSplitPercent(50)
  .withStartDate("20230501")
  .withEndDate("20230601")
  .withType("SEARCH_CUSTOM")
  .withSuffix("experiment")
  .withGoals([{metric: 'CLICKS', direction: 'INCREASE'}])
  .build();

// The experimentCampaign represents the customizeable draft.
const experimentCampaign = experiment.getExperimentCampaign();

ड्राफ़्ट के उलट, एक्सपेरिमेंट की पहचान एक ही आईडी से की जाती है. ज़्यादा जानकारी के लिए, ExperimentSelector.withIds() देखें.

एक्सपेरिमेंट कैंपेन उपलब्ध कराना

draft की तरह ही, experiment भी कोई कैंपेन नहीं है. इसके बजाय, यह बेस कैंपेन, ड्राफ़्ट, और एक्सपेरिमेंट कैंपेन से जुड़ा होता है. एक्सपेरिमेंट कैंपेन के फ़ील्ड में बदलाव किया जा सकता है. हालांकि, इनमें ये अपवाद शामिल हैं:

  • नाम
  • स्थिति
  • आरंभ तारीख
  • समाप्ति तारीख
  • बजट
const experimentCampaign = experiment.getExperimentCampaign();

// Will succeed.
experimentCampaign.setAdRotationType("ROTATE_FOREVER");
experimentCampaign.createNegativeKeyword("sneakers");

// Will fail.
experimentCampaign.setName("INSERT_EXPERIMENT_NAME_HERE");

एक्सपेरिमेंट के नाम, शुरू होने की तारीख, और खत्म होने की तारीख में बदलाव किया जा सकता है. इसके बाद, ये बदलाव एक्सपेरिमेंट कैंपेन में दिखेंगे.

// Will succeed.
experiment.setName("INSERT_EXPERIMENT_NAME_HERE");

// Will succeed if date is acceptable.
const date = "20220601";
experiment.setStartDate(date);

एक्सपेरिमेंट शुरू करने के लिए, experiment.startScheduling() पर कॉल करें. यह एक एसिंक्रोनस प्रोसेस है, क्योंकि इसे बेस कैंपेन की सभी सेटिंग कॉपी करनी होती हैं.

एक्सपेरिमेंट खत्म होने के बाद

एक्सपेरिमेंट पूरा होने के बाद, आपके पास कुछ विकल्प होते हैं. हमारा सुझाव है कि एक्सपेरिमेंट को पूरी तरह से खत्म होने दें, ताकि विज्ञापन दिखाना बंद हो जाए. हालांकि, इसके बाद भी आपके पास एक्सपेरिमेंट के साथ इंटरैक्ट करने का विकल्प होगा. खत्म हो चुके एक्सपेरिमेंट को अब भी हटाया जा सकता है, लागू किया जा सकता है या अपग्रेड किया जा सकता है. साथ ही, इसके कैंपेन की परफ़ॉर्मेंस के आंकड़े अब भी ऐक्सेस किए जा सकते हैं.

experiment.finish();
const stats = experimentCampaign.getStatsFor("INSERT_TIME_PERIOD_HERE");
  • अगर आपको आंकड़ों के आधार पर एक्सपेरिमेंट के नतीजे पसंद नहीं आते हैं, तो एक्सपेरिमेंट को हटाया जा सकता है. इससे एक्सपेरिमेंट कैंपेन भी हट जाएगा. किसी एक्सपेरिमेंट को हटाने पर वह हमेशा के लिए हट जाएगा. हालांकि, उसे अब भी Google Ads के यूज़र इंटरफ़ेस (यूआई) में, एक्सपेरिमेंट टैब में जाकर सभी एक्सपेरिमेंट में देखा जा सकता है.

        experiment.remove();
    
  • अगर आप एक्सपेरिमेंट के नतीजों से संतुष्ट हैं, तो आपके पास दो विकल्प हैं:

    1. बदलाव लागू किए जा सकते हैं. साथ ही, ड्राफ़्ट की तरह ही, प्रोसेस पूरी होने पर आपको सूचना नहीं दी जाएगी.

          experiment.startApplying();
      
    2. एक्सपेरिमेंट कैंपेन को बेस कैंपेन पर असर डाले बिना, एक स्वतंत्र और पूरी तरह से काम करने वाले कैंपेन के तौर पर सेट अप किया जा सकता है. इस प्रोसेस को ग्रैजुएशन कहा जाता है. यह प्रोसेस तुरंत पूरी हो जाती है. इसके लिए, नया बजट सेट करना ज़रूरी होता है.

          const budget = AdsApp.budgets()
              .withCondition(`campaign_budget.id = ${budgetId}`)
              .get()
              .next();
      
          experiment.graduate(budget);
      

      नया कैंपेन, अब बेस कैंपेन के साथ बजट शेयर नहीं कर सकता. इसलिए, इसके लिए नया बजट सेट करना ज़रूरी है. अपग्रेड किए गए कैंपेन, सामान्य कैंपेन की तरह ही होते हैं. इनके सभी फ़ील्ड में बदलाव किया जा सकता है. साथ ही, ये ज़्यादा ड्राफ़्ट और एक्सपेरिमेंट के लिए बेस कैंपेन के तौर पर काम कर सकते हैं.

दूसरी ज़रूरी बातें

बुनियादी इकाइयां

Google Ads स्क्रिप्ट में ड्राफ़्ट और एक्सपेरिमेंट की सुविधा शुरू होने से, बेस एंटिटी का कॉन्सेप्ट भी शुरू हो गया है. ड्राफ़्ट और एक्सपेरिमेंट कैंपेन, अपने ओरिजनल बेस कैंपेन से अलग होते हैं. साथ ही, इनमें मौजूद विज्ञापन ग्रुप भी अलग होते हैं. इसलिए, Campaign और AdGroup के पास अब अपने बेस कैंपेन और विज्ञापन ग्रुप को ऐक्सेस करने के तरीके हैं: getBaseCampaign() और getBaseAdGroup().

अगर इन्हें किसी बुनियादी कैंपेन या विज्ञापन ग्रुप से कॉल किया जाता है, तो ये तरीके कॉलिंग इकाई को वापस भेजते हैं. कैंपेन और विज्ञापन ग्रुप में मौजूद इकाइयों, जैसे कि कीवर्ड और विज्ञापनों को भी इस तरह के तरीके दिए गए हैं.

बेस एंटिटी को ट्रैक करने के लिए, कैंपेन को isBaseCampaign(), isDraftCampaign(), और isExperimentCampaign() तरीके दिए गए हैं.

Campaign.draftCampaigns() और Campaign.experimentCampaigns() नई मेथड की मदद से, उन सभी ड्राफ़्ट और एक्सपेरिमेंट कैंपेन को ऐक्सेस किया जा सकता है जिनमें कॉलिंग कैंपेन को बेस कैंपेन के तौर पर इस्तेमाल किया गया है. हालांकि, CampaignSelector.withCondition() वाले ड्राफ़्ट कैंपेन नहीं चुने जा सकते. इसके बजाय, AdsApp.drafts() का इस्तेमाल करें.

गड़बड़ी ठीक करना

ड्राफ़्ट और एक्सपेरिमेंट से जुड़ी ये विधियां, स्क्रिप्ट चलाने पर काम करती हैं. हालांकि, ये एसिंक्रोनस तरीके से काम नहीं कर सकती हैं:

  • Draft.startApplying()
  • Experiment.startApplying()
  • Experiment.startScheduling()

आपको यह देखने के लिए इंतज़ार करना चाहिए कि ये कार्रवाइयां पूरी हुई हैं या नहीं. startApplying() और startScheduling() के पूरा होने के बाद, Google Ads के यूज़र इंटरफ़ेस (यूआई) में, स्टेटस लागू किया गया या चालू है दिखता है. अगर कोई गड़बड़ी होती है, तो यह लागू नहीं किया जा सका या बनाया नहीं जा सका दिखाता है. इससे आपको गड़बड़ियां देखने के लिए क्लिक करने का विकल्प मिलता है.

ऐसा भी हो सकता है कि कुछ तरीके, प्रीव्यू स्टेज में काम न करें, लेकिन लागू होने के बाद काम करें. उदाहरण के लिए, ड्राफ़्ट बनाने के बाद:

const draftCampaign = draft.getDraftCampaign();
draftCampaign.createNegativeKeyword("shoes"); // Will fail in preview.

यह प्रीव्यू मोड में काम नहीं करेगा, क्योंकि यह ड्राफ़्ट कैंपेन को तुरंत ऐक्सेस नहीं कर सकता.

इसी तरह, एक्सपेरिमेंट बनाने और तुरंत उसके ड्राफ़्ट कैंपेन को फ़ेच करने की कोशिश करने पर, झलक मोड में गड़बड़ी होगी. ऐसा इसलिए, क्योंकि ड्राफ़्ट कैंपेन असल में बनाया नहीं गया है.

इसलिए, स्क्रिप्ट चलाने के बाद, स्क्रिप्ट की सूची के नीचे दिए गए लॉग देखें. साथ ही, 'झलक देखें' मोड में काम न करने वाली स्क्रिप्ट का इस्तेमाल सिर्फ़ तब करें, जब आपको लगता है कि इसकी वजह, 'झलक देखें' मोड की सीमाएं हैं.