ফিল্টার

যদি কোনো রিপোর্টে ফিল্টার থাকে এবং একটি কমিউনিটি কানেক্টর অনুরোধ করা সমস্ত ফিল্ডের জন্য আনফিল্টারড ডেটা ফেরত দেয়, তাহলে ডেটা স্টুডিও কানেক্টরের রেসপন্সে ফিল্টার প্রয়োগ করবে। তবে, কমিউনিটি কানেক্টর লেভেলেও ফিল্টার প্রয়োগ করা যেতে পারে, যা কিছু ক্ষেত্রে পারফরম্যান্স উল্লেখযোগ্যভাবে উন্নত করতে পারে। ফিল্টারের তথ্য getData() রিকোয়েস্ট অবজেক্টে পাঠানো হয়, এবং কানেক্টর ডেটা স্টুডিওতে ডেটা ফেরত পাঠানোর আগে তা ফিল্টার করার জন্য এই তথ্য ব্যবহার করতে পারে।

উদাহরণস্বরূপ, যদি আপনি একটি SQL ডাটাবেসের সাথে সংযোগ স্থাপন করেন, তাহলে সরাসরি WHERE ক্লজে (নীচের ডায়াগ্রামের B3) ফিল্টারগুলি প্রয়োগ করলে ডেটা স্টুডিওতে ফেরত আসা সারির সংখ্যা ব্যাপকভাবে হ্রাস পেতে পারে। এর ফলে, যে পরিমাণ ডেটা প্রসেস করে ডেটা স্টুডিওতে পাঠাতে হয়, তা সীমিত হয়ে যায় (B5)।

Filter flowchart

ফিল্টার প্রয়োগের নিয়মাবলী

  1. সমস্ত ফিল্টার প্রয়োগ করুন, অথবা কোনোটিই নয়অসমর্থিত ফিল্টারসমূহ দেখুন।
  2. প্রতিক্রিয়ায় forFilterOnly ফিল্ডগুলি অন্তর্ভুক্ত করবেন না।
  3. request.dimensionsFilters অ্যারের প্রতিটি এন্ট্রিকে একসাথে AND

    উদাহরণস্বরূপ, নিম্নলিখিত ফিল্টারটির জন্য, কানেক্টরটিতে শুধুমাত্র সেই ভ্যালুগুলোই অন্তর্ভুক্ত করা উচিত যেগুলোর country USA এবং source Social

    {
      "dimensionsFilters": [
        [{
          "fieldName": "country",
          "values": ["USA"],
          "type": "INCLUDE",
          "operator": "EQUALS"
        }],
        [{
          "fieldName": "source",
          "values": ["Social"],
          "type": "INCLUDE",
          "operator": "EQUALS"
        }]
      ]
    }
    
  4. request.dimensionsFilters অ্যারের প্রতিটি সাব-অ্যারেকে একসাথে OR

    উদাহরণস্বরূপ, নিম্নলিখিত ফিল্টারটির জন্য, কানেক্টরটিতে শুধুমাত্র সেই ভ্যালুগুলো অন্তর্ভুক্ত করা উচিত যেগুলোর country হলো USA অথবা country Canada

    {
      "dimensionsFilters": [
        [{
          "fieldName": "country",
          "values": ["Canada"],
          "type": "INCLUDE",
          "operator": "EQUALS"
        }, {
          "fieldName": "country",
          "values": ["USA"],
          "type": "INCLUDE",
          "operator": "EQUALS"
        }]
      ]
    }
    

উদাহরণ

নিম্নলিখিত উদাহরণটি রিপোর্ট ব্যবহারকারীর ফিল্টার নির্ধারণ থেকে শুরু করে কমিউনিটি কানেক্টরের মাধ্যমে ফিল্টার করা ডেটা ফেরত আসা পর্যন্ত একটি সম্পূর্ণ কার্যপ্রবাহ তুলে ধরে।

