Eventos in-app avançados fornecem aos anunciantes a capacidade de registrar eventos pós-instalação e atribuí-los à fonte de mídia de origem.
Quando os usuários realizam registros, concluem os tutoriais, adicionam itens ao carrinho de compras ou fazem compras, os dados de eventos in-app podem registrar os eventos com os detalhes.
Eventos in-app avançados são a ferramenta ideal para determinar o valor dos usuários do aplicativo e a qualidade do tráfego com origem em diferentes fontes de mídia. A implementação de eventos in-app avançados é opcional, mas recomendamos que você faça isso. Também recomendamos que você defina e use os mesmos nomes e estruturas dos eventos in-app em todas as plataformas, para um melhor alinhamento dos dados brutos.
Respeitando a privacidade de seus usuários
- A AppsFlyer valoriza e respeita a sua privacidade e dos usuários do seu aplicativo.
- Não coletamos nem aceitamos informações de identificação pessoal (PII).
- To ensure the privacy of your users, don't populate in-app event values with information that can directly identify them. For example, email address, name, identity number, and in some loctations postal code.
The logEvent API
Um evento no aplicativo é composto por um nome de evento e parâmetros de evento.
Você pode usar qualquer sequência de nome de evento de sua escolha. No entanto, o SDK da AppsFlyer contém nomes de eventos recomendados por meio de enumerações e definições (consulte a guia Tipos de eventos para obter a lista de eventos recomendados e nomes de parâmetros).
Os nomes de eventos diferenciam maiúsculas de minúsculas, o que significa que af_purchase e af_PURCHASE são dois eventos diferentes nos dados brutos. No entanto, em relatórios agregados (por exemplo, Visão Geral, Eventos), eles podem ser exibidos como um único evento. Portanto, recomendamos o uso apenas de nomes de parâmetros e de eventos em letras minúsculas.
O comprimento dos valores do evento é limitado a 1000 caracteres. Não exceda esse limite. Podemos truncá-lo se você o fizer.
Sintaxe:
public static void logEvent(Context context, String eventName, Map eventValues)
-
Contexto - Use
getApplicationContext()
- eventName
- Qualquer sequência de caracteres para definir o nome do evento.
- eventValues
- Um mapa de parâmetros do evento que compreendem um evento avançado.
- (void) logEvent:(NSString *)eventName withValues:(NSDictionary*)values
-
eventName - Qualquer sequência de caracteres para definir o nome do evento.
- valores
- Um dicionário de parâmetros do evento que compreendem um evento avançado.
Eventos in-app para aplicativos híbridos
Aplicativos híbridos, que combinam visualizações nativas e conteúdo HTML, também podem gravar eventos in-app. No entanto, como o SDK só envia eventos do lado nativo, os desenvolvedores precisam encaminhar todos os dados do evento para o código nativo. Veja as instruções no nosso guia sobre eventos in-app para aplicativos híbridos .
Atenção
Cada rede tem suas próprias limitações em relação aos caracteres permitidos nos nomes de eventos. Para evitar problemas, use apenas caracteres alfanuméricos em minúsculas (a–z e 0–9) para os nomes de eventos in-app.
Tipos de eventos no aplicativo
A seção a seguir descreve a estrutura recomendada de cada tipo de evento juntamente com os mapeamentos de parâmetros para Facebook, Twitter, Criteo, Google Ads e Snapchat.
- Os seguintes parâmetros, como parte do valor dos eventos in-app avançados, estão disponíveis apenas nos relatórios de dados brutos. Dados brutos são um recurso premium.
- Se você incluir a URL de referência como um valor de evento, ela deverá ser uma URL codificada.
Observação
Consulte a aba Verticais neste artigo para obter trechos de código por vertical, para Android (Java), iOS (Obj-C e Swift) e Unity.
Estruturas recomendadas de eventos no aplicativo
Os seguintes eventos no aplicativo são definidos como parte da interface AFInAppEventType e são recomendados:
Nível atingido
Nome do evento: af_level_achieved
Descrição: usado para registrar eventos no nível do jogo
Event name constant (Android): AFInAppEventType.LEVEL_ACHIEVED
Event name constant (iOS): AFEventLevelAchieved
Evento mapeado do Facebook: fb_mobile_level_achieved
Evento mapeado do Twitter: LEVEL_ACHIEVED
Evento mapeado do Criteo: userLevel
Google Ads: level_up
Snapchat: LEVEL_COMPLETE
Recommended fields: af_level, af_score
Field mapping:
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_level | fb_level | level | ui_level | level_up | level |
af_score | - | - | - | score | - |
Adicionar informação de pagamento
Nome do evento: af_add_payment_info
Descrição: usado para registrar o status de configuração das informações de pagamento
Event name constant (Android): AFInAppEventType.ADD_PAYMENT_INFO
Event name constant (iOS): AFEventAddPaymentInfo
Evento mapeado do Facebook: fb_mobile_add_payment_info
Evento mapeado do Twitter: ADDED_PAYMENT_INFO
Evento mapeado do Criteo: None
Google Ads: add_payment_info
Snapchat: ADD_BILLING
Recommended fields: af_success
Field mapping:
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_success | fb_success | user_payment_info | - | add_payment_info | success |
Adicionar ao carrinho
Nome do evento: af_add_to_cart
Descrição: usado para registrar eventos de adição ao carrinho de itens específicos
Event name constant (Android): AFInAppEventType.ADD_TO_CART
Event name constant (iOS): AFEventAddToCart
Evento mapeado do Facebook: fb_mobile_add_to_cart
Evento mapeado do Twitter: ADD_TO_CART
Evento mapeado do Criteo: viewBasket
Google Ads: add_to_cart
Snapchat: ADD_CART
Recommended fields: af_price, af_content_type, af_content_id, af_content, af_currency, af_quantity
Field mapping:
AppsFlyer | Criteo | Google Ads | Snap | ||
---|---|---|---|---|---|
af_price | _valueToSum | price_micro* | price** | price | price |
af_content_type | fb_content_type | content_type | - | item_category | item_category |
af_content_id | fb_content_id | content_id | id | item_id | item_ids |
af_content | fb_content | - | - | - | - |
af_currency | fb_currency | price_currency | currency | currency_code | currency |
af_quantity | - | number_items | quantity | quantity | number_items |
*Para relatar um evento que contém vários itens, clique aqui.
Adicionar à lista de desejos
Nome do evento: af_add_to_wishlist
Descrição: usado para registrar eventos de adição à lista de desejos de itens específicos.
Event name constant (Android): AFInAppEventType.ADD_TO_WISH_LIST
Event name constant (iOS): AFEventAddToWishlist
Evento mapeado do Facebook: fb_mobile_add_to_wishlist
Evento mapeado do Twitter: ADD_TO_WISHLIST
Evento mapeado do Criteo: None
Google Ads: add_to_wishlist
Snapchat: ADD_TO_WISHLIST
Recommended fields: af_price, af_content_type, af_content_id, af_content, af_currency, af_quantity
Field mapping:
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_price | _valueToSum | price_micro* | - | Preço | price |
af_content_type | fb_content_type | content_type | - | categoria de item | item_category |
af_content_id | fb_content_id | content_id | - | item_id | item_ids |
af_content | fb_content | - | - | - | - |
af_currency | fb_currency | price_currency | - | currency_code | currency |
af_quantity | - | number_items | - | quantity | number_items |
*Para relatar um evento que contém vários itens, clique aqui.
Concluir cadastro
Nome do evento:af_complete_registration
Descrição: usado para registrar métodos de registro do usuário
Event name constant (Android): AFInAppEventType.COMPLETE_REGISTRATION
Event name constant (iOS): AFEventCompleteRegistration
Evento mapeado do Facebook: fb_mobile_complete_registration
Evento mapeado do Twitter: SIGN_UP
Evento mapeado do Criteo: None
Google Ads: sign_up
Snapchat: SIGN_UP
Recommended fields: af_registration_method
Field mapping:
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_registration_ method |
fb_registration_ method |
registration_method | - | registration_method | sign_up_method |
Conclusão do tutorial
Nome do evento: af_tutorial_completion
Descrição: usado para registrar conclusões de tutoriais
Event name constant (Android): AFInAppEventType.TUTORIAL_COMPLETION
Event name constant (iOS): AFEventTutorial_completion
Evento mapeado do Facebook: fb_mobile_tutorial_completion
Evento mapeado do Twitter: TUTORIAL_COMPLETE
Evento mapeado do Criteo: None
Google Ads: tutorial_complete
Snapchat: COMPLETE_TUTORIAL
Recommended fields: af_success, af_content_id, af_content
Field mapping:
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_success | fb_success | - | - | success | success |
af_content_id | fb_content_id | content_id | - | item_id | item_ids |
af_content | fb_content | - | - | - | - |
*Para relatar um evento que contém vários itens, clique aqui.
Checkout iniciado
Nome do evento: af_initiated_checkout
Descrição: usado para registrar eventos de finalização da compra
Event name constant (Android): AFInAppEventType.INITIATED_CHECKOUT
Event name constant (iOS): AFEventInitiatedCheckout
Evento mapeado do Facebook: fb_mobile_initiated_checkout
Evento mapeado do Twitter: CHECKOUT_INITIATED
Evento mapeado do Criteo: viewBasket
Google Ads: begin_checkout
Snapchat: START_CHECKOUT
Recommended fields: af_price, af_content_type, af_content_id, af_content, af_quantity, af_payment_info_available, af_currency
Field mapping:
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_price | _valueToSum | price_micro* | price | price | price |
af_content_type | fb_content_type | content_type | - | item_category | item_category |
af_content_id | fb_content_id | content_id | id | item_id | item_ids |
af_content | fb_content | - | - | - | |
af_currency | fb_currency | price_currency | currency | currency_code | currency |
af_quantity | fb_num_items | number_items | quantity | quantity | number_items |
af_payment_info_ |
fb_payment_info_ available |
user_payment_ info |
- | payment_info_ available |
payment_info_available |
af_content_list | fb_content_id | - | - | item_id | - |
af_date_a- | fb_checkin_date | - | din | start_date | - |
af_date_b | fb_checkout_date | - | dout | end_date | - |
af_departing_ departure_date |
fb_departing_ departure_date |
- | - | - | - |
af_returning_ departure_date |
fb_returning_ departure_date |
- | - | - | - |
af_destination_a | fb_origin_airport | - | - | origin | - |
af_destination_b | fb_destination_airport | - | - | destination | - |
af_destination_list | fb_destination_ids | - | - | - | - |
af_city | fb_city | - | - | - | - |
af_region | fb_region | - | - | - | - |
af_country | fb_country | - | - | - | - |
af_departing_ arrival_date |
fb_departing_arrival_ date |
- | - | - | - |
af_returning_- arrival_date |
fb_returning_arrival_ date |
- | - | - | - |
af_suggested_ destinations |
fb_suggested_ destinations |
- | - | - | - |
af_travel_start | fb_travel_start | - | - | - | - |
af_travel_end | fb_travel_end | - | - | - | - |
af_num_adults | fb_num_adults | - | - | - | - |
af_num_childr-en | fb_num_children | - | - | - | - |
af_num_infant-s | fb_num_infants | - | - | - | - |
af_class | fb_travel_class | - | - | travel_class | - |
af_suggested_hotels | fb_suggested_hotels | - | - | - | - |
af_user_score | fb_user_score | - | - | - | - |
af_hotel_score | fb_hotel_score | - | - | - | - |
af_price | fb_purchase_value | - | - | price | - |
af_purchase_currency | fb_purchase_currency | - | - | - | - |
af_preferred_star_ ratings |
fb_preferred_star_ ratings |
- | - | - | - |
af_preferred_price_ range |
fb_preferred_price_ range |
- | - | - | - |
af_preferred_ neighborhoods |
fb_preferred_ neighborhoods |
- | - | - | - |
af_preferred_-num_ stops |
fb_preferred_num_ stops |
- | - | - | - |
*Para relatar um evento que contém vários itens, clique aqui.
Compra
Nome do evento: af_purchase
Descrição: usado para registrar eventos de compra (e associar a receita a eles)
Event name constant (Android): AFInAppEventType.PURCHASE
Event name constant (iOS): AFEventPurchase
Evento mapeado do Facebook: fb_mobile_purchase
Evento mapeado do Twitter: PURCHASE
Evento mapeado pela Criteo: transactionConfirmation
Google Ads: in_app_purchase
Snapchat: PURCHASE
Recommended fields: af_revenue, af_content_type, af_content_id, af_content, af_price, af_quantity, af_currency, af_order_id
Field mapping:
AppsFlyer | Criteo | Google Ads | Snapchat | Partnerize | ||
---|---|---|---|---|---|---|
af_revenue* |
_valueToSum |
price_micro** |
ui_revenue |
value |
price |
- |
af_content_type |
fb_content_type |
content_type |
- |
item_category |
item_category |
Categoria |
af_content_id |
fb_content_id |
content_id |
id |
item_id |
item_ids |
- |
af_content |
fb_content |
- |
- |
- |
- |
Meta de conversão personalizada |
af_currency |
fb_currency |
price_currency |
currency |
currency_code |
currency |
Moeda |
af_quantity |
fb_num_items |
number_items |
quantity |
quantity |
number_items |
quantidade |
af_validated |
- |
- |
- |
VALIDADO |
success |
Voucher |
af_receipt_id |
- |
- |
transaction_id |
transaction_id |
- |
Referência de conversão |
af_order_id |
fb_order_id |
- |
- |
order_id |
transaction_id |
Clickref |
af_content_list |
fb_content_id |
- |
- |
item_id |
- |
Meta de item personalizado |
af_date_a |
fb_checkin_date |
- | din | start_date | - | - |
af_date_b |
fb_checkout_date |
- | dout | end_date | - | - |
af_departing_ departure_date |
fb_departing_ |
- | - | - | - | - |
af_returning_ departure_date |
fb_returning_ |
- | - | - | - | - |
af_destination_a |
fb_origin_airport |
- | - | origin | - | - |
af_destination_b |
fb_destination_ |
- | - | destination | - | - |
af_destination_list |
fb_destination_ids |
- | - | - | - | - |
af_city |
fb_city |
- | - | - | - | - |
af_region |
fb_region |
-- | -- | -- | -- | - |
af_country |
fb_country |
- | - | - | - | - |
af_departing_arrival_ date |
fb_departing_arrival_ |
- | - | - | - | - |
af_returning_arrival_ date |
fb_returning_arrival_ |
- | - | - | - | - |
af_suggested_ destinations |
fb_suggested_ |
- | - | - | - | - |
af_travel_start |
fb_travel_start |
- | - | - | - | - |
af_travel_end |
fb_travel_end |
- | - | - | - | - |
af_num_adults |
fb_num_adults |
- | - | - | - | - |
af_num_children |
fb_num_children |
- | - | - | - | - |
af_num_infants |
fb_num_infants |
- | - | - | - | - |
af_class |
fb_travel_class |
- | - | travel_class | - | - |
af_suggested_ hotels |
fb_suggested_ |
- | - | - | - | - |
af_user_score |
fb_user_score |
- | - | - | - | - |
af_hotel_score |
fb_hotel_score |
- | - | - | - | - |
af_price |
fb_purchase_value |
- | price** | price | - | valor |
af_purchase_ currency |
fb_purchase_ |
- | - | - | - | - |
af_preferred_star_ ratings |
fb_preferred_star_ |
- | - | - | - | - |
af_preferred_price_ range |
fb_preferred_price_ |
- | - | - | - | - |
af_preferred_ neighborhoods |
fb_preferred_ |
- | - | - | - | - |
af_preferred_num_ stops |
fb_preferred_num_ |
- | - | - | - | - |
* af_revenue é contabilizado como receita na plataforma do AppsFlyer.
** af_price – use af_price como um parâmetro monetário que não é contabilizado como receita (como em um evento "Adicionar ao carrinho"). Esse parâmetro se refere ao preço do item individual. A quantidade total de todas as compras aparece sob o parâmetro af_revenue.
Para obter uma lista de símbolos de moedas aceitos pelo AppsFlyer, clique aqui.
*Para relatar um evento que contém vários itens, clique aqui.
Assinatura
Nome do evento: af_subscribe
Descrição: usado para registrar compras de assinaturas pagas
Event name constant (Android): AFInAppEventType.SUBSCRIBE
Event name constant (iOS): AFEventSubscribe
Evento mapeado do Facebook: Subscribe
Evento mapeado do Criteo: nenhum
Evento mapeado do Criteo: None
Google Ads: nenhum
Snapchat: SUBSCRIBE
Recommended fields: af_revenue, af_currency
Field mapping:
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_revenue |
_valueToSum |
- |
- |
- |
price |
af_currency |
fb_currency |
- |
- |
- |
currency |
Iniciar avaliação
Nome do evento: af_start_trial
Descrição: usado para registrar o início de uma avaliação gratuita de um produto
Event name constant (Android): AFInAppEventType.START_TRIAL
Event name constant (iOS): AFEventStartTrial
Evento mapeado do Facebook: StartTrial
Evento mapeado do Criteo: nenhum
Evento mapeado do Criteo: None
Google Ads: nenhum
Snapchat: START_TRIAL
Recommended fields: af_price, af_currency
Field mapping:
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_price |
_valueToSum |
- |
- |
- |
price |
af_currency |
fb_currency |
- |
- |
- |
currency |
Rate
Nome do evento: af_rate
Descrição: usado para registrar eventos de classificação do aplicativo/item.
Event name constant (Android): AFInAppEventType.RATE
Event name constant (iOS): AFEventRate
Evento mapeado do Facebook: fb_mobile_rate
Evento mapeado do Twitter: RATED
Evento mapeado do Criteo: None
Google Ads: submit_rating
Snapchat: RATE
Recommended fields: af_rating_value, af_content_type, af_content_id, af_content, af_max_rating_value
Field mapping:
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_rating_value |
_valueToSum |
price_micro |
- |
value |
- |
af_content_type |
fb_content_type |
content_type |
- |
content_type |
item_category |
af_content_id |
fb_content_id |
content_id |
- |
content_id |
item_ids |
af_content |
fb_content |
- |
- |
- |
- |
af_max_rating_value |
fb_max_rating_value |
max_rated_value |
- |
max_rating |
- |
*Para relatar um evento que contém vários itens, clique aqui.
Pesquisar
Nome do evento: af_search
Descrição: usado para registrar eventos de pesquisa
Event name constant (Android): AFInAppEventType.SEARCH
Event name constant (iOS): AFEventSearch
Evento mapeado do Facebook: fb_mobile_search
Evento mapeado do Twitter: SEARCH
Evento mapeado do Criteo: viewSearch
Google Ads: view_search_results
Google Ads: PROCURAR
Recommended fields: af_content_type, af_search_string, af_success
Field mapping:
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_content_type |
fb_content_type |
content_type |
- |
item_category |
item_category |
af_search_string |
fb_search_string |
search_string |
- |
search_term |
search_string |
af_date_a |
fb_checkin_date |
- |
din |
start_date |
- |
af_date_b |
fb_checkout_date |
- |
dout |
end_date |
- |
af_destination_a |
fb_origin_airport |
- |
- |
origin |
- |
af_destination_b |
fb_destination_airport |
- |
- |
destination |
- |
af_success |
fb_success |
- |
- |
success |
success |
af_content_list |
fb_content_id |
- |
- |
item_id |
- |
af_departing_ departure_date |
fb_departing_ |
- | - | - | - |
af_returning_ departure_date |
fb_returning_ |
- | - | - | - |
af_destination_list |
fb_destination_ids |
- | - | - | - |
af_city |
fb_city |
- | - | - | - |
af_region |
fb_region |
- | - | - | - |
af_country |
fb_country |
- | - | - | - |
af_departing_arrival_ date |
fb_departing_arrival_ |
- | - | - | - |
af_returning_arrival_ date |
fb_returning_arrival_ |
- | - | - | - |
af_suggested_ destinations |
fb_suggested_ |
- | - | - | - |
af_travel_start |
fb_travel_start |
- | - | - | - |
af_travel_end- |
fb_travel_end |
- | - | - | - |
af_num_adults |
fb_num_adults |
- | - | - | - |
af_num_children |
fb_num_children |
- | - | - | - |
af_num_infants |
fb_num_infants |
- | - | - | - |
af_class |
fb_travel_class |
- | - | travel_class | - |
af_suggested_hotels |
fb_suggested_hotels |
- | - | - | - |
af_user_score |
fb_user_score |
- | - | - | - |
af_hotel_score |
fb_hotel_score |
- | - | - | - |
af_price |
fb_purchase_value |
- | - | price | - |
af_purchase_currency |
fb_purchase_currency |
- | - | - | - |
af_preferred_star_ ratings |
fb_preferred_star_ |
- | - | - | - |
af_preferred_price_ range |
fb_preferred_price_ |
- | - | - | - |
af_preferred_ neighborhoods |
fb_preferred_ |
- | - | - | - |
af_preferred_num_ stops |
fb_preferred_num_ |
- | - | - | - |
Créditos gastos
Nome do evento: af_spent_credits
Descrição: usado para registrar eventos de gasto de créditos
Event name constant (Android): AFInAppEventType.SPENT_CREDIT
Event name constant (iOS): AFEventSpentCredits
Evento mapeado do Facebook: fb_mobile_spent_credits
Evento mapeado do Twitter: SPENT_CREDITS
Evento mapeado pela Criteo: transactionConfirmation
Google Ads: spend_virtual_currency
Snapchat: SPENT_CREDITS
Recommended fields: af_price, af_content_type, af_content_id, af_content
Field mapping:
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_price |
_valueToSum |
price_micro* |
price** |
price |
price |
af_content_type |
fb_content_type |
content_type |
- |
item_category |
item_category |
af_content_id |
fb_content_id |
content_id |
item_id |
item_id |
item_ids |
af_content |
fb_content |
- |
- |
|
- |
*Para relatar um evento que contém vários itens, clique aqui.
Conquista desbloqueada
Nome do evento: af_achievement_unlocked
Descrição: usado para registrar eventos de desbloqueio de conquistas
Event name constant (Android): AFInAppEventType.ACHIEVEMENT_UNLOCKED
Event name constant (iOS): AFEventAchievementUnlocked
Evento mapeado do Facebook: fb_mobile_achievement_unlocked
Evento mapeado do Twitter: ACHIEVEMENT_UNLOCKED
Evento mapeado do Criteo: achievement
Google Ads: unlock_achievement
Snapchat: ACHIEVEMENT_UNLOCKED
Recommended fields: af_description
Field mapping:
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_description |
fb_description |
description |
ui_achievement |
description |
description |
Exibição de conteúdo
Evento: af_content_view
Descrição: usado para registrar eventos de exibição de conteúdo
Event name constant (Android): AFInAppEventType.CONTENT_VIEW
Event name constant (iOS): AFEventContentView
Evento mapeado do Facebook: fb_mobile_content_view
Evento mapeado do Twitter: CONTENT_VIEW
Evento mapeado do Criteo: viewProduct
Google Ads: view_item
Snapchat: VIEW_CONTENT
Recommended fields: af_price, af_content_type, af_content_id, af_content, af_currency
Field mapping:
AppsFlyer | Criteo | Google Ads | Snap | ||
---|---|---|---|---|---|
af_price |
_valueToSum |
price_micro* |
price |
price |
price |
af_content_type |
fb_content_type |
content_type |
- |
item_category |
item_category |
af_content_id |
fb_content_id |
content_id |
id |
item_id |
item_ids |
af_content |
fb_content |
- |
- |
- |
- |
af_currency |
fb_currency |
price_currency |
currency |
currency_code |
currency |
af_content_list |
fb_content_id |
- |
- |
item_id | - |
af_date_a |
fb_checkin_date |
- | din | start_date | - |
af_date_b |
fb_checkout_date |
- | dout | end_date | - |
af_departing_ departure_date |
fb_departing_ |
- | - | - | |
af_returning_ departure_date |
fb_returning_ |
- | - | - | - |
af_destination_a |
fb_origin_airport |
- | - | origin | - |
af_destination_b |
fb_destination_ |
- | - | destination | - |
af_destination_list |
fb_destination_ids |
- | - | - | - |
af_city |
fb_city |
- | - | - | - |
af_region |
fb_region |
- | - | - | - |
af_country |
fb_country |
- | - | - | - |
af_departing_arrival_ date |
fb_departing_arrival_ |
- | - | - | - |
af_returning_arrival_ date |
fb_returning_arrival_ |
- | - | - | - |
af_suggested_ destinations |
fb_suggested_ |
- | - | - | - |
af_travel_start |
fb_travel_start |
- | - | - | - |
af_travel_end |
fb_travel_end |
- | - | - | - |
af_num_adults |
fb_num_adults |
- | - | - | - |
af_num_children |
fb_num_children |
- | - | - | - |
af_num_infants |
fb_num_infants |
- | - | - | - |
af_class |
fb_travel_class |
- | - | travel_class | - |
af_suggested_hotels |
fb_suggested_hotels |
- | - | - | - |
af_user_score |
fb_user_score |
- | - | - | - |
af_hotel_score |
fb_hotel_score |
- | - | - | - |
af_price |
fb_purchase_value |
- | - | price | - |
af_purchase_currency |
fb_purchase_currency |
- | - | - | - |
af_preferred_star_ ratings |
fb_preferred_star_ |
- | - | - | - |
af_preferred_price_ range |
fb_preferred_price_ |
- | - | - | - |
af_preferred_ neighborhoods |
fb_preferred_ |
- | - | - | - |
af_preferred_num_ stops |
fb_preferred_num_ |
- | - | - | - |
Exibição de lista
Nome do evento: af_list_view
Descrição: usado para registrar eventos de exibição de lista
Event name constant (Android): use the string "af_list_view" instead:
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "af_list_view", eventValue);
Event name constant (iOS): AFEventListView
Evento mapeado do Facebook:
Evento mapeado do Twitter:
Evento mapeado do Criteo: viewListing
Google Ads: view_item_list
Snapchat: LIST_VIEW
Recommended fields: af_content_type, af_content_list
Field mapping:
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_content_type |
- |
- |
- |
item_Category |
item_category |
af_content_list |
- |
- |
- |
item_id |
- |
Cliques em anúncios
Nome do evento: af_ad_click
Descrição: usado para registrar cliques em anúncios exibidos no aplicativo
Event name constant (Android): AFInAppEventType.AD_CLICK
Event name constant (iOS): AFEventAdClick
Evento mapeado do Facebook: AdClick
Evento mapeado do Criteo: nenhum
Evento mapeado do Criteo: None
Google Ads: nenhum
Snapchat: AD_CLICK
Recommended fields: af_adrev_ad_type
Field mapping:
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_adrev_ad_type |
ad_type |
- |
- |
- |
- |
af_currency |
fb_currency |
- |
- |
- |
currency |
Exibição do anúncio
Nome do evento: af_ad_view
Descrição: usado para registrar visualizações em anúncios exibidos no aplicativo
Event name constant (Android): AFInAppEventType.AD_VIEW
Event name constant (iOS): AFEventAdView
Evento mapeado do Facebook : AdImpression
Evento mapeado do Criteo: nenhum
Evento mapeado do Criteo: None
Google Ads: nenhum
Snapchat: AD_VIEW
Recommended fields: af_adrev_ad_type
Field mapping:
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_adrev_ad_type |
ad_type |
- |
- |
- |
- |
af_currency |
fb_currency |
- |
- |
- |
currency |
Reservas de viagem
Nome do evento: af_travel_booking
Descrição: usado para registrar eventos de reservas de viagem (e associar receita a eles)
Event name constant (Android): AFInAppEventType.TRAVEL_BOOKING
Event name constant (iOS): AFEventTravelBooking
Evento mapeado do Facebook: fb_mobile_purchase
Evento mapeado do Twitter: PURCHASE
Evento mapeado pela Criteo: transactionConfirmation
Google Ads: ecommerce_purchase
Snapchat: RESERVE
Recommended fields: af_revenue, af_destination_a, af_destination_b, af_class, af_description, af_customer_user_id, af_content_type, af_content_id, af_date_a, af_date_b
Field mapping:
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_revenue* |
_valueToSum |
price_micro** |
price*** |
value |
price |
af_customer_user_id |
- |
- |
cid |
customer_user_ |
- |
af_content_type |
fb_content_type |
content_type |
- |
item_category |
item_category |
af_content_id |
fb_content_id |
content_id |
- |
item_id |
item_ids |
af_class |
- |
- |
- |
travel_class |
- |
af_date_a |
- |
- |
din |
start_date |
- |
af_date_b |
- |
- |
dout |
end_date |
- |
af_destination_a |
- |
- |
- |
origin |
- |
af_destination_b |
- |
- |
- |
destination |
- |
af_success |
fb_success |
- |
- |
success |
|
af_content_list |
fb_content_ids |
- |
- |
item_id | - |
af_date_a |
fb_checkin_date |
- | - | start_date | - |
af_date_b |
fb_checkout_date |
- | - | end_date | - |
af_departing_ departure_date |
fb_departing_ |
- | - | - | |
af_returning_ departure_date |
fb_returning_ |
- | - | - | |
af_destination_a |
fb_origin_airport |
- | - | origin | - |
af_destination_b |
fb_destination_airport |
- | - | destination | - |
af_destination_list |
fb_destination_ids |
- | - | - | |
af_city |
fb_city |
- | - | - | - |
af_region |
fb_region |
- | - | - | - |
af_country |
fb_country |
- | - | - | - |
af_departing_arrival_ date |
fb_departing_arrival_ |
- | - | - | - |
af_returning_arrival_ date |
fb_returning_arrival_ |
- | - | - | - |
af_suggested_ destinations |
fb_suggested_ |
- | - | - | - |
af_travel_start |
fb_travel_start |
- | - | - | - |
af_travel_end |
fb_travel_end |
- | - | - | - |
af_num_adults |
fb_num_adults |
- | - | - | - |
af_num_children |
fb_num_children |
- | - | - | - |
af_num_infants |
fb_num_infants |
- | - | - | - |
af_class |
fb_travel_class |
- | - | travel_class | - |
af_suggested_hotels |
fb_suggested_hotels |
- | - | - | - |
af_user_score |
fb_user_score |
- | - | - | - |
af_hotel_score |
fb_hotel_score |
- | - | - | - |
af_price |
fb_purchase_value |
- | - | price | - |
af_purchase_currency |
fb_purchase_currency |
- | - | - | - |
af_preferred_star_ ratings- |
fb_preferred_star_ |
- | - | - | - |
af_preferred_price_ range |
fb_preferred_star_ |
- | - | - | - |
af_preferred_ neighborhoods |
fb_preferred_ |
- | - | - | - |
af_preferred_num_ stops- |
fb_preferred_num_ |
- | - | - | - |
af_order_id |
fb_order_id |
- | - | order_id | transaction_id |
Compartilhar
Nome do evento: af_share
Descrição: usado para registrar eventos de compartilhamento
Event name constant (Android): AFInAppEventType.SHARE
Event name constant (iOS): AFEventShare
Evento mapeado do Facebook: Nenhum
Evento mapeado do Twitter: SHARE
Evento mapeado do Criteo: None
Google Ads: compartilhar
Snapchat: SHARE
Recommended fields: af_description
Field mapping:
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_description |
- |
description |
- |
description |
description |
Convite
Nome do evento: af_invite
Descrição: usado para registrar eventos de convites (sociais)
Event name constant (Android): AFInAppEventType.INVITE
Event name constant (iOS): AFEventInvite
Evento mapeado do Facebook: nenhum
Evento mapeado do Twitter: INVITE
Evento mapeado do Criteo: None
Google Ads: convidar
Snapchat: INVITE
Recommended fields: None
Field mapping:
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_description |
- |
description |
- |
description |
description |
Login
Nome do evento: af_login
Descrição: usado para registrar eventos de login do usuário
Event name constant (Android): AFInAppEventType.LOGIN
Event name constant (iOS): AFEventLogin
Evento mapeado do Facebook: nenhum
Evento mapeado do Twitter: LOGIN
Evento mapeado do Criteo: None
Google Ads: login
Recommended fields: None
Reengajar
Nome do evento: af_re_engage
Descrição: usado para registrar eventos de reengajamento do usuário
Event name constant (Android): AFInAppEventType.RE_ENGAGE
Event name constant (iOS): AFEventReEngage
Evento mapeado do Facebook: Nenhum
Evento mapeado do Twitter: RE_ENGAGE
Evento mapeado do Criteo: None
Google Ads: custom_event
Recommended fields: None
Field mapping:
AppsFlyer | Criteo | Google Ads | ||
---|---|---|---|---|
af_description |
- |
description |
- |
description |
Aberto a partir de notificação por push
Nome do evento: af_opened_from_push_notification
Descrição: usado para registrar eventos de abertura do aplicativo a partir de notificação push
Event name constant (Android): AFInAppEventType.OPENED_FROM_PUSH_NOTIFICATION
Event name constant (iOS): AFEventOpenedFromPushNotification
Evento mapeado do Facebook: nenhum
Evento mapeado do Criteo: nenhum
Evento mapeado do Criteo: None
Google Ads: notification_open
Recommended fields: None
Atualização
Nome do evento: af_update
Descrição: usado para registrar eventos de atualização
Event name constant (Android): AFInAppEventType.UPDATE
Event name constant (iOS): AFEventUpdate
Evento mapeado do Facebook: nenhum
Evento mapeado do Twitter: UPDATE
Evento mapeado do Criteo: None
Google Ads: app_update
Recommended fields: af_content_id
Field mapping:
AppsFlyer | Criteo | Google Ads | ||
---|---|---|---|---|
af_content_id |
- |
content_id |
- |
item_id |
*Para relatar um evento que contém vários itens, clique aqui.
Além dos eventos descritos acima, que podem ser mapeados para eventos predefinidos de várias redes, o Facebook oferece eventos adicionais que são enviados sem atributos.
Parâmetros opcionais
Além dos parâmetros recomendados que podem ser passados com cada evento, os parâmetros a seguir são definidos como parte da interface AFInAppEventParameterName
e podem ser enviados como parte do valor do dicionário de eventos:
Parameter string Constant | Nome da sequência de caracteres do parâmetro | Tipo de valor recomendado |
---|---|---|
RECEITA (detalhes) |
af_revenue |
Float |
PREÇO (detalhes) |
af_price |
Float |
LEVEL |
af_level |
Int |
SUCCESS |
af_success |
Boolean |
CONTENT_TYPE |
af_content_type |
Sequência de caracteres |
CONTENT_LIST |
af_content_list |
Matriz de sequências de caracteres |
CONTENT_ID |
af_content_id |
Sequência de caracteres |
CURRENCY |
af_currency |
Sequência de caracteres |
REGISTRATION_METHOD |
af_registration_method |
Sequência de caracteres |
QUANTITY |
af_quantity |
Int |
PAYMENT_INFO_AVAILABLE |
af_payment_info_available |
Boolean |
RATING_VALUE |
af_rating_value |
Float |
MAX_RATING_VALUE |
af_max_rating_value |
Float |
SEARCH_STRING |
af_search_string |
Sequência de caracteres |
DESCRIPTION |
af_description |
Sequência de caracteres |
SCORE |
af_score |
Int |
DESTINATION_A |
af_destination_a |
Sequência de caracteres |
DESTINATION_B |
af_destination_b |
Sequência de caracteres |
CLASS |
af_class |
Sequência de caracteres |
DATE_A |
af_date_a |
Sequência de caracteres |
DATE_B |
af_date_b |
Sequência de caracteres |
EVENT_START |
af_event_start |
Unixtime (00:00:00) |
EVENT_END |
af_event_end |
Unixtime (00:00:00) |
LATITUDE |
af_lat |
Int |
LONGITUDE |
af_long |
Int |
CUSTOMER_USER_ID |
af_customer_user_id |
Sequência de caracteres |
CUSTOMER_SEGMENT |
af_customer_segment |
Sequência de caracteres |
VALIDATED |
af_validated |
Sequência de caracteres |
RECEIPT_ID |
af_receipt_id |
Sequência de caracteres |
ORDER_ID |
af_order_id |
Sequência de caracteres |
TUTORIAL_ID |
af_tutorial_id |
Sequência de caracteres |
ACHIEVEMENT_ID |
af_achievement_id |
Sequência de caracteres |
VIRTUAL_CURRENCY_NAME |
af_virtual_currency_name |
Sequência de caracteres |
DEEP_LINK |
af_deep_link |
Sequência de caracteres |
OLD_VERSION |
af_old_version |
Sequência de caracteres |
NEW_VERSION |
af_new_version |
Sequência de caracteres |
REVIEW_TEXT |
af_review_text |
Sequência de caracteres |
COUPON_CODE |
af_coupon_code |
Sequência de caracteres |
DEPARTING_DEPARTURE_DATE |
af_departing_departure_date |
Sequência de caracteres |
RETURNING_DEPARTURE_DATE |
af_returning_departure_date |
Sequência de caracteres |
DESTINATION_LIST |
af_destination_list |
String[] |
CITY |
af_city |
Sequência de caracteres |
REGION |
af_region |
Sequência de caracteres |
COUNTRY |
af_county |
Sequência de caracteres |
DEPARTING_ARRIVAL_DATE |
af_departing_arrival_date |
Sequência de caracteres |
RETURNING_ARRIVAL_DATE |
af_returning_arrival_date |
Sequência de caracteres |
SUGGESTED_DESTINATIONS |
af_suggested_destinations |
String[] |
TRAVEL_START |
af_travel_start |
Sequência de caracteres |
TRAVEL_END |
af_travel_end |
Sequência de caracteres |
NUM_ADULTS |
af_num_adults |
Int |
NUM_CHILDREN |
af_num_children |
Int |
NUM_INFANTS |
af_num_infants |
Int |
SUGGESTED_HOTELS |
af_suggested_hotels |
String[] |
USER_SCORE |
af_user_score |
Float |
HOTEL_SCORE |
af_hotel_score |
Float |
PURCHASE_CURRENCY |
af_purchase_currency |
Sequência de caracteres |
PREFERRED_STAR_RATINGS |
af_preferred_star_ratings |
Int[2] |
PREFERRED_PRICE_RANGE |
af_preferred_price_range |
Int[2] |
PREFERRED_NEIGHBORHOODS |
af_preferred_neighborhoods |
String[] |
PREFERRED_NUM_STOPS |
af_preferred_num_stops |
Int |
CONTENT |
af_content |
Sequência de caracteres |
PARAM_1 |
af_param_1 |
Sequência de caracteres |
PARAM_2 |
af_param_2 |
Sequência de caracteres |
PARAM_3 |
af_param_3 |
Sequência de caracteres |
PARAM_4 |
af_param_4 |
Sequência de caracteres |
PARAM_5 |
af_param_5 |
Sequência de caracteres |
PARAM_6 |
af_param_6 |
Sequência de caracteres |
PARAM_7 |
af_param_7 |
Sequência de caracteres |
PARAM_8 |
af_param_8 |
Sequência de caracteres |
PARAM_9 |
af_param_9 |
Sequência de caracteres |
PARAM_10 |
af_param_10 |
Sequência de caracteres |
Visualização de dados avançados de eventos do aplicativo
- O nome do seu evento in-app e a receita aparecem na página de visão geral do painel e napágina Eventos.
- Valores adicionais de parâmetro aparecem no relatório de dados brutos de eventos in-app. Os dados brutos são um recurso premium.
Parâmetro de receitas
Você pode enviar valores de receitas com qualquer nome de parâmetro e evento. No entanto, para registrar a receita nos dados agregados e brutos da AppsFlyer, é OBRIGATÓRIO usar o parâmetroaf_revenue. Sempre use ele com eventos in-app que representam a geração de receita real em sua lógica de negócios.
Para obter mais detalhes sobre o parâmetro af_revenue, consulte o guia de Atribuição de receitas.
Informações de identificação pessoal
Informações de identificação pessoal (PII) são informações que podem ser usadas para identificar ou rastrear a identidade de um indivíduo (nome, número de identidade, CPF) sozinho ou quando combinado com outras informações de identificação vinculadas à data e local de nascimento do indivíduo.
A AppsFlyer respeita as regras de privacidade e não coleta nenhuma PII do usuário.
Não envie PII nos valores do evento.
Observação
A AppsFlyer coleta o endereço de IP dos dispositivos durante os engajamentos. Em algumas jurisdições ou cenários de uso, o endereço de IP pode ser considerado uma PII. Usamos o endereço de IP para derivar a ampla localização geográfica (cidade, bairro) do dispositivo, mas não o endereço específico. Se necessário, você pode selecionar mascarar endereços de IP para que eles não apareçam nos relatórios de dados brutos.
Vários itens
Você pode adicionar vários itens a uma única transação. Em vez de valores únicos por parâmetro de evento, você pode ter vários itens descrevendo a transação, separados por vírgulas.
Exemplo
Na mesma transação, o senhor A. Flyer compra duas camisas idênticas, um par de sapatos e um chapéu de uma loja online sediada nos EUA. A sequência em que cada item é listado deve ser idêntica para cada parâmetro.
af_content_id: ["123","988","399"]
af_quantity: [2,1,1]
af_price: [25,50,10]
af_revenue: [110]
af_currency: USD
Para vários itens, o código é exibido da seguinte forma:
Map<String,Object> eventData = new HashMap<>();
eventData.put(AFInAppEventParameterName.CONTENT_ID, new String[] {"123","988","399"});
eventData.put(AFInAppEventParameterName.QUANTITY, new int[] {2, 1, 1});
eventData.put(AFInAppEventParameterName.PRICE,new int[] {25, 50, 10});
eventData.put(AFInAppEventParameterName.CURRENCY,"USD");
eventData.put(AFInAppEventParameterName.REVENUE,110);
AppsFlyerLib.getInstance().logEvent(AppsFlyerTestActivity.this, AFInAppEventType.PURCHASE,eventData);
Multiplos itens são enviados como uma matriz em postbacks. No momento, o Facebook e o Twitter não conseguem processar parâmetros de matriz corretamente. Para ajudar, a AppsFlyer soma a quantidade de itens (af_quantity) em vez de enviá-los para eles como uma matriz (por exemplo, no exemplo acima o Facebook receberia af_quantity=4).
Observação
Multiple items can be used with the following in-app events:
af_add_to_cart, af_add_to_wishlist, af_tutorial_completion, af_initiated_checkout, af_purchase, af_rate, af_spent_credits, af_content_view, af_travel_booking, af_update
Eventos complexos no aplicativo
Eventos complexos no aplicativo possibilitam o envio de vários eventos em uma única chamada da API.
They are useful when you want to see several closely related user actions grouped together, e.g. adding several products to the basket in a single session.
Example:
{
"af_revenue":"50.87",
"af_currency":"USD",
"af_receipt_id":"57601333",
"product":[
{
"af_content_id":"1164_8186",
"af_price":"8.97",
"af_quantity":"1"
},
{
"af_content_id":"1164_8186",
"af_price":"8.97",
"af_quantity":"1"
},
{
"af_content_id":"1164_8186",
"af_price":"8.97",
"af_quantity":"1"
},
{
"af_content_id":"1177_8185",
"af_price":"8.97",
"af_quantity":"1"
},
{
"af_content_id":"0153_9077",
"af_price":"14.99",
"af_quantity":"1"
}
]
}
Atenção
Eventos complexos no aplicativo causam problemas de postback com o Facebook e Criteo. Se você precisar que o evento seja totalmente mapeado com o Facebook e o Criteo, você deve enviar eventos separados por ação do usuário, por exemplo enviar um evento de Adicionar ao carrinho para cada item adicionado. Usando os dados brutos de eventos no aplicativo, você pode agrupar esses eventos.
Registro de eventos offline
- O SDK envia os eventos aos servidores da AppsFlyer e aguarda uma resposta.
- Se o SDK não receber 200 como resposta, o evento é armazenado no cache.
- Quando o próximo 200 como resposta for recebido, o evento armazenado é reenviado ao servidor.
- Se houver vários eventos no cache, eles são enviados para o servidor, um imediatamente após o outro.
Observação
O cache do SDK pode armazenar até 40 eventos, o que significa que apenas os primeiros 40 eventos que acontecem off-line são salvos. Tudo o que vier posteriormente até a próxima resposta 200 é descartado.
A hora do evento que aparece nos dados brutos é a hora em que o evento é enviado à AppsFlyer após o dispositivo ficar online novamente. Não é a hora real do evento.
Desduplicação de eventos
A AppsFlyer possui um mecanismo de desduplicação de eventos in-app. Ele verifica todos os eventos in-app para ver se há um evento in-app idêntico que veio do mesmo appsflyer_id menos de 10 segundos antecipadamente. Se tal evento for encontrado, o mecanismo remove a duplicação.
Dois eventos são considerados idênticos se os seguintes campos em ambos eventos forem iguais:
- Nome do evento
- Valor do evento
- ID do aplicativo
- ID da AppsFlyer
Observação
A desduplicação funciona somente para eventos in-app que forem enviados do SDK.
Os eventos in-app S2S não são desduplicados.
Nesta seção, listamos conjuntos abrangentes de eventos in-app para várias verticais. Cada vertical nesta seção contém eventos in-app cuidadosamente selecionados para os quais recomendamos registro.
Para iniciar o registro de eventos in-app:
- Selecione sua vertical.
- Selecione os eventos in-app que você deseja registrar. Recomendamos registrar todos os eventos listados em sua vertical.
- Copie os trechos de código de cada evento in-app e implemente em seu aplicativo quando aplicável.
Quer saber mais sobre os eventos in-app mais populares mapeados por tamanho do aplicativo e por vertical? Clique aqui.
Jogos
Aplicativos de jogos incluem gêneros como arcade, estratégia, educacional e, até mesmo, jogos de azar. Os eventos que recomendamos registrar em aplicativos de jogos são: compras in-app, compartilhamento em mídias sociais e convites para amigos. Eventos adicionais podem ser progredir de nível em um jogo e concluir um tutorial no jogo. Confira alguns exemplos de como o registro desses eventos pode beneficiá-lo:
- O registro de compras in-app pode ajudar você a saber quais ofertas os usuários mais compram.
- O registro de progresso de nível ajuda você a saber o grau de engajamento de seus usuários.
- O registro de compartilhamentos e convites ajuda você a saber quantos usuários compartilham e convidam outros jogadores e em quais plataformas de mídias sociais eles fazem isso.
Dica
Os eventos discutidos aqui também são relevantes para aplicativos de jogos que são executados nas seguintes plataformas:
- Android Smart TV
- Apple TV (tvOS)
- Amazon Fire TV
- Xbox
Login
Nome do evento: af_login
Propósito
Este evento pode ajudar você a compreender a retenção de seus usuários registrados.
Lógica do ativador
Acione este evento sempre que o usuário fizer login.
Recommended fields
This event can be sent without any additional fields.
Exemplos de código
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.LOGIN, null);
[[AppsFlyerLib shared] logEvent:AFEventLogin withValues: nil];
AppsFlyerLib.shared().logEvent(AFEventLogin, withValues: nil);
AppsFlyer.sendEvent ("af_login", null);
Concluir cadastro
Nome do evento: af_complete_registration
Propósito
Você pode gravar o registro de usuários e compará-lo com outros dados para saber mais sobre seus usuários. Com a gravação de eventos de registro de usuários é possível:
- Saber quantos usuários instalaram o aplicativo, mas nunca se cadastraram.
- Saber quais métodos de cadastro seus usuários preferem.
Lógica do ativador
A melhor forma de gravar este evento é acioná-lo quando o usuário concluir o processo de cadastro.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_registration_method | string | email, facebook | O tipo de método de cadastro |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REGSITRATION_METHOD, "Facebook");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.COMPLETE_REGISTRATION, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventCompleteRegistration
withValues: @{
AFEventParamRegistrationMethod: @"Facebook"
}];
AppsFlyerLib.shared().logEvent(AFEventCompleteRegistration,
withValues: [
AFEventParamRegistrationMethod: "Facebook"
]);
Dictionary<string, string> CompletedRegistrationEvent = new Dictionary<string, string>();
CompletedRegistrationEvent.Add("af_registration_method", "Facebook");
AppsFlyer.sendEvent ("af_complete_registration", CompletedRegistrationEvent);
Compra
Nome do evento: af_purchase
Propósito
Muitos aplicativos de jogos permitem que os usuários comprem itens, por exemplo, moedas, joias, armas, etc. O evento Compra ajuda você a registrar compras in-app feitas por usuários. Com o registro de compras é possível:
- Descobrir o LTV de seus usuários e o ROI de suas campanhas em redes e agências de anúncios.
- Descobrir quais ofertas são mais populares entre seus usuários.
- Fazer referência cruzada de campanhas com itens comprados para otimizar o direcionamento de campanhas.
Lógica do ativador
Para registrar este evento de forma adequada, é necessário acioná-lo quando o usuário acessar a página de agradecimento após uma compra bem-sucedida.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_revenue | float | 2000 | A receita estimada de uma compra |
af_currency | string | THB / USD | O código da moeda |
af_quantity | int | 2 | O número de itens comprados |
af_content_id | string | 001, 092 | A ID do item |
af_order_id | string | 9277 | A ID do pedido |
af_receipt_id | string | 9277 | A ID do recibo |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REVENUE, 200);
eventValue.put(AFInAppEventParameterName.CURRENCY, "USD");
eventValue.put(AFInAppEventParameterName.QUANTITY, 2);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "092");
eventValue.put(AFInAppEventParameterName.ORDER_ID, "9277");
eventValue.put(AFInAppEventParameterName.RECEIPT_ID, "9277");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),AFInAppEventType.PURCHASE, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventPurchase
withValues: @{
AFEventParamRevenue: @200,
AFEventParamCurrency: @"USD",
AFEventParamQuantity: @2,
AFEventParamContentId: @"092",
AFEventParamOrderId: @"9277",
AFEventParamReceiptId: @"9277"
}];
AppsFlyerLib.shared().logEvent(AFEventPurchase,
withValues: [
AFEventParamRevenue: 200,
AFEventParamCurrency: "THB",
AFEventParamQuantity: 2,
AFEventParamContentId: "092",
AFEventParamOrderId: "9277",
AFEventParamReceiptId: "9277"
]);
Dictionary<string, string> purchaseEvent = new Dictionary<string, string>();
purchaseEvent.Add("af_revenue", "200");
purchaseEvent.Add("af_currency", "USD");
purchaseEvent.Add("af_quantity", "2");
purchaseEvent.Add("af_content_id", "001");
purchaseEvent.Add("af_order_id", "9277");
purchaseEvent.Add("af_receipt_id", "9277");
AppsFlyer.sendEvent ("af_purchase", purchaseEvent);
Nível atingido
Nome do evento: af_level_achieved
Propósito
Um dos principais objetivos dos usuários é subir de nível nos jogos. Geralmente, subir de nível desbloqueia novos recursos e fases em um jogo. Isso incentiva os usuários a continuar jogando. O evento Nível alcançado ajuda você a registrar o engajamento de usuários em seu aplicativo. Com o registro de níveis alcançados pelos usuários é possível:
- Determinar quais campanhas geram os usuários mais ativos.
- Ver quais tipos de usuários estão mais ativos e engajados.
- Associar a atividade geral do usuário com medidas como receita, etc.
Lógica do ativador
Para registrar este evento corretamente, é necessário acioná-lo quando o usuário acessar a página de conclusão de nível.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_level | int | 3 | O nível que o usuário alcançou |
af_score | int | 500 | A pontuação associada à conquista do usuário. |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.LEVEL, 10);
eventValue.put(AFInAppEventParameterName.SCORE, 500);
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.LEVEL_ACHIEVED, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventLevelAchieved
withValues: @{
AFEventParamLevel: @10,
AFEventParamScore: @500
}];
AppsFlyerLib.shared().logEvent(AFEventLevelAchieved,
withValues: [
AFEventParamLevel: 3,
AFEventParamScore: 500
]);
Dictionary<string, string> LevelAchievedEvent = new Dictionary<string, string>();
LevelAchievedEvent.Add("af_level", "10");
LevelAchievedEvent.Add("af_score", "500");
AppsFlyer.sendEvent ("af_level_achieved", LevelAchievedEvent);
Conclusão do tutorial
Nome do evento: af_tutorial_completion
Propósito
Tutoriais ajudam seus usuários a fazer um melhor uso de seu aplicativo. Com o registro de conclusão de tutoriais é possível:
- Saber em quais assuntos os usuários podem ter dificuldade.
- Saber o que os tutoriais não estão executando bem e aprimorá-los.
Lógica do ativador
Há dois cenários onde este evento deve ser acionado:
- When a user completes the tutorial. An event will be sent with a field indicating successful tutorial completion.
- When a user starts the tutorial but quits without completing it. When the user quits, an event is sent with a field indicating that the user didn't complete the tutorial.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_success | booleano | verdadeiro | Se o usuário concluiu ou não o tutorial |
af_tutorial_id | string | 3 | A ID do tutorial |
af_content | string | Getting Started | O nome do tutorial |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.SUCCESS, true);
eventValue.put(AFInAppEventParameterName.TUTORIAL_ID, "3");
eventValue.put(AFInAppEventParameterName.CONTENT, "Getting Started");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.TUTORIAL_COMPLETION, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventTutorial_completion
withValues: @{
AFEventParamSuccess: @TRUE,
AFEventParamTutorialId: @"3",
AFEventParamContent: @"Getting Started"
}];
AppsFlyerLib.shared().logEvent(AFEventTutorial_completion,
withValues: [
AFEventParamSuccess: true,
AFEventParamTutorialId: "3",
AFEventParamContent: "Getting started"
]);
Dictionary<string, string> TutorialCompletiondEvent = new Dictionary<string, string>();
TutorialCompletiondEvent.Add("af_success", "true");
TutorialCompletiondEvent.Add("af_tutorial_id", "3");
TutorialCompletiondEvent.Add("af_tutorial_content", "Getting started");
AppsFlyer.sendEvent ("af_tutorial_completion", TutorialCompletiondEvent);
Compartilhar
Nome do evento: af_share
Propósito
Usuários gostam de compartilhar suas conquistas em jogos nos sites de mídias sociais. Compartilhar cria um reconhecimento da marca e pode incentivar os usuários a baixar e instalar seu aplicativo. Com o registro do evento Compartilhar é possível compreender quando é mais provável que os usuários compartilhem o aplicativo com os amigos.
Dica
O SDK da AppsFlyer possui métodos dedicados ao registro de compartilhamentos e convites.
Lógica do ativador
Para registrar este evento de forma adequada, é necessário acioná-lo quando um usuário compartilhar com sucesso em uma mídia social:
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_description | string | New High Score / Level up / Game won | O motivo para compartilhar na mídia social. Pode ser uma nova pontuação, progresso de nível, etc. |
platform | string | Facebook, Whatsapp, Email | A plataforma onde o usuário compartilha |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.DESCRIPTION, "New High Score");
eventValue.put("platform", "Facebook");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.SHARE, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventShare
withValues: @{
AFEventParamDescription: @"New High Score",
@"platform": @"Facebook"
}];
AppsFlyerLib.shared().logEvent(AFEventShare,
withValues: [
AFEventParamDescription: "New High Score",
"platform": "Facebook"
]);
Dictionary<string, string> ShareEvent = new Dictionary<string, string>();
ShareEvent.Add("af_description", "New High Score");
ShareEvent.Add("platform", "Facebook");
AppsFlyer.sendEvent ("af_share", ShareEvent);
Convite
Nome do evento: af_invite
Propósito
Geralmente, usuários convidam amigos para baixar e instalar um aplicativo. Muitas vezes, os usuários desejam compartilhar o aplicativo, e outras vezes recebem recompensas por convidar outras pessoas. Você pode registrar convites usando o evento Convite. Com o registro deste evento é possível:
- Saber em quais sites de mídias sociais os usuários geralmente enviam convites a amigos.
- Saber quantos usuários convidaram amigos para baixar e instalar o aplicativo.
Lógica do ativador
Para registrar este evento de forma adequada, é necessário acioná-lo quando o usuário convida com sucesso um amigo para baixar e instalar o aplicativo.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_description | string | Try this app | O contexto do convite |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.DESCRIPTION, "Try this app");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.INVITE, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventInvite
withValues: @{
AFEventParamDescription: @"Try this app"
}];
AppsFlyerLib.shared().logEvent(AFEventInvite, withValues: [
AFEventParamDescription: "Try this app"
]);
Dictionary<string, string> InviteEvent = new Dictionary<string, string>();
InviteEvent.Add("af_description", "Try this app");
AppsFlyer.sendEvent ("af_invite", InviteEvent);
Bônus reivindicado
Nome do evento: bonus_claimed
Propósito
Com o registro do evento Bônus reivindicado é possível:
- Ver quantos usuários reivindicaram os bônus oferecidos a eles.
- Associar os bônus reivindicados com a atividade e engajamento dos usuários.
Lógica do ativador
Para registrar este evento de forma adequada, é necessário acioná-lo quando o usuário reivindicar um bônus e ele for atualizado em sua conta.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
bonus_type | string | coins | O tipo de bônus que o usuário reivindica. |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put("bouns_type", "coins");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "bonus_claimed", eventValue);
[[AppsFlyerLib shared] logEvent:@"bonus_claimed"
withValues: @{
@"bonus_type": @"coins"
}];
AppsFlyerLib.shared().logEvent("bonus_claimed", withValues: [
"bouns_type": "coins"
]);
Dictionary<string, string> BonusClaimedEvent = new Dictionary<string, string>();
BonusClaimedEvent.Add("bouns_type", "coins");
AppsFlyer.sendEvent ("bonus_type", BonusClaimedEvent);
E-commerce
Aplicativos de e-commerce permitem que os compradores pesquisem e comprem mercadorias on-line. Um dos principais recursos dos aplicativos de e-commerce é permitir que os compradores comparem preços para obter as melhores ofertas. Recomendamos a implementação do registro de eventos em seu aplicativo de e-commerce. O registro de eventos pode ajudar você a obter importantes insights quanto ao que as pessoas procuram e compram.
Recomendamos registrar os eventos de pesquisas, compras, adições ao carrinho e adições à lista de desejos. Com o registro desses eventos é possível:
- Destacar as categorias mais populares.
- Saber o que os usuários estão pesquisando.
- Registrar quantos compradores concluíram o checkout.
- Saber quantos compradores são compradores recorrentes e quantos estão comprando apenas uma vez.
Concluir cadastro
Nome do evento: af_complete_registration
Propósito
O propósito do evento Registro completo é permitir que você registre quantos usuários se cadastraram após baixar e instalar o aplicativo. Também é possível registrar o método de cadastro, ou seja, Facebook, e-mail, etc.
Lógica do ativador
Acione este evento após um usuário se registrar com sucesso.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_registration_method | string | Facebook, Google, email | O método que o usuário escolhe para se cadastrar |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REGSITRATION_METHOD,"Facebook");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),AFInAppEventType.COMPLETE_REGISTRATION, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventCompleteRegistration
withValues: @{
AFEventParamRegistrationMethod: @"Facebook"
}];
AppsFlyerLib.shared().logEvent(AFEventCompleteRegistration,
withValues: [
AFEventParamRegistrationMethod: "Facebook"
]);
Dictionary<string, string> CompleteRegistrationEvent = new Dictionary<string, string>();
CompleteRegistrationEvent.Add("af_registration_method", "Facebook");
AppsFlyer.sendEvent("af_complete_registration", CompleteRegistrationEvent);
Login
Nome do evento: af_login
Propósito
O evento Login permite que você registre quantos usuários fizeram login em suas contas. Com o evento de login é possível registrar:
- Quantos usuários estão ativos.
- Quando os usuários são mais ativos.
Lógica do ativador
Acione este evento quando o usuário fizer login com sucesso.
Recommended fields
This event can be sent with no additional fields.
Exemplos de código
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.LOGIN, null);
[[AppsFlyerLib shared] logEvent:AFEventLogin withValues: nil];
AppsFlyerLib.shared().logEvent(AFEventLogin, withValues: nil);
AppsFlyer.sendEvent("af_login", null);
Pesquisar
Nome do evento: af_search
Propósito
Com o registro de eventos Search é possível saber o que os usuários estão procurando. Também é possível saber quais resultados de pesquisa são mais relevantes para eles. Além disso, você pode registrar quais resultados de pesquisam levam à compra.
Lógica do ativador
Você deve acionar este evento em um dos dois cenários:
- Quando o usuário clica no botão de pesquisa.
- Quando o usuário acessa a página de resultados da pesquisa.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_search_string | string | vestido vermelho, tênis de corrida | O termo de pesquisa |
af_content_list | matriz de strings | 001, 092 | A lista de IDs de conteúdo |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.SEARCH_STRING, "red shoes");
eventValue.put(AFInAppEventParameterName.CONTENT_LIST, new String[] {"001", "092"});
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.SEARCH, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventSearch
withValues: @{
AFEventParamSearchString: @"red shoes",
AFEventParamContentList: @[@"001", @"092"]
}];
AppsFlyerLib.shared().logEvent(AFEventSearch, withValues: [
AFEventParamSearchString: "red shoes",
AFEventParamContentList: ["001", "092"]
]);
Dictionary<string, string> SearchEvent = new Dictionary<string, string>();
SearchEvent.Add("af_search_string", "red shoes");
SearchEvent.Add("af_content_list", "['001', '092']");
AppsFlyer.sendEvent("af_search", SearchEvent);
Exibição de conteúdo
Nome do evento: af_content_view
Propósito
O evento Exibição de conteúdo pode ajudar você a registrar a taxa de visualização de produtos específicos. O registro deste evento pode ajudar você a:
- Correlacionar visualizações de produtos com vendas de produtos.
- Entender quais categorias são mais populares de acordo com as visualizações de produtos.
- Ver a correlação entre a moeda dos compradores e os produtos que eles visualizam.
Lógica do ativador
Você deve acionar este evento quando o usuário visualiza uma página específica de detalhes do produto.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_price | float | 2000 | O preço do produto |
af_content_id | string | 102 | ID do produto |
af_content_type | string | calçados | Categoria de produtos |
af_currency | string | THB, USD | A moeda na página de detalhes do produto |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.PRICE, 2000);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "102";
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "shoes");
eventValue.put(AFInAppEventParameterName.CURRENCY, "USD");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.CONTENT_VIEW, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventContentView
withValues: @{
AFEventParamPrice: @2000,
AFEventParamContentId: @"102",
AFEventParamContentType: @"shoes",
AFEventParamCurrency: @"USD"
}];
AppsFlyerLib.shared().logEvent(AFEventContentView,
withValues: [
AFEventParamPrice: 2000,
AFEventParamContentId: "102",
AFEventParamContentType: "shoes",
AFEventParamCurrency: "USD"
]);
Dictionary<string, string> ContentViewEvent = new Dictionary<string, string>();
ContentViewEvent.Add("af_price", "2000");
ContentViewEvent.Add("af_content_type", "shoes");
ContentViewEvent.Add("af_currency", "USD");
AppsFlyer.sendEvent("af_content_view", ContentViewEvent);
Exibição de lista
Nome do evento: af_list_view
Propósito
É comum em plataformas de e-commerce ter listas que mostram produtos por categoria, por exemplo, produtos recém-adicionados, produtos relacionados, produtos recomendados, etc. O evento Exibição de lista pode ajudar você a registrar quais listas os compradores mais visualizam.
Lógica do ativador
Acione este evento quando o comprador visualizar uma lista específica.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_content_type | string | related, recommended, new arrivals | O tipo de lista |
af_content_list | matriz de strings | 001, 092 | Lista de IDs de conteúdo da categoria |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "related products");
eventValue.put(AFInAppEventParameterName.CONTENT_LIST, new String[] {"001", "092"});
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "af_list_view", eventValue);
[[AppsFlyerLib shared] logEvent:AFEventListView
withValues: @{
AFEventParamContentType: @"related products",
AFEventParamContentList: @[@"001", @"092"]
}];
AppsFlyerLib.shared().logEvent(AFEventListView,
>withValues: [
AFEventParamContentType: "related products",
AFEventParamContentList: ["001", "092"]
]);
Dictionary<string, string> ListViewEvent = new Dictionary<string, string>();
ListViewEvent.Add("af_content_type", "related products");
ListViewEvent.Add("af_content_list", "['001', '092']");
AppsFlyer.sendEvent("af_list_view", ListViewEvent);
Adicionar a lista de desejos
Nome do evento: af_add_to_wishlist
Propósito
Com o registro do evento Adicionar à lista de desejos é possível registrar quais produtos e categorias os compradores adicionam às suas listas de desejos. Ao saber quais produtos geralmente são adicionados às listas de desejo, é possível oferecer esses produtos em promoções ou descontos e incentivar os compradores a comprá-los. Você também pode redirecionar esses usuários de acordo com os produtos que eles adicionam à lista de desejos.
Lógica do ativador
Acione este evento quando o comprador adicionar itens à lista de desejos.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_price | float | 600 | O preço do produto |
af_content_id | string | 300 | ID do produto |
af_content_type | string | shoes, electronics | Categoria de produtos |
af_currency | string | GBP | Moeda mostrada na página de detalhes do produto |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.PRICE, 600);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "300");
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "electronics");
eventValue.put(AFInAppEventParameterName.CURRENCY, "GBP");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.ADD_TO_WISH_LIST, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventAddToWishlist
withValues: @{
AFEventParamPrice: @600,
AFEventParamContentId: @"300",
AFEventParamContentType: @"electronics",
AFEventParamCurrency: @"GBP"
}];
AppsFlyerLib.shared().logEvent(AFEventAddToWishlist,
withValues: [
AFEventParamPrice: 600,
AFEventParamContentId: "300",
AFEventParamContentType: "electronics",
AFEventParamCurrency: "GBP"
]);
Dictionary<string, string> AddToWishListEvent =
new Dictionary<string, string>();
AddToWishListEvent.Add("af_price", "600");
AddToWishListEvent.Add("af_content_id", "300");
AddToWishListEvent.Add("af_content_type", "electronics");
AddToWishListEvent.Add("af_currency", "GBP");
AppsFlyer.sendEvent("af_add_to_wishlist", AddToWishListEvent);
Adicionar ao carrinho
Nome do evento: af_add_to_cart
Propósito
O propósito do evento Adicionar ao carrinho é registrar produtos adicionados ao carrinho. Com o registro deste evento é possível:
- Ver, em média, quantos produtos os compradores adicionam em uma compra.
- Ver o tempo transcorrido entre a adição de dois produtos diferentes.
- Ver quantos compradores abandonam o carrinho.
Lógica do ativador
Acione este evento quando o comprador adicionar um produto ao carrinho.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_price | float | 350, 1000 | Preço do produto |
af_content_id | string | 001, 092 | ID do produto |
af_content_type | string | shirt, shoes | Tipo de produto |
af_currency | string | THB, USD | Moeda do produto |
af_quantity | float | 2, 5 | Quantos itens do mesmo produto foram adicionados ao carrinho |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.PRICE, 350);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "001");
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "shirt");
eventValue.put(AFInAppEventParameterName.CURRENCY, "USD");
eventValue.put(AFInAppEventParameterName.QUANTITY, 2);
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.ADD_TO_CART, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventAddToCart
withValues: @{
AFEventParamPrice: @350,
AFEventParamContentId: @"001",
AFEventParamContentType: @"shirt",
AFEventParamCurrency: @"USD",
AFEventParamQuantity: @2
}];
AppsFlyerLib.shared().logEvent(AFEventAddToCart, withValues: [
AFEventParamPrice: 350,
AFEventParamContentId: "001",
AFEventParamContentType: "shirt",
AFEventParamCurrency: "USD",
AFEventParamQuantity: 2
]);
Dictionary<string, string> AddToCartEvent = new Dictionary<string, string>();
AddToCartEvent.Add("af_price", "350");
AddToCartEvent.Add("af_content_id", "001");
AddToCartEvent.Add("af_content_type", "shirt");
AddToCartEvent.Add("af_currency", "USD");
AddToCartEvent.Add("af_quantity", "2");
AppsFlyer.sendEvent("af_add_to_cart", AddToCartEvent);
Checkout iniciado
Nome do evento: af_initiated_checkout
Propósito
Com o registro do evento Checkout iniciado é possível entender como os compradores agem ao prosseguir para o checkout. Por exemplo, é possível:
- Ver a média de preço quando os compradores finalizam a compra e compará-la com a média de preço no evento de compra.
- Ver se os usuários adicionam ou removem produtos após prosseguir para o checkout.
Lógica do ativador
Acione este evento quando o comprador iniciar o checkout, mas não concluí-lo ainda.
Recommended fields
Dica
Se houver vários produtos de diferentes categorias, use matrizes para enviar os dados.
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_price | float | 4000 | Preço total no carrinho |
af_content_id | string ou matriz de strings | 221, 124 | ID dos produtos no carrinho |
af_content_type | string ou matriz de strings | shirt, pants | Lista de categorias de produtos |
af_currency | string | THB | Moeda no momento do checkout |
af_quantity | int ou matriz de ints | 2, 5 | Total de itens no carrinho |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.PRICE, 350);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "221");
// for multiple product categories, set the param value as: new String {"221", "124"}
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "shirt");
// for multiple product categories,, set the param value as: new String {"shirt", "pants"}
eventValue.put(AFInAppEventParameterName.CURRENCY, "USD");
eventValue.put(AFInAppEventParameterName.QUANTITY, 2);
// for multiple product categories,, set the param value as: new int {2, 5}
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.INITIATED_CHECKOUT, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventInitiatedCheckout
withValues: @{
AFEventParamPrice: @350,
AFEventParamContentId: @"221",
// for multiple product categories, set the param value as: @[@"221", @"124"]
AFEventParamContentType: @"shirt",
// for multiple product categories, set the param value as: @[@"shirt", @"pants"]
AFEventParamCurrency: @"USD",
AFEventParamQuantity: @2
// for multiple product categories, set the param value as: @[@2, @5]
}];
AppsFlyerLib.shared().logEvent(AFEventInitiatedCheckout,
withValues: [AFEventParamPrice: 350,
AFEventParamContentId: "221",
// for multiple product categories, set the param value as: ["221", "124"]*/
AFEventParamContentType: "shirt",
// for multiple product categories, set the param value as: ["shirt", "pants"] AFEventParamCurrency: "USD",
AFEventParamQuantity: 2
//for multiple product categories, set the param value as: [2, 5]
]);
Dictionary<string, string> InitiatedCheckoutEvent = new Dictionary<string, string>();
InitiatedCheckoutEvent.Add("af_price", "350");
InitiatedCheckoutEvent.Add("af_content_id", "001");
InitiatedCheckoutEvent.Add("af_content_type", "shirt");
InitiatedCheckoutEvent.Add("af_currency", "USD");
InitiatedCheckoutEvent.Add("af_quantity", "2");
AppsFlyer.sendEvent ("af_initiated_checkout", InitiatedCheckoutEvent);
Compra
Nome do evento: af_purchase
Propósito
O evento Compra é um dos eventos mais importantes no e-commerce. Com o registro do evento Compra é possível saber muito sobre as tendências de compras em seu aplicativo de e-commerce. Com o registro do evento Compra é possível:
- Saber, no total, quantos usuários são realmente compradores.
- Registrar os compradores mais ativos e redirecionar suas transações de acordo com seu histórico de compras.
- Compreender quais produtos e categorias funcionam bem em termos de compras gerais.
- Registrar a receita gerada a partir de compras em produtos e categorias.
- Registrar a receita gerada em campanhas e fontes de mídia.
Lógica do ativador
Acione este evento quando o comprador finalizar a compra, mas não necessariamente realizar o pagamento dela.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_revenue | float | 1200 | Receita da compra |
af_price | float | 4000 | Montante total da compra |
af_content_id | string | 121, 262 | ID do item |
af_content_type | string | shoes, pants | Categoria do item |
af_currency | string | AUD | Moeda |
af_quantity | int | 2, 5 | Quantidade de itens no carrinho |
af_order_id | string | X123ABC | ID do pedido gerada após a compra. |
af_receipt_id | string | X123ABC | ID do pedido, mas necessário para a integração de retargeting do CRITEO e Google AdWords |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.PRICE, 350);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "221");
// for multiple product categories, set the param value as: // new String {"221", "124"}
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "shirt");
// for multiple product categories,, set the param value as: new String {"shoes", "pants"}
eventValue.put(AFInAppEventParameterName.CURRENCY, "USD");
eventValue.put(AFInAppEventParameterName.QUANTITY, 2);
// for multiple product categories, set the param value as: new int {2, 5}
eventValue.put(AFInAppEventParameterName.RECEIPT_ID, "X123ABC");
eventValue.put("af_order_id", "X123ABC");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.PURCHASE, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventPurchase
withValues: @{
AFEventParamRevenue: @1200,
AFEventParamPrice: @4000,
AFEventParamContentId: @"221",
// for multiple product categories, set the param value as:
// @[@"221", @"124"]
AFEventParamContentType: @"shirt",
// for multiple product categories, set the param value as:
// @[@"shoes", @"pants"]
AFEventParamCurrency: @"USD",
AFEventParamQuantity: @2,
// for multiple product categories, set the param value as:
// @[@2, @5]
AFEventParamOrderId: @"X123ABC",
AFEventParamReceiptId: @"X123ABC"
}];
AppsFlyerLib.shared().logEvent(AFEventPurchase, withValues: [
AFEventParamRevenue: 1200,
AFEventParamPrice: 4000,
AFEventParamContentId: "221",
// for multiple product categories, set the param value as: ["221", "124"],
AFEventParamContentType: "shirt",
// for multiple product categories, set the param value as: ["shoes", "pants"]
AFEventParamCurrency: "USD",
AFEventParamQuantity: 2,
// for multiple product categories, set the param value as: [2, 5]
AFEventParamOrderId: "X123ABC",
AFEventParamReceiptId: "X123ABC"
]);
Dictionary<string, string> PurchaseEvent = new Dictionary<string, string>();
PurchaseEvent.Add("af_revenue", "1200");
PurchaseEvent.Add("af_price", "4000");
PurchaseEvent.Add("af_content_id", "121");
// for multiple product categories, set the param value as: ["221", "124"]
PurchaseEvent.Add("af_content_type", "shoes");
// for multiple product categories, set the param value as: ["shirt", "pants"]
PurchaseEvent.Add("af_currency", "USD");
PurchaseEvent.Add("af_quantity", "2");
// for multiple product categories, set the param value as: [2, 5]
PurchaseEvent.Add("af_order_id", "X123ABC");
PurchaseEvent.Add("af_receipt_id", "X123ABC");
AppsFlyer.sendEvent ("af_purchase", PurchaseEvent);
Compra concluída
Nome do evento: completed_purchase
Propósito
Registrar o evento Compra concluída pode ajudar você a analisar como as compras são realmente pagas integralmente.
Lógica do ativador
Quando um usuário paga pela compra, é possível enviar o evento usando S2S pois o evento ocorre no back-end.
Importante!
É necessário enviar este evento se o pagamento for feito offline, por exemplo, via transferência bancária ou em dinheiro no momento da entrega. Se você enviar este evento, certifique-se de que o evento de compra (af_purchase
) não contêm o parâmetro af_revenue
. Se você enviar os dois eventos com o parâmetro af_revenue
, a receita será duplicada.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_revenue | float | 4000 | Receita gerada a partir da compra |
af_order_id | string | X123ABC | ID do pedido gerada a partir da compra |
af_receipt_id | string | X123ABC | ID do recibo gerada para o comprador |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REVENUE, 4000);
eventValue.put(AFInAppEventParameterName.RECEIPT_ID, "X123ABC");
eventValue.put("af_order_id" "X123ABC");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "completed_purchase", eventValue);
[[AppsFlyerLib shared] logEvent:@"completed_purchase"
withValues: @{
AFEventParamRevenue: @4000,
AFEventParamOrderId: @"X123ABC",
AFEventParamReceiptId: @"X123ABC"
}];
AppsFlyerLib.shared().logEvent("completed_purchase", withValues: [
AFEventParamRevenue: 4000,
AFEventParamOrderId: "X123ABC",
AFEventParamReceiptId: "X123ABC"
]);
Dictionary<string, string> CompletedPurchaseEvent = new Dictionary<string, string>();
CompletedPurchaseEvent.Add("af_revenue", "1200");
CompletedPurchaseEvent.Add("af_order_id", "X123ABC");
CompletedPurchaseEvent.Add("af_receipt_id", "X123ABC");
AppsFlyer.sendEvent ("completed_purchase", CompletedPurchaseEvent);
Remover do carrinho
Nome do evento: remove_from_cart
Propósito
Ao registrar o Remover do carrinho, você pode:
- Ver quais itens os compradores removem do carrinho.
- Ver as categorias de produtos dos itens que os compradores removem do carrinho.
- Comparar os dados do evento Adicionar ao carrinho para obter insights de produtos que não chegam ao checkout.
Lógica do ativador
Acione este evento quando um comprador remover um item do carrinho.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_content_id | string | 521 | Item ou ID do produto |
af_content_type | string | calçados | Item ou categoria de produtos |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "521");
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "shoes");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "remove_from_cart", eventValue);
[[AppsFlyerLib shared] logEvent:@"remove_from_cart"
withValues: @{
AFEventParamContentId: @"521",
AFEventParamContentType: @"shoes",
}];
AppsFlyerLib.shared().logEvent("remove_from_cart", withValues: [
AFEventParamContentId: "521",
AFEventParamContentType: "shoes",
]);
Dictionary<string, string> RemoveFromCartEvent = new Dictionary<string, string>();
RemoveFromCartEvent.Add("af_content_id", "521");
RemoveFromCartEvent.Add("af_content_type", "shoes");
AppsFlyer.sendEvent ("remove_from_cart", RemoveFromCartEvent);
Primeira compra
Nome do evento: first_purchase
Propósito
Este evento é igual ao evento Compra. No entanto, ao contrário do evento Compra, é possível usar o evento Primeira compra para:
- Ver quanto tempo um comprador demora para comprar.
- Ver quais produtos os compradores que compram pela primeira vezes preferem.
- Ver a média de preço e receita de primeiras compras.
Lógica do ativador
Acione este evento quando o usuário concluir sua primeira compra.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_revenue | float | 1200 | Receita da compra |
af_price | float | 4000 | Montante total da compra |
af_content_id | string | 121, 262 | ID do item |
af_content_type | string | shoes, pants | Categoria do item |
af_currency | string | AUD | Moeda |
af_quantity | int | 2, 5 | Quantidade de itens no carrinho |
af_order_id | string | X123ABC | ID do pedido gerada após a compra. |
af_receipt_id | string | X123ABC | ID do pedido, mas necessário para a integração de retargeting do CRITEO e Google AdWords |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.PRICE, 350);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "221");
// for multiple product categories, set the param value as: new String {"221", "124"}
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "shirt");
// for multiple product categories set the param value as: new String {"shoes", "pants"}
eventValue.put(AFInAppEventParameteName.CURRENCY, "USD");
eventValue.put(AFInAppEventParameterName.QUANTITY, 2);
// for multiple product categories, set the param value as: new int {2, 5}
eventValue.put(AFInAppEventParameterName.RECEIPT_ID, "X123ABC");
eventValue.put("af_order_id", "X123ABC");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "first_purchase", eventValue);
[[AppsFlyerLib shared] logEvent:("first_purchase")
withValues: @{
AFEventParamRevenue: @1200,
AFEventParamPrice: @4000,
AFEventParamContentId: @"221",
// for multiple product categories, set the param value as: @[@"221", @"124"]
AFEventParamContentType: @"shirt",
// for multiple product categories, set the param value as: @[@"shoes", @"pants"]
AFEventParamCurrency: @"USD",
AFEventParamQuantity: @2,
// for multiple product categories, set the param value as: @[@2, @5]
AFEventParamOrderId: @"X123ABC",
AFEventParamReceiptId: @"X123ABC"
}];
AppsFlyerLib.shared().logEvent("first_purchase", withValues: [
AFEventParamRevenue: 1200,
AFEventParamPrice: 4000,
AFEventParamContentId: "221",
// for multiple product categories, set the param value as: ["221", "124"]
AFEventParamContentType: "shirt",
// for multiple product categories, set the param value as: ["shoes", "pants"]
AFEventParamCurrency: "USD",
AFEventParamQuantity: 2,
// for multiple product categories, set the param value as: // [2, 5]
AFEventParamOrderId: "X123ABC",
AFEventParamReceiptId: "X123ABC"
]);
Dictionary<string, string> FirstPurchaseEvent = new Dictionary<string, string>();
FirstPurchaseEvent.Add("af_revenue", "1200");
FirstPurchaseEvent.Add("af_price", "4000");
FirstPurchaseEvent.Add("af_content_id", "121");
// for multiple product categories, set the param value as: ["221", "124"]
FirstPurchaseEvent.Add("af_content_type", "shoes");
// for multiple product categories, set the param value as: ["shirt", "pants"]
FirstPurchaseEvent.Add("af_currency", "USD");
FirstPurchaseEvent.Add("af_quantity", "2");
// for multiple product categories, set the param value as: [2, 5]
FirstPurchaseEvent.Add("af_order_id", "X123ABC");
FirstPurchaseEvent.Add("af_receipt_id", "X123ABC");
AppsFlyer.sendEvent ("first_purchase", FirstPurchaseEvent);
Entertainment: streaming
Com a crescente exigência de parte dos usuários por conteúdos sob demanda, o mercado de aplicativos de streaming se tornou muito competitivo. Se você gerencia um aplicativo de streaming de conteúdos sob demanda, recomendamos que você faça o registro de eventos no aplicativo.
Dica
Os eventos discutidos aqui também são relevantes para aplicativos de streaming que são executados em smart TVs, tais como:
- Android Smart TV
- Apple TV (tvOS)
- Amazon Fire TV
Com o registro de eventos em seu aplicativo de streaming é possível:
- Ver quais conteúdos os usuários consomem.
- Analisar e otimizar campanhas de acordo com a demanda por conteúdo.
- Mensurar o engajamento e o uso por parte dos usuários.
Concluir cadastro
Nome do evento: af_complete_registration
Propósito
O propósito do evento Registro completo é permitir que você registre quantos usuários se cadastraram após baixar e instalar o aplicativo. Também é possível registrar o método de cadastro, ou seja, Facebook, e-mail, etc. para saber qual método de cadastro os usuários preferem.
Lógica do ativador
Acione este evento após um usuário se registrar com sucesso.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_registration_method | string | Facebook, Google, email | O método que o usuário escolhe para se cadastrar |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REGSITRATION_METHOD, "Facebook");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.COMPLETE_REGISTRATION, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventCompleteRegistration
withValues: @{
AFEventParamRegistrationMethod: @"Facebook"
}];
AppsFlyerLib.shared().logEvent(AFEventCompleteRegistration,
withValues: [
AFEventParamRegistrationMethod: "Facebook"
]);
Dictionary<string, string> CompleteRegistrationEvent = new Dictionary<string, string>();
CompleteRegistrationEvent.Add("af_registration_method", "Facebook");
AppsFlyer.sendEvent("af_complete_registration", CompleteRegistrationEvent);
Login
Nome do evento: af_login
Propósito
O evento Login permite que você registre quantos usuários fizeram login em suas contas. Com o evento de login é possível registrar:
- Quantos usuários estão ativos.
- Quando os usuários são mais ativos.
Lógica do ativador
Acione este evento quando o usuário fizer login com sucesso.
Recommended fields
This event can be sent with no additional fields.
Exemplos de código
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.LOGIN, null);
[[AppsFlyerLib shared] logEvent:AFEventLogin withValues: nil];
AppsFlyerLib.shared().logEvent(AFEventLogin, withValues: nil);
AppsFlyer.sendEvent("af_login", null);
Iniciar avaliação
Nome do evento: af_start_trial
Propósito
Muitos serviços de streaming oferecem aos usuários um período de avaliação para usufruir dos recursos premium. Ao registrar o evento Iniciar avaliação é possível:
- Saber quantos usuários se inscrevem para um período de avaliação.
- Se a avaliação faz parte de uma promoção ou de uma colaboração com um parceiro, você pode registrar qual promoção induziu o usuário a ativar o período de avaliação.
Lógica do ativador
Acione este evento quando o usuário se inscrever e ativar o período de avaliação.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
trial_method | string | free with new phone, free with carrier, promotion, coupon code | O método para ativar a avaliação |
trial_method_identifier | string |
nome da operadora, por exemplo, Vodafone, nome do parceiro, por exemplo, Facebook, código do cupom, por exemplo, TRA123 |
O identificador do método de avaliação |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put("trial_method", "coupon code");
eventValue.put("trial_method_identifier", "TRA123");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.START_TRIAL, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventStartTrial
withValues: @{
@"trial_method": @"coupon code",
@"trial_method_identifier": @"TRA123"
}]
AppsFlyerLib.shared().logEvent(AFEventStartTrial,
withValues: [
"trial_method": "coupon code",
"trial_method_identifier": "TRA123"
]);
Dictionary<string, string> SubscriptionTrial = new Dictionary<string, string>();
SubscriptionTrial.Add("trial_method ", "coupon code");
SubscriptionTrial.Add("trial_method_identifier", "TRA123");
AppsFlyer.sendEvent("af_start_trial", SubscriptionTrial);
Assinatura
Nome do evento: af_subscribe
Propósito
A assinatura é a base dos serviços de streaming. Com o registro de eventos de assinatura de usuários é possível:
- Ver quais campanhas obtêm os usuários assinantes.
- Compare o número de usuários em avaliação com o número de usuários inscritos.
- Registrar a receita gerada a partir da assinatura e atribuí-la a campanhas e fontes de mídias.
Lógica do ativador
Acione este evento em um dos dois cenários:
- Quando um usuário assinar com sucesso.
- Quando uma assinatura for renovada.
Dica
Consulte o nosso Guia de registro de assinaturas para obter mais informações.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
new_subscription | booleano | true / false | Se a assinatura é nova ou renovada |
af_coupon_code | string | 3MonthsSubscription | O código do cupom (se houver) usado durante a assinatura |
coupon_code_value | string | 10% | Quanto o cupom deduz do preço inicial |
af_revenue | float | 5 | A receita associada à assinatura |
af_currency | string | USD | A moeda do pagamento da assinatura |
subscription_method | string | credit card, e-wallet, PayPal | O método de pagamento usado na assinatura |
expiration_date | string | 2018/07/18 | A data de validade da assinatura |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put("new_subscription", true);
eventValue.put(AFInAppEventParameterName.COUPON_CODE, "3MonthsSubscription");
eventValue.put("coupon_code_value", "10%");
eventValue.put(AFInAppEventParameterName.REVENUE, 5);
eventValue.put(AFInAppEventParameterName.CURRENCY, "USD");
eventValue.put("subscription_method", "");
eventValue.put("expiration_date", "2018/07/18");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.SUBSCRIBE, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventSubscribe
withValues: @{
@"new_subscription": @TRUE,
AFEventParamCouponCode: @"3MonthsSubscription",
@"coupon_code_value": @"10%",
AFEventParamRevenue: @5,
AFEventParamCurrency: @"USD",
@"subscription_method": @"",
@"expiration_date": @"2018/07/18"
}];
AppsFlyerLib.shared().logEvent(AFEventSubscribe,
withValues: [
"new_subscription": true,
AFEventParamCouponCode: "3MonthsSubscription",
"coupon_code_value": "10%",
AFEventParamRevenue: 5,
AFEventParamCurrency: "USD",
"subscription_method": "",
"expiration_date": "2018/07/18"
]);
Dictionary<string, string> Subscription = new Dictionary<string, string>();
Subscription.Add("new_subscription", "true");
Subscription.Add("af_coupon_code", "3MonthsSubscription");
Subscription.Add("coupon_code_value", "10%");
Subscription.Add("af_revenue", "5");
Subscription.Add("af_currency", "USD");
Subscription.Add("subscription_method", "");
Subscription.Add("expiration_date", "2018/07/18");
AppsFlyer.sendEvent("af_subscribe", Subscription);
Reprodução de mídia
Nome do evento: media_play
Propósito
O registro do evento Reprodução de mídias significa acompanhar eventos em que os usuários reproduzem mídias oferecidas por você. Exemplos de mídias: vídeos, música, programas de TV, programas de rádio, entre outras. Se você oferece mais de um tipo de mídia, é possível registrar a proporção de reprodução entre diferentes mídias e tipos de conteúdos. Por exemplo, é possível ver se os usuários reproduzem mais músicas que vídeos. Também é possível ver se os usuários assistem mais a programas de TV do que a filmes. Além do mais, com o registro do evento de reprodução de mídias, é possível:
- Registrar o consumo de mídias por tipo e conteúdo.
- Ver os idiomas dos conteúdos transmitidos mais populares.
- Ver a duração miníma, máxima e média dos conteúdos transmitidos.
Lógica do ativador
Acione este evento após um número predefinido (por exemplo, 2 minutos) de conteúdo transmitido.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_content_type | string | tv show, music | O tipo de conteúdo que é transmitido |
af_content_id | string | 092, E34 | A ID do conteúdo que é transmitido |
af_content | string | Título do conteúdo | O título do conteúdo, por exemplo, o nome da música ou o título e episódio de um programa de TV |
media_duration | float | 5 | A duração |
language | string | en-us, fr, es | O idioma do conteúdo |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "tv show");
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "E34");
eventValue.put(AFInAppEventParameterName.CONTENT, "My Show");
eventValue.put("media_duration", 5);
eventValue.put("language", "en-us");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "media_play", eventValue);
[[AppsFlyerLib shared] logEvent:@"media_play"
withValues: @{
AFEventParamContentType: @"tv show",
AFEventParamContentId: @"E34",
AFEventParamContent: @"My Show",
@"duration": @5,
@"langague": @"en-us"
}];
AppsFlyerLib.shared().logEvent("media_play",
withValues: [
AFEventParamContentType: "tv show",
AFEventParamContentId: "E34",
AFEventParamContent: "My Show",
"media_duration": 5,
"language": "en-us"
]);
Dictionary<string, string> MediaPlay = new Dictionary<string, string>();
MediaPlay.Add("af_content_type", "tv show");
MediaPlay.Add("af_content_id", "E34");
MediaPlay.Add("af_content", "My show");
MediaPlay.Add("media_duration", "5");
MediaPlay.Add("language", "en-us");
AppsFlyer.sendEvent("media_play", MediaPlay);
Minutos de mídia
Nome do evento: media_minutes
Propósito
Minutos de mídia é a quantidade de um determinado item de conteúdo que o usuário consome. Depois da métrica de receita, esta é a métrica mais importante na indústria do streaming. Esta métrica é importante porque permite que você faça uma estimativa do uso do serviço por parte dos usuários. Ela também permite que você entenda qual é o índice total de uso do serviço e quais conteúdos são mais populares. Ao registrar os minutos de mídia (usando o parâmetro minutes_consumed ), você pode:
- Ver quais usuários utilizam bastante seu serviço e quais não.
- Ver quais tipos de mídias e conteúdos são populares.
Lógica do ativador
Acione este evento em um dos dois cenários:
- Quando o usuário finaliza a transmissão de um item de mídia.
- Quando o usuário encerra a transmissão de um item de mídia.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
minutes_consumed | float | 3 | O tempo real de execução da mídia pelo usuário |
af_content_type | string | tv show, music | O tipo de conteúdo que é transmitido |
af_content_id | string | 092, E34 | A ID do conteúdo que é transmitido |
af_content | string | Título do conteúdo | O título do conteúdo, por exemplo, o nome da música ou o título e episódio de um programa de TV |
media_duration | float | 5 | A duração |
language | string | en-us, fr, es | O idioma do conteúdo |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "tv show");
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "E34");
eventValue.put(AFInAppEventParameterName.CONTENT, "My Show");
eventValue.put("media_duration", 5);
eventValue.put("language", "en-us");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),"media_minutes", eventValue);
[[AppsFlyerLib shared] logEvent:@"media_minutes"
withValues: @{
@"minutes_consumed": @3,
AFEventParamContentType: @"tv show",
AFEventParamContentId: @"E34",
AFEventParamContent: @"My Show",
@"duration": @5,
@"langague": @"en-us"
}];
AppsFlyerLib.shared().logEvent("media_minutes", withValues: [
"minutes_consumed": 3,
AFEventParamContentType: "tv show",
AFEventParamContentId: "E34",
AFEventParamContent: "My Show",
"media_duration": 5,
"language": "en-us"
]);
Dictionary<string, string> MediaMinutes =
new Dictionary<string, string>();
MediaMinutes.Add("minutes_consumed", "3");
MediaMinutes.Add("af_content_type", "tv show");
MediaMinutes.Add("af_content_id", "E34");
MediaMinutes.Add("af_content", "My show");
MediaMinutes.Add("media_duration", "5");
MediaMinutes.Add("language", "en-us");
AppsFlyer.sendEvent("media_minutes", MediaMinutes);
Mídia baixada
Nome do evento: media_downloaded
Propósito
O registro de mídias baixadas pode ajudar você a destacar a preferência dos usuários. É possível registrar a reprodução de mídias e o download de mídias e comparar os dois. É possível identificar quais mídias os usuários preferem transmitir e quais mídias eles preferem baixar.
Lógica do ativador
Acione este evento quando o usuário começar a baixar uma mídia.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_content_type | string | tv show, music | O tipo de conteúdo |
af_content_id | string | 092, E34 | A ID do conteúdo |
af_content | string | Título do conteúdo | O título do conteúdo, por exemplo, o nome da música ou o título e episódio de um programa de TV |
media_duration | float | 5 | A duração |
language | string | en-us, fr, es | O idioma do conteúdo |
Exemplos de eCode
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "tv show");
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "E34");
eventValue.put(AFInAppEventParameterName.CONTENT, "My Show");
eventValue.put("media_duration", 5);
eventValue.put("language", "en-us");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "media_downloaded", eventValue);
[[AppsFlyerLib shared] logEvent:@"media_downloaded"
withValues: @{
@"minutes_consumed": @3,
AFEventParamContentType: @"tv show",
AFEventParamContentId: @"E34",
AFEventParamContent: @"My Show",
@"duration": @5,
@"langague": @"en-us"
}];
AppsFlyerLib.shared().logEvent("media_downloaded",
withValues: [
"minutes_consumed": 3,
AFEventParamContentType: "tv show",
AFEventParamContentId: "E34",
AFEventParamContent: "My Show",
"media_duration": 5,
"language": "en-us"
]);
Dictionary<string, string> MediaDownloaded = new Dictionary<string, string>();
MediaDownloaded.Add("minutes_consumed", "3");
MediaDownloaded.Add("af_content_type", "tv show");
MediaDownloaded.Add("af_content_id", "E34");
MediaDownloaded.Add("af_content", "My show");
MediaDownloaded.Add("media_duration", "5");
MediaDownloaded.Add("language", "en-us");
AppsFlyer.sendEvent("media_downloaded", MediaDownloaded);
Mídia salva
Nome do evento: media_saved
Propósito
O registro de mídias salvas pode ajudar você a destacar a preferência dos usuários.
Lógica do ativador
Acione este evento sempre que uma mídia for salva no dispositivo do usuário.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_content_type | string | tv show, music | O tipo de conteúdo |
af_content_id | string | 092, E34 | A ID do conteúdo |
af_content | string | Título do conteúdo | O título do conteúdo, por exemplo, o nome da música ou o título e episódio de um programa de TV |
media_duration | float | 5 | A duração |
language | string | en-us, fr, es | O idioma do conteúdo |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "tv show");
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "E34");
eventValue.put(AFInAppEventParameterName.CONTENT, "My Show");
eventValue.put("media_duration", 5);
eventValue.put("language", "en-us");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "media_saved", eventValue);
[[AppsFlyerLib shared] logEvent:@"media_saved"
withValues: @{
@"minutes_consumed": @3,
AFEventParamContentType: @"tv show",
AFEventParamContentId: @"E34",
AFEventParamContent: @"My Show",
@"duration": @5,
@"langague": @"en-us"
}];
AppsFlyerLib.shared().logEvent("media_saved",
withValues: [
"minutes_consumed": 3,
AFEventParamContentType: "tv show",
AFEventParamContentId: "E34",
AFEventParamContent: "My Show",
"media_duration": 5,
"language": "en-us"]);
Dictionary<string, string> MediaSaved = new Dictionary<string, string>();
MediaSaved.Add("minutes_consumed", "3");
MediaSaved.Add("af_content_type", "tv show");
MediaSaved.Add("af_content_id", "E34");
MediaSaved.Add("af_content", "My show");
MediaSaved.Add("media_duration", "5");
MediaSaed.Add("language", "en-us");
AppsFlyer.sendEvent("media_saved", MediaSaved);
Finance: banking
Aplicativos financeiros e bancários oferecem aos usuários a capacidade de realizar uma ampla gama de objetivos relacionados a finanças, incluindo solicitar novos cartões de crédito ou empréstimos. Os eventos in-app que recomendamos gravar em aplicativos financeiros/bancários incluem aberturas de contas, solicitação de cartão de crédito e de empréstimo. Confira alguns exemplos de como o registro desses eventos pode beneficiá-lo:
- A gravação de solicitações de conta no aplicativo ajuda você a entender o que os usuários da conta mais desejam e oferece ideias para retargeting.
- A gravação de solicitações de cartão de crédito ajuda você a entender quais benefícios os usuários procuram em um cartão de crédito.
- A gravação de solicitações de empréstimos ajuda você a entender para qual finalidade os usuários precisam de assistência financeira e quanta assistência eles querem.
Login
Nome do evento: af_login
Propósito
Este evento pode ajudar você a compreender a retenção de seus usuários registrados.
Lógica do ativador
Acione este evento sempre que o usuário fizer login.
Recommended fields
This event can be sent without any additional fields.
Exemplos de código
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.LOGIN, null);
[[AppsFlyerLib shared] logEvent:AFEventLogin withValues: nil];
AppsFlyerLib.shared().logEvent(AFEventLogin, withValues: nil);
AppsFlyer.sendEvent ("af_login", null);
Concluir cadastro
Nome do evento: af_complete_registration
Propósito
Você pode gravar o registro de usuários e compará-lo com outros dados para saber mais sobre seus usuários. Com a gravação de eventos de registro de usuários é possível:
- Saber quantos usuários instalaram o aplicativo, mas nunca se cadastraram.
- Saber quais métodos de cadastro seus usuários preferem.
Lógica do ativador
A melhor forma de gravar este evento é acioná-lo quando o usuário concluir o processo de cadastro.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_registration_method | string | email, facebook | O tipo de método de cadastro |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.registration_method, "Facebook");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.complete_registration, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventCompleteRegistration
withValues: @{
AFEventParamRegistrationMethod: @"Facebook"
}];
AppsFlyerLib.shared().logEvent(AFEventCompleteRegistration,
withValues: [
AFEventParamRegistrationMethod: "Facebook"
]);
Dictionary<string, string> CompletedRegistrationEvent = new Dictionary<string, string>();
CompletedRegistrationEvent.Add("af_registration_method", "Facebook");
AppsFlyer.sendEvent ("af_complete_registration", CompletedRegistrationEvent);
Registro verificado
Nome do evento: registration_verified
Propósito
Você pode gravar um registro aceito e compará-lo com outros dados para saber mais sobre seus usuários. Por exemplo, ao gravar eventos com registro verificado, você pode saber quantos usuários se cadastram, mas não são aceitos.
Lógica do ativador
A melhor maneira de gravar esse evento é dispará-lo quando o registro é verificado.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
submit_registration | string | email, facebook | O tipo de método de cadastro verificado. Não preencha com informações pessoais identificáveis (PII). |
Exemplos de código
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("submit_registration", "facebook");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "registration_verified", eventValue);
[[AppsFlyerLib shared] logEvent:@"registration_verified"
withValues: @{
@"submit_registartion": @"facebook"
}];
AppsFlyerLib.shared().logEvent("registration_verified",
withValues: [
"submit_registration": "facebook"
])
Dictionary<string, string> RegistrationVerifiedEvent = new Dictionary<string, string>();
RegistrationVerifiedEvent.Add("submit_registration", "facebook");
AppsFlyer.sendEvent ("registration_verified", RegistrationVerifiedEvent);
Enviar solicitação de conta
Nome do evento: submit_account_application
Propósito
Você pode gravar uma solicitação de conta e compará-la com outros dados para saber mais sobre seus usuários. Por exemplo, ao gravar eventos de registro de usuário, você pode saber quantos usuários se cadastram mas não solicitam a abertura de uma conta.
Lógica do ativador
A melhor forma de gravar este evento é dispará-lo quando o usuário concluir o processo de solicitação da conta.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
account_type | string | poupança | O tipo de conta solicitada. |
application_method | string | aplicativo | Onde a solicitação foi feita. |
PII_type | string | passaporte | Tipo de ID usada durante a solicitação. |
Exemplos de código
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("account_type", "savings");
eventValue.put("application_method", "app");
eventValue.put("PII_type", "passport");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "submit_account_application", eventValue);
[[AppsFlyerLib shared] logEvent:@"submit_account_application"
withValues: @{
@"account_type": @"savings",
@"application_method": @"app",
@"PII_type": @"passport"
}];
AppsFlyerLib.shared().logEvent("submit_account_application",
withValues: [
"account_type": "savings",
"application_method": "app",
"PII_type": "passport"
])
Dictionary<string, string> SubmitAccountApplicationEvent = new Dictionary<string, string>();
SubmitAccountApplicationEvent.Add("account_type", "savings");
SubmitAccountApplicationEvent.Add("application_method", "app");
SubmitAccountApplicationEvent.Add("PII_type", "passport");
AppsFlyer.sendEvent ("submit_account_applicationn", SubmitAccountApplicationEvent);
Sucesso na abertura da conta
Nome do evento: open_account_success
Propósito
Você pode gravar solicitações de conta que foram aceitas e compará-las com outros dados para saber mais sobre seus usuários. Por exemplo, ao gravar solicitações de conta bem-sucedidas, você pode saber quantos usuários solicitam contas mas não são aceitos, e tentar melhorar o funil ou redirecionar esses usuários mais tarde.
Lógica do ativador
A melhor forma de gravar este evento é dispará-lo quando a solicitação do usuário é aceita e a conta é aberta.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
account_type | string | poupança | O tipo de conta aberta. |
application_method | string | aplicativo | Quando a solicitação foi feita. |
PII_type | string | documento de identidade | Tipo de ID usada durante a solicitação. |
Exemplos de código
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("account_type", "savings");
eventValue.put("application_method", "app");
eventValue.put("PII_type", "identification card");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "open_account_suucess", eventValue);
[[AppsFlyerLib shared] logEvent:@"open_account_success"
withValues: @{
@"account_type": @"savings",
@"application_method": @"app",
@"PII_type": @"identification card"
}];
AppsFlyerLib.shared().logEvent("open_account_success",
withValues: [
"account_type": "savings",
"application_method": "app",
"PII_type": "identification card"
])
Dictionary<string, string> OpenAccountSuccessEvent = new Dictionary<string, string>();
OpenAccountSuccessEventEvent.Add("account_type", "savings");
OpenAccountSuccessEventEvent.Add("application_method", "app");
OpenAccountSuccessEventEvent.Add("PII_type", "identification_card");
AppsFlyer.sendEvent ("open_account_success", OpenAccountSuccessEvent);
Abertura da conta rejeitada
Nome do evento: open_account_rejected
Propósito
Você pode gravar solicitações de conta que foram rejeitadas e compará-las com outros dados para saber mais sobre seus usuários. Por exemplo, ao gravar solicitações de conta malsucedidas, você pode saber quantos usuários solicitam contas, mas não são aceitos, e tentar melhorar o funil ou redirecionar esses usuários mais tarde.
Lógica do ativador
A melhor forma de gravar este evento é acioná-lo quando o usuário concluir o processo de cadastro.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
account_type | string | poupança | O tipo de conta solicitada. |
Exemplos de código
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("account_type", "savings");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "open_account_rejected", eventValue);
[[AppsFlyerLib shared] logEvent:@"open_account_rejected"
withValues: @{
@"account_type": @"savings"
}];
AppsFlyerLib.shared().logEvent("open_account_rejected",
withValues: [
"account_type": "savings"
])
Dictionary<string, string> OpenAccountRejectedEvent = new Dictionary<string, string>();
OpenAccountRejectedEvent.Add("account_type", "savings");
AppsFlyer.sendEvent ("open_account_rejected", OpenAccountRejectedEvent);
Solicitação de cartão de crédito
Nome do evento: submit_credit_card_application
Propósito
Você pode gravar uma solicitação de cartão de crédito e compará-la com outros dados para saber mais sobre seus usuários. Por exemplo, ao gravar solicitações de cartão de crédito do usuário, você pode saber quantos usuários solicitam mas não são aceitos, e usar essas informações para melhorar seu funil ou redirecioná-los mais tarde.
Lógica do ativador
Para gravar esse evento corretamente, você deve dispará-lo quando o usuário enviar uma solicitação para um novo cartão de crédito.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
credit_card_type | string | cartão ouro | O tipo de cartão de crédito solicitado. |
application_method | string | aplicativo | Onde a solicitação foi feita. |
PII_type | string | passaporte | Tipo de ID usada durante a solicitação. |
Exemplos de código
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("credit_card_type", "gold card");
eventValue.put("application_method", "app");
eventValue.put("PII_type", "passport");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "submit_credit_card_application", eventValue);
[[AppsFlyerLib shared] logEvent:@"submit_credit_card_application"
withValues: @{
@"credit_card_type": @"gold_card",
@"application_method": @"app",
@"PII_type": @"passport"
}];
AppsFlyerLib.shared().logEvent("submit_credit_card_application",
withValues: [
"credit_card_type": "gold_card",
"application_method": "app",
"PII_type": "passport"
])
Dictionary<string, string> SubmitCreditCardApplicationEvent = new Dictionary<string, string>();
SubmitCreditCardApplicationEvent.Add("credit_card_type", "gold_card");
SubmitCreditCardApplicationEvent.Add("application_method", "app");
SubmitCreditCardApplicationEvent.Add("PII_type", "passport");
AppsFlyer.sendEvent ("submit_credit_card_application", SubmitCreditCardApplicationEvent);
Sucesso na solicitação de cartão de crédito
Nome do evento: credit_card_application_success
Propósito
Você pode gravar uma solicitação de cartão de crédito aceita e compará-la com outros dados para saber mais sobre seus usuários. Por exemplo, ao gravar solicitações de cartão de crédito bem-sucedidas, você pode saber quantos usuários solicitam mas não são aceitos, e usar essas informações para melhorar seu funil ou redirecionar os usuários aceitos para outros cartões de crédito.
Lógica do ativador
Para gravar esse evento corretamente, você deve dispará-lo quando a solicitação do cartão de crédito do usuário for aceita.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
credit_card_type | string | cartão ouro | O tipo de cartão de crédito solicitado. |
application_method | string | aplicativo | Onde a solicitação foi feita. |
PII_type | string | documento de identidade | Tipo de ID usada durante a solicitação. |
Exemplos de código
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("credit_card_type", gold card);
eventValue.put("application_method", app);
eventValue.put("PII_type", identification card);
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "credit_card_application_success", eventValue);
[[AppsFlyerLib shared] logEvent:@"credit_card_application_success"
withValues: @{
@"credit_card_type": @"gold card",
@"application_method": @"app",
@"PII_type": @"identification card"
}];
AppsFlyerLib.shared().logEvent("credit_card_application_success",
withValues: [
"credit_card_type": "gold card",
"application_method": "app",
"PII_type": "identification card"
])
Dictionary<string, string> CreditCardApplicationSuccessEvent = new Dictionary<string, string>();
CreditCardApplicationSuccessEvent.Add("redit_card_type", "gold card");
CreditCardApplicationSuccessEvent.Add("application_method", "app");
CreditCardApplicationSuccessEvent.Add("PII_type", "identificationcard");
AppsFlyer.sendEvent ("credit_card_application_success", CreditCardApplicationSuccessEvent);
Solicitação de cartão de crédito rejeitada
Nome do evento: credit_card_application_rejected
Propósito
Você pode gravar uma solicitação rejeitada de cartão de crédito e compará-la com outros dados para saber mais sobre seus usuários. Por exemplo, ao gravar solicitações de cartão de crédito malsucedidas, você pode saber quantos usuários solicitam mas não são aceitos, e usar essas informações para melhorar seu funil ou redirecionar os usuários para outros cartões de crédito.
Lógica do ativador
Para gravar esse evento corretamente, você deve dispará-lo quando a solicitação do cartão de crédito do usuário for rejeitada.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
credit_card_type | string | cartão ouro | O tipo de cartão de crédito solicitado. |
Exemplos de código
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("credit_card_type", "gold card");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "credit_card_application_rejected", eventValue);
[[AppsFlyerLib shared] logEvent: @"credit_card_application_rejected"
withValues: @{
"credit_card_type: @"gold card"
}];
AppsFlyerLib.shared().logEvent("credit_card_application_rejected",
withValues: [
"credit_card_type: "gold card"
])
Dictionary<string, string> CreditCardApplicationRejectedEvent = new Dictionary<string, string>();
CreditCardApplicationRejectedEvent.Add("credit_card_type", "gold card");
AppsFlyer.sendEvent ("credit_card_application_rejected", CreditCardApplicationRejectedEvent);
Ativação do cartão de crédito
Nome do evento: credit_card_activation
Propósito
Você pode gravar quando um usuário ativa seu novo cartão de crédito e comparar com outros dados para saber mais sobre seus usuários. Por exemplo, ao gravar ativações de cartão de crédito, você pode saber quantos usuários recebem um cartão de crédito mas não chegam a ativá-lo, e usar essas informações para melhorar seu funil ou redirecionar os usuários.
Lógica do ativador
Para gravar corretamente esse evento, você deve dispará-lo quando um usuário ativar seu novo cartão de crédito.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
credit_card_type | string | cartão ouro | O tipo de cartão de crédito solicitado. |
application_method | string | aplicativo | Onde a solicitação foi feita. |
PII_type | string | documento de identidade | Tipo de ID usada durante a solicitação. |
Exemplos de código
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("credit_card_type", gold card);
eventValue.put("application_method", app);
eventValue.put("PII_type", identification card);
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "credit_card_activation", eventValue);
[[AppsFlyerLib shared] logEvent: @"credit_card_activation"
withValues: @{
@"credit_card_type": @"gold card",
@"application_method: @"app",
@"PII_type": @"identification card"
}];
AppsFlyerLib.shared().logEvent("credit_card_activation",
withValues: [
"credit_card_type": "gold card",
"application_method": "app",
"PII_type": "identification card"
])
Dictionary<string, string> CreditCardActivationEvent = new Dictionary<string, string>();
CreditCardActivationEvent.Add("credit_card_type", "gold card");
CreditCardActivationEvent.Add(application_method", "app");
CreditCardActivationEvent.Add(PII_type", "identification_card");
AppsFlyer.sendEvent ("credit_card_activation", CreditCardActivationEvent);
Enviar pedido de empréstimo
Nome do evento: submit_loan_application
Propósito
O propósito deste evento é ajudar você a registrar pedidos de empréstimos. Com o registro do evento Enviar pedido de empréstimo é possível:
- Registrar o número total de pedidos de empréstimo em seu aplicativo.
- Saber o valor máximo, mínimo e médio em pedidos de empréstimo.
- Ver os tipos de empréstimo que as pessoas solicitam.
Lógica do ativador
Acione este evento quando o usuário enviar um pedido de empréstimo com sucesso.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
loan_id | string | 1735102 | A ID do empréstimo |
loan_type | string | moradia | O propósito do empréstimo. |
loan_amount | float | 1000 | O valor solicitado. |
loan_period | string | 3 months | O período do empréstimo. |
Exemplos de código
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("loan_id", "1735102");
eventValue.put("loan_type", "housing");
eventValue.put("loam_amount", "1000");
eventValue.put("loan_period", "3 months");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),"submit_loan_application", eventValue);
[[AppsFlyerLib shared] logEvent: @"submit_loan_application"
withValues: @{
@"loan_id": @"1735102",
@"loan_type": @"housing",
@"loan_amount": @"1000",
@"loan_period": @"3 months"
}];
AppsFlyerLib.shared().logEvent("submit_loan_application",
withValues: [
"loan_id": "1735102",
"loan_type": "housing",
"loan_amount": "1000",
"loan_period": "3 months"
])
Dictionary<string, string> SubmitLoanApplication = new Dictionary<string, string>();
SubmitLoanApplication.Add("loan_id", "1735102");
SubmitLoanApplication.Add("loan_type", "housing");
SubmitLoanApplication.Add("loan_amount", "1000");
SubmitLoanApplication.Add("loan_period", "3 months");
AppsFlyer.sendEvent("submit_loan_application", SubmitLoanApplication);
Empréstimo aceito
Nome do evento: loan_accepted
Propósito
Com o registro do evento Empréstimo aceito é possível saber mais sobre as tendências em empréstimos e outras métricas:
- Você pode ver quais tipos de empréstimos são aceitos.
- É possível verificar quais valores solicitados são aceitos.
- É possível verificar quais credores aceitam mais empréstimos, quais tipos e quais valores.
Lógica do ativador
Acione este evento quando um empréstimo for aceito.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
loan_id | string | 1735102 | A ID do empréstimo |
loan_type | string | moradia | O propósito do empréstimo. |
loan_amount | float | 1000 | O valor solicitado. |
loan_period | string | 3 months | O período do empréstimo. |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put("loan_id", "1735102");
eventValue.put("loam_amount", "1000");
eventValue.put("loan_type", "3 months");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),"loan_accepted" , eventValue);
[[AppsFlyerLib shared] logEvent: @"loan_accepted"
withValues: @{
@"loan_id": @"1735102",
@"loan_amount": @"1000",
@"loan_type": @"3 months"
}];
AppsFlyerLib.shared().logEvent("loan_accepted",
withValues: [
"loan_id": "1735102",
"loan_amount": "1000",
"loan_type": "3 months"
])
Dictionary<string, string> LoanAccepted = new Dictionary<string, string>();
LoanAccepted.Add("loan_id", "1735102");
LoanAccepted.Add("loan_amount", "1000");
LoanAccepted.Add("loan_type", "3 months");
AppsFlyer.sendEvent("loan_accepted", LoanAccepted);
Empréstimo negado
Nome do evento: loan_rejected
Propósito
O registro do evento Empréstimo negado pode ajudar você a entender os motivos para negação dos empréstimos. É possível ver a correlação entre o valor e o período do empréstimo e os índices de negação. Também é possível redirecionar os usuários que tiveram seus empréstimos negados e sugerir que emprestem um valor menor.
Lógica do ativador
Acione este evento quando um credor negar um empréstimo.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
loan_id | string | 1735102 | A ID do empréstimo |
Exemplos de código
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("loan_id", "1735102");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "loan_rejected" , eventValue);
[[AppsFlyerLib shared] logEvent:@"loan_rejected"
withValues: @{
@"loan_id": @"1735102",
}];
AppsFlyerLib.shared().logEvent("loan_rejected",
withValues: [
"loan_id": "1735102",
]);
Dictionary<string, string> LoanRejected = new Dictionary<string, string>();
LoanRejected.Add("loan_id", "1735102");
AppsFlyer.sendEvent("loan_rejected", LoanRejected);
Fintech: P2P lending
O empréstimo P2P (peer-to-peer) é um novo meio para que pessoas e empresas peçam e forneçam empréstimos umas às outras.
Recomendamos que você registre eventos em seu aplicativo de empréstimos P2P:
- É possível registrar a atividade de credores e mutuários.
- É possível saber quais tipos de empréstimos as pessoas oferecem em oposição aos empréstimos nos quais os mutuários estão interessados.
- É possível reunir métricas com relação à quantia média, mínima e máxima de empréstimos.
- É possível registrar os índices de aceitação e negação de empréstimos.
Com esses dados reunidos do registro de eventos, é possível destacar mutuários confiáveis e oferecer a eles melhores taxas de juros. Da mesma maneira, você pode identificar os credores mais ativos e oferecer a eles taxas mais baixas. Além do mais, após saber quais tipos de empréstimos são mais populares entre seus usuários, é possível lançar campanhas de marketing que atinjam esses públicos.
Registro enviado
Nome do evento: registration_submitted
Propósito
Como o empréstimo P2P está suscetível a abusos, primeiro os usuários devem verificar suas identidades. Tal verificação é realizada através do envio de uma solicitação de cadastro. O registro do evento Registro enviadopode ajudar você a:
- Registrar quantos usuários se registraram, mas nunca verificam suas contas.
- Ver a correlação entre o método de cadastro (e-mail, Facebook, Google) e as taxas de verificação.
Lógica do ativador
Acione este evento após o usuário enviar uma solicitação para se cadastrar em seu serviço P2P.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_registration_method | string | e-mail, Facebook, Google | Qual tipo de método ou cadastro social o usuário escolheu |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REGSITRATION_METHOD, "Facebook");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "registration_submitted", eventValue);
[[AppsFlyerLib shared] logEvent:@"registration_submitted"
withValues: @{
AFEventParamRegistrationMethod: @"Facebook",
}];
AppsFlyerLib.shared().logEvent("registration_submitted",
withValues: [
AFEventParamRegistrationMethod: "Facebook"
]);
Dictionary<string, string> RegistrationSubmitted = new Dictionary<string, string>();
RegistrationSubmitted.Add("af_registration_method", "Facebook");
AppsFlyer.sendEvent("registration_submitted", RegistrationSubmitted);
Concluir cadastro
Nome do evento: af_complete_registration
Propósito
O registro do evento Concluir cadastro pode ajudar você a ver quantos usuários realmente verificam suas identidades após o cadastro. É possível atribuir esses usuários a campanhas e identificar quais campanhas geram usuários ativos.
Lógica do ativador
Acione este evento quando o usuário se cadastrar com sucesso.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_registration_method | string | Qual tipo de método ou cadastro social o usuário escolhe |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REGSITRATION_METHOD, "Facebook");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.COMPLETE_REGISTRATION, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventCompleteRegistration
withValues: @{
AFEventParamRegistrationMethod: @"Facebook"
}];
AppsFlyerLib.shared().logEvent(AFEventCompleteRegistration,
withValues: [
AFEventParamRegistrationMethod: "Facebook"
]);
Dictionary<string, string> CompleteRegistration = new Dictionary<string, string>();
CompleteRegistration.Add("af_registration_method", "Facebook");
AppsFlyer.sendEvent("af_complete_registration", CompleteRegistration);
Preencher formulário de empréstimo
Nome do evento: fill_loan_form_<FORM_NAME>
Propósito
Os mutuários precisam preencher vários formulários para pedir um empréstimo. Você pode registrar os formulários que são preenchidos por um possível mutuário para identificar a taxa de queda. Além da taxa de queda, você também pode redirecionar os mutuários que deixam de preencher o formulário para conclusão do pedido de empréstimo. Ao enviar o evento, inclua o nome do formulário no nome do evento.
Lógica do ativador
Acione este evento quando um mutuário enviar um formulário.
Recommended fields
You can send this event without additional fields.
Observação
É altamente recomendável associar empréstimos com credores. Para isso, certifique-se de configurar a ID de usuário cliente. Configurar a ID de usuário cliente é o meio que você possui para unir os credores aos usuários de seu aplicativo conforme eles aparecem na AppsFlyer. Ao configurar a ID de usuário cliente você se certifica de que todos os eventos sejam enviados com a ID de usuário cliente.
Exemplos de código
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "fill_loan_form_FORM_NAME", null);
[[AppsFlyerLib shared] logEvent:@"fill_loan_formFORM_NAME"
withValues: nil];
AppsFlyerLib.shared().logEvent("fill_loan_form_FORM_NAME",
withValues: nil);
AppsFlyer.sendEvent("fill_loan_form_FORM_NAME", null);
Enviar pedido de empréstimo
Nome do evento: submit_loan_application
Propósito
O propósito deste evento é ajudar você a registrar pedidos de empréstimos. Com o registro do evento Enviar pedido de empréstimo é possível:
- Registrar o número total de pedidos de empréstimo em seu aplicativo.
- Saber o valor máximo, mínimo e médio em pedidos de empréstimo.
- Ver os tipos de empréstimo que as pessoas solicitam.
Lógica do ativador
Acione este evento quando o usuário enviar um pedido de empréstimo com sucesso.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
loan_id | string | 1735102 | A ID do empréstimo |
loan_amount | float | 1000 | O valor solicitado |
loan_type | string | 3 months | O período do empréstimo |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put("loan_id", "1735102");
eventValue.put("loam_amount", 1000);
eventValue.put("loan_type", "3 months");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),"submit_loan_application", eventValue);
[[AppsFlyerLib shared] logEvent:@"submit_loan_application"
withValues: @{
@"loan_id": @"1735102",
@"loan_amount": @1000,
@"loan_type": @"3 months"
}];
AppsFlyerLib.shared().logEvent("submit_loan_applications",
withValues: [
"loan_id": "1735102",
"loan_amount": 1000,
"loan_type": "3 months"
]);
Dictionary<string, string> SubmitLoanApplication = new Dictionary<string, string>();
SubmitLoanApplication.Add("loan_id", "1735102");
SubmitLoanApplication.Add("loan_amount", "1000");
SubmitLoanApplication.Add("loan_type", "3 months");
AppsFlyer.sendEvent("submit_loan_application", SubmitLoanApplication);
Empréstimo aceito
Nome do evento: loan_accepted
Propósito
Com o registro do evento Empréstimo aceito é possível saber mais sobre as tendências em empréstimos e outras métricas:
- Você pode ver quais tipos de empréstimos são aceitos.
- É possível verificar quais valores solicitados são aceitos.
- É possível verificar quais credores aceitam mais empréstimos, quais tipos e quais valores.
Lógica do ativador
Acione este evento quando um empréstimo for aceito.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
loan_id | string | 1735102 | A ID do empréstimo |
loan_amount | float | 1000 | O valor solicitado |
loan_type | string | 3 months | O período do empréstimo |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put("loan_id", "1735102");
eventValue.put("loam_amount", 1000);
eventValue.put("loan_type", "3 months");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),"loan_accepted" , eventValue);
[[AppsFlyerLib shared] logEvent:@"loan_accepted"
withValues: @{
@"loan_id": @"1735102",
@"loan_amount": @1000,
@"loan_type": @"3 months"
}];
AppsFlyerLib.shared().logEvent("loan_accepted",
withValues: [
"loan_id": "1735102",
"loan_amount": 1000,
"loan_type": "3 months"
]);
Dictionary<string, string> LoanAccepted = new Dictionary<string, string>();
LoanAccepted.Add("loan_id", "1735102");
LoanAccepted.Add("loan_amount", "1000");
LoanAccepted.Add("loan_type", "3 months");
AppsFlyer.sendEvent("loan_accepted", LoanAccepted);
Empréstimo negado
Nome do evento: loan_rejected
Propósito
O registro do evento Empréstimo negado pode ajudar você a entender os motivos para negação dos empréstimos. É possível ver a correlação entre o valor e o período do empréstimo e os índices de negação. Também é possível redirecionar os usuários que tiveram seus empréstimos negados e sugerir que emprestem um valor menor.
Lógica do ativador
Acione este evento quando um credor negar um empréstimo.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
load_id | string | 1735102 | A ID do empréstimo |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put("loan_id", "1735102");
eventValue.put("loam_amount", 1000);
eventValue.put("loan_type", "3 months");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),loan_rejected" , eventValue);
[[AppsFlyerLib shared] logEvent:@"loan_rejected"
withValues: @{
@"loan_id": @"1735102",
@"loan_amount": @1000,
@"loan_type": @"3 months"
}];
AppsFlyerLib.shared().logEvent("loan_rejected", withValues: [
"loan_id": "1735102",
"loan_amount": 1000,
"loan_type": "3 months"
]);
Dictionary<string, string> LoanRejected = new Dictionary<string, string>();
LoanRejected.Add("loan_id", "1735102");
LoanRejected.Add("loan_amount", "1000");
LoanRejected.Add("loan_type", "3 months");
AppsFlyer.sendEvent("loan_rejected", LoanRejected);
Pagamento
Nome do evento: Pagamento
Propósito
O registro do evento Pagamento pode ajudar você a indicar os mutuários como confiáveis. Mutuários confiáveis são aqueles que cumprem sua obrigação de cobrir seus empréstimos. É possível atribuir mutuários a campanhas e saber quais campanhas geram mutuários confiáveis. Com o registro deste evento também é possível reunir dados com relação aos valores de pagamentos mínimos, máximos e médios.
Lógica do ativador
Acione este evento sempre que um usuário realizar um pagamento pelo empréstimo.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
loan_id | string | 1735102 | A ID do empréstimo |
payment_amount | float | 100 | O valor pago |
payment_id | string | AE12SF | A ID do pagamento |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put("loan_id", "1735102");
eventValue.put("payment_amount", 100);
eventValue.put("payment_id", "AE12SF");
AppsFlyerLib.getInstance().logEvent(
getApplicationContext(),
"payment" , eventValue);
[[AppsFlyerLib shared] logEvent:@"payment"
withValues: @{
@"loan_id": @"1735102",
@"payment_amount": @100,
@"payment_id": @"AE12SF"
}];
AppsFlyerLib.shared().logEvent("payment",
withValues: [
"loan_id": "1735102",
"payment_amount": 100,
"payment_id": "AE12SF"
]);
Dictionary<string, string> Payment = new Dictionary<string, string>();
Payment.Add("loan_id", "1735102");
Payment.Add("payment_amount", "100");
Payment.Add("payment_id", "AE12SF");
AppsFlyer.sendEvent("payment", Payment);
Pagamento concluído
Nome do evento: payment_completed
Propósito
O registro do evento Pagamento concluído pode ajudar você a destacar os mutuários que cumprem suas obrigações de cobrir um empréstimo. Você também pode redirecionar esses mutuários e oferecer a eles taxas de juros mais baixas e outras promoções.
Lógica do ativador
Acione este evento quando um empréstimo for pago integralmente.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
loan_id | string | 1735102 | A ID do empréstimo |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put("loan_id", "1735102");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),"payment_completed" , eventValue);
[[AppsFlyerLib shared] logEvent:@"payment_completed"
withValues: @{
@"loan_id": @"1735102"
}];
AppsFlyerLib.shared().logEvent("payment_completed",
withValues: [
"loan_id": "1735102"
]);
Dictionary<string, string> PaymentCompleted = new Dictionary<string, string>();
PaymentCompleted.Add("loan_id", "1735102");
AppsFlyer.sendEvent("payment_completed", PaymentCompleted);
Educação online
Os aplicativos de educação online permitem que os usuários aprendam remotamente. Os eventos in-app que recomendamos gravar em aplicativos de educação online incluem registro, tutoriais e cursos completos e certificados recebidos. Confira alguns exemplos de como o registro desses eventos pode beneficiá-lo:
- A gravação de registros no aplicativo ajuda você a entender quais cursos os usuários querem e oferece ideias para direcionamento.
- A gravação de tutoriais completos ajuda você a entender quais usuários podem ser redirecionados e lembrados de que eles têm tutoriais adicionais para concluir um curso.
- A gravação de certificados recebidos ajuda você a entender quais cursos e certificados são os mais procurados.
Login
Nome do evento: af_login
Propósito
Este evento pode ajudar você a compreender a retenção de seus usuários registrados.
Lógica do ativador
Acione este evento sempre que o usuário fizer login.
Recommended fields
This event can be sent without any additional fields.
Exemplos de código
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.LOGIN, null);
[[AppsFlyerLib shared] logEvent:AFEventLogin withValues: nil];
AppsFlyerLib.shared().logEvent(AFEventLogin, withValues: nil);
AppsFlyer.sendEvent ("af_login", null);
Concluir cadastro
Nome do evento: af_complete_registration
Propósito
Você pode gravar o registro de usuários e compará-lo com outros dados para saber mais sobre seus usuários. Com a gravação de eventos de registro de usuários é possível:
- Saber quantos usuários instalaram o aplicativo, mas nunca se cadastraram.
- Saber quais métodos de cadastro seus usuários preferem.
Lógica do ativador
A melhor forma de gravar este evento é acioná-lo quando o usuário concluir o processo de cadastro.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_registration_method | string | email, facebook | O tipo de método de cadastro |
Exemplos de código
Map<String, Object> eventValue = new HashMap<>();
eventValue.put(AFInAppEventParameterName.registration_method, "Facebook");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.complete_registration, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventCompleteRegistration
withValues: @{
AFEventParamRegistrationMethod: @"Facebook"
}];
AppsFlyerLib.shared().logEvent(AFEventCompleteRegistration,
withValues: [
AFEventParamRegistrationMethod: "Facebook"
]);
Dictionary<string, string> CompleteRegistrationEvent = new Dictionary<string, string>();
CompleteRegistrationEvent.Add("af_registration_method", "Facebook");
AppsFlyer.sendEvent ("af_complete_registration", CompleteRegistrationEvent);
Conclusão do tutorial
Nome do evento: af_tutorial_completion
Propósito
Tutoriais ajudam seus usuários a fazer um melhor uso de seu aplicativo. Com o registro de conclusão de tutoriais é possível:
- Saber em quais assuntos os usuários podem ter dificuldade.
- Saber o que os tutoriais não estão executando bem e aprimorá-los.
Lógica do ativador
Há dois cenários onde este evento deve ser acionado:
- When a user completes the tutorial. An event will be sent with a field indicating successful tutorial completion.
- When a user starts the tutorial but quits without completing it. When the user quits, an event is sent with a field indicating that the user didn't complete the tutorial.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_success | booleano | Sim | Se o usuário concluiu ou não o tutorial |
af_tutorial_id | string | 3 | A ID do tutorial |
af_content | string | álgebra | O nome do tutorial |
Exemplos de código
Map<String, Object> eventValue = new HashMap<>();
eventValue.put(AFInAppEventParameterName.SUCCESS, yes);
eventValue.put(AFInAppEventParameterName.TUTORIAL_ID, "3");
eventValue.put(AFInAppEventParameterName.CONTENT, "algebra");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.TUTORIAL_COMPLETION, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventTutorial_completion
withValues: @{
AFEventParamSuccess: @YES,
AFEventParamTutorialId: @"3",
AFEventParamContent: @"algebra"
}];
AppsFlyerLib.shared().logEvent(AFEventTutorial_completion,
withValues: [
AFEventParamSuccess: YES,
AFEventParamTutorialId: "3",
AFEventParamContent: "algebra"
]);
Dictionary<string, string> TutorialCompletiondEvent = new Dictionary<string, string>();
TutorialCompletiondEvent.Add("af_success", "yes");
TutorialCompletiondEvent.Add("af_tutorial_id", "3");
TutorialCompletiondEvent.Add("af_tutorial_content", "algebra");
AppsFlyer.sendEvent ("af_tutorial_completion", TutorialCompletiondEvent);
Exercício concluído
Nome do Evento: complete_excercise
Propósito
Você pode gravar exercícios concluídos e compará-los com outros dados para saber mais sobre seus usuários. Por exemplo, ao gravar eventos de conclusão de exercícios, você pode saber quantos usuários começam, mas não terminam um exercício.
Lógica do ativador
A melhor forma de gravar esse evento é dispará-lo quando o usuário termina um exercício.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
course_name | string | álgebra | O nome do curso. |
exercise_name | string | 2 | O nome do exercício. |
Exemplos de código
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("course_name", "algebra");
eventValue.put("exercise_name", "2");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "complete_exercise", eventValue);
[[AppsFlyerLib shared] logEvent:@"complete_exercise"
withValues: @{
@"course_name": @"algebra",
@"exercise_name": @"2"
}];
AppsFlyerLib.shared().logEvent("complete_exercise",withValues:
["course_name": "algebra","exercise_name": "2" ])
Dictionary<string, string> CompleteExerciseEvent = new Dictionary<string, string>();
CompleteExerciseEvent.Add("course_name", "algebra");
CompleteExerciseEvent.Add("exercise_name", "2");
AppsFlyer.sendEvent ("complete_exercise", CompleteExerciseEvent);
Curso concluído
Event Name: course_completed
Propósito
Você pode gravar cursos concluídos e compará-los com outros dados para saber mais sobre seus usuários. Por exemplo, ao gravar eventos de conclusão de curso, você pode saber quantos usuários começam, mas não terminam um curso.
Lógica do ativador
A melhor forma de gravar esse evento é dispará-lo quando o usuário termina um curso.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
course_name | string | álgebra | O nome do curso. |
course_completed | string | Sim | Se o curso foi concluído. |
Exemplos de código
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("course_name", "algebra");
eventValue.put("course_completed", "yes");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "course_completed", eventValue);
[AppsFlyerLib shared] logEvent:@"course_completed" withValues:@{
@"course_name": @"algebra",
@"course_completed": @"yes"}];
ApAppsFlyerLib.shared().logEvent("course_completed", withValues:
[ "course_name": "algebra",
"course_completed": "yes"])
Dictionary<string, string> CourseCompletedEvent = new Dictionary<string, string>();
CourseCompletedEvent.Add("course_name", "algebra");
CourseCompletedEvent.Add("course_completed", "yes");
AppsFlyer.sendEvent ("course_completed
", CourseCompletedEvent);
Certificado emitido
Nome do evento: certificate_issued
Propósito
Você pode gravar emissões de certificados e compará-las com outros dados para saber mais sobre seus usuários. Por exemplo, ao gravar eventos de certificados emitidos, você pode saber quantos usuários terminam um curso e redirecioná-los para o próximo.
Lógica do ativador
A melhor forma de gravar esse evento é dispará-lo quando um certificado é emitido para o usuário.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
course_name | string | álgebra | O nome do curso. |
certificate_received | string | Sim | Se o certificado foi emitido. |
Exemplos de código
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("course_name", "algebra");
eventValue.put("certificate_received", "yes");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "certificate issued", eventValue);
[[AppsFlyerLib shared] logEvent:@"course_completed" withValues: @{
@"course_name": @"algebra",
@"certificate_received": @"yes"}];
AppsFlyerLib.shared().logEvent("certificate issued", withValues:
[ "course_name": "algebra",
"certificate_received": "yes"])
Dictionary<string, string> CertificateIssuedEvent = new Dictionary<string, string>();
CertificateIssuedEvent.Add("course_name", "algebra");
CertificateIssuedEvent.Add("certificate_received", "yes");
AppsFlyer.sendEvent ("certificate issued
", CertificateIssuedEvent);
Compra
Nome do evento: af_purchase
Propósito
Muitos aplicativos de educação online permitem que os usuários adquiram itens, por exemplo, cursos, software ou equipamentos escolares O evento Compras ajuda você a gravar as compras que os usuários fazem pelo aplicativo. Com a gravação de compras é possível:
- Descobrir o LTV de seus usuários e o ROI de suas campanhas em redes e agências de anúncios.
- Descobrir quais ofertas são mais populares entre seus usuários.
- Fazer referência cruzada de campanhas com itens comprados para otimizar o direcionamento de campanhas.
Lógica do ativador
Para registrar este evento de forma adequada, é necessário acioná-lo quando o usuário acessar a página de agradecimento após uma compra bem-sucedida.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_revenue | float | 200 | A receita estimada de uma compra |
af_currency | string | USD | O código da moeda |
af_content_id | string | 001, 092 | A ID do item |
order_id | string | 9277 | A ID do pedido |
af_receipt_id | string | 9277 | A ID do recibo |
Exemplos de código
Map<String, Object> eventValue = new HashMap<>();
eventValue.put(AFInAppEventParameterName.REVENUE, 200);
eventValue.put(AFInAppEventParameterName.CURRENCY, "USD");
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "092");
eventValue.put("order_id", "9277");
eventValue.put(AFInAppEventParameterName.RECEIPT_ID, "9277");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),AFInAppEventType.PURCHASE, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventPurchase
withValues: @{
AFEventParamRevenue: @200,
AFEventParamCurrency: @"USD",
AFEventParamContentId: @"092",
@"order_id": @"9277",
AFEventParamReceiptId: @"9277"
}];
AppsFlyerLib.shared().logEvent(AFEventPurchase,
withValues: [
AFEventParamRevenue: 200,
AFEventParamCurrency: "USD",
AFEventParamContentId: "092",
"order_id": "9277",
AFEventParamReceiptId: "9277"
]);
Dictionary<string, string> purchaseEvent = new Dictionary<string, string>();
purchaseEvent.Add("af_revenue", "200");
purchaseEvent.Add("af_currency", "USD");
purchaseEvent.Add("af_content_id", "001");
purchaseEvent.Add("order_id", "9277");
purchaseEvent.Add("af_receipt_id", "9277");
AppsFlyer.sendEvent ("af_purchase", purchaseEvent);
Navigation: ride hailing
Recentemente, o transporte de passageiros se tornou muito popular, principalmente em áreas urbanas onde a maioria dos residentes não possui carro. Ao registro e analisar eventos no aplicativo, é possível saber mais sobre:
- Como passageiros e motoristas interagem.
- Países onde as pessoas mais usam serviços de transporte de passageiros.
- Métricas sobre preço, corridas e distância das corridas.
Concluir cadastro
Nome do evento: af_complete_registration
Propósito
O registro do evento Registro completo pode fornecer insights sobre seus usuários. Com o registro do evento Registro completo é possível:
- Saber qual método de cadastro seus usuários preferem (Google, Facebook, E-mail).
- Compreender quantos usuários realmente se cadastraram após baixar e instalar o aplicativo.
- Ver tendências de cadastro em vários países para identificar os países cujos usuários são mais propensos a usar seu aplicativo.
Lógica do ativador
Acione este evento quando o usuário se cadastrar com sucesso.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_registration_method | string | A plataforma ou método que o usuário utiliza para se cadastrar | |
country_code | string | 66 | O código do país (código do telefone) |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REGSITRATION_METHOD, "shoes");
eventValue.put("country_code", "66");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.COMPLETE_REGISTRATION, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventCompleteRegistration
withValues: @{
AFEventParamRegistrationMethod: @"Facebook",
@"country_code": @"66",
}];
AppsFlyerLib.shared().logEvent(AFEventCompleteRegistration,
withValues: [
AFEventParamRegistrationMethod: "Facebook",
"country_code": "66"
]);
Dictionary<string, string> CompleteRegistrationEvent = new Dictionary<string, string>();
CompleteRegistrationEvent.Add("af_registration_method", "Facebook");
CompleteRegistrationEvent.Add("country_code", "66");
AppsFlyer.sendEvent("af_complete_registration", CompleteRegistrationEvent);
Adicionar informação de pagamento
Nome do evento: af_add_payment_info
Propósito
O registro do evento Adicionar informações de pagamento pode ajudar você a categorizar usuários. Você pode:
- Saber quanto tempo um usuário leva para adicionar informações de pagamento.
- Saber quais métodos de pagamento são mais populares (cartão de crédito, carteiras digitais).
- Realizar campanhas e colaboração com prestadores de métodos de pagamentos populares.
Lógica do ativador
Acione este evento sempre que um usuário adicionar informações de pagamento à sua conta com sucesso.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_success | booleano | verdadeiro | Se a adição do método de pagamento foi bem-sucedida ou não |
credit_card_type | string | Visa, Mastercard | Tipo de cartão de crédito (opcional) |
payment_method_type | string | cartão de crédito, carteira digital | O tipo de método de pagamento |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.SUCCESS, true);
eventValue.put("credit_card_type", "Visa");
eventValue.put("payment_method_type", true);
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.ADD_PAYMENT_INFO, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventAddPaymentInfo
withValues: @{
AFEventParamSuccess: @TRUE,
@"credit_card_type": @"Visa",
@"payment_method_type": @"credit card"
}];
AppsFlyerLib.shared().logEvent(AFEventAddPaymentInfo, withValues: [
AFEventParamSuccess: true,
"credit_card_type": "Visa",
"payment_method_type": "credit card"
]);
Dictionary<string, string> AddPaymentInfoEvent = new Dictionary<string, string>();
AddPaymentInfoEvent.Add("af_success", "true");
AddPaymentInfoEvent.Add("credit_card_type", "Visa");
AddPaymentInfoEvent.Add("payment_method_type", "credit card");
AppsFlyer.sendEvent("af_add_payment_info", AddPaymentInfoEvent);
Reserva de viagem solicitada
Nome do evento: ride_booking_requested
Propósito
O evento Reserva de viagem solicitadaé um dos quatro eventos relacionados à reserva de viagens. Eles são discutidos abaixo. Com o registro deste evento é possível:
- Saber sobre destinos populares.
- Saber sobre tendências, para onde as pessoas vão e de onde vêm.
- Ver a distância média de uma corrida.
- Ver de quais cidades, regiões e países vem a maioria dos usuários.
Além do mais, registrar este evento em conjunto com outros três eventos relacionados a reservas pode ajudar você a acompanhar transações bem-sucedidas. É possível registrar transações bem-sucedidas e compará-las com transações malsucedidas. Por exemplo, você pode ver quantas reservas de viagens são solicitadas e quantas reservas de viagens são concluídas ou canceladas.
Lógica do ativador
Acione este evento quando o passageiro realizar uma solicitação de reserva de viagem.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_price | float | 22.4 | Preço cotado para a viagem |
af_currency | string | SGD | Moeda |
af_destination_a | string | Plaza Singapura | Ponto de partida |
af_destination_b | string | Marina Bay Sands | Ponto de chegada |
distance | float | 5.2 | A distância entre os dois destinos |
af_content_type | string | Táxi | Tipo de transporte |
payment_method_type | string | cartão de crédito, carteira digital | O tipo de método de pagamento |
af_city | string | Singapura | A cidade onde a viagem foi reservada |
af_region | string | SFA | A região onde a viagem foi reservada |
af_country | string | Singapura | O país onde a viagem foi reservada |
order_id | string | 135790 | ID do pedido |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.PRICE, 22.4);
eventValue.put(AFInAppEventParameterName.CURRENCY, "SGD");
eventValue.put(AFInAppEventParameterName.DESTINATION_A, "Plaza Singapura");
eventValue.put(AFInAppEventParameterName.DESTINATION_B, "Marina Bay Sands");
eventValue.put("distance", 5.2);
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "Taxi");
eventValue.put("payment_method_type", "credit card");
eventValue.put("notes", "Taxi stand");
eventValue.put(AFInAppEventParameterName.CITY, "Singapore");
eventValue.put(AFInAppEventParameterName.REGION, "SFA");
eventValue.put(AFInAppEventParameterName.COUNTRY, "Singapore");
eventValue.put("af_order_id", "135790");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "ride_booking_requested", eventValue);
[[AppsFlyerLib shared] logEvent:@"ride_booking_requested"
withValues: @{
AFEventParamPrice: @22.4,
AFEventParamCurrency: @"SGD",
AFEventParamDestinationA: @"Plaza Singapura",
AFEventParamDestinationB: @"Marina Bay Sands",
@"distance": @5.2,
AFEventParamContentType: @"Taxi",
@"payment_method_type": @"credit card",
@"notes": @"Taxi stand",
AFEventParamCity: @"Singapore",
AFEventParamRegion: @"SFA",
AFEventParamCountry: @"Singapore",
AFEventParamOrderId: @"135790"
}];
AppsFlyerLib.shared().logEvent("ride_booking_requested",
withValues: [
AFEventParamPrice: 22.4,
AFEventParamCurrency: "SGD",
AFEventParamDestinationA: "Plaza Singapura",
AFEventParamDestinationB: "Marina Bay Sands",
"distance": 5.2,
AFEventParamContentType: "Taxi",
"payment_method_type": "credit card",
"notes": "Taxi stand",
AFEventParamCity: "Singapore",
AFEventParamRegion: "SFA",
AFEventParamCountry: "Singapore",
AFEventParamOrderId: "135790"
]);
Dictionary<string, string> RideBookingRequestedEvent = new Dictionary<string, string>();
RideBookingRequestedEvent.Add("af_price", "22.4");
RideBookingRequestedEvent.Add("af_currency", "SGD");
RideBookingRequestedEvent.Add("af_destination_a", "Plaza Singapura");
RideBookingRequestedEvent.Add("af_destination_b", "Marina Bay Sands");
RideBookingRequestedEvent.Add("distance", "5.2");
RideBookingRequestedEvent.Add("af_content_type", "Taxi");
RideBookingRequestedEvent.Add("payment_method_type", "credit card");
RideBookingRequestedEvent.Add("notes", "Taxi stand");
RideBookingRequestedEvent.Add("af_city", "Singapore");
RideBookingRequestedEvent.Add("af_region", "SFA");
RideBookingRequestedEvent.Add("af_country", "Singapore");
RideBookingRequestedEvent.Add("af_order_id", "135790");
AppsFlyer.sendEvent("ride_booking_requested", RideBookingRequestedEvent);
Reserva de viagem confirmada
Nome do evento: ride_booking_confirmed
Propósito
O evento Reserva de viagem confirmadaé um dos quatro eventos relacionados à reserva de viagens. Com o registro deste evento é possível:
- Saber quais são os motoristas mais ativos.
- Ver quais destinos são comuns entre os motoristas.
- Ver o preço médio e total de viagens para cada motorista.
Além do mais, registrar este evento em conjunto com outros três eventos relacionados a reservas pode ajudar você a compreender melhor a atividade dos motoristas. É possível ver quais motoristas confirmam a maioria das solicitações de reserva de viagem, quais motoristas escolhem viagens curtas em vez de viagens longas, etc.
Lógica do ativador
Acione este evento quando a reserva for aceita por um motorista.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_price | float | 22.4 | Preço cotado para a viagem |
af_currency | string | SGD | Moeda |
af_destination_a | string | Plaza Singapura | Ponto de partida |
af_destination_b | string | Marina Bay Sands | Ponto de chegada |
distance | float | 5.2 | A distância entre os dois destinos |
af_content_type | string | Táxi | Tipo de transporte |
driver_id | string | 1706 | A ID do motorista que confirmou a corrida |
payment_method_type | string | cartão de crédito, carteira digital | O tipo de método de pagamento |
af_city | string | Singapura | A cidade onde a viagem foi reservada |
af_region | string | SFA | A região onde a viagem foi reservada |
af_country | string | Singapura | O país onde a viagem foi reservada |
af_order_id | string | 135790 | ID do pedido |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.PRICE, 22.4);
eventValue.put(AFInAppEventParameterName.CURRENCY, "SGD");
eventValue.put(AFInAppEventParameterName.DESTINATION_A, "Plaza Singapura");
eventValue.put(AFInAppEventParameterName.DESTINATION_B, "Marina Bay Sands");
eventValue.put("distance", 5.2);
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "Taxi");
eventValue.put("driver_id", "1706");
eventValue.put("payment_method_type", "credit card");
eventValue.put("notes", "Taxi stand");
eventValue.put(AFInAppEventParameterName.CITY, "Singapore");
eventValue.put(AFInAppEventParameterName.REGION, "SFA");
eventValue.put(AFInAppEventParameterName.COUNTRY, "Singapore");
eventValue.put("af_order_id", "135790");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "ride_booking_confirmed", eventValue);
[[AppsFlyerLib shared] logEvent:@"ride_booking_confirmed"
withValues: @{
AFEventParamPrice: @22.4,
AFEventParamCurrency: @"SGD",
AFEventParamDestinationA: @"Plaza Singapura",
AFEventParamDestinationB: @"Marina Bay Sands",
@"distance": @5.2,
AFEventParamContentType: @"Taxi",
@"driver_id": @"1706",
@"payment_method_type": @"credit card",
@"notes": @"Taxi stand",
AFEventParamCity: @"Singapore",
AFEventParamRegion: @"SFA",
AFEventParamCountry: @"Singapore",
AFEventParamOrderId: @"135790"
}];
AppsFlyerLib.shared().logEvent("ride_booking_confirmed",
withValues: [
AFEventParamPrice: 22.4,
AFEventParamCurrency: "SGD",
AFEventParamDestinationA: "Plaza Singapura",
AFEventParamDestinationB: "Marina Bay Sands",
"distance": 5.2,
AFEventParamContentType: "Taxi",
"driver_id": "1706",
"payment_method_type": "credit card",
"notes": "Taxi stand",
AFEventParamCity: "Singapore",
AFEventParamRegion: "SFA",
AFEventParamCountry: "Singapore",
AFEventParamOrderId: "135790"
]);
Dictionary<string, string> RideBookingConfirmedEvent = new Dictionary<string, string>();
RideBookingConfirmedEvent.Add("af_price", "22.4");
RideBookingConfirmedEvent.Add("af_currency", "SGD");
RideBookingConfirmedEvent.Add("af_destination_a", "Plaza Singapura");
RideBookingConfirmedEvent.Add("af_destination_b", "Marina Bay Sands");
RideBookingConfirmedEvent.Add("distance", "5.2");
RideBookingConfirmedEvent.Add("af_content_type", "Taxi");
RideBookingConfirmedEvent.Add("driver_id", "1706");
RideBookingConfirmedEvent.Add("payment_method_type", "credit card");
RideBookingConfirmedEvent.Add("notes", "Taxi stand");
RideBookingConfirmedEvent.Add("af_city", "Singapore");
RideBookingConfirmedEvent.Add("af_region", "SFA");
RideBookingConfirmedEvent.Add("af_country", "Singapore");
RideBookingConfirmedEvent.Add("af_order_id", "135790");
AppsFlyer.sendEvent("ride_booking_confirmed", RideBookingConfirmedEvent);
Reserva de viagem cancelada
Nome do evento: ride_booking_cancelled
Propósito
O evento Reserva de viagem canceladaé um dos quatro eventos relacionados à reserva de viagens. Com o registro deste evento é possível:
- Registrar motoristas ou passageiros que cancelam constantemente.
- Saber quantas viagens foram canceladas.
- Correlacionar viagens concluídas com atributos como preço, destino, distância, cidades, etc.
- Saber os motivos do cancelamento de uma viagem.
Lógica do ativador
Acione este evento quando a reserva for cancelada.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_price | float | 22.4 | Preço cotado para a viagem |
af_currency | string | SGD | Moeda |
af_destination_a | string | Plaza Singapura | Ponto de partida |
af_destination_b | string | Marina Bay Sands | Ponto de chegada |
distance | float | 5.2 | A distância entre os dois destinos |
af_content_type | string | Táxi | Tipo de transporte |
driver_id | string | 1706 | A ID do motorista que confirmou a corrida |
cancelation_reason | string | preço muito alto, motorista não apareceu, passageiro não apareceu | O motivo do cancelamento da viagem |
payment_method_type | string | cartão de crédito, carteira digital | O tipo de método de pagamento |
af_city | string | Singapura | A cidade onde a viagem foi reservada |
af_region | string | SFA | A região onde a viagem foi reservada |
af_country | string | Singapura | O país onde a viagem foi reservada |
order_id | string | 135790 | ID do pedido |
canceled_by | string | Passageiro | Se a viagem foi cancelada pelo passageiro ou pelo motorista |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.PRICE, 22.4);
eventValue.put(AFInAppEventParameterName.CURRENCY, "SGD");
eventValue.put(AFInAppEventParameterName.DESTINATION_A, "Plaza Singapura");
eventValue.put(AFInAppEventParameterName.DESTINATION_B, "Marina Bay Sands");
eventValue.put("distance", 5.2);
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "Taxi");
eventValue.put("driver_id", "1706");
eventValue.put("cancellation_reason", "driver didn't show up");
eventValue.put("payment_method_type", "credit card");
eventValue.put("notes", "Taxi stand");
eventValue.put(AFInAppEventParameterName.CITY, "Singapore");
eventValue.put(AFInAppEventParameterName.REGION, "SFA");
eventValue.put(AFInAppEventParameterName.COUNTRY, "Singapore");
eventValue.put("af_order_id", "135790");
eventValue.put("canceled_by", "passenger");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "ride_booking_canceled", eventValue);
[[AppsFlyerLib shared] logEvent:@"ride_booking_canceled"
withValues: @{
AFEventParamPrice: @22.4,
AFEventParamCurrency: @"SGD",
AFEventParamDestinationA: @"Plaza Singapura",
AFEventParamDestinationB: @"Marina Bay Sands",
@"distance": @5.2,
AFEventParamContentType: @"Taxi",
@"driver_id": @"1706",
@"cancelation_reason": @"driver didn't show up",
@"payment_method_type": @"credit card",
@"notes": @"Taxi stand",
AFEventParamCity: @"Singapore",
AFEventParamRegion: @"SFA",
AFEventParamCountry: @"Singapore",
AFEventParamOrderId: @"135790",
@"canceled_by": @"passenger"
}];
AppsFlyerLib.shared().logEvent("ride_booking_canceled",
withValues: [
AFEventParamPrice: 22.4,
AFEventParamCurrency: "SGD",
AFEventParamDestinationA: "Plaza Singapura",
AFEventParamDestinationB: "Marina Bay Sands",
"distance": 5.2,
AFEventParamContentType: "Taxi",
"driver_id": "1706",
"cancelation_reason": "driver didn't show up",
"payment_method_type": "credit card",
"notes": "Taxi stand",
AFEventParamCity: "Singapore",
AFEventParamRegion: "SFA",
AFEventParamCountry: "Singapore",
AFEventParamOrderId: "135790",
"canceled_by": "passenger"
]);
Dictionary<string, string> RideBookingCanceledEvent = new Dictionary<string, string>();
RideBookingCanceledEvent.Add("af_price", "22.4");
RideBookingCanceledEvent.Add("af_currency", "SGD");
RideBookingCanceledEvent.Add("af_destination_a", "Plaza Singapura");
RideBookingCanceledEvent.Add("af_destination_b", "Marina Bay Sands");
RideBookingCanceledEvent.Add("distance", "5.2");
RideBookingCanceledEvent.Add("af_content_type", "Taxi");
RideBookingCanceledEvent.Add("driver_id", "1706");
RideBookingCanceledEvent.Add("cancelation_reason", "driver didn't show up");
RideBookingCanceledEvent.Add("payment_method_type", "credit card");
RideBookingCanceledEvent.Add("notes", "Taxi stand");
RideBookingCanceledEvent.Add("af_city", "Singapore");
RideBookingCanceledEvent.Add("af_region", "SFA");
RideBookingCanceledEvent.Add("af_country", "Singapore");
RideBookingCanceledEvent.Add("af_order_id", "135790");
RideBookingCanceledEvent.Add("canceled_by", "passenger");
AppsFlyer.sendEvent("ride_booking_cancelled", RideBookingCanceledEvent);
Reserva de viagem concluída
Nome do evento: ride_booking_completed
Propósito
O evento Reserva de viagem concluídaé um dos quatro eventos relacionados à reserva de viagens. Com o registro deste evento é possível:
- Saber os gastos dos passageiros e os ganhos dos motoristas.
- Correlacionar viagens concluídas com atributos como destino, distância, tipo de pagamento, ID do motorista, etc.
- Ver a distância média e total para motoristas e passageiros.
- Comparar viagens concluídas com viagens canceladas.
- Registrar a pontuação de motoristas.
Lógica do ativador
Acione este evento quando a viagem for concluída.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_price | float | 22.4 | Preço cotado para a viagem |
af_currency | string | SGD | Moeda |
af_destination_a | string | Plaza Singapura | Ponto de partida |
af_destination_b | string | Marina Bay Sands | Ponto de chegada |
distance | float | 5.2 | A distância entre os dois destinos |
af_content_type | string | Táxi | Tipo de transporte |
driver_id | string | 1706 | A ID do motorista que confirmou a corrida |
payment_method_type | string | cartão de crédito, carteira digital | O tipo de método de pagamento |
af_city | string | Singapura | A cidade onde a viagem foi reservada |
af_region | string | SFA | A região onde a viagem foi reservada |
af_country | string | Singapura | O país onde a viagem foi reservada |
order_id | string | 135790 | ID do pedido |
credits_earned | int | 248 | Os créditos que o passageiro ganhou ao concluir uma viagem |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.PRICE, 22.4);
eventValue.put(AFInAppEventParameterName.CURRENCY, "SGD");
eventValue.put(AFInAppEventParameterName.DESTINATION_A, "Plaza Singapura");
eventValue.put(AFInAppEventParameterName.DESTINATION_B,"Marina Bay Sands");
eventValue.put("distance", 5.2);
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "Taxi");
eventValue.put("driver_id", "1706");
eventValue.put("payment_method_type", "credit card");
eventValue.put("notes", "Taxi stand");
eventValue.put(AFInAppEventParameterName.CITY, "Singapore");
eventValue.put(AFInAppEventParameterName.REGION, "SFA");
eventValue.put(AFInAppEventParameterName.COUNTRY, "Singapore");
eventValue.put("af_order_id", "135790");
eventValue.put("credits_earned", 248);
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "ride_booking_completed" , eventValue);
[[AppsFlyerLib shared] logEvent:@"ride_booking_completed"
withValues: @{
AFEventParamPrice: @22.4,
AFEventParamCurrency: @"SGD",
AFEventParamDestinationA: @"Plaza Singapura",
AFEventParamDestinationB: @"Marina Bay Sands",
@"distance": @5.2,
AFEventParamContentType: @"Taxi",
@"driver_id": @"1706",
@"payment_method_type": @"credit card",
@"notes": @"Taxi stand",
AFEventParamCity: @"Singapore",
AFEventParamRegion: @"SFA",
AFEventParamCountry: @"Singapore",
AFEventParamOrderId: @"135790",
@"credits_earned": @248
}];
AppsFlyerLib.shared().logEvent("ride_booking_completed",
withValues: [
AFEventParamPrice: 22.4,
AFEventParamCurrency: "SGD",
AFEventParamDestinationA: "Plaza Singapura",
AFEventParamDestinationB: "Marina Bay Sands",
distance": 5.2,
AFEventParamContentType: "Taxi",
"driver_id": "1706",
"payment_method_type": "credit card",
"notes": "Taxi stand",
AFEventParamCity: "Singapore",
AFEventParamRegion: "SFA",
AFEventParamCountry: "Singapore",
AFEventParamOrderId: "135790",
"credits_earned": 248
]);
Dictionary<string, string> RideBookingCompletedEvent = new Dictionary<string, string>();
RideBookingCompletedEvent.Add("af_price", "22.4");
RideBookingCompletedEvent.Add("af_currency", "SGD");
RideBookingCompletedEvent.Add("af_destination_a", "Plaza Singapura");
RideBookingCompletedEvent.Add("af_destination_b", "Marina Bay Sands");
RideBookingCompletedEvent.Add("distance", "5.2");
RideBookingCompletedEvent.Add("af_content_type", "Taxi");
RideBookingCompletedEvent.Add("driver_id", "1706");
RideBookingCompletedEvent.Add("payment_method_type", "credit card");
RideBookingCompletedEvent.Add("notes", "Taxi stand");
RideBookingCompletedEvent.Add("af_city", "Singapore");
RideBookingCompletedEvent.Add("af_region", "SFA");
RideBookingCompletedEvent.Add("af_country", "Singapore");
RideBookingCompletedEvent.Add("af_order_id", "135790");
AppsFlyer.sendEvent("ride_booking_completed", RideBookingCompletedEvent);
Créditos gastos
Nome do evento: spent_credits
Propósito
The Ride booking completed event discussed above has a field called credits_earned
. This field logs the credits that the passenger earns for each ride. The passenger can then trade these credits for vouchers and discounts. By recording these events you can:
- Ver quantos passageiros trocam créditos por vouchers.
- Descobrir que tipo de vouchers e descontos os passageiros preferem.
Lógica do ativador
Acione este evento quando um passageiro gastar créditos.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_content | string | Ingresso único para cinema | O tipo de voucher ou desconto |
credits_used | int | 1000 | Quantidade de créditos usados |
credits_remaining | int | 2090 | Quantidade de créditos disponíveis na conta |
invoice_id | string | KO215123SD | A ID da fatura criada para gastar créditos |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.CONTENT, "Single movie ticket");
eventValue.put("credits_used", 1000);
eventValue.put("invoice_id", "");
eventValue.put("credits_remaining", "KO215123SD");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "spent_credits" , eventValue);
[[AppsFlyerLib shared] logEvent:@"spent_credits"
withValues: @{
AFEventParamContent: @"Single movie ticket",
@"credits_used": @1000,
@"credits_remaining": @2090,
@"invoice_id": @"KO215123SD"
}];
AppsFlyerLib.shared().logEvent("spent_credits",
withValues: [
AFEventParamContent: "Single movie ticket",
"credits_used": 1000,
"credits_remaining": 2090,
"invoice_id": "KO215123SD"
]);
Dictionary<string, string> CreditsSpent = new Dictionary<string, string>();
CreditsSpent.Add("af_content", "Single movie ticket");
CreditsSpent.Add("credits_used", "1000");
CreditsSpent.Add("credits_remaining", "2090");
CreditsSpent.Add("invoice_id", "KO215123SD");
AppsFlyer.sendEvent("af_content_view", CreditsSpent);
Travel: flight booking
Aplicativos de reserva de voos permitem que os viajantes reservem voos com facilidade e escolham as melhores ofertas. Os eventos que recomendados registrar são: reserva de um voo, busca de voos e visualização de ofertas. O registro desses eventos ajuda a analisar as preferências e compras dos usuários. Por exemplo, ao analisar os dados de eventos é possível:
- Saber sobre destinos populares.
- Analisar tendências sazonais.
- Conhecer companhias aéreas populares com as quais os usuários preferem viajar.
Reservas de viagem
Nome do evento: af_travel_booking
Propósito
The ability to book flights is the core function of the app. By recording this event with all its fields, you can gain insights into:
- Destinos populares.
- Companhias aéreas populares.
- Tendências sazonais.
Lógica do ativador
Envie este evento quando o usuário acessar a página de agradecimento após reservar um voo com sucesso.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_revenue | float | 647 | Receita associada à reserva |
af_currency | string | SGD | O código da moeda |
af_price | float | 674 | O preço |
af_content_id | string | ODIRNH | A ID da oferta de voo |
af_departing_departure_date | string | 2018-06-21 | Data de partida |
af_returning_departure_date | string | 2018-06-26 | Data de retorno |
af_destination_a | string | BKK | Primeiro destino |
af_destination_b | string | SYD | Segundo destino (se aplicável) |
airline_code | string | KLM | O código da companhia aérea |
af_class | string | econômica | A classe em que o voo foi reservado |
purchase_method | string | cartão de crédito | Cartão de crédito, PayPal, etc. |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REVENUE, 647);
eventValue.put(AFInAppEventParameterName.CURRENCY, "SGD");
eventValue.put(AFInAppEventParameterName.PRICE, 674);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "ODIRNH");
eventValue.put(AFInAppEventParameterName.DEPARTING_DEPARTURE_DATE, "2018-06-21");
eventValue.put(AFInAppEventParameterName.RETURNING_DEPARTURE_DATE, "2018-06-26");
eventValue.put(AFInAppEventParameterName.DESTINATION_A, "BKK");
eventValue.put(AFInAppEventParameterName.DESTINATION_B, "SYD");
eventValue.put("airline_code", "KLM");
eventValue.put(AFInAppEventParameterName.CLASS, "economy");
eventValue.put("purchase_method", "credit card");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.TRAVEL_BOOKING, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventTravelBooking
withValues: @{
AFEventParamRevenue: @647,
AFEventParamCurrency: @"SGD",
AFEventParamPrice: @674,
AFEventParamContentId: @"ODIRNH",
AFEventParamDepartingDepartureDate: @"2018-21-06",
AFEventParamReturningDepartureDate: @"2018-26-06",
AFEventParamDestinationA: @"BKK",
AFEventParamDestinationB: @"SYD",
@"airline_code": @"KLM",
AFEventParamClass: @"economy",
@"purchase_method": @"credit card"
}];
AppsFlyerLib.shared().logEvent(AFEventTravelBooking,
withValues: [
AFEventParamRevenue: 647,
AFEventParamCurrency: "SGD",
AFEventParamPrice: 674,
AFEventParamContentId: "ODIRNH",
AFEventParamDepartingDepartureDate: "2018-21-06",
AFEventParamReturningDepartureDate: "2018-26-06",
AFEventParamDestinationA: "BKK",
AFEventParamDestinationB: "SYD",
"airline_code": "KLM",
AFEventParamClass: "economy",
"purchase_method": "credit card"
]);
Dictionary<string, string> TravelBookingEvent = new Dictionary<string, string>();
TravelBookingEvent.Add("af_revenue", "647");
TravelBookingEvent.Add("af_currency", "SGD");
TravelBookingEvent.Add("af_price", "974");
TravelBookingEvent.Add("af_content_id", "ODIRNH");
TravelBookingEvent.Add("af_departing_departure_date", "2018-06-21");
TravelBookingEvent.Add("af_returning_departure_date", "2018-06-26");
TravelBookingEvent.Add("af_destination_a", "BKK");
TravelBookingEvent.Add("af_destination_b", "SYD");
TravelBookingEvent.Add("airline_code", "KLM");
TravelBookingEvent.Add("af_class", "economy");
TravelBookingEvent.Add("purchase_method", "credit card");
AppsFlyer.sendEvent ("af_travel_booking", TravelBookingEvent);
Exibição de conteúdo
Nome do evento: af_content_view
Propósito
Após realizar a busca, os usuários clicam nos resultados de busca que acharem mais relevantes. O registro do conteúdo que os usuários visualizam nos resultados de busca ajuda você a:
- Saber quais ofertas de voos os usuários acham mais interessantes.
- Saber se os resultados de busca são relevantes para as buscas.
Lógica do ativador
É melhor acionar este evento quando um usuário clicar em um resultado de busca.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_departing_departure_date | string | 2018-06-21 | Data de partida |
af_returning_departure_date | string | 2018-06-26 | Data de retorno |
af_destination_a | string | BKK | Primeiro destino |
af_destination_b | string | SYD | segundo destino (se aplicável) |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.DEPARTING_DEPARTURE_DATE, "2018-06-21");
eventValue.put(AFInAppEventParameterName.RETURNING_DEPARTURE_DATE, "2018-06-26");
eventValue.put(AFInAppEventParameterName.DESTINATION_A, "BKK");
eventValue.put(AFInAppEventParameterName.DESTINATION_B, "SYD");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.CONTENT_VIEW, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventContentView
withValues: @{
AFEventParamDepartingDepartureDate: @"2018-21-06",
AFEventParamReturningDepartureDate: @"2018-26-06",
AFEventParamDestinationA: @"BKK",
AFEventParamDestinationB: @"SYD"
}];
AppsFlyerLib.shared().logEvent(AFEventContentView, withValues: [
AFEventParamDepartingDepartureDate: "2018-21-06",
AFEventParamReturningDepartureDate: "2018-26-06",
AFEventParamDestinationA: "BKK",
AFEventParamDestinationA: "SYD"
]);
Dictionary<string, string> ContentViewEvent = new Dictionary<string, string>();
ContentViewEvent.Add("af_departing_departure_date", "2018-06-21");
ContentViewEvent.Add("af_returning_departure_date", "2018-06-26");
ContentViewEvent.Add("af_destination_a", "BKK");
ContentViewEvent.Add("af_destination_b", "SYD");
AppsFlyer.sendEvent ("af_content_view", ContentViewEvent);
Pesquisar
Nome do evento: af_search
Propósito
flight booking apps let users search for flights and deals. One way of gaining insights into user preferences is to record the search parameters. By recording the search event and its fields, you can:
- Saber o que os usuários mais buscam.
- Saber quais destinos são mais populares.
- Ver quantos usuários viajam com crianças.
- Ver qual época do ano os usuários preferem ou planejam viajar.
Lógica do ativador
Acione este evento quando o usuário clicar no botão de pesquisa, após ter preenchido o formulário de busca.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_num_children | int | 0 | Quantas crianças viajarão |
af_destination_a | string | BKK | Primeiro destino |
af_destination_b | string | SYD | Segundo destino (se relevante) |
af_departing_departure_date | string | 2018-06-21 | Data de partida |
af_returning_departure_date | string | 2018-06-26 | Data de retorno |
af_num_infants | int | 0 | Quantos bebês viajarão |
af_num_adults | int | 1 | Quantos adultos viajarão |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String,
eventValue.put(AFInAppEventParameterName.NUM_CHILDREN, 0);
eventValue.put(AFInAppEventParameterName.DESTINATION_A, "BKK");
eventValue.put(AFInAppEventParameterName.DESTINATION_B, "SYD");
eventValue.put(AFInAppEventParameterName.DEPARTING_DEPARTURE_DATE, "2018-06-21");
eventValue.put(AFInAppEventParameterName.RETURNING_DEPARTURE_DATE, "2018-06-26");
eventValue.put(AFInAppEventParameterName.NUM_INFANTS, 0);
eventValue.put(AFInAppEventParameterName.NUM_ADULTS, 1);
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.SEARCH, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventSearch
withValues: @{
AFEventParamNumChildren: @0,
AFEventParamDestinationA: @"BKK",
AFEventParamDestinationB: @"SYD",
AFEventParamDepartingDepartureDate: @"2018-21-06",
AFEventParamReturningDepartureDate: @"2018-26-06",
AFEventParamNumInfants: @0,
AFEventParamNumAdults: @1
}];
AppsFlyerLib.shared().logEvent(AFEventSearch, withValues: [
AFEventParamNumChildren: 0,
AFEventParamDestinationA: "BKK",
AFEventParamDestinationB: "SYD",
AFEventParamDepartingDepartureDate: "2018-21-06",
AFEventParamReturningDepartureDate: "2018-26-06",
AFEventParamNumInfants: 0,
AFEventParamNumAdults: 1
]);
Dictionary<string, string> SearchEvent = new Dictionary<string, string>();
SearchEvent.Add("af_num_children", "0");
SearchEvent.Add("af_destination_a", "BKK");
SearchEvent.Add("af_destination_b", "SYD");
SearchEvent.Add("af_departing_departure_date", "2018-06-21");
SearchEvent.Add("af_returning_departure_date", "2018-06-26");
SearchEvent.Add("af_num_infants", "0");
SearchEvent.Add("af_num_adults", "0");
AppsFlyer.sendEvent ("af_search", SearchEvent);
Adicionar informação de pagamento
Nome do evento: af_add_payment_info
Propósito
Este evento pode ajudar você a registrar tentativas bem e malsucedidas de adição de informações de pagamento ao reservar um voo.
Lógica do ativador
Acione este evento quando o usuário clicar no botão de pesquisa, após ter preenchido o formulário de busca.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_success | booleano | verdadeiro | Se a inclusão do método de pagamento foi bem-sucedida ou não |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.SUCCESS, true);
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.ADD_PAYMENT_INFO, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventAddPaymentInfo
withValues: @{
AFEventParamSuccess: @TRUE
}];
AppsFlyerLib.shared().logEvent(AFEventAddPaymentInfo,
withValues: [
AFEventParamSuccess: true
]);
Dictionary<string, string> AddPaymentInfoEvent = new Dictionary<string, string>();
AddPaymentInfoEvent.Add("af_success", "true");
AppsFlyer.sendEvent ("af_add_payment_info", AddPaymentInfoEvent);
Primeira compra
Nome do evento: first_purchase
Propósito
Este evento é o mesmo que um evento de Compra. No entanto, ao contrário de um evento de Compra, o evento de Primeira compra pode ser usado para:
- Ver quanto tempo um comprador demora para comprar.
- Ver quais voos os compradores que compram pela primeira vezes preferem.
- Ver a média de preço e receita de primeiras compras.
Lógica do ativador
Acione este evento quando o usuário concluir sua primeira compra.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_revenue | float | 1200 | Receita da compra |
af_price | float | 4000 | Montante total da compra |
af_content_id | string | 121, 262 | ID do item |
af_content_type | string | voo | Categoria do item |
af_currency | string | AUD | Moeda |
af_quantity | int | 1 | Quantidade de itens no carrinho |
af_order_id | string | X123ABC | ID do pedido gerada após a compra. |
af_receipt_id | string | X123ABC | ID do pedido, mas necessário para a integração de retargeting do CRITEO e Google AdWords |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.PRICE, 350);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "221");
// for multiple product categories, set the param value as: new String {"221", "124"}
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "flight");
// for multiple product categories set the param value as: new String {"flight", "meal"}
eventValue.put(AFInAppEventParameteName.CURRENCY, "USD");
eventValue.put(AFInAppEventParameterName.QUANTITY, 2);
// for multiple product categories, set the param value as: new int {1}
eventValue.put(AFInAppEventParameterName.RECEIPT_ID, "X123ABC");
eventValue.put("af_order_id", "X123ABC");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "first_purchase", eventValue);
[[AppsFlyerLib shared] logEvent:("first_purchase")
withValues: @{
AFEventParamRevenue: @1200,
AFEventParamPrice: @4000,
AFEventParamContentId: @"221",
// for multiple product categories, set the param value as: @[@"221", @"124"]
AFEventParamContentType: @"shirt",
// for multiple product categories, set the param value as: @[@"flight" , @"meal"]
AFEventParamCurrency: @"USD",
AFEventParamQuantity: @2,
// for multiple product categories, set the param value as: @[@1]
AFEventParamOrderId: @"X123ABC",
AFEventParamReceiptId: @"X123ABC"
}];
AppsFlyerLib.shared().logEvent("first_purchase", withValues: [
AFEventParamRevenue: 1200,
AFEventParamPrice: 4000,
AFEventParamContentId: "221",
// for multiple product categories, set the param value as: ["221", "124"]
AFEventParamContentType: "shirt",
// for multiple product categories, set the param value as: ["flight", "meal"]
AFEventParamCurrency: "USD",
AFEventParamQuantity: 2,
// for multiple product categories, set the param value as: // [1]
AFEventParamOrderId: "X123ABC",
AFEventParamReceiptId: "X123ABC"
]);
Dictionary<string, string> FirstPurchaseEvent = new Dictionary<string, string>();
FirstPurchaseEvent.Add("af_revenue", "1200");
FirstPurchaseEvent.Add("af_price", "4000");
FirstPurchaseEvent.Add("af_content_id", "121");
// for multiple product categories, set the param value as: ["221", "124"]
FirstPurchaseEvent.Add("af_content_type", "shoes");
// for multiple product categories, set the param value as: ["flight", "meal"]
FirstPurchaseEvent.Add("af_currency", "USD");
FirstPurchaseEvent.Add("af_quantity", "2");
// for multiple product categories, set the param value as: [1]
FirstPurchaseEvent.Add("af_order_id", "X123ABC");
FirstPurchaseEvent.Add("af_receipt_id", "X123ABC");
AppsFlyer.sendEvent ("first_purchase", FirstPurchaseEvent);
Travel: hotel booking
Ao registrar eventos in-app em seu aplicativo de reserva de hotéis, você pode ver quais campanhas e fontes de mídias trazem os usuários que realmente fazem reservas para as férias. Além do mais, você pode ver quais campanhas e fontes de mídias trazem os usuários que mais fazem reservas e geram mais receita. Você pode atribuir preferências como pontuação do hotel, temporada, país e número de crianças para os usuários que vêm de certas fontes de mídias. Ao atribuir preferências dos usuários às fontes de mídias, você pode otimizar campanhas em fontes de mídias ao focar nas preferências dos usuários.
Concluir cadastro
Nome do evento: af_complete_registration
Propósito
Você pode gravar o registro de usuários e compará-lo com outros dados para saber mais sobre seus usuários. Com a gravação de eventos de registro de usuários é possível:
- Saber quantos usuários instalaram o aplicativo, mas nunca se cadastraram.
- Saber quais métodos de cadastro seus usuários preferem.
- Ver quais mídias trazem usuários que realmente se cadastram.
Lógica do ativador
A melhor forma de gravar este evento é acioná-lo quando o usuário concluir o processo de cadastro.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_registration_method | string | email, facebook | O tipo de método de cadastro |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REGSITRATION_METHOD, "Facebook");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.COMPLETE_REGISTRATION, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventCompleteRegistration
withValues: @{
AFEventParamRegistrationMethod: @"Facebook"
}];
AppsFlyerLib.shared().logEvent(AFEventCompleteRegistration,
withValues: [
AFEventParamRegistrationMethod: "Facebook"
]);
Dictionary<string, string> CompletedRegistrationEvent = new Dictionary<string, string>();
CompletedRegistrationEvent.Add("af_registration_method", "Facebook");
AppsFlyer.sendEvent ("af_complete_registration", CompletedRegistrationEvent);
Login
Nome do evento: af_login
Propósito
Este evento pode ajudar você a registrar a retenção de seus usuários registrados.
Lógica do ativador
Acione este evento sempre que o usuário fizer login ou abrir o aplicativo.
Recommended fields
This event can be sent without any additional fields.
Exemplos de código
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),
AFInAppEventType.LOGIN, null);
[[AppsFlyerLib shared] logEvent:AFEventLogin
withValues: nil
];
AppsFlyerLib.shared().logEvent(AFEventLogin, withValues: nil);
AppsFlyer.sendEvent ("af_login", null);
Pesquisar
Nome do evento: af_search
Propósito
O propósito deste evento é informar a você o que os usuários estão buscando. Quando você sabe o que os usuários estão buscando, é possível oferecer a eles melhores ofertas e promoções. Além disso, você pode ver as buscas por localização geográfica e, assim, direcionar campanhas para os usuários de acordo com esta informação e em diversas mídias.
Lógica do ativador
Acione este evento quando o usuário realizar uma busca.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_date_a | string | 2018/07/26 | Data do check-in |
af_date_b | string | 2018/08/01 | Data do check-out |
af_destination_a | string | Londres | Localização do usuário |
af_destination_b | string | Madri | Localização do hotel |
af_num_adults | float | 2 | Quantidade de hóspedes |
af_num_children | float | 0 | Quantidade de crianças |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.DATE_A, "2018/07/26");
eventValue.put(AFInAppEventParameterName.DATE_B, "2018/08/01");
eventValue.put(AFInAppEventParameterName.DESTINATION_A, "London");
eventValue.put(AFInAppEventParameterName.DESTINATION_B, "Madrid");
eventValue.put(AFInAppEventParameterName.NUM_ADULTS, 2);
eventValue.put(AFInAppEventParameterName.NUM_CHILDREN, 0);
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.SEARCH, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventSearch
withValues: @{
AFEventParamDateA: @"2018/07/26",
AFEventParamDateB: @"2018/08/01",
AFEventParamDestinationA: @"London",
AFEventParamDestinationB: @"Madrid",
AFEventParamNumAdults: @2,
AFEventParamNumChildren: @0
}];
AppsFlyerLib.shared().logEvent(AFEventSearch, withValues: [
AFEventParamDateA: "2018/07/26",
AFEventParamDateB: "2018/08/01",
AFEventParamDestinationA: "London",
AFEventParamDestinationB: "Madrid",
AFEventParamNumAdults: 2,
AFEventParamNumChildren: 0
]);
Dictionary<string, string> Search =
new Dictionary<string, string>();
Search.Add("af_date_a", "2018/07/26");
Search.Add("af_date_b", "2018/08/01");
Search.Add("af_destination_a", "London");
Search.Add("af_destination_b", "Madrid");
Search.Add("af_num_adults", "2");
Search.Add("af_num_children", "0");
AppsFlyer.sendEvent("af_add_to_wish_list", Search);
Exibição de conteúdo
Nome do evento: af_content_view
Propósito
O propósito deste evento é mostrar a você quais hotéis os usuários estão visualizando. Você pode ver que tipo de propriedades estão procurando e quais são suas preferências quanto à temporada e localização. Você pode então redirecionar campanhas a esses usuários com anúncios e promoções. Além disso, você pode ver quais usuários visualizam e reservam e quais apenas visualizam. Para os usuários que reservam, você pode ver de quais fontes de mídias eles vem. Para os usuários que apenas visualizam, você pode tentar re-engajá-los com campanhas direcionadas.
Lógica do ativador
Acione este evento quando o usuário estiver vendo uma propriedade.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_price | float | 674 | Preço tabela do hotel |
af_content_id | string | ODIRNH | Identificação do hotel |
af_date_a | string | 2018/07/26 | Data do check-in |
af_date_b | string | 2018/08/01 | Data do check-out |
af_destination_a | string | Londres | Localização do usuário |
af_destination_b | string | Madri | Localização do hotel |
af_class | string | Deluxe | Tipo de quarto |
af_num_adults | float | 2 | Quantidade de hóspedes |
af_num_children | float | 0 | Quantidade de crianças |
af_hotel_score | float | 9.6 | Pontuação do hotel por avaliações |
af_preferred_star_ratings | float | 5 | Preferência de classificação por estrela do hotel |
af_preferred_neighborhoods | string | Centro | Área onde o hotel está localizado |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.CURRENCY, "GBP");
eventValue.put(AFInAppEventParameterName.PRICE, 674);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "ODIRNH");
eventValue.put(AFInAppEventParameterName.DATE_A, "2018/07/26");
eventValue.put(AFInAppEventParameterName.DATE_B, "2018/08/01");
eventValue.put(AFInAppEventParameterName.DESTINATION_A, "London");
eventValue.put(AFInAppEventParameterName.DESTINATION_B, "Madrid");
eventValue.put(AFInAppEventParameterName.CLASS, "Deluxe");
eventValue.put(AFInAppEventParameterName.NUM_ADULTS, 2);
eventValue.put(AFInAppEventParameterName.NUM_CHILDREN, 0);
eventValue.put(AFInAppEventParameterName.HOTEL_SCORE, 9.6);
eventValue.put(AFInAppEventParameterName.PREFERRED_STAR_RATINGS, 5);
eventValue.put(AFInAppEventParameterName.PREFERRED_NEIGHBORHOODS, "Centro");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.CONTENT_VIEW, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventContentView
withValues: @{
AFEventParamCurrency: @"GBP",
AFEventParamPrice: @674,
AFEventParamContentId: @"ODIRNH",
AFEventParamDateA: @"2018/07/26",
AFEventParamDateB: @"2018/08/01",
AFEventParamDestinationA: @"London",
AFEventParamDestinationB: @"Madrid",
AFEventParamClass: @"Deluxe",
AFEventParamNumAdults: @2,
AFEventParamNumChildren: @0,
AFEventParamHotelScore: @9.6,
AFEventParamPreferredStarRatings: @5,
AFEventParamPreferredNeighborhoods: @"Centro"
}];
AppsFlyerLib.shared().logEvent(AFEventContentView, withValues: [
AFEventParamCurrency: "GBP",
AFEventParamPrice: 674,
AFEventParamContentId: "ODIRNH",
AFEventParamDateA: "2018/07/26",
AFEventParamDateB: "2018/08/01",
AFEventParamDestinationA: "London",
AFEventParamDestinationB: "Madrid",
AFEventParamClass: "Deluxe",
AFEventParamNumAdults: 2,
AFEventParamNumChildren: 0,
AFEventParamHotelScore: 9.6,
AFEventParamPreferredStarRatings: 5,
AFEventParamPreferredNeighborhoods: "Centro"
]);
Dictionary<string, string> ContentView =
new Dictionary<string, string>();
ContentView.Add("af_currency", "GBP");
ContentView.Add("af_price", "674");
ContentView.Add("af_content_id", "ODIRNH");
ContentView.Add("af_date_a", "2018/07/26");
ContentView.Add("af_date_b", "2018/08/01");
ContentView.Add("af_destination_a", "London");
ContentView.Add("af_destination_b", "Madrid");
ContentView.Add("af_class", "Deluxe");
ContentView.Add("af_num_adults", "2");
ContentView.Add("af_num_children", "0");
ContentView.Add("af_hotel_score", "9.6");
ContentView.Add("af_preferred_star_ratings", "5");
ContentView.Add("af_preferred_neighborhoods", "Centro");
AppsFlyer.sendEvent("af_content_view", ContentView);
Adicionar a lista de desejos
Nome do evento: af_add_to_wishlist
Propósito
O evento Adicionar à lista de desejos indica hotéis e destinos que os usuários desejam reservar. Com o registro deste evento você obtém insight do que os usuários desejam. Se você souber que alguns usuários estão procurando hotéis específicos, em regiões específicas e com pontuações e classificações específicas, é possível direcionar e redirecionar esses usuários.
Lógica do ativador
Acione este evento quando um usuário adicionar uma listagem à lista de desejos.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_price | float | 674 | Preço tabela do hotel |
af_content_id | string | ODIRNH | Identificação do hotel |
af_date_a | string | 2018/07/26 | Data do check-in |
af_date_b | string | 2018/08/01 | Data do check-out |
af_destination_a | string | Londres | Localização do usuário |
af_destination_b | string | Madri | Localização do hotel |
af_class | string | Deluxe | Tipo de quarto |
af_num_adults | float | 2 | Quantidade de hóspedes |
af_num_children | float | 0 | Quantidade de crianças |
af_hotel_score | float | 9.6 | Pontuação do hotel por avaliações |
af_preferred_star_ratings | float | 5 | Preferência de classificação por estrela do hotel |
af_preferred_neighborhoods | string | Centro | Área onde o hotel está localizado |
purchase_method | string | Cartão de crédito | Método de compra |
af_coupon_code | string | SUM2018 | Código promocional ou pontos de programas de fidelidade |
Tipo de Propriedade | string | Hotel | Tipo de propriedade |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.CURRENCY, "GBP");
eventValue.put(AFInAppEventParameterName.PRICE, 674);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "ODIRNH");
eventValue.put(AFInAppEventParameterName.DATE_A, "2018/07/26");
eventValue.put(AFInAppEventParameterName.DATE_B, "2018/08/01");
eventValue.put(AFInAppEventParameterName.DESTINATION_A, "London");
eventValue.put(AFInAppEventParameterName.DESTINATION_B, "Madrid");
eventValue.put(AFInAppEventParameterName.CLASS, "Deluxe");
eventValue.put(AFInAppEventParameterName.NUM_ADULTS, 2);
eventValue.put(AFInAppEventParameterName.NUM_CHILDREN, 0);
eventValue.put(AFInAppEventParameterName.HOTEL_SCORE, 9.6);
eventValue.put(AFInAppEventParameterName.PREFERRED_STAR_RATINGS, 5);
eventValue.put(AFInAppEventParameterName.PREFERRED_NEIGHBORHOODS, "Centro");
eventValue.put("purchase_method", "credit card");
eventValue.put(AFInAppEventParameterName.COUPON_CODE, "SUM2018");
eventValue.put("property_type", "hotel");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.ADD_TO_WISH_LIST, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventAddToWishlist
withValues: @{
AFEventParamCurrency: @"GBP",
AFEventParamPrice: @674,
AFEventParamContentId: @"ODIRNH",
AFEventParamDateA: @"2018/07/26",
AFEventParamDateB: @"2018/08/01",
AFEventParamDestinationA: @"London",
AFEventParamDestinationB: @"Madrid",
AFEventParamClass: @"Deluxe",
AFEventParamNumAdults: @2,
AFEventParamNumChildren: @0,
AFEventParamHotelScore: @9.6,
AFEventParamPreferredStarRatings: @5,
AFEventParamPreferredNeighborhoods: @"Centro",
@"purchase_method": @"credit card",
AFEventParamCouponCode: @"SUM2018",
@"property_type": @"hotel"
}];
AppsFlyerLib.shared().logEvent(AFEventAddToWishlist, withValues: [
AFEventParamCurrency: "GBP",
AFEventParamPrice: 674,
AFEventParamContentId: "ODIRNH",
AFEventParamDateA: "2018/07/26",
AFEventParamDateB: "2018/08/01",
AFEventParamDestinationA: "London",
AFEventParamDestinationB: "Madrid",
AFEventParamClass: "Deluxe",
AFEventParamNumAdults: 2,
AFEventParamNumChildren: 0,
AFEventParamHotelScore: 9.6,
AFEventParamPreferredStarRatings: 5,
AFEventParamPreferredNeighborhoods: "Centro",
"purchase_method": "credit card",
AFEventParamCouponCode: "SUM2018",
"property_type": "hotel"
]);
Dictionary<string, string> AddToWishList =
new Dictionary<string, string>();
AddToWishList.Add("af_currency", "GBP");
AddToWishList.Add("af_price", "674");
AddToWishList.Add("af_content_id", "ODIRNH");
AddToWishList.Add("af_date_a", "2018/07/26");
AddToWishList.Add("af_date_b", "2018/08/01");
AddToWishList.Add("af_destination_a", "London");
AddToWishList.Add("af_destination_b", "Madrid");
AddToWishList.Add("af_class", "Deluxe");
AddToWishList.Add("af_num_adults", "2");
AddToWishList.Add("af_num_children", "0");
AddToWishList.Add("af_hotel_score", "9.6");
AddToWishList.Add("af_preferred_star_ratings", "5");
AddToWishList.Add("af_preferred_neighborhoods", "Centro");
AddToWishList.Add("purchase_method", "credit card");
AddToWishList.Add("af_coupon_code", "SUM2018");
AddToWishList.Add("af_property_type", "hotel");
AppsFlyer.sendEvent("af_add_to_wish_list", AddToWishList);
Finalização da compra iniciada
Nome do evento: af_initiated_checkout
Propósito
O propósito deste evento é permitir que você registre quantos usuários iniciaram o checkout. Além do mais, você pode ver qual método de compra eles usam para fazer o checkout (cartão de crédito, carteira digital) e, assim, direcioná-los. Você também pode ver quais usuários não finalizaram o processo de checkout e redirecioná-los. Você também pode ver quais usuários não finalizaram o processo de checkout e redirecioná-los.
Lógica do ativador
Acione este evento quando o usuário adicionar os dados de seu cartão de crédito ou vincular a sua carteira digital.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_price | float | 674 | Preço tabela do hotel |
af_content_id | string | ODIRNH | Identificação do hotel |
af_date_a | string | 2018/07/26 | Data do check-in |
af_date_b | string | 2018/08/01 | Data do check-out |
af_destination_a | string | Londres | Localização do usuário |
af_destination_b | string | Madri | Localização do hotel |
af_class | string | Deluxe | Tipo de quarto |
af_num_adults | float | 2 | Quantidade de hóspedes |
af_num_children | float | 0 | Quantidade de crianças |
af_hotel_score | float | 9.6 | Pontuação do hotel por avaliações |
af_preferred_star_ratings | float | 5 | Preferência de classificação por estrela do hotel |
af_preferred_neighborhoods | string | Centro | Área onde o hotel está localizado |
purchase_method | string | Cartão de crédito | Método de compra |
af_coupon_code | string | SUM2018 | Código promocional ou pontos de programas de fidelidade |
Tipo de Propriedade | string | Hotel | Tipo de propriedade |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.CURRENCY, "GBP");
eventValue.put(AFInAppEventParameterName.PRICE, 674);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "ODIRNH");
eventValue.put(AFInAppEventParameterName.DATE_A, "2018/07/26");
eventValue.put(AFInAppEventParameterName.DATE_B, "2018/08/01");
eventValue.put(AFInAppEventParameterName.DESTINATION_A, "London");
eventValue.put(AFInAppEventParameterName.DESTINATION_B, "Madrid");
eventValue.put(AFInAppEventParameterName.CLASS, "Deluxe");
eventValue.put(AFInAppEventParameterName.NUM_ADULTS, 2);
eventValue.put(AFInAppEventParameterName.NUM_CHILDREN, 0);
eventValue.put(AFInAppEventParameterName.HOTEL_SCORE, 9.6);
eventValue.put(AFInAppEventParameterName.PREFERRED_STAR_RATINGS, 5);
eventValue.put(AFInAppEventParameterName.PREFERRED_NEIGHBORHOODS, "Centro");
eventValue.put("purchase_method", "credit card");
eventValue.put(AFInAppEventParameterName.COUPON_CODE, "SUM2018");
eventValue.put("property_type", "hotel");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.INITIATED_CHECKOUT, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventInitiatedCheckout
withValues: @{
AFEventParamCurrency: @"GBP",
AFEventParamPrice: @674,
AFEventParamContentId: @"ODIRNH",
AFEventParamDateA: @"2018/07/26",
AFEventParamDateB: @"2018/08/01",
AFEventParamDestinationA: @"London",
AFEventParamDestinationB: @"Madrid",
AFEventParamClass: @"Deluxe",
AFEventParamNumAdults: @2,
AFEventParamNumChildren: @0,
AFEventParamHotelScore: @9.6,
AFEventParamPreferredStarRatings: @5,
AFEventParamPreferredNeighborhoods: @"Centro",
@"purchase_method": @"credit card",
AFEventParamCouponCode: @"SUM2018",
@"property_type": @"hotel"
}];
AppsFlyerLib.shared().logEvent(AFEventInitiatedCheckout, withValues: [
AFEventParamCurrency: "GBP",
AFEventParamPrice: 674,
AFEventParamContentId: "ODIRNH",
AFEventParamDateA: "2018/07/26",
AFEventParamDateB: "2018/08/01",
AFEventParamDestinationA: "London",
AFEventParamDestinationB: "Madrid",
AFEventParamClass: "Deluxe",
AFEventParamNumAdults: 2,
AFEventParamNumChildren: 0,
AFEventParamHotelScore: 9.6,
AFEventParamPreferredStarRatings: 5,
AFEventParamPreferredNeighborhoods: "Centro",
"purchase_method": "credit card",
AFEventParamCouponCode: "SUM2018",
"property_type": "hotel"
]);
Dictionary<string, string> InitiatedCheckout =
new Dictionary<string, string>();
InitiatedCheckout.Add("af_currency", "GBP");
InitiatedCheckout.Add("af_price", "674");
InitiatedCheckout.Add("af_content_id", "ODIRNH");
InitiatedCheckout.Add("af_date_a", "2018/07/26");
InitiatedCheckout.Add("af_date_b", "2018/08/01");
InitiatedCheckout.Add("af_destination_a", "London");
InitiatedCheckout.Add("af_destination_b", "Madrid");
InitiatedCheckout.Add("af_class", "Deluxe");
InitiatedCheckout.Add("af_num_adults", "2");
InitiatedCheckout.Add("af_num_children", "0");
InitiatedCheckout.Add("af_hotel_score", "9.6");
InitiatedCheckout.Add("af_preferred_star_ratings", "5");
InitiatedCheckout.Add("af_preferred_neighborhoods", "Centro");
InitiatedCheckout.Add("purchase_method", "credit card");
InitiatedCheckout.Add("af_coupon_code", "SUM2018");
InitiatedCheckout.Add("af_property_type", "hotel");
AppsFlyer.sendEvent("af_initiated_chekcout", InitiatedCheckout);
Reservas de viagem
Nome do evento: travel_booking
Propósito
O propósito do evento Reserva de viagem é permitir que você veja o índice total de reservas em seu aplicativo. Além do mais, com o registro deste evento é possível:
- Registrar a receita gerada a partir da reserva.
- Ver quantos usuários reservam hotéis com crianças.
- Compreender tendências sazonais.
- Descobrir quais hotéis são mais populares entre os usuários.
Lógica do ativador
Acione este evento quando o usuário acessar a página de agradecimento após reservar um hotel.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_revenue | float | 647 | Receita das reservas |
af_currency | string | GBP | Código da moeda |
af_price | float | 674 | Preço tabela do hotel |
af_content_id | string | ODIRNH | Identificação do hotel |
af_date_a | string | 2018/07/26 | Data do check-in |
af_date_b | string | 2018/08/01 | Data do check-out |
af_destination_a | string | Londres | Localização do usuário |
af_destination_b | string | Madri | Localização do hotel |
af_class | string | Deluxe | Tipo de quarto |
af_num_adults | float | 2 | Quantidade de hóspedes |
af_num_children | float | 0 | Quantidade de crianças |
af_hotel_score | float | 9.6 | Pontuação do hotel por avaliações |
af_preferred_star_ratings | float | 5 | Preferência de classificação por estrela do hotel |
af_preferred_neighborhoods | string | Centro | Área onde o hotel está localizado |
purchase_method | string | Cartão de crédito | Método de compra |
af_coupon_code | string | SUM2018 | Código promocional ou pontos de programas de fidelidade |
Tipo de Propriedade | string | Hotel | Tipo de propriedade |
new_booking | booleano | verdadeiro | Primeira reserva do usuário |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REVENUE, 647);
eventValue.put(AFInAppEventParameterName.CURRENCY, "GBP");
eventValue.put(AFInAppEventParameterName.PRICE, 674);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "ODIRNH");
eventValue.put(AFInAppEventParameterName.DATE_A, "2018/07/26");
eventValue.put(AFInAppEventParameterName.DATE_B, "2018/08/01");
eventValue.put(AFInAppEventParameterName.DESTINATION_A, "London");
eventValue.put(AFInAppEventParameterName.DESTINATION_B, "Madrid");
eventValue.put(AFInAppEventParameterName.CLASS, "Deluxe");
eventValue.put(AFInAppEventParameterName.NUM_ADULTS, 2);
eventValue.put(AFInAppEventParameterName.NUM_CHILDREN, 0);
eventValue.put(AFInAppEventParameterName.HOTEL_SCORE, 9.6);
eventValue.put(AFInAppEventParameterName.PREFERRED_STAR_RATINGS, 5);
eventValue.put(AFInAppEventParameterName.PREFERRED_NEIGHBORHOODS, "Centro");
eventValue.put("purchase_method", "credit card");
eventValue.put(AFInAppEventParameterName.COUPON_CODE, "SUM2018");
eventValue.put("property_type", "hotel");
eventValue.put("new_booking", true);
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "travel_booking", eventValue);
[[AppsFlyerLib shared] logEvent:@"travel_booking"
withValues: @{
AFEventParamRevenue: @647,
AFEventParamCurrency: @"GBP",
AFEventParamPrice: @674,
AFEventParamContentId: @"ODIRNH",
AFEventParamDateA: @"2018/07/26",
AFEventParamDateB: @"2018/08/01",
AFEventParamDestinationA: @"London",
AFEventParamDestinationB: @"Madrid",
AFEventParamClass: @"Deluxe",
AFEventParamNumAdults: @2,
AFEventParamNumChildren: @0,
AFEventParamHotelScore: @9.6,
AFEventParamPreferredStarRatings: @5,
AFEventParamPreferredNeighborhoods: @"Centro",
@"purchase_method": @"credit card",
AFEventParamCouponCode: @"SUM2018",
@"property_type": @"hotel",
@"new_booking": @TRUE
}];
AppsFlyerLib.shared().logEvent("travel_booking", withValues: [
AFEventParamRevenue: 647,
AFEventParamCurrency: "GBP",
AFEventParamPrice: 674,
AFEventParamContentId: "ODIRNH",
AFEventParamDateA: "2018/07/26",
AFEventParamDateB: "2018/08/01",
AFEventParamDestinationA: "London",
AFEventParamDestinationB: "Madrid",
AFEventParamClass: "Deluxe",
AFEventParamNumAdults: 2,
AFEventParamNumChildren: 0,
AFEventParamHotelScore: 9.6,
AFEventParamPreferredStarRatings: 5,
AFEventParamPreferredNeighborhoods: "Centro",
"purchase_method": "credit card",
AFEventParamCouponCode: "SUM2018",
"property_type": "hotel",
"new_booking": true
]);
Dictionary<string, string> TravelBooking =
new Dictionary<string, string>();
TravelBooking.Add("af_revenue", "647");
TravelBooking.Add("af_currency", "GBP");
TravelBooking.Add("af_price", "674");
TravelBooking.Add("af_content_id", "ODIRNH");
TravelBooking.Add("af_date_a", "2018/07/26");
TravelBooking.Add("af_date_b", "2018/08/01");
TravelBooking.Add("af_destination_a", "London");
TravelBooking.Add("af_destination_b", "Madrid");
TravelBooking.Add("af_class", "Deluxe");
TravelBooking.Add("af_num_adults", "2");
TravelBooking.Add("af_num_children", "0");
TravelBooking.Add("af_hotel_score", "9.6");
TravelBooking.Add("af_preferred_star_ratings", "5");
TravelBooking.Add("af_preferred_neighborhoods", "Centro");
TravelBooking.Add("purchase_method", "credit card");
TravelBooking.Add("af_coupon_code", "SUM2018");
TravelBooking.Add("af_property_type", "hotel");
TravelBooking.Add("af_new_booking", "true");
AppsFlyer.sendEvent("travel_booking", TravelBooking);
Primeira compra
Nome do evento: first_purchase
Propósito
Este evento é o mesmo que um evento de Compra. No entanto, ao contrário de um evento de Compra, o evento de Primeira compra pode ser usado para:
- Ver quanto tempo um comprador demora para comprar.
- Ver quais produtos os compradores que compram pela primeira vezes preferem.
- Ver a média de preço e receita de primeiras compras.
Lógica do ativador
Acione este evento quando o usuário concluir sua primeira compra.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_revenue | float | 1200 | Receita da compra |
af_price | float | 4000 | Montante total da compra |
af_content_id | string | 121, 262 | ID do item |
af_content_type | string | hotel | Categoria do item |
af_currency | string | AUD | Moeda |
af_quantity | int | 1 | Quantidade de itens no carrinho |
af_order_id | string | X123ABC | ID do pedido gerada após a compra. |
af_receipt_id | string | X123ABC | ID do pedido, mas necessário para a integração de retargeting do CRITEO e Google AdWords |
Exemplos de código
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.PRICE, 350);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "221");
// for multiple product categories, set the param value as: new String {"221", "124"}
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "hotel");
// for multiple product categories set the param value as: new String {"hotel", "meals"}
eventValue.put(AFInAppEventParameteName.CURRENCY, "USD");
eventValue.put(AFInAppEventParameterName.QUANTITY, 2);
// for multiple product categories, set the param value as: new int {1}
eventValue.put(AFInAppEventParameterName.RECEIPT_ID, "X123ABC");
eventValue.put("af_order_id", "X123ABC");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "first_purchase", eventValue);
[[AppsFlyerLib shared] logEvent:("first_purchase")
withValues: @{
AFEventParamRevenue: @1200,
AFEventParamPrice: @4000,
AFEventParamContentId: @"221",
// for multiple product categories, set the param value as: @[@"221", @"124"]
AFEventParamContentType: @"hotel",
// for multiple product categories, set the param value as: @[@"hotel", @"meals"]
AFEventParamCurrency: @"USD",
AFEventParamQuantity: @2,
// for multiple product categories, set the param value as: @[@1]
AFEventParamOrderId: @"X123ABC",
AFEventParamReceiptId: @"X123ABC"
}];
AppsFlyerLib.shared().logEvent("first_purchase", withValues: [
AFEventParamRevenue: 1200,
AFEventParamPrice: 4000,
AFEventParamContentId: "221",
// for multiple product categories, set the param value as: ["221", "124"]
AFEventParamContentType: "hotel",
// for multiple product categories, set the param value as: ["hotel", "meals"]
AFEventParamCurrency: "USD",
AFEventParamQuantity: 2,
// for multiple product categories, set the param value as: // [1]
AFEventParamOrderId: "X123ABC",
AFEventParamReceiptId: "X123ABC"
]);
Dictionary<string, string> FirstPurchaseEvent = new Dictionary<string, string>();
FirstPurchaseEvent.Add("af_revenue", "1200");
FirstPurchaseEvent.Add("af_price", "4000");
FirstPurchaseEvent.Add("af_content_id", "121");
// for multiple product categories, set the param value as: ["221", "124"]
FirstPurchaseEvent.Add("af_content_type", "hotel");
// for multiple product categories, set the param value as: ["hotel", "meals"]
FirstPurchaseEvent.Add("af_currency", "USD");
FirstPurchaseEvent.Add("af_quantity", "2");
// for multiple product categories, set the param value as: [1]
FirstPurchaseEvent.Add("af_order_id", "X123ABC");
FirstPurchaseEvent.Add("af_receipt_id", "X123ABC");
AppsFlyer.sendEvent ("first_purchase", FirstPurchaseEvent);
Healthcare
Healthcare apps enable users to purchase health insurance, make appointments, receive medical advice, etc. The in-app events that we recommend recording in healthcare apps include purchases and bookings. Here are some examples of how recording these events can benefit you:
- Recording purchases helps you understand which medications are the most necessary and in-demand.
- Recording insurance plans helps you understand what packages users are interested in.
- Recording bookings helps you understand which medical issues users are most concerned about.
Login
Nome do evento: af_login
Propósito
Este evento pode ajudar você a compreender a retenção de seus usuários registrados.
Lógica do ativador
Acione este evento sempre que o usuário fizer login.
Recommended fields
This event can be sent without any additional fields.
Exemplos de código
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.LOGIN, null);
[[AppsFlyerLib shared] logEvent:AFEventLogin withValues: nil];
AppsFlyerLib.shared().logEvent(AFEventLogin, withValues: nil);
AppsFlyer.sendEvent ("af_login", null);
Concluir cadastro
Nome do evento: complete_registration
Propósito
Você pode gravar o registro de usuários e compará-lo com outros dados para saber mais sobre seus usuários. Com a gravação de eventos de registro de usuários é possível:
- Saber quantos usuários instalaram o aplicativo, mas nunca se cadastraram.
- Saber quais métodos de cadastro seus usuários preferem.
Lógica do ativador
A melhor forma de gravar este evento é acioná-lo quando o usuário concluir o processo de cadastro.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_registration_method | string | email, facebook | O tipo de método de cadastro |
Exemplos de código
Map<String, Object> eventValue = new HashMap<>();
eventValue.put(AFInAppEventParameterName.REGISTRATION_METHOD, "Facebook");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.COMPLETE_REGISTRATION, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventCompleteRegistration
withValues: @{
AFEventParamRegistrationMethod: @"Facebook"
}];
AppsFlyerLib.shared().logEvent(AFEventCompleteRegistration,
withValues: [
AFEventParamRegistrationMethod: "Facebook"
]);
Dictionary<string, string> CompleteRegistrationEvent = new Dictionary<string, string>();
CompleteRegistrationEvent.Add("af_registration_method", "Facebook");
AppsFlyer.sendEvent ("af_complete_registration", CompleteRegistrationEvent);
Confirmed appointment
Event Name: confirmed_appointment
Propósito
You can record when a user makes any sort of appointment. This can help you, for example, since when you record appointment confirmation events, you can send these users retargeting ads and reminders for regular checkups and future appointments.
Lógica do ativador
The best way to record this event is to trigger it when the user makes an appointment.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
doctor name | string | Robert James | Name of the doctor. |
appointment number | string | 001 | Number of the appointment. |
Exemplos de código
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("doctor name", "Robert James");
eventValue.put("appointment number", "001");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "confirmed_appointment", eventValue);
[[AppsFlyerLib shared] logEvent:@"confirmed_appointment" withValues: @{
@"doctor name": @"Robert James",
@"appointment number": @"001"}];
AppsFlyerLib.shared().logEvent("confirmed_appointment", withValues:
[ "doctor name": "Robert James",
"appointment number": "001"])
Dictionary<string, string> ConfirmedAppointmentEvent= new Dictionary<string, string>();
ConfirmedAppointmentEvent.Add("doctor name", "Robert James");
ConfirmedAppointmentEvent.Add("appointment number", "001");
AppsFlyer.sendEvent ("confirmed_appointment", ConfirmedAppointmentEvent);
Canceled appointment
Event Name: canceled_appointment
Propósito
You can record when a user cancels an appointment. This can help you, for example, since when you record appointment cancellation events, you can send these users retargeting ads to reschedule their appointments.
Lógica do ativador
The best way to record this event is to trigger it when the user cancels an appointment.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
doctor name | string | Robert James | Name of the doctor. |
appointment number | string | 001 | Number of the appointment. |
Exemplos de código
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("doctor name", "Robert James");
eventValue.put("appointment number", "001");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "canceled_appointment", eventValue);
[[AppsFlyerLib shared] logEvent:@"canceled_appointment" withValues: @{
@"doctor name": @"Robert James",
@"appointment number": @"001"}];
AppsFlyerLib.shared().logEvent("canceled_appointment", withValues:
[ "doctor name": "Robert James",
"appointment number": "001"])
Dictionary<string, string> CanceledAppointmentEvent= new Dictionary<string, string>();
CanceledAppointmentEvent.Add("doctor name", "Robert James");
CanceledAppointmentEvent.Add("appointment number", "001");
AppsFlyer.sendEvent ("canceled_appointment", CanceledAppointmentEvent);
Doctor first booking
Event Name: doctor_first_booking
Propósito
You can record when a user booked their first appointment. This can help you, for example, since when you record first appointment events, you can send these users promos/retargeting ads.
Lógica do ativador
The best way to record this event is to trigger it when the user makes their first appointment.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
doctor name | string | Robert James | Name of the doctor. |
specialty | string | neurology | Medical specialty. |
duration | string | 30 min chat | Amount of time of the appointment. |
price | string | 50 | Price of the appointment. |
Exemplos de código
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("doctor name", "Robert James");
eventValue.put("specialty", "neurology");
eventValue.put("duration", "30 min chat");
eventValue.put("price", "50");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "doctor_first_booking", eventValue);
[[AppsFlyerLib shared] logEvent:@"doctor_first_booking" withValues: @{
@"doctor name": @"Robert James",
@"specialty": @"neurology",
@"duration": @"30 min chat",
@"price": @"50"}];
AppsFlyerLib.shared().logEvent("doctor_first_booking", withValues:
[ "doctor name": "Robert James",
"specialty": "neurology",
"duration": "30 min chat",
"price": "50"])
Dictionary<string, string> DoctorFirstBookingEvent= new Dictionary<string, string>();
DoctorFirstBookingEvent.Add("doctor name", "Robert James");
DoctorFirstBookingEvent.Add("appointment number", "001");
DoctorFirstBookingEvent.Add("duration", "30 min chat");
DoctorFirstBookingEvent.Add("price", "50");
AppsFlyer.sendEvent ("doctor_first_booking", DoctorFirstBookingEvent);
Lab first appointment
Event Name: lab_first_appointment
Propósito
You can record when a user booked their first lab appointment. This can help you, for example, since when you record first appointment events, you can send these users promos/retargeting ads.
Lógica do ativador
The best way to record this event is to trigger it when the user makes their first appointment.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
lab selection | string | full body checkup | Name of the lab type. |
quantity | string | 2 | Amount ordered. |
price | string | 500 | Price of the lab. |
Exemplos de código
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("lab selection", "full body checkup");
eventValue.put("quantity", "2");
eventValue.put("price", "500");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "lab_first_appointment", eventValue);
[[AppsFlyerLib shared] logEvent:@"lab_first_appointment" withValues: @{
@"lab_selection": @"full body checkup",
@"quantity": @"2",
@"price": @"500"}];
AppsFlyerLib.shared().logEvent("lab_first_appointment", withValues:
[ "lab selection": "full body checkup",
"quantity": "2",
"price": "500"])
Dictionary<string, string> LabFirstAppointmentEvent= new Dictionary<string, string>();
LabFirstAppointmentEvent.Add("lab selection", "full body checkup");
LabFirstAppointmentEvent.Add("quantity", "2");
LabFirstAppointmentEvent.Add("price", "500");
AppsFlyer.sendEvent ("lab_first_appointment", LabFirstAppointmentEvent);
Pharmacy first purchase
Event Name: pharmacy_first_purchase
Propósito
You can record when a user makes their first pharmaceutical purchase. This can help you, for example, since when you record first purchase events, you can send these users promos/retargeting ads.
Lógica do ativador
The best way to record this event is to trigger it when the user makes their first purchase.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
medicine name | string | rhinos | Name of the medicine. |
quantity | string | 1 | Amount ordered. |
price | string | 10 | Price of the medicine. |
Exemplos de código
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("medicine name", "rhinos");
eventValue.put("quantity", "1");
eventValue.put("price", "10");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "pharmacy_first_purchase", eventValue);
[[AppsFlyerLib shared] logEvent:@"pharmacy_first_purchase" withValues: @{
@"medicine name": @"rhinos",
@"quantity": @"1",
@"price": @"10"}];
AppsFlyerLib.shared().logEvent("pharmacy_first_purchase", withValues:
[ "medicine name": "rhinos",
"quantity": "1",
"price": "10"])
Dictionary<string, string> PharmacyFirstPurchaseEvent= new Dictionary<string, string>();
PharmacyFirstPurchaseEvent.Add("medicine name", "rhinos");
PharmacyFirstPurchaseEvent.Add("quantity", "1");
PharmacyFirstPurchaseEvent.Add("price", "10");
AppsFlyer.sendEvent ("pharmacy_first_purchase", PharmacyFirstPurchaseEvent);
Doctor booking
Event Name: doctor_booking
Propósito
You can record when a user books an in-person appointment with a doctor. This can help you, for example, since when you record these appointment events, it tells you more about your user needs and interests.
Lógica do ativador
The best way to record this event is to trigger it when the user schedules an in-person appointment.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
doctor name | string | Robert James | Name of the doctor. |
specialty | string | neurology | Medical specialty. |
duration | string | 30 min chat | Amount of time of the appointment. |
price | string | 50 | Price of the appointment. |
Exemplos de código
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("doctor name", "Robert James");
eventValue.put("specialty", "neurology");
eventValue.put("duration", "30 min chat");
eventValue.put("price", "50");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "doctor_booking", eventValue);
[[AppsFlyerLib shared] logEvent:@"doctor_booking" withValues: @{
@"doctor name": @"Robert James",
@"specialty": @"neurology",
@"duration": @"30 min chat",
@"price": @"50"}];
AppsFlyerLib.shared().logEvent("doctor_booking", withValues:
[ "doctor name": "Robert James",
"specialty": "neurology",
"duration": "30 min chat",
"price": "50"])
Dictionary<string, string> DoctorBookingEvent= new Dictionary<string, string>();
DoctorBookingEvent.Add("doctor name", "Robert James");
DoctorBookingEvent.Add("appointment number", "001");
DoctorBookingEvent.Add("duration", "30 min chat");
DoctorBookingEvent.Add("price", "50");
AppsFlyer.sendEvent ("doctor_booking", DoctorBookingEvent);
Chat doctor
Event Name: chat_doctor
Propósito
If your app lets users schedule live chats with a doctor, you can record when a user booked such a chat. This can help you, for example, since when you record these booking events, it tells you more about your user needs and interests.
Lógica do ativador
The best way to record this event is to trigger it when the user makes a booking.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
doctor name | string | Robert James | Name of the doctor. |
specialty | string | neurology | Medical specialty. |
duration | string | 30 min chat | Amount of time of the appointment. |
price | string | 50 | Price of the appointment. |
Exemplos de código
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("doctor name", "Robert James");
eventValue.put("specialty", "neurology");
eventValue.put("duration", "30 min chat");
eventValue.put("price", "50");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "chat_doctor", eventValue);
[[AppsFlyerLib shared] logEvent:@"chat_doctor" withValues: @{
@"doctor name": @"Robert James",
@"specialty": @"neurology",
@"duration": @"30 min chat",
@"price": @"50"}];
AppsFlyerLib.shared().logEvent("chat_doctor", withValues:
[ "doctor name": "Robert James",
"specialty": "neurology",
"duration": "30 min chat",
"price": "50"])
Dictionary<string, string> ChatDoctorEvent= new Dictionary<string, string>();
ChatDoctorEvent.Add("doctor name", "Robert James");
ChatDoctorEvent.Add("appointment number", "001");
ChatDoctorEvent.Add("duration", "30 min chat");
ChatDoctorEvent.Add("price", "50");
AppsFlyer.sendEvent ("chat_doctor", ChatDoctorEvent);
Lab appointment
Event Name: lab_appointment
Propósito
You can record when a user booked a lab appointment. This can help you, for example, since when you record appointment events, you can send these users promos/retargeting ads.
Lógica do ativador
The best way to record this event is to trigger it when the user makes a lab appointment.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
lab selection | string | full body checkup | Name of the lab type. |
quantity | string | 2 | Amount ordered. |
price | string | 500 | Price of the lab. |
Exemplos de código
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("lab selection", "full body checkup");
eventValue.put("quantity", "2");
eventValue.put("price", "500");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "lab_appointment", eventValue);
[[AppsFlyerLib shared] logEvent:@"lab_appointment" withValues: @{
@"lab_selection": @"full body checkup",
@"quantity": @"2",
@"price": @"500"}];
AppsFlyerLib.shared().logEvent("lab_appointment", withValues:
[ "lab selection": "full body checkup",
"quantity": "2",
"price": "500"])
Dictionary<string, string> LabAppointmentEvent= new Dictionary<string, string>();
LabAppointmentEvent.Add("lab selection", "full body checkup");
LabAppointmentEvent.Add("quantity", "2");
LabAppointmentEvent.Add("price", "500");
AppsFlyer.sendEvent ("lab_appointment", LabAppointmentEvent);
Pharmacy purchase
Event Name: pharmacy_purchase
Propósito
You can record when a user makes a pharmaceutical purchase. This can help you, for example, since when you record purchase events, you can send these users promos/retargeting ads.
Lógica do ativador
The best way to record this event is to trigger it when the user makes a pharmaceutical purchase.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
medicine name | string | rhinos | Name of the medicine. |
quantity | string | 1 | Amount ordered. |
price | string | 10 | Price of the medicine. |
Exemplos de código
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("medicine name", "rhinos");
eventValue.put("quantity", "1");
eventValue.put("price", "10");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "pharmacy_purchase", eventValue);
[[AppsFlyerLib shared] logEvent:@"pharmacy_purchase" withValues: @{
@"medicine name": @"rhinos",
@"quantity": @"1",
@"price": @"10"}];
AppsFlyerLib.shared().logEvent("pharmacy_purchase", withValues:
[ "medicine name": "rhinos",
"quantity": "1",
"price": "10"])
Dictionary<string, string> PharmacyPurchaseEvent= new Dictionary<string, string>();
PharmacyPurchaseEvent.Add("medicine name", "rhinos");
PharmacyPurchaseEvent.Add("quantity", "1");
PharmacyPurchaseEvent.Add("price", "10");
AppsFlyer.sendEvent ("pharmacy_purchase", PharmacyPurchaseEvent);
Adicionar ao carrinho
Event Name: add_to_cart
Propósito
You can record when a user adds a medication to their shopping cart. This can help you, for example, since when you record add-to-cart events, you can send these users promos/reminders to checkout and complete the purchase.
Lógica do ativador
The best way to record this event is to trigger it when the user adds a product to their shopping cart.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
medicine name | string | rhinos | Name of the medicine. |
quantity | string | 1 | Amount ordered. |
price | string | 10 | Price of the medicine. |
Exemplos de código
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("medicine name", "rhinos");
eventValue.put("quantity", "1");
eventValue.put("price", "10");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "add_to_cart", eventValue);
[[AppsFlyerLib shared] logEvent:@"add_to_cart" withValues: @{
@"medicine name": @"rhinos",
@"quantity": @"1",
@"price": @"10"}];
AppsFlyerLib.shared().logEvent("add_to_cart", withValues:
[ "medicine name": "rhinos",
"quantity": "1",
"price": "10"])
Dictionary<string, string> AddToCartEvent= new Dictionary<string, string>();
AddToCartEvent.Add("medicine name", "rhinos");
AddToCartEvent.Add("quantity", "1");
AddToCartEvent.Add("price", "10");
AppsFlyer.sendEvent ("add_to_cart", AddToCartEvent);
Insurance membership
Event Name: insurance_membership
Propósito
If your app partners with an insurer to provide insurance options, you can record when a user registers for insurance. This can help you, for example, since when you record insurance membership registration events, you learn more about your users and can retarget them accordingly.
Lógica do ativador
The best way to record this event is to trigger it when the user gets insurance membership.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
insurance name | string | DavidShield | Name of the insurance company. |
insurance type | string | premium | Type of insurance plan. |
Exemplos de código
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("insurance name", "DavidShield");
eventValue.put("insurance type", "premium");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "insurance_membership", eventValue);
[[AppsFlyerLib shared] logEvent:@"insurance_membership" withValues: @{
@"insurance name": @"DavidShield",
@"insurance type": @"premium"}];
AppsFlyerLib.shared().logEvent("insurance_membership", withValues:
[ "insurance name": "DavidShield",
"insurance type": "premium"])
Dictionary<string, string> InsuranceMembershipEvent= new Dictionary<string, string>();
InsuranceMembershipEvent.Add("insurance name", "DavidShield");
InsuranceMembershipEvent.Add("insurance type", "premium");
AppsFlyer.sendEvent ("insurance_membership", InsuranceMembershipEvent);
Receipt issuance
Event Name: receipt_issuance
Propósito
Record when your users receive receipts. Users with a receipt can potentially claim the cost of the doctor appointment, lab, or medicine from an insurer. And this can help you, for example, since when you record receipt issuance events, you use the data for retargeting campaigns about personal insurance coverage.
Lógica do ativador
The best way to record this event is to trigger it when the user gets a receipt.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
app name | string | Healthcare App | Name of your app |
doctor name | string | Robert James | Name of the doctor. |
consultation description | string | fever | Description of the health condition. |
Exemplos de código
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("app name", "Healthcare App");
eventValue.put("doctor name", "Robert James");
eventValue.put("consultation description", "fever");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "receipt_issuance", eventValue);
[[AppsFlyerLib shared] logEvent:@"receipt_issuance" withValues: @{
@"app name": @"Healthcare App",
@"doctor name": @"Robert James",
@"consultation description": @"fever"}];
AppsFlyerLib.shared().logEvent("receipt_issuance", withValues:
[ "app name": "Healthcare App",
"insurance name": "Robert James",
"insurance type": "fever"])
Dictionary<string, string> ReceiptIssuanceEvent= new Dictionary<string, string>();
ReceiptIssuanceEvent.Add("app name", "Healthcare App");
ReceiptIssuanceEvent.Add("doctor name", "Robert James");
ReceiptIssuanceEvent.Add("consultation description", "fever");
AppsFlyer.sendEvent ("receipt_issuance", ReceiptIssuanceEvent);
Compra
Nome do evento: af_purchase
Propósito
Record in-app purchases made by users. By recording purchases you can:
- Descobrir o LTV de seus usuários e o ROI de suas campanhas em redes e agências de anúncios.
- Descobrir quais ofertas são mais populares entre seus usuários.
- Fazer referência cruzada de campanhas com itens comprados para otimizar o direcionamento de campanhas.
Lógica do ativador
Para registrar este evento de forma adequada, é necessário acioná-lo quando o usuário acessar a página de agradecimento após uma compra bem-sucedida.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_revenue | float | 50 | The revenue from the purchase. |
af_currency | string | USD | The currency code. |
af_content_type | string | lab | The name of the purchase. |
af_order_id | string | 9277 | The order ID. |
payment_method_type | string | credit card, local | Payment method. |
Exemplos de código
Map<String, Object> eventValue = new HashMap<>();
eventValue.put(AFInAppEventParameterName.REVENUE, 50);
eventValue.put(AFInAppEventParameterName.CURRENCY, "USD");
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "lab");
eventValue.put("AFInAppEventParameterName.ORDER_ID", "9277");
eventValue.put("payment_method_type", "credit card");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),AFInAppEventType.PURCHASE, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventPurchase
withValues: @{
AFEventParamRevenue: @50,
AFEventParamCurrency: @"USD",
AFEventParamContentType: @"lab",
AFEventParamContentTypeOrderId: @"9277",
@"payment_method_type": @"credit card"
}];
AppsFlyerLib.shared().logEvent(AFEventPurchase,
withValues: [
AFEventParamRevenue: 50,
AFEventParamCurrency: "USD",
AFEventParamContentType: "lab",
AFEventParamContentTypeOrderId: "9277",
"payment_method_type": "credit card",
]);
Dictionary<string, string> purchaseEvent = new Dictionary<string, string>();
purchaseEvent.Add("af_revenue", "50");
purchaseEvent.Add("af_currency", "USD");
purchaseEvent.Add("af_content_type", "lab");
purchaseEvent.Add("af_order_id", "9277");
purchaseEvent.Add("payment_method_type", "credit card");
AppsFlyer.sendEvent ("af_purchase", purchaseEvent);
Sucesso na recarga
Nome do evento: af_top_up_success
Propósito
Top-up funds can be used to buy any package or service offered inside the app. You can record user top-ups and compare it with other data to learn more about your users. By recording user top-up events you can:
- Saber quais valores as pessoas estão dispostas a depositar em suas contas.
- Usar os valores de recarga para direcionar usuários com campanhas personalizadas dentro do seu orçamento de recarga.
Lógica do ativador
Para gravar esse evento corretamente, você deve dispará-lo quando o usuário concluir a recarga.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_revenue | string | 2000 | O valor da recarga. |
top_up_id | string | 397 | A ID da recarga. |
payment_method_type | string | cartão de crédito, pagamento local | Método de pagamento usado. |
Exemplos de código
Map<String, Object> eventValue = new HashMap<>();eventValue.put(AFInAppEventParameterName.REVENUE, 2000); eventValue.put("TOP_UP_ID", "397"); eventValue.put("PAYMENT_METHOD_TYPE", "creditcard");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.AF_TOP_UP_SUCCESS, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventTopUpSuccess
withValues: @{
AFEventParamRevenue: @2000,
@"top_up_id": @"397",
@"payment_method_type": @"credit card"
}];
AppsFlyerLib.shared().logEvent(AFEventTopUpSuccess,
withValues: [
AFEventParamRevenue: 2000,
"top_up_id": "397",
"payment_method_type": "credit card",
]);
Dictionary<string, string> TopUpSuccessEvent = new Dictionary<string, string>();
TopUpSuccessEvent.Add("af_revenue", "2000");
TopUpSuccessEvent.Add("top_up_id", "397");
TopUpSuccessEvent.Add("payment_method_type", "credit card");
AppsFlyer.sendEvent ("af_top_up_success", TopUpSuccessEvent);
Telecomunicações
Os aplicativos de telecomunicações permitem que os usuários adquiram e gerenciem planos de celular, planos de dados etc. Os eventos in-app que recomendamos gravar em aplicativos de telecomunicações incluem compras, recargas e assinaturas. Confira alguns exemplos de como a gravação desses eventos pode ajudar:
- A gravação de compras ajuda você a entender quais planos de gateway são os mais populares.
- A gravação de recargas ajuda você a entender quais produtos ou pacotes os usuários podem pagar.
- O gravação de assinaturas ajuda você a entender quais planos os clientes tendem a adquirir por um período longo.
Login
Nome do evento: af_login
Propósito
Este evento pode ajudar você a compreender a retenção de seus usuários registrados.
Lógica do ativador
Acione este evento sempre que o usuário fizer login.
Recommended fields
This event can be sent without any additional fields.
Exemplos de código
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.LOGIN, null);
[[AppsFlyerLib shared] logEvent:AFEventLogin withValues: nil];
AppsFlyerLib.shared().logEvent(AFEventLogin, withValues: nil);
AppsFlyer.sendEvent ("af_login", null);
Compra
Nome do evento: af_purchase
Propósito
Muitos aplicativos de telecomunicações permitem que os usuários comprem itens, por exemplo, pacote adicional de dados. O evento Compra ajuda você a registrar compras in-app feitas por usuários. Com o registro de compras é possível:
- Descobrir o LTV de seus usuários e o ROI de suas campanhas em redes e agências de anúncios.
- Descobrir quais ofertas são mais populares entre seus usuários.
- Fazer referência cruzada de campanhas com itens comprados para otimizar o direcionamento de campanhas.
Lógica do ativador
Para registrar este evento de forma adequada, é necessário acioná-lo quando o usuário acessar a página de agradecimento após uma compra bem-sucedida.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_revenue | float | 2000 | A receita estimada de uma compra |
af_currency | string | THB | O código da moeda |
af_content_type | string | 5G | O nome do pacote comprado. |
af_order_id | string | 9277 | A ID do pedido |
payment_method_type | string | cartão de crédito, pagamento local | Tipo de método de pagamento |
Exemplos de código
Map<String, Object> eventValue = new HashMap<>();
eventValue.put(AFInAppEventParameterName.REVENUE, 2000);
eventValue.put(AFInAppEventParameterName.CURRENCY, "THB");
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "5G");
eventValue.put("AFInAppEventParameterName.ORDER_ID", "9277");
eventValue.put("payment_method_type", "credit_card");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),AFInAppEventType.PURCHASE, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventPurchase
withValues: @{
AFEventParamRevenue: @2000,
AFEventParamCurrency: @"THB",
AFEventParamContentType: @"5G",
AFEventParamContentTypeOrderId: @"9277",
@"payment_method_type": @"credit_card"
}];
AppsFlyerLib.shared().logEvent(AFEventPurchase,
withValues: [
AFEventParamRevenue: 2000,
AFEventParamCurrency: "THB",
AFEventParamContentType: "5G",
AFEventParamContentTypeOrderId: "9277",
"payment_method_type": "credit_card",
]);
Dictionary<string, string> purchaseEvent = new Dictionary<string, string>();
purchaseEvent.Add("af_revenue", "2000");
purchaseEvent.Add("af_currency", "THB");
purchaseEvent.Add("af_content_type", "5G");
purchaseEvent.Add("af_order_id", "9277");
purchaseEvent.Add("payment_method_type", "credit_card");
AppsFlyer.sendEvent ("af_purchase", purchaseEvent);
Concluir cadastro
Nome do evento: complete_registration
Propósito
Você pode gravar o registro de usuários e compará-lo com outros dados para saber mais sobre seus usuários. Com a gravação de eventos de registro de usuários é possível:
- Saber quantos usuários instalaram o aplicativo, mas nunca se cadastraram.
- Saber quais métodos de cadastro seus usuários preferem.
Lógica do ativador
A melhor forma de gravar este evento é acioná-lo quando o usuário concluir o processo de cadastro.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_registration_method | string | email, facebook | O tipo de método de cadastro |
Exemplos de código
Map<String, Object> eventValue = new HashMap<>();
eventValue.put(AFInAppEventParameterName.REGISTRATION_METHOD, "Facebook");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.COMPLETE_REGISTRATION, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventCompleteRegistration
withValues: @{
AFEventParamRegistrationMethod: @"Facebook"
}];
AppsFlyerLib.shared().logEvent(AFEventCompleteRegistration,
withValues: [
AFEventParamRegistrationMethod: "Facebook"
]);
Dictionary<string, string> CompleteRegistrationEvent = new Dictionary<string, string>();
CompleteRegistrationEvent.Add("af_registration_method", "Facebook");
AppsFlyer.sendEvent ("af_complete_registration", CompleteRegistrationEvent);
Sucesso na recarga
Nome do evento: af_top_up_success
Propósito
Os fundos da recarga podem ser usados para comprar qualquer pacote ou qualquer outro serviço oferecido dentro do aplicativo. Você pode gravar recargas de usuários e compará-las com outros dados para saber mais sobre seus usuários. Ao gravar eventos de recarga do usuário, você pode:
- Saber quais valores as pessoas estão dispostas a depositar em suas contas.
- Usar os valores de recarga para direcionar usuários com campanhas personalizadas dentro do seu orçamento de recarga.
Lógica do ativador
Para gravar esse evento corretamente, você deve dispará-lo quando o usuário concluir a recarga.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_revenue | string | 2000 | O valor da recarga. |
top_up_id | string | 397 | A ID da recarga. |
payment_method_type | string | cartão de crédito, pagamento local | Método de pagamento usado. |
Exemplos de código
Map<String, Object> eventValue = new HashMap<>();eventValue.put(AFInAppEventParameterName.REVENUE, 2000); eventValue.put("TOP_UP_ID", "397"); eventValue.put("PAYMENT_METHOD_TYPE", "credit_card");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.AF_TOP_UP_SUCCESS, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventTopUpSuccess
withValues: @{
AFEventParamRevenue: @2000,
@"top_up_id": @"397",
@"payment_method_type": @"credit_card"
}];
AppsFlyerLib.shared().logEvent(AFEventTopUpSuccess, tele
withValues: [
AFEventParamRevenue: 2000,
"top_up_id": "397",
"payment_method_type": "credit_card",
]);
Dictionary<string, string> TopUpSuccessEvent = new Dictionary<string, string>();
TopUpSuccessEvent.Add("af_revenue", "2000");
TopUpSuccessEvent.Add("top_up_id", "397");
TopUpSuccessEvent.Add("payment_method_type", "credit_card");
AppsFlyer.sendEvent ("af_top_up_success", TopUpSuccessEvent);
Recarga malsucedida
Nome do evento: af_top_up_unsuccessful
Propósito
Você pode gravar eventos de recargas malsucedidas e compará-los com outros dados para saber mais sobre seus usuários. Por exemplo, ao gravar carregamentos malsucedidos, você pode saber quantos usuários tentam fazer recarga, mas não conseguem.
Lógica do ativador
A melhor maneira de gravar esse evento é dispará-lo quando o usuário tenta fazer a recarga mas não consegue.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
error_reason | string | exceeded_daily_limit | O motivo para falha na recarga. |
Exemplos de código
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("error_reason", "exceeded_daily_limit");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "af_top_up_unsuccessful", eventValue);
[[AppsFlyerLib shared] logEvent:@"af_top_up_unsuccessful" withValues: @{
@"error_reason": @"exceeded_daily_limit"}];
AppsFlyerLib.shared().logEvent("af_top_up_unsuccessful",withValues:
["error_reason": "exceeded_daily_limit" ])
Dictionary<string, string> TopUpUnsuccessfulEvent = new Dictionary<string, string>();
ErrorReasonEvent.Add("error_reason", "exceeded_daily_limit");
AppsFlyer.sendEvent ("af_top_up_unsuccessful
", TopUpUnsuccessfulEvent);
Assinatura concluída
Nome do evento: af_subscription_complete
Propósito
Com o registro de eventos de assinatura de usuários é possível:
- Ver quais campanhas fazem que os usuários façam a assinatura.
- Comparar o número de usuários com assinatura com usuários sem assinatura.
- Gravar a receita gerada pelas assinaturas e atribuí-la a campanhas e fontes de mídia.
Lógica do ativador
Acione este evento em um dos dois cenários:
- Quando o usuário faz a assinatura com sucesso.
- Quando uma assinatura é renovada.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
af_subscription_type | string | Mensal 30 GB | Tipo de assinatura. |
af_revenue | string | 555 | Valor da assinatura. |
Exemplos de código
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("af_subscription_type", "Monthly 30 GB");
eventValue.put("af_revenue", "555");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "af_subscription_complete", eventValue);
[AppsFlyerLib shared] logEvent:@"af_subscription_complete" withValues:@{
@"af_subscription_type": @"Monthly 30 GB",
@"af_revenue": @"555"}];
ApAppsFlyerLib.shared().logEvent("af_subscription_complete", withValues:
[ "af_subscription_type": "Monthly 30 GB",
"af_revenue": "555"])
Dictionary<string, string> SubscriptionCompleteEvent = new Dictionary<string, string>();
SubscriptionCompleteEvent.Add("af_subscription_type", "Monthly 30 GB");
SubscriptionCompleteEvent.Add("af_revenue", "555");
AppsFlyer.sendEvent ("af_subscription_complete", SubscriptionCompleteEvent);
Selecione o pacote
Nome do evento: select_package
Propósito
Você pode registrar quando um usuário decide comprar um pacote, mas ainda não fez o pagamento. Isso pode ajudar pois, por exemplo, quando você registra eventos de seleção de pacotes, você pode enviar aos usuários anúncios de retargeting e lembretes para que eles concluam suas assinaturas.
Lógica do ativador
A melhor forma de gravar esse evento é dispará-lo quando o usuário seleciona um pacote, mas não concluiu o pagamento.
Recommended fields
Field name | Tipo | Exemplo de valor | Descrição |
---|---|---|---|
price | string | 50000 | O preço da assinatura. |
af_content_type | string | Dados 5 GB | Se o certificado foi emitido. |
Exemplos de código
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("price", "50000");
eventValue.put("af_content_type ", "Data 5 GB ");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "select_package", eventValue);
[[AppsFlyerLib shared] logEvent:@"select_package" withValues: @{
@"price": @"50000",
@"af_content_type ": @"Data 5 GB "}];
AppsFlyerLib.shared().logEvent("select_package", withValues:
[ "price": "50000",
"af_content_type ": "Data 5 GB "])
Dictionary<string, string> SelectPackageEvent= new Dictionary<string, string>();
SelectPackageEvent.Add("price", "50000");
SelectPackageEvent.Add("af_content_type ", "Data 5 GB ");
AppsFlyer.sendEvent ("select_package", SelectPackageEvent);