অ্যাড ম্যানেজার এপিআই ব্যবহার করে, আপনি ইন্টারেক্টিভ রিপোর্ট তৈরি এবং চালাতে পারেন। অ্যাড ম্যানেজারে ইন্টারেক্টিভ রিপোর্টিং সম্পর্কে বিস্তারিত জানতে, "একটি ইন্টারেক্টিভ রিপোর্ট তৈরি করুন" দেখুন। ইন্টারেক্টিভ রিপোর্টের মাধ্যমে, আপনি নিম্নলিখিতগুলি করতে পারেন:
- API ব্যবহার করে একটি নতুন প্রতিবেদন তৈরি করুন এবং একটি রান শুরু করুন।
- বিজ্ঞাপন ম্যানেজার UI-তে আপনার তৈরি করা একটি বিদ্যমান প্রতিবেদন চালান।
রিপোর্ট রান শুরু করার পর, আপনি রিপোর্টের অবস্থা পোল করতে পারেন এবং শেষ হওয়ার পর ফলাফল পড়তে পারেন।
এই নির্দেশিকাটিতে কীভাবে একটি প্রতিবেদন তৈরি করতে হয়, একটি Report একটি অ্যাসিঙ্ক্রোনাস রান শুরু করতে হয়, ফিরে আসা Operation স্ট্যাটাসটি পোল করতে হয়, সম্পূর্ণ Operation থেকে Result রিসোর্সের নাম পেতে হয় এবং ফলাফলের একটি পৃষ্ঠাযুক্ত সেট আনতে হয় তা বর্ণনা করা হয়েছে Rows ।
পূর্বশর্ত
চালিয়ে যাওয়ার আগে, যাচাই করুন যে আপনার কাছে Google বিজ্ঞাপন ম্যানেজার নেটওয়ার্কে অ্যাক্সেস আছে। অ্যাক্সেস পেতে, রিপোর্টের জন্য "Google বিজ্ঞাপন ম্যানেজার এবং ব্যবহারকারীর ভূমিকার অনুমতি দিয়ে শুরু করুন" দেখুন।
একটি প্রতিবেদন তৈরি করুন
networks.reports.create পদ্ধতি ব্যবহার করে, আপনি একটি Report অবজেক্ট তৈরি করতে পারেন।
নিচের উদাহরণটি এমন একটি প্রতিবেদন তৈরি করে যা গতকালের ইম্প্রেশনগুলিকে লাইন আইটেম অনুসারে বিভক্ত করে দেখায়:
জাভা
import com.google.ads.admanager.v1.CreateReportRequest;
import com.google.ads.admanager.v1.NetworkName;
import com.google.ads.admanager.v1.Report;
import com.google.ads.admanager.v1.ReportServiceClient;
public class SyncCreateReport {
public static void main(String[] args) throws Exception {
syncCreateReport();
}
public static void syncCreateReport() throws Exception {
try (ReportServiceClient reportServiceClient = ReportServiceClient.create()) {
Report report =
Report.newBuilder()
.setDisplayName("My API Report")
.setReportDefinition(
ReportDefinition.newBuilder()
.addDimensions(Dimension.LINE_ITEM_NAME)
.addDimensions(Dimension.LINE_ITEM_ID)
.addMetrics(Metric.AD_SERVER_IMPRESSIONS)
.setDateRange(DateRange.newBuilder().setRelative(RelativeDateRange.YESTERDAY))
.setReportType(ReportType.HISTORICAL)
.build())
.build();
CreateReportRequest request =
CreateReportRequest.newBuilder()
.setParent(NetworkName.of("NETWORK_CODE").toString())
.setReport(report)
.build();
Report response = reportServiceClient.createReport(request);
}
}
}
পাইথন
from google.ads import admanager_v1 from google.ads.admanager_v1 import Report def sample_create_report(): # Create a client client = admanager_v1.ReportServiceClient() # Initialize request argument(s) report = admanager_v1.Report( display_name="My API Report", report_definition=admanager_v1.ReportDefinition( dimensions=[ Report.Dimension.LINE_ITEM_NAME, Report.Dimension.LINE_ITEM_ID, ], metrics=[ Report.Metric.AD_SERVER_IMPRESSIONS, ], date_range=Report.DateRange( relative=Report.DateRange.RelativeDateRange.YESTERDAY ), report_type=Report.ReportType.HISTORICAL, ) ) request = admanager_v1.CreateReportRequest( parent="networks/NETWORK_CODE", report=report, ) # Make the request response = client.create_report(request=request) # Handle the response print(response)
.নেট
using Google.Ads.AdManager.V1;
using Dimension = Google.Ads.AdManager.V1.Report.Types.Dimesnsion;
using Metric = Google.Ads.AdManager.V1.Report.Types.Metric;
public sealed partial class GeneratedReportServiceClientSnippets
{
public void CreateReport()
{
// Create client
ReportServiceClient reportServiceClient = ReportServiceClient.Create();
// Initialize request argument(s)
string parent = "networks/NETWORK_CODE";
Report report = new Report
{
DisplayName = "My API Report",
ReportDefinition = new ReportDefinition
{
Dimensions = { Dimension.LineItemName, Dimension.LineItemId },
Metrics = { Metric.AdServerImpressions },
DateRange = new Report.Types.DateRange
{
Relative = Report.Types.DateRange.Types.RelativeDateRange.Yesterday
},
ReportType = Report.Types.ReportType.Historical
}
};
// Make the request
Report response = reportServiceClient.CreateReport(parent, report);
}
}
পিএইচপি
use Google\Ads\AdManager\V1\Client\ReportServiceClient;
use Google\Ads\AdManager\V1\CreateReportRequest;
use Google\Ads\AdManager\V1\Report\DateRange;
use Google\Ads\AdManager\V1\Report\Dimension;
use Google\Ads\AdManager\V1\Report\Metric;
use Google\Ads\AdManager\V1\Report\DateRange\RelativeDateRange;
use Google\Ads\AdManager\V1\Report;
use Google\Ads\AdManager\V1\ReportDefinition;
use Google\Ads\AdManager\V1\Report\ReportType;
function createReport(): void
{
$client = new ReportServiceClient();
$report = (new Report())
->setDisplayName('My API Report')
->setReportDefinition((new ReportDefinition())
->setDimensions([
Dimension::LINE_ITEM_NAME,
Dimension::LINE_ITEM_ID
])
->setMetrics([
Metric::AD_SERVER_IMPRESSIONS
])
->setDateRange((new DateRange)
->setRelative(RelativeDateRange::YESTERDAY)
)
->setReportType(ReportType::HISTORICAL)
);
$request = new CreateReportRequest([
'parent' => "networks/NETWORK_CODE",
'report' => $report
]);
$response = $client->createReport($request);
print_r($response);
}রুবি
require "google/ads/ad_manager/v1"
def create_report
# Create a client object. The client can be reused for multiple calls.
client = Google::Ads::AdManager::V1::ReportService::Rest::Client.new
report = Google::Ads::AdManager::V1::Report.new(
display_name: "My API Report",
report_definition: Google::Ads::AdManager::V1::ReportDefinition.new(
dimensions: [
:LINE_ITEM_NAME,
:LINE_ITEM_ID
],
metrics: [
:AD_SERVER_IMPRESSIONS
],
date_range: Google::Ads::AdManager::V1::Report::DateRange.new(
relative: :YESTERDAY
),
report_type: :HISTORICAL
)
)
# Create a request. To set request fields, pass in keyword arguments.
request = Google::Ads::AdManager::V1::CreateReportRequest.new(
parent: 'networks/NETWORK_CODE'
report: report
)
# Call the create_report method.
result = client.create_report request
# The returned object is of type Google::Ads::AdManager::V1::Report.
p result
end
নোড.জেএস
const parent = 'networks/NETWORK_CODE';
const report = {
displayName: 'My API Report',
reportDefinition: {
dimensions: ['LINE_ITEM_NAME', 'LINE_ITEM_ID'],
metrics: ['AD_SERVER_IMPRESSIONS'],
dateRange: {
relative: 'YESTERDAY',
},
reportType: 'HISTORICAL',
},
};
// Imports the Admanager library
const {ReportServiceClient} = require('@google-ads/admanager').v1;
// Instantiates a client
const admanagerClient = new ReportServiceClient();
async function callCreateReport() {
// Construct request
const request = {
parent,
report,
};
// Run request
const response = await admanagerClient.createReport(request);
console.log(response);
}
callCreateReport();
সিআরএল
অনুরোধ
curl -X POST -H "Authorization: Bearer ${ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"report": {
"displayName": "My API Report",
"reportDefinition": {
"dimensions": ["LINE_ITEM_NAME", "LINE_ITEM_ID"],
"metrics": ["AD_SERVER_IMPRESSIONS"],
"dateRange": {
"relative": "YESTERDAY"
},
"reportType": "HISTORICAL"
}
}
}' \
"https://admanager.googleapis.com/v1/networks/${NETWORK_CODE}/reports"
প্রতিক্রিয়া
{
"name": "networks/234093456/reports/4555265029",
"displayName": "My API Report",
"reportId": "4555265029",
"reportDefinition": {
"dimensions": [
"LINE_ITEM_NAME",
"LINE_ITEM_ID"
],
"metrics": [
"AD_SERVER_IMPRESSIONS"
],
"dateRange": {
"relative": "YESTERDAY"
},
"reportType": "HISTORICAL"
},
"visibility": "HIDDEN"
}
একটি রিপোর্ট তৈরি করার পরে, আপনি এটি চালানোর জন্য ফিরে আসা reportId ব্যবহার করতে পারেন।
একটি প্রতিবেদন চালান
রিপোর্ট চালানোর জন্য, আপনার রিপোর্ট আইডি প্রয়োজন। আপনি রিপোর্ট URL এর মাধ্যমে বিজ্ঞাপন ম্যানেজার UI তে একটি রিপোর্ট আইডি পেতে পারেন। উদাহরণস্বরূপ, https://admanager.google.com/234093456#reports/interactive/detail/report_id=4555265029 URL এ রিপোর্ট আইডি হল 4555265029 ।
আপনি networks.reports.list পদ্ধতি ব্যবহার করে আপনার ব্যবহারকারীর অ্যাক্সেস থাকা প্রতিবেদনগুলিও পড়তে পারেন এবং রিসোর্সের নাম থেকে আইডি পেতে পারেন:
networks/234093456/reports/4555265029
আপনার রিপোর্ট আইডি পাওয়ার পর, আপনি networks.reports.run পদ্ধতি ব্যবহার করে রিপোর্টটির একটি অ্যাসিঙ্ক্রোনাস রান শুরু করতে পারেন। এই পদ্ধতিটি দীর্ঘ সময় ধরে চলমান একটি Operation রিসোর্স নাম প্রদান করে। মনে রাখবেন যে নিম্নলিখিত উদাহরণ কোডে, REPORT_ID হল রিপোর্ট আইডির জন্য একটি স্থানধারক এবং NETWORK_CODE হল আপনার নেটওয়ার্ক কোডের জন্য একটি স্থানধারক। আপনার নেটওয়ার্ক কোডটি খুঁজে পেতে, বিজ্ঞাপন পরিচালক অ্যাকাউন্টের তথ্য খুঁজুন দেখুন।
জাভা
import com.google.ads.admanager.v1.ReportName;
import com.google.ads.admanager.v1.ReportServiceClient;
import com.google.ads.admanager.v1.RunReportResponse;
public class SyncRunReportReportname {
public static void main(String[] args) throws Exception {
syncRunReportReportname();
}
public static void syncRunReportReportname() throws Exception {
try (ReportServiceClient reportServiceClient = ReportServiceClient.create()) {
ReportName name = ReportName.of("NETWORK_CODE", "REPORT_ID");
RunReportResponse response = reportServiceClient.runReportAsync(name).get();
}
}
}
পাইথন
from google.ads import admanager_v1 def sample_run_report(): # Create a client client = admanager_v1.ReportServiceClient() # Initialize request argument(s) request = admanager_v1.RunReportRequest( name="networks/NETWORK_CODE/reports/REPORT_ID", ) # Make the request operation = client.run_report(request=request) print("Waiting for operation to complete...") response = operation.result() # Handle the response print(response)
.নেট
using Google.Ads.AdManager.V1;
using Google.LongRunning;
public sealed partial class GeneratedReportServiceClientSnippets
{
public void RunReportResourceNames()
{
// Create client
ReportServiceClient reportServiceClient = ReportServiceClient.Create();
// Initialize request argument(s)
ReportName name = ReportName.FromNetworkCodeReport("NETWORK_CODE", "REPORT_ID");
// Make the request
Operation<RunReportResponse, RunReportMetadata> response = reportServiceClient.RunReport(name);
// Poll until the returned long-running operation is complete
Operation<RunReportResponse, RunReportMetadata> completedResponse = response.PollUntilCompleted();
// Retrieve the operation result
RunReportResponse result = completedResponse.Result;
// Or get the name of the operation
string operationName = response.Name;
// This name can be stored, then the long-running operation retrieved later by name
Operation<RunReportResponse, RunReportMetadata> retrievedResponse = reportServiceClient.PollOnceRunReport(operationName);
// Check if the retrieved long-running operation has completed
if (retrievedResponse.IsCompleted)
{
// If it has completed, then access the result
RunReportResponse retrievedResult = retrievedResponse.Result;
}
}
}
পিএইচপি
use Google\Ads\AdManager\V1\Client\ReportServiceClient;
use Google\Ads\AdManager\V1\RunReportRequest;
use Google\Ads\AdManager\V1\RunReportResponse;
use Google\ApiCore\ApiException;
use Google\ApiCore\OperationResponse;
use Google\Rpc\Status;
function run_report_sample(string $formattedName): void
{
// Create a client.
$reportServiceClient = new ReportServiceClient();
// Prepare the request message.
$request = (new RunReportRequest())
->setName($formattedName);
// Call the API and handle any network failures.
try {
$response = $reportServiceClient->runReport($request);
$response->pollUntilComplete();
if ($response->operationSucceeded()) {
$result = $response->getResult();
printf('Operation successful with response data: %s' . PHP_EOL, $result->serializeToJsonString());
} else {
$error = $response->getError();
printf('Operation failed with error data: %s' . PHP_EOL, $error->serializeToJsonString());
}
} catch (ApiException $ex) {
printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
}
}
function callSample(): void
{
$formattedName = ReportServiceClient::reportName('NETWORK_CODE', 'REPORT_ID');
run_report_sample($formattedName);
}রুবি
require "google/ads/ad_manager/v1"
def run_report
# Create a client object. The client can be reused for multiple calls.
client = Google::Ads::AdManager::V1::ReportService::Rest::Client.new
# Create a request. To set request fields, pass in keyword arguments.
request = Google::Ads::AdManager::V1::RunReportRequest.new(
:name => 'networks/NETWORK_CODE/reports/REPORT_ID'
)
# Call the run_report method.
result = client.run_report request
# The returned object is of type Gapic::Operation. You can use it to
# check the status of an operation, cancel it, or wait for results.
# Here is how to wait for a response.
result.wait_until_done! timeout: 60
if result.response?
p result.response
else
puts "No response received."
end
end
নোড.জেএস
const name = 'networks/NETWORK_CODE/reports/REPORT_ID';
// Imports the Admanager library
const {ReportServiceClient} = require('@google-ads/admanager').v1;
// Instantiates a client
const admanagerClient = new ReportServiceClient();
async function callRunReport() {
// Construct request
const request = {
name,
};
// Run request
const [operation] = await admanagerClient.runReport(request);
const [response] = await operation.promise();
console.log(response);
}
callRunReport();
সিআরএল
অনুরোধ
curl -X POST -H "Authorization: Bearer ${ACCESS_TOKEN}" \ "https://admanager.googleapis.com/v1/networks/${NETWORK_CODE}/reports/{$REPORT_ID}:run"
প্রতিক্রিয়া
{ "name": "networks/234093456/operations/reports/runs/6485392645", "metadata": { "@type": "type.googleapis.com/google.ads.admanager.v1.RunReportMetadata", "report": "networks/234093456/reports/4555265029" } }
রিপোর্টের অবস্থা সম্পর্কে পোল দিন
যদি আপনি একটি ক্লায়েন্ট লাইব্রেরি ব্যবহার করেন, তাহলে পূর্ববর্তী বিভাগের উদাহরণ কোড সুপারিশকৃত বিরতিতে রিপোর্ট রান Operation অবস্থা পোল করে এবং এটি সম্পূর্ণ হলে ফলাফল প্রদান করে। প্রস্তাবিত পোলিং ব্যবধান সম্পর্কে আরও তথ্যের জন্য, networks.reports.run দেখুন।
যদি আপনি ভোটদানের উপর আরও নিয়ন্ত্রণ চান, তাহলে networks.operations.reports.runs.get পদ্ধতি ব্যবহার করে চলমান প্রতিবেদনের বর্তমান অবস্থা পুনরুদ্ধার করার জন্য একটি পৃথক অনুরোধ করুন। কিছু ক্লায়েন্ট লাইব্রেরি কাস্টম পোলিং কৌশল সেট করা সমর্থন করে:
জাভা
import com.google.ads.admanager.v1.ReportServiceSettings;
import com.google.api.gax.longrunning.OperationalTimedPollAlgorithm;
import com.google.api.gax.retrying.RetrySettings;
import com.google.api.gax.retrying.TimedRetryAlgorithm;
import java.time.Duration;
public class SyncRunReport {
public static void main(String[] args) throws Exception {
syncRunReport();
}
public static void syncRunReport() throws Exception {
ReportServiceSettings.Builder reportServiceSettingsBuilder = ReportServiceSettings.newBuilder();
TimedRetryAlgorithm timedRetryAlgorithm =
OperationalTimedPollAlgorithm.create(
RetrySettings.newBuilder()
.setInitialRetryDelayDuration(Duration.ofMillis(500))
.setRetryDelayMultiplier(1.5)
.setMaxRetryDelayDuration(Duration.ofMillis(5000))
.setTotalTimeoutDuration(Duration.ofHours(24))
.build());
reportServiceSettingsBuilder
.createClusterOperationSettings()
.setPollingAlgorithm(timedRetryAlgorithm)
.build();
}
}
পাইথন
from google.ads import admanager_v1 from google.longrunning.operations_pb2 import GetOperationRequest def sample_poll_report(): # Run the report client = admanager_v1.ReportServiceClient() response = client.run_report(name="networks/NETWORK_CODE/reports/REPORT_ID") # Check if the long-running operation has completed operation = client.get_operation( GetOperationRequest(name=response.operation.name)) if(operation.done): # If it has completed, then access the result run_report_response = admanager_v1.RunReportResponse.deserialize(payload=operation.response.value)
.নেট
Operation<RunReportResponse, RunReportMetadata> retrievedResponse = reportServiceClient.PollOnceRunReport(operationName); // Check if the retrieved long-running operation has completed if (retrievedResponse.IsCompleted) { // If it has completed, then access the result RunReportResponse retrievedResult = retrievedResponse.Result; }
পিএইচপি
$options = [
'initialPollDelayMillis' => 500, // Initial delay of 500ms
'pollDelayMultiplier' => 1.5,
'maxPollDelayMillis' => 30000, // Max poll delay of 30 seconds
'totalPollTimeoutMillis' => 60 * 60 * 1000, // Total timeout of 1 hour in milliseconds
];
$response = $reportServiceClient->runReport($request);
$response->pollUntilComplete($options);রুবি
options = {
initial_delay: 0.5, # Initial delay of 500ms (0.5 seconds)
multiplier: 1.5,
max_delay: 30.0, # Max poll delay of 30 seconds
timeout: 60 * 60 # Total timeout of 1 hour in seconds
}
result = client.run_report request
result.wait_until_done!(retry_policy: options)
if result.response?
p result.response
else
puts "No response received."
end
নোড.জেএস
const options = {
initialRetryDelayMillis: 500, // Initial delay of 500ms
retryDelayMultiplier: 1.5,
maxRetryDelayMillis: 30, // Max poll delay of 30 seconds
totalTimeoutMillis: 60 * 60 * 1000 // Total timeout of 1 hour
}
const [operation] = await admanagerClient.runReport(request);
operation.backoffSettings = options;
const [response] = await operation.promise();
console.log(response);
সিআরএল
অনুরোধ
curl -H "Authorization: Bearer ${ACCESS_TOKEN}" \
"https://admanager.googleapis.com/v1/networks/${NETWORK_CODE}/operations/reports/runs/${OPERATION_ID}"
প্রতিক্রিয়া
{ "name": "networks/234093456/operations/reports/runs/6485392645", "metadata": { "@type": "type.googleapis.com/google.ads.admanager.v1.RunReportMetadata", "percentComplete": 50, "report": "networks/234093456/reports/4555265029" }, "done": false, }
ফলাফলের রিসোর্সের নাম পান
রিপোর্ট রান Operation সম্পন্ন হওয়ার পর, এতে Result এর রিসোর্সের নাম থাকে।
জাভা
RunReportResponse response = reportServiceClient.runReportAsync(name).get();
// Result name in the format networks/[NETWORK_CODE]/reports/[REPORT_ID]/results/[RESULT_ID]
String resultName = response.getReportResult();
পাইথন
operation = client.run_report(request=request)
response = operation.result()
# Result name in the format networks/[NETWORK_CODE]/reports/[REPORT_ID]/results/[RESULT_ID]
result_name = response.report_result
.নেট
Operation<RunReportResponse, RunReportMetadata> response = reportServiceClient.RunReport(request);
// Poll until the returned long-running operation is complete
Operation<RunReportResponse, RunReportMetadata> completedResponse = response.PollUntilCompleted();
RunReportResponse result = completedResponse.Result;
// Result name in the format networks/[NETWORK_CODE]/reports/[REPORT_ID]/results/[RESULT_ID]
string resultName = result.ReportResult;
পিএইচপি
$response = $reportServiceClient->runReport($request);
$response->pollUntilComplete();
if ($response->operationSucceeded()) {
$result = $response->getResult();
// Result name in the format networks/[NETWORK_CODE]/reports/[REPORT_ID]/results/[RESULT_ID]
$resultName = $result->getReportResult();
}রুবি
result = client.run_report request
result.wait_until_done!
if result.response?
# Result name in the format networks/[NETWORK_CODE]/reports/[REPORT_ID]/results/[RESULT_ID]
p result.response.report_result
else
puts "No response received."
end
নোড.জেএস
// Run request
const [operation] = await admanagerClient.runReport(request);
const [response] = await operation.promise();
// Result name in the format networks/[NETWORK_CODE]/reports/[REPORT_ID]/results/[RESULT_ID]
console.log(response.reportResult);
সিআরএল
অনুরোধ
curl -H "Authorization: Bearer ${ACCESS_TOKEN}" \
"https://admanager.googleapis.com/v1/networks/${NETWORK_CODE}/operations/reports/runs/${OPERATION_ID}"
প্রতিক্রিয়া
{ "name": "networks/234093456/operations/reports/runs/6485392645", "metadata": { "@type": "type.googleapis.com/google.ads.admanager.v1.RunReportMetadata", "percentComplete": 100, "report": "networks/234093456/reports/4555265029" }, "done": true, "response": { "@type": "type.googleapis.com/google.ads.admanager.v1.RunReportResponse", "reportResult": "networks/234093456/reports/4555265029/results/7031632628" } }
ফলাফলের সারিগুলি পড়ুন
Result রিসোর্সে একটি একক পদ্ধতি আছে, networks.reports.results.fetchRows , যা সারির একটি পৃষ্ঠাঙ্কিত তালিকা পড়ার জন্য। প্রতিটি সারিতে মাত্রার মান এবং গোষ্ঠীবদ্ধ মেট্রিক মানের একটি তালিকা থাকে। প্রতিটি গ্রুপে মেট্রিক মান এবং যেকোনো তুলনামূলক মান বা পতাকা থাকে। পতাকা সম্পর্কে আরও তথ্যের জন্য, আপনার ইন্টারেক্টিভ রিপোর্টে পতাকা ব্যবহার করুন দেখুন।
যেসব রিপোর্টে তারিখের সীমার তুলনা বা বিভাজন নেই, তাদের জন্য রিপোর্টের সম্পূর্ণ তারিখের সীমার জন্য মেট্রিক মান (যেমন, ইম্প্রেশন বা ক্লিক) সহ একটি একক MetricValueGroup রয়েছে।
মাত্রা এবং মেট্রিক মানের ক্রম Report ReportDefinition ক্রম অনুসারে একই।
নিচে fetchRows রেসপন্স এবং সংশ্লিষ্ট ReportDefinition এর একটি JSON উদাহরণ দেওয়া হল:
fetchRows প্রতিক্রিয়া
{
"rows": [
{
"dimensionValues": [
{
"stringValue": "Line Item #1"
},
{
"intValue": "6378470710"
}
],
"metricValueGroups": [
{
"primaryValues": [
{
"intValue": "100"
}
]
}
]
},
{
"dimensionValues": [
{
"stringValue": "Line Item #2"
},
{
"intValue": "5457147368"
}
],
"metricValueGroups": [
{
"primaryValues": [
{
"intValue": "95"
}
]
}
]
}
],
"runTime": "2024-10-02T10:00:00Z",
"dateRanges": [
{
"startDate": {
"year": 2024,
"month": 10,
"day": 1
},
"endDate": {
"year": 2024,
"month": 10,
"day": 1
}
}
],
"totalRowCount": 2
}
রিপোর্টের সংজ্ঞা
{
"name": "networks/234093456/reports/4555265029",
"visibility": "SAVED",
"reportId": "4555265029",
"reportDefinition": {
"dimensions": [
"LINE_ITEM_NAME",
"LINE_ITEM_ID"
],
"metrics": [
"AD_SERVER_IMPRESSIONS"
],
"currencyCode": "USD",
"dateRange": {
"relative": "YESTERDAY"
},
"reportType": "HISTORICAL"
},
"displayName": "Example Report",
"updateTime": "2024-09-01T13:00:00Z",
"createTime": "2024-08-01T02:00:00Z",
"locale": "en-US",
"scheduleOptions": {}
}
যদি আপনি একটি ক্লায়েন্ট লাইব্রেরি ব্যবহার করেন, তাহলে প্রতিক্রিয়াটিতে একটি ইটারেটর থাকে যা অলসভাবে অতিরিক্ত পৃষ্ঠাগুলির জন্য অনুরোধ করে। আপনি pageToken এবং pageSize পরামিতিগুলিও ব্যবহার করতে পারেন। এই পরামিতিগুলির বিশদ বিবরণের জন্য, Query parameters দেখুন। যদি অন্য কোনও পৃষ্ঠা থাকে, তাহলে প্রতিক্রিয়াটিতে পরবর্তী অনুরোধে ব্যবহার করার জন্য টোকেন সহ একটি nextPageToken ক্ষেত্র থাকবে।
জাভা
import com.google.ads.admanager.v1.ReportDataTable;
import com.google.ads.admanager.v1.ReportServiceClient;
public class SyncFetchReportResultRowsString {
public static void main(String[] args) throws Exception {
syncFetchReportResultRowsString();
}
public static void syncFetchReportResultRowsString() throws Exception {
try (ReportServiceClient reportServiceClient = ReportServiceClient.create()) {
String name = "networks/NETWORK_CODE/reports/REPORT_ID/results/RESULT_ID";
for (ReportDataTable.Row element :
reportServiceClient.fetchReportResultRows(name).iterateAll()) {
}
}
}
}
পাইথন
from google.ads import admanager_v1
def sample_fetch_report_result_rows():
# Create a client
client = admanager_v1.ReportServiceClient()
# Initialize request argument(s)
request = admanager_v1.FetchReportResultRowsRequest(
name = "networks/NETWORK_CODE/reports/REPORT_ID/results/RESULT_ID")
# Make the request
page_result = client.fetch_report_result_rows(request=request)
# Handle the response
for response in page_result:
print(response)
.নেট
using Google.Ads.AdManager.V1;
using Google.Api.Gax;
using System;
public sealed partial class GeneratedReportServiceClientSnippets
{
public void FetchReportResultRows()
{
// Create client
ReportServiceClient reportServiceClient = ReportServiceClient.Create();
// Initialize request argument(s)
string name = "";
// Make the request
PagedEnumerable<FetchReportResultRowsResponse, ReportDataTable.Types.Row> response = reportServiceClient.FetchReportResultRows(name);
// Iterate over all response items, lazily performing RPCs as required
foreach (ReportDataTable.Types.Row item in response)
{
// Do something with each item
Console.WriteLine(item);
}
// Or iterate over pages (of server-defined size), performing one RPC per page
foreach (FetchReportResultRowsResponse page in response.AsRawResponses())
{
// Do something with each page of items
Console.WriteLine("A page of results:");
foreach (ReportDataTable.Types.Row item in page)
{
// Do something with each item
Console.WriteLine(item);
}
}
// Or retrieve a single page of known size (unless it's the final page), performing as many RPCs as required
int pageSize = 10;
Page<ReportDataTable.Types.Row> singlePage = response.ReadPage(pageSize);
// Do something with the page of items
Console.WriteLine($"A page of {pageSize} results (unless it's the final page):");
foreach (ReportDataTable.Types.Row item in singlePage)
{
// Do something with each item
Console.WriteLine(item);
}
// Store the pageToken, for when the next page is required.
string nextPageToken = singlePage.NextPageToken;
}
}
পিএইচপি
use Google\Ads\AdManager\V1\Client\ReportServiceClient;
use Google\Ads\AdManager\V1\FetchReportResultRowsRequest;
use Google\Ads\AdManager\V1\FetchReportResultRowsResponse;
use Google\ApiCore\ApiException;
function fetch_report_result_rows_sample(): void
{
// Create a client.
$reportServiceClient = new ReportServiceClient();
// Prepare the request message.
$request = (new FetchReportResultRowsRequest())
->setName('networks/NETWORK_CODE/reports/REPORT_ID/results/RESULT_ID');
// Call the API and handle any network failures.
try {
$response = $reportServiceClient->fetchReportResultRows($request);
printf('Response data: %s' . PHP_EOL, $response->serializeToJsonString());
} catch (ApiException $ex) {
printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
}
}রুবি
require "google/ads/ad_manager/v1"
def fetch_report_result_rows
# Create a client object. The client can be reused for multiple calls.
client = Google::Ads::AdManager::V1::ReportService::Rest::Client.new
# Create a request. To set request fields, pass in keyword arguments.
request = Google::Ads::AdManager::V1::FetchReportResultRowsRequest.new(
:name => 'networks/NETWORK_CODE/reports/REPORT_ID/results/RESULT_ID'
)
# Call the fetch_report_result_rows method.
result = client.fetch_report_result_rows request
# The returned object is of type Gapic::PagedEnumerable. You can iterate
# over elements, and API calls will be issued to fetch pages as needed.
result.each do |item|
# Each element is of type ::Google::Ads::AdManager::V1::ReportDataTable::Row.
p item
end
end
নোড.জেএস
const name = 'networks/NETWORK_CODE/reports/REPORT_ID/results/RESULT_ID';
// Imports the Admanager library
const {ReportServiceClient} = require('@google-ads/admanager').v1;
// Instantiates a client
const admanagerClient = new ReportServiceClient();
async function callFetchReportResultRows() {
// Construct request
const request = {
name,
};
// Run request
const iterable = admanagerClient.fetchReportResultRowsAsync(request);
for await (const response of iterable) {
console.log(response);
}
}
callFetchReportResultRows();
সিআরএল
প্রাথমিক অনুরোধ
curl -H "Authorization: Bearer ${ACCESS_TOKEN}" \
"https://admanager.googleapis.com/v1/networks/${NETWORK_CODE}/reports/${REPORT_ID}/results/${RESULT_ID}:fetchRows"
পরবর্তী পৃষ্ঠার অনুরোধ
curl -H "Authorization: Bearer ${ACCESS_TOKEN}" \
"https://admanager.googleapis.com/v1/networks/${NETWORK_CODE}/reports/${REPORT_ID}/results/${RESULT_ID}:fetchRows?pageToken=${PAGE_TOKEN}"
রিপোর্টের সমস্যা সমাধান করুন
- আমার রিপোর্ট API-তে কেন ফেরত দেওয়া হচ্ছে না?
- আপনি যে বিজ্ঞাপন ম্যানেজার ব্যবহারকারীকে প্রমাণীকরণ করছেন তার ইন্টারেক্টিভ রিপোর্টে অ্যাক্সেস আছে কিনা তা নিশ্চিত করুন। আপনি কেবল বিজ্ঞাপন ম্যানেজার API থেকে ইন্টারেক্টিভ রিপোর্ট পড়তে পারবেন।
- আমার টেস্ট নেটওয়ার্কে রিপোর্টের ফলাফল খালি কেন?
- টেস্ট নেটওয়ার্কগুলি বিজ্ঞাপন পরিবেশন করে না, তাই ডেলিভারি রিপোর্টগুলিতে ডেটা থাকে না।
- আমার প্রোডাকশন নেটওয়ার্কের রিপোর্টের ফলাফল খালি কেন?
- আপনি যে ব্যবহারকারীকে প্রমাণীকরণ করছেন তার কাছে আপনি যে ডেটা রিপোর্ট করার চেষ্টা করছেন তাতে অ্যাক্সেস নাও থাকতে পারে। তাদের ভূমিকার অনুমতি এবং দলগুলি সঠিকভাবে সেট করা আছে কিনা তা যাচাই করুন।
- UI-তে আমার রিপোর্টের সাথে লাইফটাইম ক্লিক বা ইম্প্রেশন কেন মেলে না?
- রিপোর্টের তারিখের পরিসর নির্বিশেষে, লাইন আইটেমের পুরো জীবনের জন্য লাইফটাইম ইম্প্রেশনগুলি প্রযোজ্য। যদি কোনও লাইন আইটেম এখনও ডেলিভারি করতে থাকে, তাহলে একই রিপোর্টের দুটি রানের মধ্যে মান পরিবর্তিত হতে পারে।