モバイル:iOS Campaign Callbacksとは?どのように使用されているのでしょうか?
概要
WalkMe Mobile SDKバージョン1.6.0の時点で、WalkMe Mobile SDKはCampaign Callbacksをサポートしています。
コールバックはWalkMeキャンペーンイベントに登録するアプリをプログラム的な方法です。 Campaign Callbacksインターフェイスを実装することで、アプリケーションはコールバックオブジェクトを介して転送されたデータ(Campaignおよびユーザー情報を含む)を使用し、その情報をWalkMeとは関係のない任意の分析またはCRMシステムに渡すなど、アプリケーションの目的に使用できます。または、キャンペーンとのユーザーのやり取りに応じて、アプリまたはユーザー設定を更新します。
ユースケース
Campaign Callbacksは、以下のとおりです:
- オンボーディングを任意の分析システムから追跡する
- WalkMe Shoutoutを使用したユーザーエンゲージメントに基づいてCRMで機会を創出する(「無料デモに興味がありますか? はい/いいえ」
- サポートシステムと統合して、WalkThruの使用/完了をサポートトップのトピックと比較する
以下は、Campaign Callbacksを実装するために必要なすべての手順の説明です。
Campaign Callbacksの使用
Campaign Callbacksに登録するには、まずこのプロトコルを実装します:
/** * Interface definition for a callback to be invoked in Campaign actions. */ @protocol WMCampaignInfoDelegate <NSObject> /** * Called after campaign was dismissed. * * @param campaignInfo The dismissed campaign info. */ - (void)campaignDidDismiss:(WMCampaignInfo *)campaignInfo; @end
プロトコルを実装したら、メソsetCampaignInfoDelegate
ッドを使用してCampaign Callbacksイベントに登録する:
/** * Register a delegate to campaign events * *@param delegate The delegate * */ + (void)setCampaignInfoDelegate:(id<WMCampaignInfoDelegate>)delegate;
コールバック戻りオブジェクトはWMCampaignInfo
、次の情報を含むクラスです:
アイテム | 取得先 | 説明 |
キャンペーンCTA | campaginCta |
アプリユーザーが操作したキャンペーンCTA。 カスタム以外のすべてのCTAの場合、返されるCTAは: |
キャンペーンID | campaignId | キャンペーンに割り当てられたユニークなID |
キャンペーンCTA ID | campaignCtaId | キャンペーンCTAのユニークなID |
User Data(ユーザーデータ) | userData | キャンペーンとインタラクションしたユーザーの情報を保持するオブジェクト。 以下のオブジェクトの説明を参照。 |
キャンペーンデータ | campaignData | キャンペーンに追加されたデータを将来的に使用するために追加されたプレースホルダーオブジェクト。 アンケート送信データはここに入力されます。 |
@interface WMCampaignInfo : NSObject @property (nonatomic,strong) NSString* campaginCta; @property (nonatomic,strong) NSString* campaignCtaId; @property (nonatomic,strong) NSString* campaignId; @property (nonatomic,strong) WMUserData* userData; @property (nonatomic,strong) NSDictionary* campaignData; @end
前述のように、には、次に説明するWMUserData
オブジェクトが含まれますWMCampaignInfo
:
アイテム | 取得先 | 説明 |
パブリックユーザー属性 | *userAttributes | ユーザーがキャンペーンとインタラクションした瞬間に、アプリユーザーに設定されたすべてのパブリックユーザー属性。 リストには、属性キーとその値が常に含まれます。例: { "lead_id" : "12345" , "account_type" : "family"} |
プライベートユーザー属性 | *privateUserAttributes | ユーザーがキャンペーンとインタラクションした瞬間に、アプリユーザーに設定されたすべてのプライベートユーザー属性。 リストには、属性キーとその値が常に含まれます。例: { "lead_id" : "12345" , "account_type" : "family"} |
Session Duration(セッション期間) | sessionDuration | ユーザーがキャンペーンのインタラクションを行った時点のユーザーセッションの長さ |
iOSバージョン | systemVersion | ユーザーのOSバージョン |
デバイスユニークID | deviceId | デバイスユニークID |
デバイスモデル | deviceModel | ユーザーのデバイスモデル |
Device Orientation(デバイスの向き) | deviceOrientation | ユーザーがキャンペーンを操作した時点でのデバイスの向き |
アプリバージョン | appVersion | ユーザーが使用しているアプリバージョン |
アプリ名 | appName | アプリ名 |
Locale(ロケール) | locale | ユーザーのデバイスロケール |
SDKバージョン | sdkVer | ユーザーが使用しているアプリと統合されたSDKバージョン |
セッションID | sessionId | WalkMeによって生成されたユニークなセッションID |
プッシュ通知ステータス | isPushEnabled | ユーザーがアプリのプッシュ通知を有効にしたかどうか(true / false)。 アプリにプッシュ通知機能が無い場合-値は「false」になります。 |
デバイスタイムゾーン | timezone | デバイスで設定されたユーザータイムゾーン。 |
ネットワーク | network | ユーザーが使用しているネットワークの種類:WiFi / セルラー / オフライン |
システム名 | systemName | ユーザーのOS名 - この場合は常に「iOS」になります |
現在のユーザータイムスタンプ | timestamp | ユーザーの現在のタイムスタンプ |
これはオブWMUserData
ジェクトの構造です:
@interface WMUserData : NSObject /** * User Attributes in current session. */ @property (nonatomic,strong) NSDictionary *userAttributes; /** * Private User Attributes in current session. */ @property (nonatomic,strong) NSDictionary *privateUserAttributes; /** * User Session Duration in second. */ @property (nonatomic,strong) NSNumber* sessionDuration; /** * User's iOS version */ @property (nonatomic,strong) NSString* systemVersion; /** * Device Unique ID */ @property (nonatomic,strong) NSString* deviceId; /** * Device Model. */ @property (nonatomic,strong) NSString* deviceModel; /** * Device Orientation PRT_REG / LSL. */ @property (nonatomic,strong) NSString* deviceOrientation; /** * The application version. */ @property (nonatomic,strong) NSString* appVersion; /** * The application name. */ @property (nonatomic,strong) NSString* appName; /** * Locale language for user's device. */ @property (nonatomic,strong) NSString* locale; /** * WalkMe SDK version. */ @property (nonatomic,strong) NSString* sdkVer; /** * Session unique id. */ @property (nonatomic,strong) NSString* sessionId; /** * If Push notification approved for user. */ @property (nonatomic,strong) NSString* isPushEnabled; /** * User device timezone. */ @property (nonatomic,strong) NSString* timezone; /** * User current network ( WIFI / 3G ). */ @property (nonatomic,strong) NSString* network; /** * User OS System Name. */ @property (nonatomic,strong) NSString* systemName; /** * Current Timestamp for this User. */ @property (nonatomic,strong) NSString* timestamp; @end