iOS ユーザー招待

概要

既存ユーザーが他のユーザーにアプリを紹介するための、ユーザー招待リンクを実装し、計測しましょう。
まずは、ユーザー招待の概要をご覧ください。

例を見てみましょう。レシピをご確認ください:

ユーザー招待計測の実装

はじめる前に:マーケティング担当者と連携し、マーケティング担当者側でリンクに必要な正確な導線・挙動を確認し、実装が必要なパラメータのリストを入手します。

ユーザー招待を実装するには、次の手順を完了してください:

  1. 招待リンクを生成するための招待リンク生成の設定をします。
  2. オプション 招待リンク生成のログを取得します。
  3. Unified Deeplinking (UDL) の実装
  4. オプション ユーザー招待リンクからリファラーデータを取得します。
  5. オプション 招待インセンティブをセットアップします。

次のコードは、マーケティング担当者の例に基づいています。

Set up invite link generation

To enable users to invite their friends to your app, you need a way to generate invitation links. This is done using AppsFlyerLinkGenerator.
To set up invite link generation:

  1. Make sure you import AppsFlyerLib:

    import com.appsflyer.AppsFlyerLib;
    
  2. In AppDelegate, set a OneLink template using appInviteOneLinkID (The template ID is provided by the marketer):

    AppsFlyerLib.shared().appInviteOneLinkID = "H5hv" // Set the OneLink template ID for userinvitation links
    

    📘

    注意

    • Make sure to set appInviteOneLinkID before calling start
    • OneLinkテンプレートは対象のアプリに紐づいている必要があります。
  3. Call AppsFlyerShareInviteHelper.generateInviteUrl and pass it an AppsFlyerLinkGenerator and a completionHandler:

    AppsFlyerShareInviteHelper.generateInviteUrl(
        linkGenerator: {
            (_ generator: AppsFlyerLinkGenerator) -> AppsFlyerLinkGenerator in
                generator.addParameterValue(<TARGET_VIEW>, forKey: "deep_link_value")
                generator.addParameterValue(<PROMO_CODE>, forKey: "deep_link_sub1")
                generator.addParameterValue(<REFERRER_ID>, forKey: "deep_link_sub2")
                // Optional; makes the referrer ID available in the installs raw-data report
                generator.addParameterValue(<REFERRER_ID>, forKey: "af_sub1")
                generator.setCampaign("summer_sale")
                generator.setChannel("mobile_share")
          		// Optional; Set a branded domain name:
          		generator.brandDomain = "brand.domain.com"
                return generator
        },
        completionHandler: {
            (_ url: URL?) -> Void in
                if url != nil {
                    NSLog("[AFSDK] AppsFlyer share-invite link: \(url!.absoluteString)")
                }        
                else {
                    print("url is nil")
                }
            }
    )
    

    Depending on the user flow you and the marketer want to achieve, configure generator as follows:

    • セッターを使用して計測パラメーターを設定してください。
    • Set deep linking parameters, using AppsFlyerLinkGenerator.addParameterValue:
      • deep_link_value:紹介されたユーザーをアプリ内の特定画面へディープリンクする
      • deep_link_sub1:カスタマイズできるパラメーター。この例では、招待されたユーザーが受信したプロモコードを渡すために使用されています。
      • deep_link_sub2: リファラの識別子。リファラに報酬を与えるために使用することができます。
  4. In the completionHandler, check if the URL was created successfully (url not nil), and retrieve the generated user invite link.

  5. ユーザーが生成されたリンクを共有できるようにします。例えば、クリップボードにコピーします。

Set the shortlink ID

オプション
The shortlink ID can be determined by the developer, by adding the paramter af_custom_shortlink to the LinkGenerator instance.

generator.addParameterValue(<value>, forKey:"af_custom_shortlink")

Log invite link creation events

オプション
To log the invite link creation event:
Send an event indicating that a user has generated an invite link using logInvite:

AppsFlyerShareInviteHelper.logInvite(<CHANNEL>, parameters: [
    "campaign" : "summer_sale",
    "referrerId" : <REFERRER_ID>,
]);

logInvite results in an af_invite in-app event.

📘

注意

If you don't want to use a channel, you can use logEvent instead.

Set up UDL for user invite attribution

オプション
ユーザー招待のアトリビューションにUDLを設定する:

  1. Unified Deep Linking (UDL) を実装してください。

  2. In DeepLinkDelegate.didResolveDeepLink, retrieve the deep linking parameters created during the link generation step. In this example, the following properties are retrieved:

    • deep_link_value - 使用するファンクション: DeepLink.deeplinkValue
    • deep_link_sub1 - 使用するファンクション: DeepLink.clickEvent["deep_link_sub1"]
    • deep_link_sub2 - 使用するファンクション: DeepLink.clickEvent["deep_link_sub2"]

    参照コード:Swift

  3. リファラーIDを取得したら、そのリファラーIDがどのように保存され、使用されるかはユーザー次第です。

招待したユーザーへ報酬を付与する

オプション
以下のシナリオでは、 ユーザーAユーザーB をアプリに招待しています。

Reward referrers on install

Scenario: User B installs your app via User A's invite link.
User A's referrer ID is available in the UDL didResolveDeepLink (in this example, under DeepLink.clickEvent["deep_link_sub2"]). Once you retrieve the ID, add it to the list of referrer IDs to be rewarded. It's up to you how to store and retrieve the list.

Reward referrers on in-app events

シナリオ:ユーザーBが購入を行います。最初にユーザーBをアプリに紹介したユーザーAに、このアクションに対して報酬を与える必要があります。

ユーザーBの行動に対して、ユーザーAにインセンティブを付与する:

  1. Retrieve user A's referrer ID and add it to one of the customizble in-app event parameters (for example, af_param_1):
    AppsFlyerLib.shared().logEvent(AFEventPurchase, 
      withValues: [
    		AFEventParamRevenue: 200,
    		AFEventParamCurrency:"USD",
            AFEventParam1: <REFERRER_ID>
      ]);
    
  2. バックエンドで、アプリ内イベントデータを取得してください。
  3. 見つかったリファラーIDを報酬を受ける対象のユーザーリストに追加してください。
  4. ユーザーAがアプリを起動した際に、リファラIDが報酬を受けるユーザーリストにあるかどうかを確認し、該当する場合に報酬を与えてください。

📘

注意

  • ステップ2-3はモバイルデベロッパーが実行するステップではありません。ステップ4は、ステップ2-3の実装方法によって内容が異なります。
  • 購入イベントは一例にすぎません。これは、あらゆる種類のアプリ内イベントに適用されます。