ফায়ারবেস ইন-অ্যাপ মেসেজিং বার্তাগুলির আচরণ পরিবর্তন করুন


খুব কম কোডিং প্রচেষ্টা ছাড়াই, ফায়ারবেস ইন-অ্যাপ মেসেজিং আপনাকে সমৃদ্ধ ব্যবহারকারীর ইন্টারঅ্যাকশন তৈরি, কনফিগার এবং লক্ষ্যবস্তু করতে দেয়, Google Analytics ক্ষমতাগুলিকে বাক্সের বাইরে ব্যবহার করে প্রকৃত ব্যবহারকারীর বৈশিষ্ট্য, কার্যকলাপ এবং পছন্দের সাথে মেসেজিং ইভেন্টগুলিকে সংযুক্ত করে। কিছু অতিরিক্ত Firebase In-App Messaging SDK ইন্টিগ্রেশনের মাধ্যমে, আপনি ইন-অ্যাপ বার্তাগুলির আচরণকে আরও উন্নত করতে পারেন, ব্যবহারকারীরা বার্তাগুলির সাথে ইন্টারঅ্যাক্ট করলে প্রতিক্রিয়া জানাতে পারেন, Analytics ফ্রেমওয়ার্কের বাইরে বার্তা ইভেন্টগুলিকে ট্রিগার করতে পারেন এবং ব্যবহারকারীদের মেসেজিং ইন্টারঅ্যাকশন সম্পর্কিত তাদের ব্যক্তিগত ডেটা ভাগ করে নেওয়ার নিয়ন্ত্রণ করতে পারেন।

ব্যবহারকারীরা অ্যাপ-মধ্যস্থ বার্তাগুলির সাথে ইন্টারঅ্যাক্ট করলে সাড়া দিন

অ্যাকশনের মাধ্যমে আপনি আপনার অ্যাপ-মধ্যস্থ বার্তাগুলি ব্যবহার করে ব্যবহারকারীদের একটি ওয়েবসাইট বা আপনার অ্যাপের একটি নির্দিষ্ট স্ক্রিনে নির্দেশিত করতে পারেন।

আপনার কোড মৌলিক ইন্টারঅ্যাকশন (ক্লিক এবং ডিসমিসাল), ইম্প্রেশন (আপনার বার্তাগুলির যাচাইকৃত ভিউ) এবং SDK দ্বারা লগ করা এবং নিশ্চিত করা ত্রুটিগুলি প্রদর্শন করতে পারে। উদাহরণস্বরূপ, যখন আপনার বার্তাটি একটি কার্ড মডেল হিসাবে তৈরি করা হয়, তখন আপনি ব্যবহারকারী কার্ডে ক্লিক করা দুটি URL-এর মধ্যে কোনটি ট্র্যাক এবং ফলো-আপ করতে চাইতে পারেন।

কার্ড ইন্টারঅ্যাকশন পরিচালনা করার জন্য একটি DisplayDelegate প্রয়োগ করুন

আপনি একটি ইন-অ্যাপ মেসেজিং ডিসপ্লে ডেলিগেট নিবন্ধন করতে পারেন যা কোনও ইন-অ্যাপ মেসেজের সাথে কোনও ইন্টারঅ্যাকশন হলে কল করা হবে। এটি করার জন্য, InAppMessagingDisplayDelegate প্রোটোকল অনুসারে একটি ক্লাস বাস্তবায়ন করুন এবং InAppMessaging ইনস্ট্যান্সে ডেলিগেট প্রোপার্টি হিসাবে সেট করুন।

আবার ধরে নিচ্ছি যে আপনি কোন ব্যবহারকারী কোন কার্ড-স্টাইলের বার্তায় কোন লিঙ্কে ক্লিক করেছেন তা ট্র্যাক করতে চান, এমন একটি ক্লাস নির্ধারণ করুন যা DisplayDelegate প্রোটোকল অনুসারে messageClicked পদ্ধতি প্রয়োগ করে, যার ফলে আপনাকে ব্যবহারকারীর দ্বারা ক্লিক করা লিঙ্কটিতে অ্যাক্সেস দেওয়া হবে।

সুইফট

দ্রষ্টব্য: এই পণ্যটি macOS, Mac Catalyst, App Clip বা watchOS টার্গেটগুলিতে উপলব্ধ নয়।

InAppMessagingAction সহ বাস্তবায়িত হতে পারে এমন কলব্যাক পদ্ধতির সেট এবং তাদের পরামিতিগুলির জন্য Swift display delegate রেফারেন্সটি দেখুন।


// In CardActionFiamDelegate.swift
class CardActionFiamDelegate : NSObject, InAppMessagingDisplayDelegate {

    func messageClicked(_ inAppMessage: InAppMessagingDisplayMessage) {
        // ...
    }

    func messageDismissed(_ inAppMessage: InAppMessagingDisplayMessage,
                          dismissType: InAppMessagingDismissType) {
        // ...
    }

