### Example Final URL with Standard Checkout Source: https://docs.nemu.com.br/pages/onboarding/configuracao-utms/facebook/facebook This example shows a complete destination URL for a Facebook campaign using the standard checkout configuration. It includes both standard UTMs and the nemu-specific parameters for comprehensive tracking. ```text https://www.exemplo.com/produto?utm_source=facebook&utm_campaign={{campaign.name}}|{{campaign.id}}&utm_medium=cpc&utm_content={{ad.name}}|{{ad.id}}&utm_term={{adset.name}}|{{adset.id}}&nemu_source=facebook&nemu_campaign={{campaign.name}}|{{campaign.id}}&nemu_adset={{adset.name}}|{{adset.id}}&nemu_content={{ad.name}}|{{ad.id}} ``` -------------------------------- ### Nemu Pixel Script Setup Source: https://docs.nemu.com.br/pages/onboarding/integracoes/wbuy This script is the Nemu pixel, crucial for tracking and analytics. It must be placed within the `` section of every page on your website. No specific inputs are required, as it functions automatically once embedded. ```html ``` -------------------------------- ### UTM Configuration Navigation Links Source: https://docs.nemu.com.br/pages/onboarding/configuracao-utms This React code snippet demonstrates the use of a CardGroup component to display navigation links for configuring UTM parameters across different ad platforms. Each card links to a specific platform's UTM setup page. ```javascript } /> } /> } /> } /> } /> } /> ``` -------------------------------- ### Add Nemu SDK and Install Referrer Dependencies to Gradle Source: https://docs.nemu.com.br/pages/app-tracking/kotlin-sdk This snippet shows how to add the Nemu Kotlin SDK and the Google Play Install Referrer library to your Android project's build.gradle file. Ensure you have mavenCentral() configured in your repositories. ```gradle repositories { mavenCentral() } dependencies { implementation("com.nemu:nemu-kotlin-sdk:1.0.0") /* Dependências para recuperação de origem através de instalação do app */ // Google Play implementation ("com.android.installreferrer:installreferrer:2.2") } ``` -------------------------------- ### React E-commerce Icon Component Source: https://docs.nemu.com.br/pages/onboarding/integracoes A React component that renders an SVG icon for e-commerce. It accepts a 'size' prop to control its dimensions, defaulting to 'large'. The icon uses Tailwind CSS classes for sizing. ```javascript export const EcommerceIcon = ({ size = "large" }) => { const sizeClass = size === "small" ? "w-4" : "w-6"; return (
); }; ``` -------------------------------- ### React Google Sheets Icon Component Source: https://docs.nemu.com.br/pages/onboarding/integracoes A React component that renders an SVG icon representing Google Sheets. It supports a 'size' prop for dimension control, defaulting to 'large', and uses Tailwind CSS for sizing. ```javascript export const GoogleSheetsIcon = ({ size = "large" }) => { const sizeClass = size === "small" ? "w-4" : "w-6"; return (
var timer = setInterval(function () { const location = window.trackingNemu?.nemuUtms || new URL(document.location.href)?.searchParams; const fields = [ "src", "sck", "utm_source", "utm_medium", "utm_campaign", "utm_content", "utm_term", ]; var links = document.getElementsByTagName("a"); for (var i = 0, n = links.length; i < n; i++) { if (links[i].href.includes("#")) continue; if (links[i].href) { let link = new URL(links[i].href); fields.forEach((field) => { if (location.get(field)) link.searchParams.set(field, location.get(field)); }); let href = link.href; links[i].href = href; } } }, 500); ``` -------------------------------- ### Recuperar UTMs e Enviar Venda para API Nemu Source: https://docs.nemu.com.br/pages/app-tracking/instalar-web-app Recupera informações de UTM da sessão atual do usuário usando `getLastSessionHistory()` e as inclui ao enviar dados de uma transação para a API da Nemu via `fetch`. ```javascript function enviarVendaComUtms() { const session = trackingNemu.getLastSessionHistory(); if (!session) { console.log("No sessions found"); return; } const payload = { transactionId: "123", netValue: 10, status: "paid", utm_campaign: session.utmCampaign ?? null, utm_content: session.utmContent ?? null, utm_medium: session.utmMedium ?? null, utm_source: session.utmSource ?? null, utm_term: session.utmTerm ?? null, }; const url = "https://developers.nemu.com.br/api/v1"; fetch(url, { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify(payload), }) .then((response) => { console.log(`API response: ${response.status}`); }) .catch((error) => { console.error(`Error to send: ${error.message}`); }); } ``` -------------------------------- ### Set User ID on Application Start if Logged In Source: https://docs.nemu.com.br/pages/app-tracking/kotlin-sdk This Kotlin code snippet demonstrates how to set the user ID for the Nemu SDK when the application starts, in case the user is already logged in. It checks for a current user ID using `UserSessionManager.getCurrentUserId()` and calls `NemuTrackingLib.getInstance().setUserId(userId)` if found. ```kotlin class MyApp: Application() { override fun onCreate() { super.onCreate() // Verifica se o usuário está logado val userId = UserSessionManager.getCurrentUserId() if (userId != null) { NemuTrackingLib.getInstance().setUserId(userId) } } } ``` -------------------------------- ### Adicionar Parâmetros UTM Orgânicos a URLs Source: https://docs.nemu.com.br/pages/onboarding/configuracao-utms/organicas/organicas Demonstra como adicionar parâmetros UTM orgânicos (como nemu_source e nemu_adset) a URLs. Explica a diferença entre links que já possuem o caractere '?' e aqueles que não possuem, e como usar '&' para parâmetros subsequentes. ```text https://meucheckout.com/?id=01 https://meucheckout.com/?id=01&nemu_source=instagram https://meusite.com/?nemu_source=instagram https://meusite.com/?nemu_source=instagram&nemu_adset=organic ``` -------------------------------- ### Exemplo de URL com UTMs Nemu e Parâmetros Existentes Source: https://docs.nemu.com.br/pages/onboarding/configuracao-utms/influenciadores/influenciadores Mostra como adicionar os parâmetros UTM da Nemu a uma URL que já contém outros parâmetros (como um ID). O primeiro parâmetro UTM da Nemu é adicionado com '&', seguindo os parâmetros já existentes. ```text https://meucheckout.com/?id=01&nemu_source=influencer&nemu_adset=joao_silva ``` -------------------------------- ### Rastrear Parâmetros UTM com JavaScript no Elementor Source: https://docs.nemu.com.br/pages/onboarding/integracoes/elementor Este script JavaScript é utilizado no Elementor para rastrear e preencher parâmetros UTM em um formulário de pré-checkout. Ele monitora a URL em busca de parâmetros UTM e os insere nos campos correspondentes do formulário. ```javascript var timer = setInterval(function () { var pixelPattern = /nemu_.{10}/; clearInterval(timer); var pixelTimer = setInterval(function () { if (pixelPattern.test(document.location.search)) { var params = new URLSearchParams(window.location.search); var src = params.get("src"); var inputTimer = setInterval(function () { var inputUtmSrc = document.querySelector( "input[name='form_fields[src]']" ); if (inputUtmSrc) { inputUtmSrc.value = src; clearInterval(inputTimer); } }, 100); clearInterval(pixelTimer); } }, 100); }, 100); ``` -------------------------------- ### Inicializar SDK Nemu em Modo Debug (Swift) Source: https://docs.nemu.com.br/pages/app-tracking/swift-sdk Este trecho de código demonstra como inicializar o SDK da Nemu em modo de depuração (`isDebugMode: true`) para visualizar logs detalhados. A inicialização deve ser feita no início da aplicação, como no `AppDelegate` ou na struct `@main` do SwiftUI. ```swift NemuTrackingManager.shared.initialize( withPixelId: "YOUR_PIXEL_ID", withApiKey: "YOUR_SDK_TOKEN", isDebugMode: true ) ``` -------------------------------- ### Configuração de UTMs para Hotmart Afiliados no Pinterest Source: https://docs.nemu.com.br/pages/onboarding/configuracao-utms/pinterest/pinterest Detalha o formato de parâmetros de URL para o checkout da Hotmart Afiliados no Pinterest. Este formato inclui um prefixo específico ('sck=') para diferenciar de outras configurações. ```text sck=pinterest|{campaignname}|{adgroupname}|{campaignid}|{adgroupid}|{adid} ``` -------------------------------- ### Script de Passagem de UTMs para WordPress (JavaScript) Source: https://docs.nemu.com.br/pages/onboarding/integracoes/wordpress Este script JavaScript é projetado para ser inserido em páginas específicas do WordPress usando o plugin HFCM. Ele captura parâmetros UTM da URL ou de um objeto de rastreamento e os disponibiliza para processamento posterior. Certifique-se de que o objeto `window.trackingNemu` exista ou que a URL contenha os parâmetros UTM desejados. ```javascript var timer = setInterval(function () { const location = window.trackingNemu?.nemuUtms || new URL(document.location.href)?.searchParams; const fields = [ "src", "sck", "utm_source", "utm_medium", ``` -------------------------------- ### Parâmetros de URL para Pinterest com Nemu Source: https://docs.nemu.com.br/pages/onboarding/configuracao-utms/pinterest/pinterest Define a estrutura de parâmetros de URL para campanhas do Pinterest, incluindo UTMs padrão e parâmetros específicos do Nemu. Esses parâmetros são essenciais para rastrear o desempenho da campanha e a origem do tráfego. ```text {adgroupname}|{adgroupid} ``` ```text {adid} ``` ```text https://www.exemplo.com/checkout?utm_source=pinterest&utm_medium=cpc&utm_campaign=promo_inverno&nemu_source=pinterest&nemu_campaign={campaignname}|{campaignid}&nemu_adset={adgroupname}|{adgroupid}&nemu_content={adid} ``` -------------------------------- ### Registrar User ID do Usuário com SDK Web Nemu Source: https://docs.nemu.com.br/pages/app-tracking/instalar-web-app Registra o ID único do usuário na Nemu após o login bem-sucedido. Garante que usuários logados previamente também sejam rastreados ao carregar a aplicação. ```javascript function autenticarUsuario() { const email = "usuario@example.com"; const senha = "1234"; loginUser({ email: email, password: senha, onSuccess: function (userId) { trackingNemu.setUserId(userId); console.log(`NemuTracking: Registered user: ${userId}`); }, onError: function () { console.error("NemuTracking: Failed to authenticate user"); }, }); } ``` ```javascript const userId = window.sessionUser?.email || window.sessionUser?.id; if (userId) { nemuTracking.setUserId(userId); } ``` -------------------------------- ### Configuração de UTMs para Hotmart no Pinterest Source: https://docs.nemu.com.br/pages/onboarding/configuracao-utms/pinterest/pinterest Especifica o formato de parâmetros de URL para o checkout da Hotmart ao usar o Pinterest como fonte. Utiliza um formato condensado que inclui informações essenciais da campanha. ```text src=pinterest|{campaignname}|{adgroupname}|{campaignid}|{adgroupid}|{adid} ``` -------------------------------- ### Combinar UTMs Tradicionais e Nemu Source: https://docs.nemu.com.br/pages/onboarding/configuracao-utms/organicas/organicas Mostra como combinar parâmetros UTM tradicionais (utm_source, utm_medium) com os parâmetros UTM da Nemu (nemu_source, nemu_adset) na mesma URL. Isso garante que ambos os sistemas de rastreamento coletem os dados corretamente. ```text https://meusite.com/?utm_source=instagram&utm_medium=organic&nemu_source=instagram&nemu_adset=reels-1 ``` -------------------------------- ### Configuração de UTMs Padrão para Pinterest Source: https://docs.nemu.com.br/pages/onboarding/configuracao-utms/pinterest/pinterest Define os parâmetros básicos de UTM para campanhas no Pinterest, incluindo fonte, meio e identificadores de campanha e grupo de anúncios. Esta configuração é a base para a maioria dos cenários de checkout. ```text Fonte da campanha (utm_source): pinterest Meio da campanha (utm_medium): cpc ID da campanha (utm_campaign): {campaignname}|{campaignid} Conteúdo da campanha (utm_content): {adgroupname}|{adgroupid} ``` -------------------------------- ### SDK Integration and Testing Source: https://docs.nemu.com.br/pages/app-tracking/kotlin-sdk This section details how to initialize the Nemu SDK in debug mode and test the integration by simulating a deeplink click and verifying logs. ```APIDOC ## Nemu SDK Integration and Testing ### 1. Initialize the SDK in DEBUG mode Enable debug logs to monitor SDK activity by setting the `isDebugMode` argument to `true` during initialization. ```java NemuTrackingLib.getInstance().init(BuildConfig.PIXEL_ID, BuildConfig.SDK_TOKEN, this, true) ``` ### 2. Simulate a Deeplink Click Ensure your application is configured to handle deep links. Access a URL that redirects to your app and includes UTM parameters. Example Deeplink: `https://myapp.com?utm_source=nemu&utm_medium=medium-test&utm_campaign=campaign-test&utm_content=content-test` ### 3. Verify SDK Initialization and UTM Extraction via Logs After the app launches, check the device logs for the following confirmation messages: ``` 2025-05-22 14:55:02 [DEBUG] [NemuTracking] application has been successfully connected with Nemu services 2025-05-22 14:55:03 [DEBUG] [NemuTracking] Reading of UTM parameters via deeplink successfully performed - {"utm_source": "nemu","utm_medium": "medium-test","utm_campaign": "campaign-test","utm_content": "content-test"} 2025-05-22 14:55:04 [DEBUG] [NemuTracking] UID registered by the application - { "userId": "example@email.com" } ``` **Log Explanations:** 1. **Nemu Connection:** Confirms successful connection to Nemu services using valid Pixel ID and SDK Token. 2. **UTM Extraction:** Verifies that UTM parameters from the deeplink were correctly read and stored. 3. **UID Registration:** Indicates that a User ID was successfully assigned by the SDK. ``` -------------------------------- ### Configuração de UTMs para TikTok com Hotmart Afiliados Source: https://docs.nemu.com.br/pages/onboarding/configuracao-utms/tiktok/tiktok Formato específico para configuração de UTMs no TikTok quando integrado com a plataforma Hotmart Afiliados. Similar à configuração Hotmart, mas utiliza o prefixo 'sck=' para os parâmetros da campanha. ```text sck=tiktok|__CAMPAIGN_NAME__|__CAMPAIGN_ID__|__CID_NAME__|__CID__|__AID_NAME__|__AID__ ``` -------------------------------- ### Exemplo de URL com UTMs Nemu para Influenciador Source: https://docs.nemu.com.br/pages/onboarding/configuracao-utms/influenciadores/influenciadores Demonstra como construir uma URL completa com os parâmetros UTM recomendados pela Nemu para rastrear influenciadores. A estrutura inclui o parâmetro 'nemu_source' fixo como 'influencer' e 'nemu_adset' com o nome do influenciador. ```text https://meusite.com/?nemu_source=influencer&nemu_adset=joao_silva ``` -------------------------------- ### Product Schema Source: https://docs.nemu.com.br/pages/api-reference/endpoint/create Defines the structure of a product object, including required fields and optional category details. ```APIDOC ## Product Schema ### Description Defines the structure of a product object, including required fields and optional category details. ### Method N/A (Schema definition) ### Endpoint N/A (Schema definition) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body - **productId** (string) - Required - ID do produto - **name** (string) - Required - Nome do produto - **quantity** (number) - Required - Quantidade vendida do produto - **netValue** (number) - Required - Valor líquido do produto - **grossValue** (number) - Required - Valor bruto do produto - **priceCost** (number) - Optional - Preço de custo do produto - **category** (object) - Optional - Categoria do produto - **id** (string) - Optional - ID da categoria - **name** (string) - Required - Nome da categoria - **imageUrl** (string) - Optional - URL da imagem da categoria ### Request Example ```json { "productId": "", "name": "", "quantity": 123, "netValue": 123, "grossValue": 123, "priceCost": 123, "category": { "id": "", "name": "", "imageUrl": "" } } ``` ### Response #### Success Response (200) - **message** (string) - Venda criada com sucesso. #### Error Response (400) - **message** (string) - Erro na requisição. #### Response Example ```json { "message": "Venda criada com sucesso." } ``` ``` -------------------------------- ### Exemplo de URL Combinando UTMs Tradicionais e Nemu Source: https://docs.nemu.com.br/pages/onboarding/configuracao-utms/influenciadores/influenciadores Ilustra a combinação de UTMs tradicionais (como utm_source, utm_campaign) com os parâmetros UTM da Nemu na mesma URL. Isso permite que tanto o Google Analytics quanto a Nemu coletem dados de forma independente. ```text https://meusite.com/?utm_source=instagram&utm_medium=influencer&utm_campaign=joao&nemu_source=influencer&nemu_adset=joao_silva ``` -------------------------------- ### Simular Deeplink com UTMs no iOS Source: https://docs.nemu.com.br/pages/app-tracking/swift-sdk Este comando simula a abertura de um deeplink com parâmetros UTMs em um dispositivo iOS conectado. É útil para testar se a aplicação está corretamente configurada para receber deep links e extrair os parâmetros UTMs. ```bash xcrun simctl openurl booted "https://myapp.com?utm_source=nemu&utm_medium=medium-test&utm_campaign=campaign-test&utm_content=content-test" ``` -------------------------------- ### Recuperar e Imprimir Histórico de Sessão com UTMs (Swift) Source: https://docs.nemu.com.br/pages/app-tracking/swift-sdk Este snippet em Swift demonstra como obter o histórico da última sessão utilizando `getLastSessionHistory()` e imprimir os valores das UTMs associadas. Ele lida com casos onde nenhuma sessão é encontrada e exibe os valores de `utmSource`, `utmCampaign`, `utmMedium`, `utmContent`, e `utmTerm`. A saída esperada no modo debug mostra a estrutura dos dados recuperados. ```swift func sendPurchaseWithUtms() { guard let session = TrackingManager.shared.getLastSessionHistory() else { print("No sessions found") return } print("utmSource: (session.utmSource ?? "nil")") print("utmCampaign: (session.utmCampaign ?? "nil")") print("utmMedium: (session.utmMedium ?? "nil")") print("utmContent: (session.utmContent ?? "nil")") print("utmTerm: (session.utmTerm ?? "nil")") } ``` ```text 2025-05-22 15:00:02 [DEBUG] [NemuTracking] Last session history retrieved - {"utm_source": "nemu","utm_medium": "medium-test","utm_campaign": "campaign-test","utm_content": "content-test||nemu_xiI85afzrP"} ``` -------------------------------- ### URL Final de Destino com Checkout Padrão Nemu e Google Ads Source: https://docs.nemu.com.br/pages/onboarding/configuracao-utms/google/google Exemplo de uma URL de destino completa combinando parâmetros UTM padrão de Google Ads com os parâmetros específicos do Nemu. Essencial para o rastreamento unificado de campanhas. ```text https://www.exemplo.com/produto?utm_source=google&utm_medium=cpc&utm_campaign=promo_julho&nemu_source=google&nemu_campaign={campaignid}&nemu_adset={adgroupid}&nemu_content={creative}&nemu_term={keyword} ``` -------------------------------- ### POST /sales Source: https://docs.nemu.com.br/pages/api-reference/endpoint/create This endpoint allows you to create a new sales record. It requires detailed information about the product, transaction, customer, and payment. ```APIDOC ## POST /sales ### Description This endpoint allows you to create a new sales record. It requires detailed information about the product, transaction, customer, and payment. ### Method POST ### Endpoint https://developers.nemu.com.br/api/v1/sales ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body - **name** (string) - Required - Nome do produto ou pedido - **transactionId** (string) - Required - ID da transação ou pedido - **netValue** (number) - Required - Valor líquido da transação ou pedido - **grossValue** (number) - Required - Valor bruto da transação ou pedido - **status** (string) - Required - Status da transação ou pedido (paid, waiting_payment, cancelled, chargeback, refunded, checkout_completed) - **quantity** (number) - Required - Quantidade vendida - **paymentType** (string) - Required - Método de pagamento (pix, billet, credit_card, other) - **utm_source** (string) - Optional - Parâmetro utm_source - **utm_campaign** (string) - Optional - Parâmetro utm_campaign - **utm_medium** (string) - Optional - Parâmetro utm_medium - **utm_content** (string) - Optional - Parâmetro utm_content - **utm_term** (string) - Optional - Parâmetro utm_term - **customerName** (string) - Required - Nome do comprador - **customerEmail** (string) - Required - Email do comprador - **customerPhone** (string) - Required - Número de celular ou telefone do comprador - **date** (string) - Required - Data de criação do pedido (YYYY-MM-DD) - **orderCreatedAt** (string) - Required - Data e hora de criação do pedido em UTC (YYYY-MM-DD HH:MM:SS UTC) - **products** (array) - Required - Lista de produtos do pedido - **productId** (string) - Required - ID do produto - **priceCost** (number) - Optional - Preço de custo do produto/pedido ### Request Example ```json { "name": "", "transactionId": "", "netValue": 123, "grossValue": 123, "status": "", "quantity": 123, "paymentType": "", "utm_source": "", "utm_campaign": "", "utm_medium": "", "utm_content": "", "utm_term": "", "customerName": "", "customerEmail": "", "customerPhone": "", "date": "2023-12-25", "orderCreatedAt": "2023-11-07T05:31:56Z", "products": [ { "productId": "" } ], "priceCost": 123 } ``` ### Response #### Success Response (200) - **message** (string) - Description of the success message #### Response Example ```json { "message": "Sale created successfully" } ``` ### Error Handling - **400 Bad Request**: Invalid input data. - **401 Unauthorized**: Authentication failed. Ensure your API token is valid and included in the Authorization header. - **500 Internal Server Error**: An unexpected error occurred on the server. ``` -------------------------------- ### Parâmetros Personalizados de UTMs para TikTok Source: https://docs.nemu.com.br/pages/onboarding/configuracao-utms/tiktok/tiktok Define parâmetros UTM personalizados ('nemu_source', 'nemu_campaign', 'nemu_adset', 'nemu_content') para rastreamento detalhado de campanhas no TikTok. Habilite a detecção automática em 'Parâmetros personalizados' e adicione estes campos. ```text nemu_source: tiktok nemu_campaign: __CAMPAIGN_NAME__|__CAMPAIGN_ID__ nemu_adset: __AID_NAME__|__AID__ nemu_content: __CID_NAME__|__CID__ ``` -------------------------------- ### Exemplo de URL de Destino com Parâmetros Nemu Source: https://docs.nemu.com.br/pages/onboarding/configuracao-utms/tiktok/tiktok Mostra como a URL final de destino deve ser formatada após a inclusão dos parâmetros UTM padrão e personalizados da Nemu. Este exemplo é para o Checkout Padrão. ```text https://www.exemplo.com/pagina-de-destino?utm_source=tiktok&utm_medium=cpc&utm_campaign=promo_julho&nemu_source=tiktok&nemu_campaign=__CAMPAIGN_NAME__|__CAMPAIGN_ID__&nemu_adset=__AID_NAME__|__AID__&nemu_content=__CID_NAME__|__CID__ ``` -------------------------------- ### Hotmart UTM Configuration for Facebook Source: https://docs.nemu.com.br/pages/onboarding/configuracao-utms/facebook/facebook This snippet illustrates the UTM parameter structure for Facebook campaigns when using the Hotmart checkout system. It includes nemu-specific parameters appended to existing UTMs. ```text UTMs existentes + &nemu_source=facebook&nemu_campaign={{campaign.name}}|{{campaign.id}}&nemu_adset={{adset.name}}|{{adset.id}}&nemu_content={{ad.name}}|{{ad.id}} ``` -------------------------------- ### Configuração de UTMs para TikTok com Hotmart Source: https://docs.nemu.com.br/pages/onboarding/configuracao-utms/tiktok/tiktok Formato específico para configuração de UTMs no TikTok quando integrado com a plataforma Hotmart. Utiliza um delimitador '|' para separar os diferentes parâmetros da campanha, incluindo nome e ID da campanha, além de informações de Ad Set e Campaign. ```text src=tiktok|__CAMPAIGN_NAME__|__CAMPAIGN_ID__|__CID_NAME__|__CID__|__AID_NAME__|__AID__ ``` -------------------------------- ### Create Sales Source: https://docs.nemu.com.br/pages/api-reference/introduction Endpoint for creating new sales transactions. ```APIDOC ## POST /sales ### Description Creates a new sales transaction. ### Method POST ### Endpoint /sales ### Parameters #### Request Body - **transactionId** (string) - Required - The unique identifier for the transaction. - **customerId** (string) - Required - The identifier for the customer. - **items** (array) - Required - A list of items included in the sale. - **itemId** (string) - Required - The identifier for the item. - **quantity** (integer) - Required - The quantity of the item sold. - **price** (number) - Required - The price of the item. ### Request Example ```json { "transactionId": "txn_12345", "customerId": "cust_abcde", "items": [ { "itemId": "item_xyz", "quantity": 2, "price": 19.99 } ] } ``` ### Response #### Success Response (201) - **message** (string) - Success message. #### Response Example ```json { "message": "Sale created successfully." } ``` ``` -------------------------------- ### Enviar Venda com UTMs para API Nemu em Swift Source: https://docs.nemu.com.br/pages/app-tracking/swift-sdk Este método recupera as UTMs da última sessão do usuário usando `getLastSessionHistory()` e as anexa a um payload de venda antes de enviá-lo para a API da Nemu. Requer a biblioteca `NemuTrackingLib`. Retorna um objeto de sessão ou uma mensagem de erro caso a sessão não seja encontrada ou a URL seja inválida. ```swift import Foundation import NemuTrackingLib func sendPurchaseWithUtms() { guard let session = TrackingManager.shared.getLastSessionHistory() else { print("No session found") return } let payload: [String: Any?] = [ "transactionId": "123", "netValue": 10, "status": "paid", "utm_campaign": session.utmCampaign ?? NSNull(), "utm_content": session.utmContent ?? NSNull(), "utm_medium": session.utmMedium ?? NSNull(), "utm_source": session.utmSource ?? NSNull(), "utm_term": session.utmTerm ?? NSNull() ] guard let url = URL(string: "https://developers.nemu.com.br/api/v1") else { print("Invalid URL") return } var request = URLRequest(url: url) request.httpMethod = "POST" request.addValue("application/json", forHTTPHeaderField: "Content-Type") do { request.httpBody = try JSONSerialization.data(withJSONObject: payload, options: []) } catch { print("Failed to serialize JSON: (error.localizedDescription)") return } let task = URLSession.shared.dataTask(with: request) { data, response, error in if let error = error { print("Error sending request: (error.localizedDescription)") return } if let httpResponse = response as? HTTPURLResponse { print("API response: (httpResponse.statusCode)") } } task.resume() } ``` -------------------------------- ### Arquivo apple-app-site-association para iOS Universal Links Source: https://docs.nemu.com.br/pages/app-tracking/deeplinks Este snippet é um exemplo do arquivo apple-app-site-association.json que deve ser hospedado no seu domínio para configurar Universal Links no iOS. Ele especifica quais caminhos do seu domínio o aplicativo pode lidar, associando-os ao ID do seu aplicativo. ```json { "applinks": { "apps": [], "details": [ { "appID": "TEAMID.com.seuapp.nemu", "paths": ["/promo/*"] } ] } } ``` -------------------------------- ### Padrão UTM para Google Ads no Nemu Source: https://docs.nemu.com.br/pages/onboarding/configuracao-utms/google/google Define o padrão de parâmetros UTM para campanhas do Google Ads a serem usados com o checkout padrão do Nemu. Inclui parâmetros essenciais como source, campaign, adset, content e term. ```text UTMs existes + &nemu_source=google&nemu_campaign={campaignid}&nemu_adset={adgroupid}&nemu_content={creative}&nemu_term={keyword} ``` -------------------------------- ### Swift SDK Initialization in AppDelegate Source: https://docs.nemu.com.br/pages/app-tracking/swift-sdk Initializes the NemuTrackingManager in your iOS application's `AppDelegate`. It retrieves the SDK token and pixel ID from the `Info.plist` and uses them to initialize the SDK. ```swift import UIKit import NemuTrackingLib @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { let sdkKey = Bundle.main.object(forInfoDictionaryKey: "SDK_TOKEN") as? String let pixelId = Bundle.main.object(forInfoDictionaryKey: "PIXEL_ID") as? String NemuTrackingManager.shared.initialize(widthPixelId: pixelId, withSdkKey: sdkKey) return true } // outros métodos... } ``` -------------------------------- ### Capturar Deep Links no iOS com UIKit (AppDelegate) Source: https://docs.nemu.com.br/pages/app-tracking/deeplinks Este código Swift demonstra como capturar deep links em aplicativos UIKit através do método `application(_:continue:restorationHandler:)` no AppDelegate. Ele obtém a URL de entrada, extrai parâmetros de consulta como 'utm_source' e os exibe no console, permitindo o processamento de links em aplicativos baseados em classes. ```swift func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool { if let incomingURL = userActivity.webpageURL { let components = URLComponents(url: incomingURL, resolvingAgainstBaseURL: false) let utmSource = components?.queryItems?.first(where: { $0.name == "utm_source" })?.value print("utm_source: (utmSource ?? "n/a")") } return true } ``` -------------------------------- ### Parâmetros UTM Personalizados Nemu para TikTok Source: https://docs.nemu.com.br/pages/onboarding/configuracao-utms/tiktok/tiktok Define os parâmetros personalizados necessários para rastreamento no TikTok. Esses parâmetros incluem fonte, campanha, adset e conteúdo, utilizando placeholders para valores dinâmicos. ```text nemu_source: tiktok nemu_campaign: __CAMPAIGN_NAME__|__CAMPAIGN_ID__ nemu_adset: __AID_NAME__|__AID__ nemu_content: __CID_NAME__|__CID__ ``` -------------------------------- ### Facebook UTM Parameters for Hotmart Affiliates Checkout Source: https://docs.nemu.com.br/pages/onboarding/configuracao-utms/facebook/facebook This code snippet details the UTM parameter configuration for Facebook Ads targeting Hotmart Affiliates checkouts. It employs an 'sck' format and incorporates Nemu's tracking parameters. ```text sck=facebook|{{adset.name}}|{{campaign.name}}|{{ad.name}}|{{campaign.id}}|{{adset.id}}|{{ad.id}}&nemu_source=facebook&nemu_campaign={{campaign.name}}|{{campaign.id}}&nemu_adset={{adset.name}}|{{adset.id}}&nemu_content={{ad.name}}|{{ad.id}} ```