सबसे सही तरीके और सीमाएं

डाइग्नोस्टिक टूल का इस्तेमाल करते समय इन दिशा-निर्देशों को ध्यान में रखें BatchJobService.

थ्रूपुट में सुधार करें

  • कई छोटी जॉब के मुकाबले बड़ी जॉब को प्राथमिकता दी जाती है.

  • ऑपरेशन टाइप के हिसाब से ऑर्डर अपलोड की गई कार्रवाइयां. उदाहरण के लिए, अगर आपकी नौकरी इसमें कैंपेन, विज्ञापन ग्रुप, और विज्ञापन ग्रुप की शर्तें जोड़ने के लिए ऑपरेशन शामिल हैं, अपलोड की गई कार्रवाइयों को क्रम में लगाकर, कैंपेन में सभी कैंपेन ऑपरेशन पहले हैं, उसके बाद सभी विज्ञापन ग्रुप से जुड़ी कार्रवाइयां और आखिर में सभी विज्ञापन ग्रुप की शर्त से जुड़ी कार्रवाइयां.

  • एक ही तरह की कार्रवाइयों में, यह उन्हें ग्रुप करने के लिए परफ़ॉर्मेंस को बेहतर बना सकता है से लिंक किया गया है. उदाहरण के लिए, अगर आपके पास AdGroupCriterionOperation ऑब्जेक्ट हैं, तो इन्हें ग्रुप करना ज़्यादा आसान हो सकता है विज्ञापन को प्रभावित करने वाली संक्रियाओं को आपस में जोड़ने के बजाय विज्ञापन समूह के हिसाब से संचालन अलग-अलग विज्ञापन समूहों में समूह मानदंड.

एक साथ कई काम करने की समस्याओं से बचें

  • एक ही खाते से, एक साथ कई जॉब सबमिट किए जा रहे हैं. हालांकि, इन जॉब को कम करने की कोशिश करें एक ही समय में एक ही ऑब्जेक्ट पर काम करने की संभावना बड़े पैमाने पर काम कर सकें. कई ऐसे अधूरे काम हैं जो पूरे नहीं हुए हैं ( RUNNING) वह ऑब्जेक्ट के एक ही सेट को बदलने की कोशिश करने से, डेडलॉक जैसी स्थिति पैदा हो सकती है की वजह से काम धीमी हो सकती है और काम फ़ेल भी हो सकता है.

  • एक ही ऑब्जेक्ट में बदलाव करने के लिए, एक से ज़्यादा ऑपरेशन सबमिट न करें ऐसा हो सकता है, क्योंकि इसके नतीजे का अंदाज़ा लगाना मुश्किल है.

बेहतर तरीके से नतीजे पाएं

  • नौकरी की स्थिति के लिए बार-बार पोल न करें, क्योंकि इससे आवेदन करने की तय सीमा खत्म हो सकती है गड़बड़ियां हैं.

  • प्रति पेज 1,000 से ज़्यादा परिणाम फिर से पाएं. सर्वर वापस आ सकता है लोड या अन्य वजहों से कम होने की वजह से ऐसा हुआ है.

  • नतीजों का क्रम, अपलोड के क्रम के जैसा ही होगा.

इस्तेमाल से जुड़े अन्य दिशा-निर्देश

  • किसी बैच जॉब को कितने समय पहले चलाया जा सकता है, इसकी ऊपरी सीमा सेट की जा सकती है रद्द किया जा रहा है. नया बैच जॉब बनाते समय, metadata.execution_limit_seconds अपनी पसंदीदा समय सीमा के हिसाब से फ़ील्ड, सेकंड में डालें. कोई डिफ़ॉल्ट समय नहीं है metadata.execution_limit_seconds सेट न होने पर सीमा.

  • हर बार 1,000 से ज़्यादा ऑपरेशन न जोड़ने का सुझाव दिया जाता है AddBatchJobOperationsRequest और इसका इस्तेमाल sequence_token बाकी कार्रवाइयों को उसी जॉब में अपलोड करने के लिए. इसके आधार पर कार्रवाइयों की सामग्री, एक बार में कई सारी कार्रवाइयां AddBatchJobOperationsRequest की वजह से, REQUEST_TOO_LARGE गड़बड़ी हो सकती है. आपने लोगों तक पहुंचाया मुफ़्त में कार्रवाइयों की संख्या कम करके और AddBatchJobOperationsRequest.

सीमाएं

  • हर BatchJob में दस लाख तक की मदद की जा सकती है कार्रवाइयां.

  • हर खाते में एक समय पर, ज़्यादा से ज़्यादा 100 ऐक्टिव या अधूरे काम हो सकते हैं.

  • सात दिनों से पहले की जिन जॉब को मंज़ूरी मिलना बाकी है उन्हें अपने-आप हटा दिया जाता है.

  • हर AddBatchJobOperationsRequest फ़ाइल का साइज़ ज़्यादा से ज़्यादा 10,484,504 बाइट होता है. अगर आपने इस रकम को पार कर लिया है, तो आपको INTERNAL_ERROR. इससे पहले कि अनुरोध का साइज़ तय किया जा सकता है सबमिट करना और अगर यह बहुत बड़ा है, तो उचित कार्रवाई करना.

    Java

    
    static final int MAX_REQUEST_BYTES = 10_484_504;
    
    ... (code to get the request object)
    
    int sizeInBytes = request.getSerializedSize();
    

    Python

    
    from google.ads.googleads.client import GoogleAdsClient
    
    MAX_REQUEST_BYTES = 10484504
    
    ... (code to get the request object)
    
    size_in_bytes = request._pb.ByteSize()
    

    Ruby

    
    require 'google/ads/google_ads'
    
    MAX_REQUEST_BYTES = 10484504
    
    ... (code to get the request object)
    
    size_in_bytes = request.to_proto.bytesize
    

    PHP

    
    use Google\Ads\GoogleAds\V16\Resources\Campaign;
    
    const MAX_REQUEST_BYTES = 10484504;
    
    ... (code to get the request object)
    
    $size_in_bytes = $campaign->byteSize() . PHP_EOL;
    

    .NET

    
    using Google.Protobuf;
    const int MAX_REQUEST_BYTES = 10484504;
    
    ... (code to get the request object)
    
    int sizeInBytes = request.ToByteArray().Length;
    

    Perl

    
    use Devel::Size qw(total_size);
    use constant MAX_REQUEST_BYTES => 10484504;
    
    ... (code to get the request object)
    
    my $size_in_bytes = total_size($request);