    func impressionDetected(for inAppMessage: InAppMessagingDisplayMessage) {
        // ...
    }

    func displayError(for inAppMessage: InAppMessagingDisplayMessage, error: Error) {
        // ...
    }

}

// In AppDelegate.swift
// Register the delegate with the InAppMessaging instance
let myFiamDelegate = CardActionFiamDelegate()
InAppMessaging.inAppMessaging().delegate = myFiamDelegate;

অবজেক্টিভ-সি

দ্রষ্টব্য: এই পণ্যটি macOS, Mac Catalyst, App Clip বা watchOS টার্গেটগুলিতে উপলব্ধ নয়।

FIRInAppMessagingDisplayMessage সহ কার্যকর করা যেতে পারে এমন কলব্যাক পদ্ধতির সেট এবং তাদের প্যারামিটারগুলির জন্য Objective-C ডিসপ্লে ডেলিগেট রেফারেন্সটি দেখুন।


// In CardActionFiamDelegate.h
@interface CardActionFiamDelegate : NSObject <FIRInAppMessagingDisplayDelegate>
@end

// In CardActionFiamDelegate.m
@implementation CardActionFiamDelegate

- (void)displayErrorForMessage:(nonnull FIRInAppMessagingDisplayMessage *)inAppMessage
                         error:(nonnull NSError *)error {
    // ...
}

- (void)impressionDetectedForMessage:(nonnull FIRInAppMessagingDisplayMessage *)inAppMessage {
    // ...
}

- (void)messageClicked:(nonnull FIRInAppMessagingDisplayMessage *)inAppMessage {
    // ...
}

- (void)messageDismissed:(nonnull FIRInAppMessagingDisplayMessage *)inAppMessage
             dismissType:(FIRInAppMessagingDismissType)dismissType {
    // ...
}

@end

// In AppDelegate.m
CardActionFiamDelegate *myFiamDelegate = [CardActionFiamDelegate new];
[FIRInAppMessaging inAppMessaging].delegate = myFiamDelegate;

প্রোগ্রাম্যাটিকভাবে অ্যাপ-মধ্যস্থ বার্তাগুলি ট্রিগার করুন

ডিফল্টরূপে Firebase In-App Messaging আপনাকে Firebase ইভেন্টের জন্য Google Analytics ব্যবহার করে অ্যাপ-মধ্যস্থ বার্তা ট্রিগার করতে দেয়, কোনও অতিরিক্ত ইন্টিগ্রেশন ছাড়াই। আপনি Firebase In-App Messaging SDK এর প্রোগ্রাম্যাটিক ট্রিগার ব্যবহার করে ম্যানুয়ালি ইভেন্টগুলি প্রোগ্রাম্যাটিকভাবে ট্রিগার করতে পারেন।

ইন-অ্যাপ মেসেজিং ক্যাম্পেইন কম্পোজারে, একটি নতুন ক্যাম্পেইন তৈরি করুন অথবা একটি বিদ্যমান ক্যাম্পেইন নির্বাচন করুন, এবং কম্পোজার ওয়ার্কফ্লোর শিডিউলিং ধাপে, একটি নতুন তৈরি বা বিদ্যমান মেসেজিং ইভেন্টের ইভেন্ট আইডি নোট করুন। একবার নোট হয়ে গেলে, ইভেন্টটি ট্রিগার করার জন্য আপনার অ্যাপটিকে তার আইডি দিয়ে ইনস্ট্রুমেন্ট করুন।

সুইফট

দ্রষ্টব্য: এই পণ্যটি macOS, Mac Catalyst, App Clip বা watchOS টার্গেটগুলিতে উপলব্ধ নয়।

// somewhere in the app's code
InAppMessaging.inAppMessaging().triggerEvent("exampleTrigger");

অবজেক্টিভ-সি

দ্রষ্টব্য: এই পণ্যটি macOS, Mac Catalyst, App Clip বা watchOS টার্গেটগুলিতে উপলব্ধ নয়।

// somewhere in the app's code
[[FIRInAppMessaging inAppMessaging] triggerEvent:@"exampleTrigger"];

ক্যাম্পেইন কাস্টম মেটাডেটা ব্যবহার করুন

আপনার প্রচারাভিযানে, আপনি কী/মান জোড়ার একটি সিরিজে কাস্টম ডেটা নির্দিষ্ট করতে পারেন। ব্যবহারকারীরা যখন বার্তাগুলির সাথে ইন্টারঅ্যাক্ট করেন, তখন এই ডেটা আপনার জন্য উপলব্ধ থাকে, উদাহরণস্বরূপ, একটি প্রোমো কোড প্রদর্শন করার জন্য।

সুইফট

দ্রষ্টব্য: এই পণ্যটি macOS, Mac Catalyst, App Clip বা watchOS টার্গেটগুলিতে উপলব্ধ নয়।
class CardActionDelegate : NSObject, InAppMessagingDisplayDelegate {

