2011-11-24 9 views
13

फीडबर्नर में प्रकाशित मेरी फ़ीड में मेरे पास ट्रैकिंग नाम Feed: ${feedUri} ${feedName} पर अभियान नाम में रूसी वर्ण हैं। समस्या यह है कि यह Google Analytics द्वारा गलत __utmz कुकी सेट के रूप में परिणाम देता है, और मेरे बैकएंड द्वारा संसाधित नहीं किया जा सकता है (जो web.py है)। फ़ायरफ़ॉक्स मेंGoogle Analytics अवैध कुकी ब्रेक पाइथन बैकएंड

File "/home/dw0rm/lib/ve/lib/python2.7/site-packages/web/session.py", line 96, in _load 
    self.session_id = web.cookies().get(cookie_name) 
    File "/home/dw0rm/lib/ve/lib/python2.7/site-packages/web/webapi.py", line 359, in cookies 
    cookie.load(ctx.env.get('HTTP_COOKIE', '')) 
    File "/usr/local/lib/python2.7/Cookie.py", line 627, in load 
    self.__ParseString(rawdata) 
    File "/usr/local/lib/python2.7/Cookie.py", line 660, in __ParseString 
    self.__set(K, rval, cval) 
    File "/usr/local/lib/python2.7/Cookie.py", line 580, in __set 
    M.set(key, real_value, coded_value) 
    File "/usr/local/lib/python2.7/Cookie.py", line 455, in set 
    raise CookieError("Illegal key value: %s" % key) 
CookieError: Illegal key value:)|utmcmd 

यह त्रुटि उत्पन्न हुई है, और मैं इस कोड के साथ इसे ठीक करने में कामयाब रहे:

def myinternalerror(): 
    try: 
     web.cookies() 
    except CookieError: 
     if not "cookie_err" in web.input(): 
      web.setcookie("__utmz", None, domain=web.ctx.host) 
      raise web.seeother(web.changequery(cookie_err=1)) 
    return web.internalerror(render.site.e500()) 
app.internalerror = myinternalerror 

लेकिन आज मैं इस "cookie_err = 1" क्रोम में भी अनुप्रेषित मिला है। मैंने कुछ अन्य साइटों पर यह कोशिश की जो वेब.py और Analytics पर आधारित हैं, और वे सभी आंतरिक सर्वर त्रुटि उठाते हैं। और यह त्रुटि तब तक रखती है जब तक अवैध कुकी हटा दी जाती है, जो एक नियमित आगंतुक द्वारा करना मुश्किल है।

मैं जानना चाहता हूं कि मुझे कौन से अन्य विकल्पों पर विचार करना चाहिए। शायद पायथन कुकी मॉड्यूल गलत है, या यह ब्राउज़र की बग है जो गलत कुकी में जाने देता है। इस सामान का उपयोग दुर्भावनापूर्ण उद्देश्यों के लिए किया जा सकता है, क्योंकि कई पाइथन वेबसाइटें हैं जो Google Analytics और कुकी मॉड्यूल का उपयोग करती हैं।

इस ट्रैक कर रहा है क्वेरी: utm_source=feedburner&utm_medium=twitter&utm_campaign=Feed%3A+cafenovru+%28%D0%9E%D0%BF%D0%B8%D1%81%D1%8C+%D1%82%D1%80%D0%B0%D0%BF%D0%B5%D0%B7%D0%BD%D1%8B%D1%85+%D0%92%D0%B5%D0%BB%D0%B8%D0%BA%D0%BE%D0%B3%D0%BE+%D0%9D%D0%BE%D0%B2%D0%B3%D0%BE%D1%80%D0%BE%D0%B4%D0%B0%29

गलत __utmz कुकी मान 37098290.1322168259.5.3.utmcsr=feedburner|utmccn=Feed:%20cafenovru%20(Опись%20трапезных%20Великого%20Новгорода)|utmcmd=twitter

अवैध कुकी जावास्क्रिप्ट पहले पृष्ठ का उपयोग पर, और सर्वर साइड त्रुटि अनुवर्ती अनुरोधों पर दिखाई देता है Analytics द्वारा सेट कर दिया जाता है।

+0

समस्या यह है कि कुकी टूटा हुआ है (यह कुकी कानूनी है), लेकिन वास्तव में कुकी को ठीक करने के अलावा कोई समाधान नहीं है। –

+0

तो यह पाइथन मॉड्यूल है जिसे ठीक किया जाना चाहिए? –

