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


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

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

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

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

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

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

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

সুইফট

দ্রষ্টব্য: এই পণ্যটি macOS, Mac ক্যাটালিস্ট, অ্যাপ ক্লিপ বা watchOS লক্ষ্যে উপলব্ধ নয়।

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


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

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

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

    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;

উদ্দেশ্য-C

দ্রষ্টব্য: এই পণ্যটি macOS, Mac ক্যাটালিস্ট, অ্যাপ ক্লিপ বা 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 ক্যাটালিস্ট, অ্যাপ ক্লিপ বা watchOS লক্ষ্যে উপলব্ধ নয়।
…
// somewhere in the app's code
InAppMessaging.inAppMessaging().triggerEvent("exampleTrigger");

উদ্দেশ্য-C

দ্রষ্টব্য: এই পণ্যটি macOS, Mac ক্যাটালিস্ট, অ্যাপ ক্লিপ বা watchOS লক্ষ্যে উপলব্ধ নয়।
…
// somewhere in the app's code
[[FIRInAppMessaging inAppMessaging] triggerEvent:@"exampleTrigger"];

প্রচারাভিযানের কাস্টম মেটাডেটা ব্যবহার করুন

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

সুইফট

দ্রষ্টব্য: এই পণ্যটি macOS, Mac ক্যাটালিস্ট, অ্যাপ ক্লিপ বা watchOS লক্ষ্যে উপলব্ধ নয়।
class CardActionFiamDelegate : NSObject, InAppMessagingDisplayDelegate {

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

উদ্দেশ্য-C

দ্রষ্টব্য: এই পণ্যটি macOS, Mac ক্যাটালিস্ট, অ্যাপ ক্লিপ বা watchOS লক্ষ্যে উপলব্ধ নয়।
@implementation CardActionFiamDelegate

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

@end

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

ডিফল্টরূপে, কোনো অ্যাপের বর্তমান অবস্থা নির্বিশেষে, যখনই কোনো ট্রিগারিং শর্ত সন্তুষ্ট হয় তখন Firebase In-App Messaging মেসেজ রেন্ডার করে। আপনি যদি কোনো কারণে মেসেজ ডিসপ্লে দমন করতে চান, যেমন পেমেন্ট প্রসেসিং স্ক্রীনের একটি সিকোয়েন্সে বাধা এড়াতে, 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 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;
    
    

    একবার আপনি automaticDataCollectionEnabledYES সেট করলে, আপনার Info.plist এ মানটিকে ওভাররাইড করে অ্যাপ রিস্টার্টের মাধ্যমে মানটি বজায় থাকে। আপনি যদি আবার আরম্ভ নিষ্ক্রিয় করতে চান, উদাহরণস্বরূপ যদি একজন ব্যবহারকারী পরে সংগ্রহ থেকে অপ্ট আউট করেন, সম্পত্তিটিকে NO তে সেট করুন।