    func messageClicked(_ inAppMessage: InAppMessagingDisplayMessage) {
	// Get data bundle from the inapp message
	let appData = inAppMessage.appData
	// ...
    }
}

অবজেক্টিভ-সি

দ্রষ্টব্য: এই পণ্যটি macOS, Mac Catalyst, App Clip বা watchOS টার্গেটগুলিতে উপলব্ধ নয়।
@implementation ExampleCardActionDelegate

- (void)messageClicked:(nonnull FIRInAppMessagingDisplayMessage *)inAppMessage {
    NSDictionary *appData = inAppMessage.appData;
    NSLog(@"Message data: %@", appData);
	// ...
}

@end

অ্যাপ-মধ্যস্থ বার্তাগুলি সাময়িকভাবে অক্ষম করুন

ডিফল্টরূপে, Firebase In-App Messaging যখনই কোনও ট্রিগারিং শর্ত পূরণ হয় তখনই বার্তা রেন্ডার করে, কোনও অ্যাপের বর্তমান অবস্থা নির্বিশেষে। যদি আপনি কোনও কারণে বার্তা প্রদর্শন বন্ধ করতে চান, উদাহরণস্বরূপ পেমেন্ট প্রসেসিং স্ক্রিনের ক্রমকে বাধাগ্রস্ত করা এড়াতে, তাহলে Objective-C তে দেখানো SDK এর messageDisplaySuppressed সম্পত্তি ব্যবহার করুন:

  [FIRInAppMessaging inAppMessaging].messageDisplaySuppressed = YES;

প্রপার্টি YES তে সেট করলে Firebase In-App Messaging বার্তা প্রদর্শন করতে বাধা দেয়, অন্যদিকে NO মেসেজ প্রদর্শন পুনরায় সক্ষম করে। অ্যাপ রিস্টার্ট করার সময় SDK প্রোপার্টিটিকে NO তে রিসেট করে। SDK দ্বারা দমন করা বার্তাগুলি উপেক্ষা করা হয়। Firebase In-App Messaging সেগুলি প্রদর্শন করার আগে, সাপ্রেশন বন্ধ থাকাকালীন তাদের ট্রিগার শর্তগুলি আবার পূরণ করতে হবে।

অপ্ট-আউট মেসেজ ডেলিভারি সক্ষম করুন

ডিফল্টরূপে, Firebase In-App Messaging স্বয়ংক্রিয়ভাবে আপনার লক্ষ্যবস্তু করা সমস্ত অ্যাপ ব্যবহারকারীদের কাছে বার্তা পৌঁছে দেয়। এই বার্তাগুলি পৌঁছে দেওয়ার জন্য, Firebase In-App Messaging SDK প্রতিটি ব্যবহারকারীর অ্যাপ সনাক্ত করতে Firebase ইনস্টলেশন আইডি ব্যবহার করে। এর অর্থ হল In-App Messaging ইনস্টলেশন আইডির সাথে লিঙ্ক করা ক্লায়েন্ট ডেটা Firebase সার্ভারে পাঠাতে হবে। আপনি যদি ব্যবহারকারীদের তাদের পাঠানো ডেটার উপর আরও নিয়ন্ত্রণ দিতে চান, তাহলে স্বয়ংক্রিয় ডেটা সংগ্রহ বন্ধ করুন এবং তাদের ডেটা শেয়ারিং অনুমোদন করার সুযোগ দিন।

এটি করার জন্য, আপনাকে Firebase In-App Messaging জন্য স্বয়ংক্রিয় আরম্ভকরণ অক্ষম করতে হবে এবং অপ্ট-ইন ব্যবহারকারীদের জন্য ম্যানুয়ালি পরিষেবাটি শুরু করতে হবে:

  1. আপনার Info.plist ফাইলে একটি নতুন কী দিয়ে স্বয়ংক্রিয় আরম্ভ বন্ধ করুন:

    • কী: FirebaseInAppMessagingAutomaticDataCollectionEnabled
    • মান: NO
  2. নির্বাচিত ব্যবহারকারীদের জন্য ম্যানুয়ালি Firebase In-App Messaging শুরু করুন:

    // Only needed if FirebaseInAppMessagingAutomaticDataCollectionEnabled is set to NO
    // in Info.plist
    [FIRInAppMessaging inAppMessaging].automaticDataCollectionEnabled = YES;
    
    

    একবার আপনি automaticDataCollectionEnabled কে YES তে সেট করলে, অ্যাপ রিস্টার্টের সময় পর্যন্ত মানটি টিকে থাকে, যা আপনার Info.plist এর মানটিকে ওভাররাইড করে। যদি আপনি আবার initialization অক্ষম করতে চান, উদাহরণস্বরূপ, যদি কোনও ব্যবহারকারী পরে collection থেকে বেরিয়ে যান, তাহলে বৈশিষ্ট্যটি NO তে সেট করুন।