Firebase ইন-অ্যাপ মেসেজিং মেসেজের আচরণ পরিবর্তন করা


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

ব্যবহারকারী অ্যাপ-মধ্যস্থ মেসেজের সাথে ইন্টার‍্যাক্ট করলে উত্তর দিন

অ্যাকশনের মাধ্যমে আপনি ইন-অ্যাপ মেসেজ ব্যবহার করে ব্যবহারকারীদের আপনার অ্যাপের কোনও ওয়েবসাইট বা নির্দিষ্ট স্ক্রিনে রিডাইরেক্ট করতে পারবেন।

আপনার কোড প্রাথমিক ইন্টার‍্যাকশন (ক্লিক ও বাতিল করা), ইম্প্রেশন (আপনার মেসেজের যাচাই করা ভিউ) এবং SDK-এর মাধ্যমে লগ করা ও কনফার্ম করা ডিসপ্লে সংক্রান্ত সমস্যার প্রতিক্রিয়া জানাতে পারে। যেমন, আপনার মেসেজ কার্ড মোডাল হিসেবে কম্পোজ করা হলে, আপনি হয়ত ট্র্যাক ও ফলো-আপ করতে চাইবেন যে কার্ডে দেখানো দুটি URL-এর মধ্যে ব্যবহারকারী কোনটিতে ক্লিক করেছেন।

কার্ড ইন্টার‍্যাকশন ম্যানেজ করতে DisplayDelegate প্রয়োগ করুন

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

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

Swift

মনে রাখবেন: এই প্রোডাক্ট macOS, Mac Catalyst, App Clip বা watchOS টার্গেটে উপলভ্য নয়।

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


// 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;

Objective-C

মনে রাখবেন: এই প্রোডাক্ট 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 সাধারণত আপনাকে কোনও অতিরিক্ত ইন্টিগ্রেশন ছাড়াই Google Analytics for Firebase ইভেন্টের মাধ্যমে অ্যাপ-মধ্যস্থ মেসেজ ট্রিগার করার অনুমতি দেয়। এছাড়াও, আপনি Firebase In-App Messaging SDK-এর প্রোগ্রাম্যাটিক ট্রিগারের মাধ্যমে ম্যানুয়ালি প্রোগ্রাম্যাটিক ট্রিগার ইভেন্ট করতে পারবেন।

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

Swift

মনে রাখবেন: এই প্রোডাক্ট macOS, Mac Catalyst, App Clip বা watchOS টার্গেটে উপলভ্য নয়।
…
// somewhere in the app's code
InAppMessaging.inAppMessaging().triggerEvent("exampleTrigger");

Objective-C

মনে রাখবেন: এই প্রোডাক্ট macOS, Mac Catalyst, App Clip বা watchOS টার্গেটে উপলভ্য নয়।
…
// somewhere in the app's code
[[FIRInAppMessaging inAppMessaging] triggerEvent:@"exampleTrigger"];

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

আপনার ক্যাম্পেনে, আপনি কী/ভ্যালু পেয়ারের সিরিজে কাস্টম ডেটা নির্দিষ্ট করতে পারেন। ব্যবহারকারীরা মেসেজের সাথে ইন্টার‍্যাক্ট করলে, এই ডেটা আপনার কাছে উপলভ্য হয়, যেমন, প্রোমো কোড দেখানো।

Swift

মনে রাখবেন: এই প্রোডাক্ট 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
	// ...
    }
}

Objective-C

মনে রাখবেন: এই প্রোডাক্ট 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 মেসেজ দেখায়। আপনি যদি কোনও কারণে মেসেজ ডিসপ্লে বন্ধ করতে চান, যেমন পেমেন্ট প্রসেসিং স্ক্রিনের ক্রম যাতে ব্যাহত না হয়, তাহলে SDK-এর messageDisplaySuppressed প্রপার্টি ব্যবহার করুন, যেমন এখানে Objective-C-তে দেখানো হয়েছে:

  [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-এ থাকা ভ্যালুকে ওভাররাইড করে। আপনি যদি আবার ইনিশিয়ালাইজেশন বন্ধ করতে চান, যেমন কোনও ব্যবহারকারী পরে ডেটা সংগ্রহ থেকে অপ্ট-আউট করলে, প্রপার্টি NO-এ সেট করুন।