+2

हां, अधिक आधुनिक आरएफसी का समर्थन करने के लिए कुकी मॉड्यूल को बढ़ाया जाना चाहिए। –

उत्तर

5

मुझे पता है कि शायद यह वह उत्तर नहीं है जिसे आप ढूंढ रहे हैं, लेकिन इस बग का सबसे अच्छा समाधान ga.js से analytics.js पर अपग्रेड करना है। Analytics.js Google Analytics वेब ट्रैकिंग लाइब्रेरी का नवीनतम संस्करण है और universal analytics का हिस्सा है। Analytics.js केवल एक कुकी लिखता है, इसलिए यह पूरी तरह से इस समस्या से बचाता है।

इस बग के साथ मुश्किल समस्या यह लंबे समय से आसपास रही है, और कई GA उपयोगकर्ताओं के पास मौजूदा कार्यवाही मौजूद हैं। इसे ठीक करने के लिए अब उन साइटों को तोड़ दिया जाएगा, इसलिए मुझे लगता है कि Google इसके बारे में कुछ भी नहीं करेगा, खासकर जब से analytics.js ने पहले ही इस समस्या को ठीक कर दिया है, और ga.js will soon be deprecated

एक बार फिर, मुझे पता है कि यह वह जवाब नहीं है जिसे आप ढूंढ रहे हैं, लेकिन मैं सिर्फ दोहराना चाहता हूं कि इस मुद्दे के लिए किसी भी कामकाज को लागू करने से आप अधिकतर समय बर्बाद हो जाएंगे। आपको वैसे भी अपग्रेड करना होगा, और फिर आपका कामकाज अनावश्यक होगा।

यहां विश्लेषण के बारे में कुछ और जानकारी दी गई है।जेएस कुकीज़ का उपयोग करता है: https://developers.google.com/analytics/devguides/collection/analyticsjs/domains

+0

मुझे शायद अधिक विशिष्ट होना चाहिए था, अगर मैं प्रश्न में कुकी Analytics से आता हूं तो मुझे पूरी तरह से यकीन नहीं है। इसके अलावा - मैं एक बार और सभी के लिए समस्या को हल करना चाहता हूं - जीए के विशिष्ट मामले में नहीं कि मैंने पहले ही analytics.js – julkiewicz

+0

@julkiewicz में अपग्रेड कर लिया है, मैं जो खोज रहा हूं उस पर अस्पष्ट हूं क्योंकि अब वेबपी का अपना तर्क है पाइथन डिफ़ॉल्ट कुकी पार्सिंग में इस समस्या के आसपास काम करें। https://github.com/webpy/webpy/issues/148 – lossleader

+0

@lossleader मैं पिरामिड का उपयोग करता हूं जहां स्पष्ट रूप से एक अमान्य कुकी (किसी तृतीय पक्ष द्वारा सेट) एप्लिकेशन में अपवाद का कारण बन सकती है। मैं उसके चारों ओर एक रास्ता तलाश रहा हूँ। – julkiewicz

1

यह यूटीएफ -8 एन्कोडिंग समस्या की तरह गंध करता है। या इससे भी बदतर, आप KOI8-R या Windows 1251 का उपयोग कर रहे हैं।

किसी भी मामले में, समस्याओं से बचने के तरीके हैं। एक तरीका यह है कि बेस 64 को अपनी कुकी स्ट्रिंग को भेजने से पहले एन्कोड करना है, इस तरह से सिरिलिक वर्ण सुरक्षित रूप से छिपाए जाते हैं।

लेकिन अपने कोड को देखें। यदि आप इसे लिखने से पहले कुकी स्ट्रिंग को यूटीएफ -8 एन्कोडिंग नहीं कर रहे हैं, तो इससे समस्या हल हो सकती है। जब मैं स्ट्रिंग को देखता हूं तो ऐसा लगता है कि कोड के जोड़े पहले कोड के साथ हमेशा डी 0 या डी 1 होते हैं। इससे पता चलता है कि आप 16-बिट यूनिकोड वर्णों के साथ संकलित पाइथन पर कच्चे यूनिकोड का उपयोग कर रहे हैं, या यूटीएफ -8 की बजाय स्ट्रिंग के लिए यूसीएस -2 एन्कोडिंग का उपयोग कर रहे हैं।

+0

मैं इस कुकी को सेट नहीं कर रहा हूं, यह ब्राउज़र में Google Analytics जावास्क्रिप्ट द्वारा किया जाता है। –