モバイル:iOSキャンペーンコールバックとは何か?その使用方法は?

Last Updated 5月 5, 2026

概要

WalkMe Mobile SDKバージョン1.6.0以降、WalkMe Mobile SDKでキャンペーンコールバックがサポートされます。

コールバックは、アプリがWalkMeキャンペーンイベントに登録するためのプログラム的な方法です。 キャンペーンコールバックインターフェースを実装することで、アプリはコールバックオブジェクトを通して転送されたデータ(キャンペーン情報やユーザー情報を含む)を使用し、アプリの目的に利用できます。例えば、WalkMeとは関係のないアナリティクスやCRMシステムに情報を渡したり、ユーザーのキャンペーンに対するインタラクションに応じて、アプリやユーザー設定を更新したりできます。

ユースケース

キャンペーンコールバックは、以下などに使用できます。

  • あらゆるアナリティクスシステムからユーザーのオンボーディングを追跡する
  • 「無料デモに興味がありますか? はい / いいえ」などのWalkMeシャウトアウトで、ユーザーエンゲージメントに基づいてCRM内で機会を生成する
  • 既存のサポートシステムと統合して、WalkThruの使用状況/完了状況とトップのサポートチケットトピックを追跡し比較する

以下に、キャンペーンコールバックを実装するために必要なすべてのステップを説明します。

キャンペーンコールバックの使用

キャンペーンのコールバックに登録するには、まずこのプロトコルを実装します。

/**
 * キャンペーンアクションで呼び出すコールバックのインターフェイス定義。
 */
@protocol WMCampaignInfoDelegate <NSObject>

/**
 * キャンペーンが終了した後に呼び出されます。
 *
 * @param campaignInfo 閉じられたキャンペーン情報。
 */
- (void)campaignDidDismiss:(WMCampaignInfo *)campaignInfo;

@end

プロトコルを実装したら、メソッドを使用してキャンペーンコールバックイベントに登録します:

/**
 * キャンペーンイベントにデリゲートを登録する
 *
 *@param delegate デリゲート
 *
 */
+ (void)setCampaignInfoDelegate:(id<WMCampaignInfoDelegate>)delegate;

コールバックリターンオブジェクトはクラスになります。これには以下の情報が含まれます。

アイテム 取得者 説明
キャンペーンCTA campaginCta

アプリユーザーがインタラクションしたキャンペーンCTA。

カスタムされていないすべてのCTAで返されるCTAは次のとおりです:
abbi://cta。例:abbi://ok またはabbi://never

キャンペーン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

上記のように、にはオブジェクトが含まれています。この説明は次の通りです:

アイテム 取得者 説明
パブリックユーザー属性 *userAttributes ユーザーがキャンペーンとインタラクションを持った時点でアプリユーザーに設定されたすべてのパブリックユーザー属性。 リストには常に属性キーとその値が含まれます。例:{ "lead_id": "12345"、"account_type": "family"}
プライベートユーザー属性 *privateUserAttributes ユーザーがキャンペーンとインタラクションを持った時点でアプリユーザーに設定されたすべてのプライベートユーザー属性。 リストには常に属性キーとその値が含まれます。例:{ "lead_id": "12345"、"account_type": "family"}
セッション期間 sessionDuration ユーザーがキャンペーンインタラクションを行った時点でのユーザーセッションはどのくらいでしたか
iOSバージョン systemVersion ユーザーのOSバージョン
デバイス固有ID deviceId デバイス固有ID
デバイスモデル deviceModel ユーザーのデバイスモデル
Device Orientation(デバイスの向き) deviceOrientation ユーザーがキャンペーンとインタラクションを持った時点のデバイスの向き
アプリのバージョン appVersion ユーザーが使用しているアプリバージョン
アプリ名 appName アプリ名
Locale(ロケール) ロケール ユーザーのデバイスロケール
SDKバージョン sdkVer ユーザーが使用しているアプリと統合されたSDKバージョン
セッションID sessionId WalkMeによって生成された固有のセッションID
プッシュ通知ステータス isPushEnabled ユーザーがアプリのプッシュ通知を有効にしましたか(true /false)。 アプリにプッシュ通知がない場合、値は「false」になります。
デバイスタイムゾーン タイムゾーン デバイスに設定されたユーザータイムゾーン。
ネットワーク ネットワーク ユーザーが使用しているネットワークタイプ:WiFi /セルラー/オフライン
システム名 systemName ユーザーのOS名 - この場合、常に「iOS」になります
現在のユーザータイムスタンプ タイムスタンプ ユーザーの現在のタイムスタンプ

これはオブジェクトの構造です:

@interface WMUserData : NSObject

/** 
* 現在のセッションのユーザー属性。
*/
@property (nonatomic,strong) NSDictionary *userAttributes;

/**
* 現在のセッションのプライベートユーザー属性。
*/
@property (nonatomic,strong) NSDictionary *privateUserAttributes;

/**
 * 秒単位でのユーザーセッション期間。
 */
@property (nonatomic,strong) NSNumber* sessionDuration;

/**
 * ユーザーのiOSバージョン
 */
@property (nonatomic,strong) NSString* systemVersion;

/**
 デバイス固有ID
 */
@property (nonatomic,strong) NSString* deviceId;

/**
 * デバイスモデル。
 */
@property (nonatomic,strong) NSString* deviceModel;

/**
 * デバイスの向きPRT_REG / LSL。
 */
@property (nonatomic,strong) NSString* deviceOrientation;

/**
 * アプリケーションのバージョン。
 */
@property (nonatomic,strong) NSString* appVersion;

/**
 * アプリケーション名。
 */
@property (nonatomic,strong) NSString* appName;

/**
 * ユーザーデバイスのロケール言語。
 */
@property (nonatomic,strong) NSString* locale;

/**
 * WalkMe SDKバージョン。
 */
@property (nonatomic,strong) NSString* sdkVer;

/**
 * セッション固有ID。
 */
@property (nonatomic,strong) NSString* sessionId;

/**
 * ユーザーにプッシュ通知が承認された場合。
 */
@property (nonatomic,strong) NSString* isPushEnabled;

/**
 * ユーザーデバイスタイムゾーン。
 */
@property (nonatomic,strong) NSString* timezone;

/**
 * ユーザーの現在のネットワーク(WIFI / 3G)。
 */
@property (nonatomic,strong) NSString* network;

/**
 * ユーザーOSシステム名。
 */
@property (nonatomic,strong) NSString* systemName;

/**
 * このユーザーの現在のタイムスタンプ。
 */
@property (nonatomic,strong) NSString* timestamp;

@end

この記事は役に立ちましたか?

ご意見ありがとうございます!

Be part of something bigger.

Engage with peers, ask questions, share ideas

Ask the Community
×