سؤال

طاب مسائك! لقد كنت أبحث عن Stackoverflow والويب لمدة 24 ساعة تقريبًا ، ولم أجد إجابة بعد. آمل أن أفتقد شيئًا بسيطًا يمكن لمستخدم واجهة برمجة التطبيقات الأكثر خبرة أن يشير لي.

أنا أستفسر عن واجهة برمجة تطبيقات Google Analytics باستخدام مكتبة .NET الخاصة بهم. هذا الطلب يعمل:

https://www.google.com/analytics/feeds/data?start-index=1&max-results=500&dimensions=ga:date&end-date=2011-01-06&ids=ga:________&metrics=ga:visitors,ga:visits&start-date=2011-01-06

... لكنني أود تصفية النتائج. لقد جربت مرشحًا واحدًا بسيطًا جدًا لا يتطلب ترميز عنوان URL:

filters=ga:city!@Minsk

كل ما أحصل عليه هو الخطأ الغامض "400 طلب سيء". أحصل على نفس النتيجة باستخدام مشغل متساوٍ:

DataQuery  query = new DataQuery(URL);
...
query.Filters = "ga:city==Minsk"

كما سبق إذا قمت بترميز علامات متساوية كنسبة ٪ 3D. يتم ترجمة هذا إلى "GA: City ٪ 253d ٪ 253dminsk" ، وفقًا لرسالة الخطأ. لقد جربت "مينسك" ، وأصبحت مزدوجًا ؛ لا حظ.

أنا متعثر. أيه أفكار؟ شكرًا!

هل كانت مفيدة؟

المحلول

وجدت ذلك. اتضح أن المرشحات يجب أن تكون "متوافقة" مع الأبعاد والمقاييس التي يتم التعبير عنها فعليًا في استعلام. إسقاط GA: سمح لي الزوار بتطبيق معظم المرشحات التي أحتاجها ، على الرغم من أن الجمع بين GA: PagePath و GA: الحملة غير مسموح بها مع GA: الزيارات ... لسبب ما. إليكم التفاصيل ، لكن كن حذرًا: قد ينتهي بك الأمر.

http://code.google.com/apis/analytics/docs/gdata/gdatareferencevalidcombos.html

أوه ، واستخدام مكتبة .NET ، لا تحتاج إلى تشفير علامات أو مسافات متساوية في المرشحات الخاصة بك. قمت بتنظيم مرشحاتي مثل هذا:

private static readonly string  Filter = string.Join
  (
  ";", new string[]
    {
    "ga:city!=Simi Valley",  // URL encoding is handled for you
    "ga:pagePath!@/splash",
    "ga:pagePath!@static_test",
    "ga:networkLocation!@spring",
    "ga:networkLocation!@equinix asia pacific pte ltd"
    // ...
    }
  );

أمل أن هذا يساعد شخصاما!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top