পাঠানো হচ্ছে - iOS SDK

এই দস্তাবেজটি বর্ণনা করে কিভাবে আপনি iOS v3 এর জন্য Google Analytics SDK ব্যবহার করে Google Analytics-এ পাঠানো ডেটা পরিচালনা করতে পারেন৷

ওভারভিউ

iOS-এর জন্য Google Analytics SDK ব্যবহার করে সংগৃহীত ডেটা Google Analytics-এ আলাদা থ্রেডে পাঠানোর আগে স্থানীয়ভাবে সংরক্ষণ করা হয়।

প্রতিটি দৃশ্যের স্থানীয় সময় অঞ্চলে, পরের দিনের সকাল 4টার মধ্যে ডেটা প্রেরণ এবং গ্রহণ করতে হবে। এর পরে প্রাপ্ত কোনো তথ্য প্রতিবেদনে প্রদর্শিত হবে না। উদাহরণস্বরূপ, যদি একটি হিট স্থানীয়ভাবে 11:59pm এ সারিবদ্ধ হয়, তাহলে প্রতিবেদনে উপস্থিত হওয়ার জন্য এটি 4 ঘন্টার মধ্যে, 3:59am এর মধ্যে প্রেরণ করতে হবে। অন্যদিকে, 12:00am-এ একটি হিট সারিবদ্ধ হওয়া অবশ্যই 28 ঘন্টার মধ্যে, অর্থাৎ, পরের দিন 3:59am, রিপোর্টে উপস্থিত হওয়ার জন্য প্রেরণ করতে হবে৷

পর্যায়ক্রমিক প্রেরণ

ডিফল্টরূপে, প্রতি 2 মিনিটে iOS-এর জন্য Google Analytics SDK থেকে ডেটা পাঠানো হয়।

// Set the dispatch interval in seconds.
// 2 minutes (120 seconds) is the default value.
[GAI sharedInstance].dispatchInterval = 120;

একটি নেতিবাচক মান সেট করলে পর্যায়ক্রমিক প্রেরণ অক্ষম হবে, যদি আপনি Google Analytics-এ কোনো ডেটা পাঠাতে চান তাহলে আপনাকে ম্যানুয়াল প্রেরণ ব্যবহার করতে হবে।

// Disable periodic dispatch by setting dispatch interval to a value less than 1.
[GAI sharedInstance].dispatchInterval = 0;

হিট পাঠানোর অপেক্ষায় থাকা অবস্থায় যদি কোনো ব্যবহারকারী নেটওয়ার্ক অ্যাক্সেস হারায় বা আপনার অ্যাপ ছেড়ে দেয়, সেই হিটগুলি স্থানীয় স্টোরেজে টিকে থাকে। পরের বার যখন আপনার অ্যাপ চালু হবে এবং পাঠানোর কল করা হবে তখন সেগুলি পাঠানো হবে।

ম্যানুয়াল প্রেরণ

ম্যানুয়ালি হিট পাঠানোর জন্য, উদাহরণস্বরূপ যখন আপনি জানেন যে ডিভাইস রেডিও ইতিমধ্যে অন্যান্য ডেটা পাঠাতে ব্যবহৃত হচ্ছে:

[[GAI sharedInstance] dispatch];

পটভূমি প্রেরণ

iOS অ্যাপে পটভূমি প্রেরণ সক্ষম করতে:

dispatchHandler জন্য একটি সম্পত্তি যোগ করুন

AppDelegate ক্লাসের ইমপ্লিমেন্টেশন ফাইলে ( AppDelegate.m ) @implementation AppDelegate এর আগে নিম্নলিখিত প্রপার্টি যোগ করুন:

@interface AppDelegate ()
@property(nonatomic, copy) void (^dispatchHandler)(GAIDispatchResult result);
@end

@implementation AppDelegate
// ...

sendHitsInBackground পদ্ধতি প্রয়োগ করুন

AppDelegate ক্লাসে, অ্যাপটি ব্যাকগ্রাউন্ডে গেলে হিট পাঠাতে sendHitsInBackground পদ্ধতি প্রয়োগ করুন:

// This method sends any queued hits when the app enters the background.
- (void)sendHitsInBackground {
  __block BOOL taskExpired = NO;

  __block UIBackgroundTaskIdentifier taskId =
  [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
    taskExpired = YES;
  }];

  if (taskId == UIBackgroundTaskInvalid) {
    return;
  }

  __weak AppDelegate *weakSelf = self;
  self.dispatchHandler = ^(GAIDispatchResult result) {
    // Send hits until no hits are left, a dispatch error occurs, or
    // the background task expires.
    if (result == kGAIDispatchGood && !taskExpired) {
      [[GAI sharedInstance] dispatchWithCompletionHandler:weakSelf.dispatchHandler];
    } else {
      [[UIApplication sharedApplication] endBackgroundTask:taskId];
    }
  };

  [[GAI sharedInstance] dispatchWithCompletionHandler:self.dispatchHandler];
}

পদ্ধতি dispatchWithCompletionHandler একটি প্যারামিটার হিসাবে একটি সমাপ্তি ব্লক নেয় এবং প্রতিবার এক বা একাধিক Google Analytics বীকন সম্বলিত একটি অনুরোধ সম্পূর্ণ হলে সেই সমাপ্তি ব্লকটিকে কল করে। এটি একটি ফলাফল প্রদান করে যা নির্দেশ করে যে পাঠানোর জন্য আরও ডেটা আছে কিনা এবং/অথবা শেষ অনুরোধটি সফল হয়েছে কিনা। এই পদ্ধতির সাহায্যে, অ্যাপটি ব্যাকগ্রাউন্ডে গেলে আপনি কার্যকরভাবে বীকন পাঠানোর ব্যবস্থা করতে পারবেন।

applicationDidEnterBackground পদ্ধতি ওভাররাইড করুন

sendHitsInBackground পদ্ধতিতে কল করার জন্য applicationDidEnterBackground পদ্ধতিটিকে AppDelegate ক্লাসে ওভাররাইড করুন, যা অ্যাপটি ব্যাকগ্রাউন্ডে গেলে হিট পাঠায়:

- (void)applicationDidEnterBackground:(UIApplication *)application {
  [self sendHitsInBackground];
}

applicationWillEnterForeground পদ্ধতি ওভাররাইড করুন

ডিসপ্যাচ ব্যবধান পুনরুদ্ধার করতে AppDelegate ক্লাসে applicationWillEnterForeground পদ্ধতিটি ওভাররাইড করুন। উদাহরণ স্বরূপ:

- (void)applicationWillEnterForeground:(UIApplication *)application {
  // Restores the dispatch interval because dispatchWithCompletionHandler
  // has disabled automatic dispatching.
  [GAI sharedInstance].dispatchInterval = 120;
}