উদাহরণ ফিল্টার

  1. রিপোর্ট ব্যবহারকারী দুটি ফিল্টার কনফিগার করেছেন:

    1. country Canada, USA IN_LIST
    2. source Social, Organic তালিকার IN_LIST
  2. রিপোর্ট ব্যবহারকারী source ডাইমেনশন এবং sessions মেট্রিক ব্যবহার করে একটি চার্ট কম্পোনেন্ট কনফিগার করেছেন।

  3. ডেটা স্টুডিও নিম্নলিখিত রিকোয়েস্ট অবজেক্ট সহ getData() এক্সিকিউট করে:

    {
      "fields": [
        {"name": "source"},
        {"name": "sessions"},
        {"name": "country", "forFilterOnly": true}
      ],
      "dimensionsFilters": [
        [{
          "fieldName": "country",
          "values": ["Canada", "USA"],
          "type": "INCLUDE",
          "operator": "IN_LIST"
        }],
        [{
          "fieldName": "source",
          "values": ["Social", "Organic"],
          "type": "INCLUDE",
          "operator": "IN_LIST"
        }]
      ]
    }
    
  4. কানেক্টর ফিল্টার করা ডেটা দিয়ে সাড়া দেয়।

    উদাহরণ অনুরোধটির জন্য, সেই source এবং sessions ফেরত দিন যেখানে country "Canada" বা "USA" এবং source "Social" বা "Organic"filtersApplied কে true সেট করুন, যেহেতু সমস্ত ফিল্টার সফলভাবে প্রয়োগ করা সম্ভব হয়েছে।

মূল ডেটা

উৎস সেশন দেশ
সামাজিক ৬০ মার্কিন যুক্তরাষ্ট্র
সামাজিক ৫০ কানাডা
সামাজিক ৪০ যুক্তরাজ্য
জৈব ৯০ মার্কিন যুক্তরাষ্ট্র
জৈব ৮০ কানাডা
জৈব ৭০ যুক্তরাজ্য
সংবাদপত্র ৩০ মার্কিন যুক্তরাষ্ট্র
সংবাদপত্র ২০ কানাডা
সংবাদপত্র ১০ যুক্তরাজ্য

ফিল্টার করা ডেটা

উৎস সেশন
সামাজিক ৬০
সামাজিক ৫০
জৈব ৯০
জৈব ৮০

getData() প্রতিক্রিয়া

{
  "schema": [
    {"name": "source",   "dataType": "STRING"},
    {"name": "sessions", "dataType": "NUMBER"},
  ],
  "rows": [
    {"values": ["Social", 60]},
    {"values": ["Social", 50]},
    {"values": ["Organic", 90]},
    {"values": ["Organic", 80]}
  ],
  "filtersApplied": true
}

অসমর্থিত ফিল্টার

যদি কানেক্টর অনুরোধের সমস্ত ফিল্টার প্রয়োগ করতে না পারে, তাহলে কোনো ফিল্টারিং করা উচিত নয়। অনুরোধ করা সমস্ত ফিল্ড ( forFilterOnly ফিল্ডগুলো সহ) ফেরত দিন এবং আপনার রেসপন্সে filtersApplied কী-টির মান false সেট করুন।

উদাহরণ:

{
  "schema": [
    {"name": "source",   "dataType": "STRING"},
    {"name": "sessions", "dataType": "NUMBER"},
    {"name": "country",  "dataType": "STRING"}
  ],
  "rows": [
    {"values": ["Social", 60, "USA"]},
    {"values": ["Social", 50, "Canada"]},
    {"values": ["Social", 40, "UK"]},
    {"values": ["Organic", 90, "USA"]},
    {"values": ["Organic", 80, "Canada"]},
    {"values": ["Organic", 70, "UK"]},
    {"values": ["Newspaper", 30, "USA"]},
    {"values": ["Newspaper", 20, "Canada"]},
    {"values": ["Newspaper", 10, "UK"]},
  ],
  "filtersApplied": false
}