Atribuição de convite de usuário do iOS

Visão Geral

Implemente e atribua links de convite de usuário para quando os usuários existentes indicarem outras pessoas ao seu aplicativo.
Para uma introdução, consulte o convite do usuário.

Quer ver um exemplo completo? confira o modelo:

Implementar convites de usuários

Antes de começar: converse com o profissional de marketing para descobrir os casos de uso exatos que ele deseja para os links e para obter uma lista dos parâmetros que deseja implementar.

Para implementar a atribuição de convite de usuário, conclua as seguintes etapas:

  1. Configure a geração de links de convite para gerar links de convite.
  2. OPCIONAL Registre a criação do link de convite.
  3. Configurar o Unified Deeplinking (UDL)
  4. OPCIONAL Recupere dados do referenciador dos links de convite do usuário.
  5. Opcional Configure recompensas de referência.

O código a seguir é baseado no exemplo do profissional de marketing.

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 (O ID do template é fornecido pelo profissional de marketing ):

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

    📘

    Observação

    • Make sure to set appInviteOneLinkID antes de ligar start
    • O template do OneLink deve estar relacionado ao aplicativo.
  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:

    • Defina parâmetros de atribuição usando configuradores.
    • Set deep linking parameters, using AppsFlyerLinkGenerator.addParameterValue:
      • deep_link_value: a experiência do aplicativo à qual o usuário indicado deve ter um deep link.
      • deep_link_sub1: um parâmetro personalizável. Neste exemplo, usado para passar o código promocional recebido pelo convidado.
      • deep_link_sub2: Identificador do referenciador. Pode ser usado para recompensar o referenciador.
  4. In the completionHandler, check if the URL was created successfully (url not nil), and retrieve the generated user invite link.

  5. Permita que os usuários compartilhem os links gerados. Por exemplo, copie-o para a área de transferência.

Log invite link creation events

OPCIONAL
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 resulta em um evento in-app af_invite .

📘

Observação

Se você não quiser usar um canal, é possível usar logEvent no lugar dele.

Set up UDL for user invite attribution

OPCIONAL
Para configurar o UDL para atribuição de convite do usuário:

  1. Configure o Unified Deep Linking (UDL).

  2. In DeepLinkDelegate.didResolveDeepLink, recupere os parâmetros de deep links criados durante a etapa de geração do link. Neste exemplo, as seguintes propriedades são recuperadas:

    • deep_link_value, usando DeepLink.deeplinkValue
    • deep_link_sub1, usando DeepLink.clickEvent["deep_link_sub1"]
    • deep_link_sub2, usando DeepLink.clickEvent["deep_link_sub2"]

    Veja o código: Swift.

  3. Depois de recuperar o ID do referenciador, depende de você como ele é armazenado e usado.

Referências de recompensa

OPCIONAL
Nos cenários a seguir, o usuário A convida o usuário B para seu aplicativo.

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

Cenário: o usuário B faz uma compra. Você quer recompensar o Usuário A por ter indicado o Usuário B.

Para recompensar o usuário A pela ação do usuário B:

  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. No back-end, recupere dados de eventos in-app.
  3. Adicione os IDs de referência encontrados a uma lista de usuários a serem recompensados.
  4. Quando o usuário A inicia o aplicativo, verifique se o ID de referência está na lista de usuários a serem recompensados e recompense-os se estiver.

📘

Observação

  • As etapas 2 a 3 não são executadas pelo desenvolvedor mobile. A etapa 4 depende de como as etapas 2 a 3 são implementadas.
  • Um evento de compra é apenas um exemplo. Isso se aplica a qualquer tipo de evento in-app.