ক্যাম্পেইন ম্যানেজার ৩৬০ এপিআই-এর রিপোর্ট পরিষেবা আপনাকে রিপোর্ট রিসোর্স অবজেক্ট ব্যবহার করে রিপোর্ট বিল্ডার রিপোর্ট তৈরি এবং আপডেট করতে দেয়। একটি রিপোর্ট রিসোর্স চালানোর জন্য একটি রিপোর্ট সম্পর্কে মৌলিক তথ্যের পাশাপাশি রিপোর্ট আউটপুটের কাঠামোর রূপরেখা দেয়।
এই নির্দেশিকাটিতে রিপোর্ট পরিষেবার মাধ্যমে রিপোর্ট বিল্ডার রিপোর্টগুলি কীভাবে প্রোগ্রাম্যাটিকভাবে তৈরি এবং আপডেট করতে হয় তার বিশদ বিবরণ দেওয়া হয়েছে।
একটি রিপোর্ট রিসোর্স কনফিগার করুন
একটি রিপোর্ট বিল্ডার রিপোর্ট তৈরি বা আপডেট করার প্রথম ধাপ হল একটি রিপোর্ট রিসোর্স অবজেক্ট কনফিগার করা। যদি আপনি একটি নতুন রিপোর্ট তৈরি করেন, তাহলে আপনাকে একটি খালি রিসোর্স দিয়ে শুরু করতে হবে এবং প্রয়োজনীয় ক্ষেত্রগুলি সেট করতে হবে। যদি আপনি একটি বিদ্যমান রিপোর্ট আপডেট করেন, তাহলে আপনার কাছে নিম্নলিখিত বিকল্পগুলি থাকবে:
- পছন্দের : আংশিক আপডেট করা। এই পদ্ধতি ব্যবহার করে, আপনি একটি খালি রিসোর্স দিয়ে শুরু করবেন এবং আপনি যে ক্ষেত্রগুলি পরিবর্তন করতে চান তা সেট করবেন। একটি আংশিক আপডেট শুধুমাত্র আপনার নির্দিষ্ট ক্ষেত্রগুলিতে পরিবর্তনগুলি সংরক্ষণ করে।
- একটি সম্পূর্ণ আপডেট সম্পাদন করা। এই পদ্ধতি ব্যবহার করে, আপনি একটি বিদ্যমান রিপোর্ট রিসোর্স লোড করবেন এবং সরাসরি এর ক্ষেত্রগুলি পরিবর্তন করবেন। একটি সম্পূর্ণ আপডেট সর্বদা রিপোর্টের সমস্ত ক্ষেত্র সংরক্ষণ করে।
একটি রিপোর্ট রিসোর্সের সঠিক বিষয়বস্তু আপনি যে ধরণের রিপোর্ট কনফিগার করছেন তার উপর নির্ভর করে পরিবর্তিত হয়। তবুও, কয়েকটি ক্ষেত্র রয়েছে যা সমস্ত রিপোর্ট ধরণের ক্ষেত্রেই সাধারণ:
| মাঠ | বিবরণ |
|---|---|
| প্রয়োজনীয় ক্ষেত্রগুলি | |
| নাম | প্রতিবেদনের নাম। |
| টাইপ করুন | প্রতিবেদনের ধরণ। |
| ঐচ্ছিক ক্ষেত্র | |
| ডেলিভারি | রিপোর্টের ইমেল ডেলিভারি সেটিংস। |
| ফাইলের নাম | এই প্রতিবেদনের জন্য প্রতিবেদন ফাইল তৈরি করার সময় ব্যবহৃত ফাইলের নাম। |
| বিন্যাস | রিপোর্টের আউটপুট ফর্ম্যাট, হয় CSV অথবা Excel। |
| সময়সূচী | আপনার প্রতিবেদনটি বারবার চালানোর জন্য ব্যবহৃত একটি সময়সূচী। |
এই সাধারণ ক্ষেত্রগুলি আপনার প্রতিবেদনের কাঠামো তৈরি করে। নীচের উদাহরণটি একটি নতুন স্ট্যান্ডার্ড রিপোর্ট রিসোর্স তৈরির চিত্র তুলে ধরে:
সি#
Report report = new Report();
// Set the required fields "name" and "type".
report.Name = "Example standard report";
report.Type = "STANDARD";
// Set optional fields.
report.FileName = "example_report";
report.Format = "CSV";
জাভা
Report report = new Report();
// Set the required fields "name" and "type".
report.setName("Example standard report");
report.setType("STANDARD");
// Set optional fields
report.setFileName("example_report");
report.setFormat("CSV");
পিএইচপি
$report = new Google_Service_Dfareporting_Report();
// Set the required fields "name" and "type".
$report->setName('Example standard report');
$report->setType('STANDARD');
// Set optional fields.
$report->setFileName('example_report');
$report->setFormat('CSV');
পাইথন
report = {
# Set the required fields "name" and "type".
'name': 'Example Standard Report',
'type': 'STANDARD',
# Set optional fields.
'fileName': 'example_report',
'format': 'CSV'
}
রুবি
report = DfareportingUtils::API_NAMESPACE::Report.new(
# Set the required fields "name" and "type".
name: 'Example Standard Report',
type: 'STANDARD',
# Set optional fields.
file_name: 'example_report',
format: 'CSV'
)
রিপোর্টের মানদণ্ড নির্ধারণ করুন
একবার আপনি একটি রিপোর্টের ধরণ বেছে নিলে এবং সাধারণ ক্ষেত্রগুলি কনফিগার করার পরে, পরবর্তী ধাপ হল রিপোর্টের মানদণ্ড নির্ধারণ করা। রিপোর্টের মানদণ্ডগুলি আপনার রিপোর্টের পরিধি সীমিত করতে ব্যবহৃত হয়, যাতে শুধুমাত্র প্রাসঙ্গিক তথ্য ফেরত দেওয়া হয়। এটি রিপোর্ট আউটপুটের কাঠামোও সংজ্ঞায়িত করে।
ব্যবহৃত মানদণ্ড রিপোর্টের ধরণের উপর নির্ভর করে। রিপোর্টের ধরণ এবং মানদণ্ডের মধ্যে সম্পর্ক নিম্নলিখিত সারণিতে ব্যাখ্যা করা হয়েছে:
| রিপোর্টের ধরণ | মানদণ্ড ক্ষেত্র |
|---|---|
| স্ট্যান্ডার্ড | মানদণ্ড |
| পৌঁছান | পৌঁছানোর মানদণ্ড |
| রূপান্তরের_পথ | রূপান্তরের পথের মানদণ্ড |
| বন্যার আলো | ফ্লাডলাইটের মানদণ্ড |
| ক্রস_ডাইমেনশন_রিচ | ক্রসডাইমেনশনরিচ মানদণ্ড |
যদিও এই প্রতিটি ধরণের নির্দিষ্ট মানদণ্ড ক্ষেত্রের একটি সামান্য ভিন্ন সেট প্রকাশ করে, তবুও কিছু সাধারণ মানদণ্ড ক্ষেত্র রয়েছে যা সাধারণত রিপোর্ট আউটপুট নিয়ন্ত্রণের জন্য কার্যকর:
| মাঠ | বিবরণ |
|---|---|
| তারিখের পরিসর | এই প্রতিবেদনটি যে তারিখগুলিতে চালানো উচিত। একটি কাস্টম শুরু এবং শেষ তারিখ অথবা একটি আপেক্ষিক তারিখ পরিসর নির্দিষ্ট করতে ব্যবহার করা যেতে পারে। |
| মাত্রা ফিল্টার | যেসব ফিল্টার ফলাফলকে সীমাবদ্ধ করে তার একটি তালিকা। ফিল্টার কনফিগার করার বিষয়ে আরও তথ্যের জন্য কোয়েরি ফিল্টার মান বিভাগটি দেখুন। |
| মাত্রা | রিপোর্ট আউটপুটে অন্তর্ভুক্ত করার জন্য ক্যাম্পেইন ম্যানেজার 360 উপাদানের একটি তালিকা। |
| মেট্রিকনাম | রিপোর্ট আউটপুটে অন্তর্ভুক্ত করার জন্য পরিমাপের স্ট্যান্ডার্ড একক। |
আপনার প্রতিবেদনের জন্য মাত্রা, মেট্রিক্স এবং ফিল্টার নির্বাচন সম্পর্কে আরও তথ্যের জন্য ক্ষেত্রের সামঞ্জস্য নির্ধারণের বিভাগটি দেখুন। অতিরিক্ত টাইপ-নির্দিষ্ট মানদণ্ড ক্ষেত্রগুলি রেফারেন্স ডকুমেন্টেশন এবং সহায়তা কেন্দ্রে ব্যাখ্যা করা হয়েছে।
নীচের উদাহরণটি আমাদের স্ট্যান্ডার্ড রিপোর্ট রিসোর্সে একটি মৌলিক মানদণ্ড যোগ করে:
সি#
// Define a date range to report on. This example uses explicit start and
// end dates to mimic the "LAST_30_DAYS" relative date range.
DateRange dateRange = new DateRange();
dateRange.EndDate = DateTime.Now.ToString("yyyy-MM-dd");
dateRange.StartDate = DateTime.Now.AddDays(-30).ToString("yyyy-MM-dd");
// Create a report criteria.
SortedDimension dimension = new SortedDimension();
dimension.Name = "advertiser";
Report.CriteriaData criteria = new Report.CriteriaData();
criteria.DateRange = dateRange;
criteria.Dimensions = new List<SortedDimension>() { dimension };
criteria.MetricNames = new List<string>() {
"clicks",
"impressions"
};
// Add the criteria to the report resource.
report.Criteria = criteria;
জাভা
// Define a date range to report on. This example uses explicit start and end dates to mimic
// the "LAST_MONTH" relative date range.
DateRange dateRange = new DateRange();
dateRange.setEndDate(new DateTime(true, System.currentTimeMillis(), null));
Calendar lastMonth = Calendar.getInstance();
lastMonth.add(Calendar.MONTH, -1);
dateRange.setStartDate(new DateTime(true, lastMonth.getTimeInMillis(), null));
// Create a report criteria.
Report.Criteria criteria = new Report.Criteria();
criteria.setDateRange(dateRange);
criteria.setDimensions(Lists.newArrayList(new SortedDimension().setName("advertiser")));
criteria.setMetricNames(Lists.newArrayList("clicks", "impressions"));
// Add the criteria to the report resource.
report.setCriteria(criteria);
পিএইচপি
// Define a date range to report on. This example uses explicit start and
// end dates to mimic the "LAST_30_DAYS" relative date range.
$dateRange = new Google_Service_Dfareporting_DateRange();
$dateRange->setStartDate(
date('Y-m-d', mktime(0, 0, 0, date('m'), date('d') - 30, date('Y')))
);
$dateRange->setEndDate(date('Y-m-d'));
// Create a report criteria.
$dimension = new Google_Service_Dfareporting_SortedDimension();
$dimension->setName('advertiser');
$criteria = new Google_Service_Dfareporting_ReportCriteria();
$criteria->setDateRange($dateRange);
$criteria->setDimensions([$dimension]);
$criteria->setMetricNames(['clicks', 'impressions']);
// Add the criteria to the report resource.
$report->setCriteria($criteria);
পাইথন
# Define a date range to report on. This example uses explicit start and end
# dates to mimic the "LAST_30_DAYS" relative date range.
end_date = date.today()
start_date = end_date - timedelta(days=30)
# Create a report criteria.
criteria = {
'dateRange': {
'startDate': start_date.strftime('%Y-%m-%d'),
'endDate': end_date.strftime('%Y-%m-%d')
},
'dimensions': [{
'name': 'advertiser'
}],
'metricNames': ['clicks', 'impressions']
}
# Add the criteria to the report resource.
report['criteria'] = criteria
রুবি
# Define a date range to report on. This example uses explicit start and end
# dates to mimic the "LAST_30_DAYS" relative date range.
start_date = DateTime.now.prev_day(30).strftime('%Y-%m-%d')
end_date = DateTime.now.strftime('%Y-%m-%d')
# Create a report criteria
criteria = DfareportingUtils::API_NAMESPACE::Report::Criteria.new(
date_range: DfareportingUtils::API_NAMESPACE::DateRange.new(
start_date: start_date,
end_date: end_date
),
dimensions: [
DfareportingUtils::API_NAMESPACE::SortedDimension.new(
name: 'advertiser'
)
],
metric_names: ['clicks', 'impressions']
)
# Add the criteria to the report resource.
report.criteria = criteria
কোয়েরি ফিল্টারের মান
কোনও রিপোর্টের জন্য ফিল্টার কনফিগার করার সময়, আপনাকে রিপোর্ট আউটপুট সীমাবদ্ধ করার জন্য ফিল্টারগুলি যে সঠিক মানগুলি ব্যবহার করবে তা নির্দিষ্ট করতে হবে। যদি আপনি নিশ্চিত না হন যে কোনও নির্দিষ্ট ফিল্টারের সম্ভাব্য মানগুলি কী, তাহলে DimensionValues পরিষেবা ব্যবহার করে সেগুলি দেখুন।
একটি মৌলিক মাত্রার মান কোয়েরিতে একটি মাত্রার নাম থাকে, সেইসাথে একটি শুরুর তারিখ এবং শেষের তারিখ থাকে । শুরু এবং শেষের তারিখগুলি সেই সময়ের মধ্যে বৈধ মানগুলির প্রতিক্রিয়া সীমিত করে। যদি আপনার কোয়েরির ফলাফল আরও সীমিত করার প্রয়োজন হয় তবে অতিরিক্ত ফিল্টার নির্দিষ্ট করা যেতে পারে।
নিচের উদাহরণটি আমাদের রিপোর্টটি যে তারিখে চলবে সেই তারিখগুলিতে বৈধ বিজ্ঞাপনদাতার ফিল্টার মানগুলি খুঁজে বের করে এবং সেগুলিকে রিপোর্টের মানদণ্ডে যোগ করে:
সি#
// Query advertiser dimension values for report run dates.
DimensionValueRequest request = new DimensionValueRequest();
request.StartDate = report.Criteria.DateRange.StartDate;
request.EndDate = report.Criteria.DateRange.EndDate;
request.DimensionName = "advertiser";
DimensionValueList values =
service.DimensionValues.Query(request, profileId).Execute();
if (values.Items.Any()) {
// Add a value as a filter to the report criteria.
report.Criteria.DimensionFilters = new List<DimensionValue>() {
values.Items[0]
};
}
জাভা
// Query advertiser dimension values for report run dates.
DimensionValueRequest request = new DimensionValueRequest();
request.setStartDate(report.getCriteria().getDateRange().getStartDate());
request.setEndDate(report.getCriteria().getDateRange().getEndDate());
request.setDimensionName("advertiser");
DimensionValueList values = reporting.dimensionValues().query(profileId, request).execute();
if (!values.getItems().isEmpty()) {
// Add a value as a filter to the report criteria.
List<DimensionValue> filters = Lists.newArrayList(values.getItems().get(0));
report.getCriteria().setDimensionFilters(filters);
}
পিএইচপি
// Query advertiser dimension values for report run dates.
$request = new Google_Service_Dfareporting_DimensionValueRequest();
$request->setStartDate(
$report->getCriteria()->getDateRange()->getStartDate()
);
$request->setEndDate(
$report->getCriteria()->getDateRange()->getEndDate()
);
$request->setDimensionName('advertiser');
$values =
$this->service->dimensionValues->query($userProfileId, $request);
if (!empty($values->getItems())) {
// Add a value as a filter to the report criteria.
$report->getCriteria()->setDimensionFilters([$values->getItems()[0]]);
}
পাইথন
# Query advertiser dimension values for report run dates.
request = {
'dimensionName': 'advertiser',
'endDate': report['criteria']['dateRange']['endDate'],
'startDate': report['criteria']['dateRange']['startDate']
}
values = service.dimensionValues().query(
profileId=profile_id, body=request).execute()
if values['items']:
# Add a value as a filter to the report criteria.
report['criteria']['dimensionFilters'] = [values['items'][0]]
রুবি
# Query advertiser dimension values for report run dates.
dimension = DfareportingUtils::API_NAMESPACE::DimensionValueRequest.new(
dimension_name: 'advertiser',
start_date: report.criteria.date_range.start_date,
end_date: report.criteria.date_range.end_date
)
values = service.query_dimension_value(profile_id, dimension)
unless values.items.empty?
# Add a value as a filter to the report criteria.
report.criteria.dimension_filters = [values.items.first]
end
ক্ষেত্রের সামঞ্জস্য নির্ধারণ করুন
আপনার রিপোর্টের মানদণ্ড কনফিগার করার সময়, এটি মনে রাখা গুরুত্বপূর্ণ যে মেট্রিক্স, মাত্রা এবং ফিল্টারের সমস্ত সংমিশ্রণ বৈধ নয়। আপনি এমন কোনও প্রতিবেদন সংরক্ষণ করতে পারবেন না যাতে একটি অবৈধ সংমিশ্রণ রয়েছে, তাই আপনি যে ক্ষেত্রগুলি ব্যবহার করার পরিকল্পনা করছেন সেগুলি একে অপরের সাথে সামঞ্জস্যপূর্ণ কিনা তা নিশ্চিত করা গুরুত্বপূর্ণ।
আপনার রিপোর্ট রিসোর্স তৈরি করার সময়, আপনি এটি Reports.compatibleFields পরিষেবাতে পাঠাতে পারেন যাতে আপনি ইতিমধ্যেই নির্বাচিত ক্ষেত্রগুলির উপর ভিত্তি করে কোন ক্ষেত্রগুলি বৈধ তা দেখতে পারেন। রিপোর্টের কনফিগারেশন বিশ্লেষণ করা হবে এবং সামঞ্জস্যপূর্ণ মাত্রা, মেট্রিক্স এবং ফিল্টার ধারণকারী একটি প্রতিক্রিয়া ফেরত দেওয়া হবে। যেহেতু এই প্রতিক্রিয়ার ক্ষেত্রগুলি একে অপরের সাথে সামঞ্জস্যপূর্ণ হওয়ার গ্যারান্টিযুক্ত নয়, তাই আপনার নির্বাচিত সমস্ত ক্ষেত্র একসাথে কাজ করবে তা নিশ্চিত করার জন্য আপনাকে একাধিক অনুরোধ করতে হতে পারে।
নিচের উদাহরণটি আমাদের রিপোর্ট রিসোর্সকে ইনপুট হিসেবে ব্যবহার করে একটি নমুনা সামঞ্জস্যপূর্ণ ফিল্ড অনুরোধ কীভাবে তৈরি করতে হয় তা ব্যাখ্যা করে:
সি#
CompatibleFields fields =
service.Reports.CompatibleFields.Query(report, profileId).Execute();
ReportCompatibleFields reportFields = fields.ReportCompatibleFields;
if(reportFields.Dimensions.Any()) {
// Add a compatible dimension to the report.
Dimension dimension = reportFields.Dimensions[0];
SortedDimension sortedDimension = new SortedDimension();
sortedDimension.Name = dimension.Name;
report.Criteria.Dimensions.Add(sortedDimension);
} else if (reportFields.Metrics.Any()) {
// Add a compatible metric to the report.
Metric metric = reportFields.Metrics[0];
report.Criteria.MetricNames.Add(metric.Name);
}
জাভা
CompatibleFields fields = reporting.reports().compatibleFields()
.query(profileId, report).execute();
ReportCompatibleFields reportFields = fields.getReportCompatibleFields();
if (!reportFields.getDimensions().isEmpty()) {
// Add a compatible dimension to the report.
Dimension dimension = reportFields.getDimensions().get(0);
SortedDimension sortedDimension = new SortedDimension().setName(dimension.getName());
report.getCriteria().getDimensions().add(sortedDimension);
} else if (!reportFields.getMetrics().isEmpty()) {
// Add a compatible metric to the report.
Metric metric = reportFields.getMetrics().get(0);
report.getCriteria().getMetricNames().add(metric.getName());
}
পিএইচপি
$fields = $this->service->reports_compatibleFields->query(
$userProfileId,
$report
);
$reportFields = $fields->getReportCompatibleFields();
if (!empty($reportFields->getDimensions())) {
// Add a compatible dimension to the report.
$dimension = $reportFields->getDimensions()[0];
$sortedDimension = new Google_Service_Dfareporting_SortedDimension();
$sortedDimension->setName($dimension->getName());
$report->getCriteria()->setDimensions(
array_merge(
$report->getCriteria()->getDimensions(),
[$sortedDimension]
)
);
} elseif (!empty($reportFields->getMetrics())) {
// Add a compatible metric to the report.
$metric = $reportFields->getMetrics()[0];
$report->getCriteria()->setMetricNames(
array_merge(
$report->getCriteria()->getMetricNames(),
[$metric->getName()]
)
);
}
পাইথন
fields = service.reports().compatibleFields().query(
profileId=profile_id, body=report).execute()
report_fields = fields['reportCompatibleFields']
if report_fields['dimensions']:
# Add a compatible dimension to the report.
report['criteria']['dimensions'].append({
'name': report_fields['dimensions'][0]['name']
})
elif report_fields['metrics']:
# Add a compatible metric to the report.
report['criteria']['metricNames'].append(
report_fields['metrics'][0]['name'])
রুবি
fields = service.query_report_compatible_field(profile_id, report)
report_fields = fields.report_compatible_fields
if report_fields.dimensions.any?
# Add a compatible dimension to the report.
report.criteria.dimensions <<
DfareportingUtils::API_NAMESPACE::SortedDimension.new(
name: report_fields.dimensions.first.name
)
elsif report_fields.metrics.any?
# Add a compatible metric to the report.
report.criteria.metric_names << report_fields.metrics.first.name
end
রিপোর্টটি সংরক্ষণ করুন
এই প্রক্রিয়ার শেষ ধাপ হল আপনার রিপোর্ট রিসোর্স সংরক্ষণ করা। যদি আপনি একটি নতুন রিপোর্ট তৈরি করেন, তাহলে আপনি Reports.insert এ কল করে এটি সন্নিবেশ করতে পারেন:
সি#
Report insertedReport =
service.Reports.Insert(report, profileId).Execute();
জাভা
Report insertedReport = reporting.reports().insert(profileId, report).execute();
পিএইচপি
$insertedReport =
$this->service->reports->insert($userProfileId, $report);
পাইথন
inserted_report = service.reports().insert(
profileId=profile_id, body=report).execute()
রুবি
report = service.insert_report(profile_id, report)
যদি আপনি আংশিক আপডেট করেন, তাহলে Reports.patch এ কল করে আপনার পরিবর্তনগুলি সংরক্ষণ করতে পারেন:
সি#
// Patch an existing report.
Report patchedReport =
service.Reports.Patch(report, profileId, reportId).Execute();
জাভা
// Patch an existing report.
Report patchedReport = reporting.reports().patch(profileId, reportId, report).execute();
পিএইচপি
# Patch an existing report.
$patchedReport =
$this->service->reports->patch($userProfileId, $reportId, $report)
পাইথন
# Patch an existing report.
patched_report = service.reports().patch(
profileId=profile_id, reportId=report_id, body=report).execute();
রুবি
# Patch an existing report.
patched_report = service.patch_report(profile_id, report_id, report)
অথবা, যদি আপনি একটি সম্পূর্ণ আপডেট করার সিদ্ধান্ত নিয়ে থাকেন, তাহলে আপনি Reports.update এ কল করে আপনার পরিবর্তনগুলি সংরক্ষণ করতে পারেন:
সি#
// Update an existing report.
Report updatedReport =
service.Reports.Update(report, profileId, report.Id).Execute();
জাভা
// Update an existing report.
Report updatedReport = reporting.reports().update(profileId, report.getId(), report).execute();
পিএইচপি
# Update an existing report.
$updatedReport =
$this->service->reports->update($userProfileId, $report->getId(), $report)
পাইথন
# Update an existing report.
updated_report = service.reports().update(
profileId=profile_id, reportId=report['id'], body=report).execute();
রুবি
# Update an existing report.
updated_report = service.update_report(profile_id, report.id, report);
একটি সফল সংরক্ষণ অনুরোধের পরে, রিপোর্ট রিসোর্সের একটি কপি প্রতিক্রিয়া বিভাগে ফেরত পাঠানো হবে। এই রিসোর্সে কয়েকটি নতুন ক্ষেত্র পূরণ করা হবে, যার মধ্যে সবচেয়ে গুরুত্বপূর্ণ হল id ক্ষেত্র । এই আইডিটিই আপনি আপনার বাকি কর্মপ্রবাহ জুড়ে এই প্রতিবেদনটি উল্লেখ করার জন্য ব্যবহার করবেন।