Em resumo: as ad networks se integram às SKAdNetworks (SKAN) da AppsFlyer, permitindo que otimizem campanhas e recebam atribuição pelo tráfego que geram.
Oferta da AppsFlyer para ad networks
Learn more about the AppsFlyer SKAN solution for advertisers:
SKAN solution guide | SKAN dashboard
-
Receba atribuição por conversões de campanha:
- A integração com a AppsFlyer garante que a ad network receba atribuição por todas as instalações, eventos in-app e receita resultantes das campanhas executadas em nome dos anunciantes.
- Sem a integração implementada, as instalações, os eventos in-app e a receita são atribuídos como orgânicos, e não à ad network.
-
Otimização de campanhas:
- O valor de conversão no postback é codificado.
- A AppsFlyer permite que ad networks traduzam o valor de conversão de cada postback, garantindo que possam otimizar suas campanhas com base no valor decodificado por aplicativo.
-
Não há necessidade de integração direta com cada anunciante: os postbacks da SKAN são enviados apenas para a ad network, e os anunciantes podem consumir os dados usando qualquer uma das opções a seguir:
- Integração individual com cada ad network. Uma solução que não é escalável nem para ad networks nem para anunciantes.
- Uma única integração com a AppsFlyer. Escalável tanto para o anunciante quanto para a ad network.
-
Aumente sua visibilidade na AppsFlyer:
- Ad networks com integração SKAN são certificadas e identificadas como tal no dashboard da AppsFlyer.
- Isso assegura aos anunciantes que eles estão trabalhando com ad networks que podem ser mensuradas de forma determinística por meio deste modelo de atribuição.
Fluxo de dados da SKAN
O fluxo completo de postback da SKAN é o seguinte:
- iOS envia o postback da SKAN para a ad network atribuída.
-
A ad network executa uma das seguintes ações:
- Enriquecer e encaminhar: enriquece o postback da SKAN com o ID da campanha/identificador da fonte da ad network, o nome da campanha e o endereço IP do dispositivo iOS.
- Redirect: The network requests the iOS device to redirect the postback directly to AppsFlyer. In this case, campaign data enrichment will be performed via a separate API between AppsFlyer and the ad network.
- A AppsFlyer valida e decodifica o postback. Then, it sends the decoded and enriched postback to the ad network (in parallel to sharing it with the advertiser).
Principais partes da integração
A integração da SKAN entre a AppsFlyer e ad networks consiste nas seguintes partes principais, conforme descrito neste artigo:
- Ad networks enviam dados da SKAN para a AppsFlyer
- As ad networks recebem dados enriquecidos e decodificados da AppsFlyer via postback
Enviar dados para a AppsFlyer
After the ad network receives the SKAN postback from the device, the ad network forwards it to AppsFlyer using one of the following methods:
- Enriquecer e encaminhar (POST)
- Redirecionar (método de redirecionamento HTTP 307)
Ao receber um postback da SKAN, a AppsFlyer realiza o seguinte:
- Validação do postback: garantir que seja exclusivo.
- Decodificação do valor de conversão: gerar registros de instalação com atribuição e de eventos in-app.
- Enviar postbacks decodificados para a ad network.
- Disponibilizar dados de atribuição para anunciantes por meio de dashboards e relatórios.
Enriquecer e encaminhar
Usando esse método, as ad networks encaminham à AppsFlyer cada postback recebido do dispositivo.
A ad network:
- Recebe o postback do dispositivo iOS.
- [Obrigatório] Enriquece o postback com:
- ID da campanha e nome da campanha da ad network.
- O carimbo de data/hora do postback enviado pelo dispositivo iOS.
- [Opcional] Enriquece o postback com:
- Endereço IP recebido do dispositivo, exigido principalmente para fins de resolução de geolocalização.
- ID e nome do conjunto de anúncios
- ID e nome do anúncio
- Ad network name
- Código do país
- ID do aplicativo de origem
- de criativos
- Canal
- Envia o postback para a AppsFlyer
- Nota! Before sending the postback to AppsFlyer, validate the Apple attribution signature using the content of the outgoing postback to ensure that you didn't inadvertently corrupt the data.
Protocolo de postback enriquecido da SKAN
| Ponto final | https://skadpostbacks.appsflyer.com/api/postbacks |
| Método HTTP | POST |
| Tipos de conteúdo aceitos | application/json |
| Códigos de retorno |
200 OK: o postback recebido tem um formato válido. 400: Solicitação inválida: JSON malformado, JSON vazio, campos obrigatórios ausentes. |
Parâmetros JSON do postback enriquecido do SKAN
| Parâmetro | Formato | A descrição | Fonte: |
|---|---|---|---|
| version | Sequência de caracteres |
Versão do SKAdNetwork Exemplo: |
SKAN postback |
| ad-network-id | Sequência de caracteres |
ID da ad network Exemplo: |
SKAN postback |
| ad-network-name | Sequência de caracteres |
|
Rede de anúncios |
| ad-network-country-code | Sequência de caracteres |
|
Rede de anúncios |
| campaign-id | Inteiro |
|
SKAN postback |
| transaction-id | Sequência de caracteres | ID da transação do postback do SKAdNetwork | SKAN postback |
| app-id | Inteiro |
|
SKAN postback |
| assinatura de atribuição | Sequência de caracteres | Assinatura de atribuição | SKAN postback |
| redownload | Boolean | Quando redownload = true, significa que o usuário fez o download do aplicativo novamente na loja de aplicativos. | SKAN postback |
| source-app-id | Inteiro |
|
SKAN postback |
| conversion-value | Inteiro |
O SDK da AppsFlyer define o valor de conversão de acordo com as configurações do anunciante. Notas!
|
SKAN postback |
| ad-network-campaign-id | Sequência de caracteres | Para habilitar uma linguagem comum entre ad networks, anunciantes e a AppsFlyer, você deve fornecer seu campaign-id. | Rede de anúncios |
| ad-network-campaign-name | Sequência de caracteres | Nome da campanha da ad network associado ao ID da campanha da ad network. Esse nome é exibido em dashboards e relatórios. | Rede de anúncios |
| ad-network-adset-id | Sequência de caracteres | ID do conjunto de anúncios da ad network | Rede de anúncios |
| ad-network-adset-name | Sequência de caracteres | Nome do conjunto de anúncios da ad network | Rede de anúncios |
| ad-network-ad-name | Sequência de caracteres | Nome do anúncio da ad network | Rede de anúncios |
| ad-network-ad-id | Sequência de caracteres | ID do anúncio da ad network | Rede de anúncios |
| ip | Sequência de caracteres |
|
Rede de anúncios |
| timestamp | Sequência de caracteres |
|
Rede de anúncios |
| fidelity-type | Inteiro |
|
Postback do SKAN (V2.2+) |
| did-win | Boolean |
|
Postback do SKAN (V3.0+) |
| ad-network-source-app-id | Sequência de caracteres | Preencha com o ID do publisher que você associa ao aplicativo que publica o anúncio. Normalmente, esse é o ID que você atribuiu ao publisher, e não o ID gerado pela Apple. | Rede de anúncios |
| postback-sequence-index | Inteiro |
|
Postback do SKAN 4.0 (iOS 16.2) |
| valor de conversão coarse | Sequência de caracteres |
|
Postback da SKAN 4.0 (iOS 16.2) |
| source-identifier | Sequência de caracteres |
|
Postback da SKAN 4.0 (iOS 16.2) |
| source-domain | Sequência de caracteres |
|
Postback da SKAN 4.0 (iOS 16.2) |
| Data Locker - select Creative.jpg | Sequência de caracteres |
|
Rede de anúncios |
| Canal | Sequência de caracteres |
|
Rede de anúncios |
Exemplo de Curl — postback avançado da SKAN 3
curl --location --request POST 'https://skadpostbacks.appsflyer.com/api/postbacks?app_id=id888707074' \
--header 'Content-type: application/json' \
--data-raw '{
"version":"3.0",
"app-id": 888707086,
"ip": "192.0.2.0",
"ad-network-campaign-name": "skadnetwork_abc_campaign",
"source-app-id": 888707074,
"ad-network-id": "abcabcabc.skadnetwork",
"transaction-id": "68eb3d91-15f5-44ee-9267-25c7655c20b6",
"redownload": false,
"attribution-signature": "MDYCGQCsQ4y8d4BlYU9b8Qb9BPWPi+ixk/OiRysCGQDZZ8fpJnuqs9my8iSQVbJO/oU1AXUROYU=",
"timestamp": "1596525944",
"ad-network-campaign-id": "222222",
"conversion-value": 63,
"campaign-id": 99
}'
Exemplo de Curl — postback avançado da SKAN 4 com valores de conversão refinados
curl --location --request POST 'https://skadpostbacks.appsflyer.com/api/postbacks?app_id=id888707074' \
--header 'Content-type: application/json' \
--data-raw '{
"version": "4.0"
"ad-network-id": "example123.skadnetwork",
"ad-network-campaign-name": "skadnetwork_abc_campaign",
"ad-network-campaign-id": "222222",
"source-identifer": "5239",
"app-id": 525463029,
"transaction-id": "6aafb7a5-0170-41b5-bbe4-fe71dedf1e30",
"redownload": false,
"source-app-id": 1234567891,
"fidelity-type": 1,
"did-win": true,
"conversion-value": 63
"postback-sequence-index": 0
"attribution-signature": "MEUCIGRmSMrqedNu6uaHyhVcifs118R5z/AB6cvRaKrRRHWRAiEAv96ne3dKQ5kJpbsfk4eYiePmrZUU6sQmo+7zfP/1Bxo="
}'
Curl example—enriched SKAN 4 postback with coarse conversion values
curl --location --request POST 'https://skadpostbacks.appsflyer.com/api/postbacks?app_id=id888707074' \
--header 'Content-type: application/json' \
--data-raw '{
"version": "4.0"
"ad-network-id": "example123.skadnetwork",
"ad-network-campaign-name": "skadnetwork_abc_campaign",
"ad-network-campaign-id": "222222",
"source-identifer": "39",
"app-id": 525463029,
"transaction-id": "6aafb7a5-0170-41b5-bbe4-fe71dedf1e31",
"redownload": false,
"source-app-id": 1234567891,
"fidelity-type": 1,
"did-win": true,
"coarse-conversion-value": "high"
"postback-sequence-index": 0
"attribution-signature": "MEUCIQD4rX6eh38qEhuUKHdap345UbmlzA7KEZ1bhWZuYM8MJwIgMnyiiZe6heabDkGwOaKBYrUXQhKtF3P/ERHqkR/XpuA="
}'
Redirecionar
Com esse método, a ad network responde ao dispositivo com um comando de redirecionamento HTTP (307), solicitando que o dispositivo envie o postback diretamente para a AppsFlyer.
O método de redirecionamento tem as seguintes vantagens:
-
Increased advertiser trust: The MMP acts on behalf of an advertiser. By providing AppsFlyer access to the postback firsthand, advertisers are confident that postbacks are not manipulated in transit.
- No processing required by the ad network: Ad networks respond with the redirect command (to the device), thus eliminating the need to process postbacks. In comparison, the enrich and forward method requires that ad networks consume the postback, enrich it with additional parameters, and finally forward it to AppsFlyer.
Implementação
- Configure your server to respond with an HTTP 307 response redirecting the postback to https://skadnetworkredirect.appsflyer.com/api/redirects
- Anexe parâmetros de consulta que contenham detalhes da campanha usando os parâmetros de consulta listados na tabela a seguir. Considere o envio dos detalhes da sua campanha obrigatório. Os detalhes da campanha nos permitem enriquecer os dados do SKAN com custo e outros dados da campanha, além de permitir que os anunciantes otimizem campanhas com eficiência.
Exemplo de URL de redirecionamento
https://skadredirect.appsflyer.com/api/redirects?
&ad-network-campaign-id=243232&ad-network-campaign-name=yarg_campaign_name
&ad-network-adset-name=dsdsa&creative=examplecreative&channel=channelexample
Parâmetros de consulta para detalhes da campanha (não obrigatórios)
| Parâmetro de consulta | Visão geral |
|---|---|
| ad-network-name |
|
| ad-network-campaign-id | ID da campanha |
| ad-network-campaign-name | Nome da campanha |
| ad-network-adset-id | ID do conjunto de anúncios |
| ad-network-adset-name | Nome do adset |
| ad-network-ad-id | ID do anúncio |
| ad-network-ad-name | Nome do anúncio |
| ad-network-country-code |
|
| ad-network-source-app-id | Populate with the publisher ID that you associate with the app publishing the ad. Geralmente, este é o ID que você atribuiu ao publisher, e não o ID gerado pela Apple. |
| ip |
|
| timestamp |
|
| Data Locker - select Creative.jpg |
|
| canal |
|
Receber dados da AppsFlyer
Antes de receber seu primeiro postback, considere o seguinte:
- Ad networks must define the postback end-point and template (reach out to your AppsFlyer Partner Development Manager using the partner assistant widget, to ensure this is in place).
- A AppsFlyer envia postbacks do SKAN usando o mesmo mecanismo dos postbacks existentes enviados a você.
Princípios
- Para cada postback enviado da ad network para a AppsFlyer, a AppsFlyer envia:
- Um postback de instalação. Os redownloads são sinalizados pelo parâmetro redownload.
- De zero a vários postbacks de eventos in-app. O número exato depende da tradução do valor de conversão. See simulated postbacks.
- When you consume postbacks, the same install or event can be attributed by more than one AppsFlyer attribution solution. Use the attribution_source parameter to differentiate between postback types.
Macros de postback disponíveis para parceiros de ad network
| Macro do postback (nome) | Descrição | Formato e exemplo | Relevante apenas para eventos in-app |
|---|---|---|---|
| id_do_site | O aplicativo que publica o anúncio (ID do aplicativo de origem) | String: 876534 | |
| install_time | Estimado pela AppsFlyer com base na janela de updateConversion. Fornecido como um timestamp UNIX epoch de 10 dígitos ou como um timestamp legível por humanos |
|
|
| skadnetwork_ad_network_time | Momento em que o postback foi recebido pela ad network do dispositivo iOS. Conforme relatado pela ad network. Fornecido como um timestamp UNIX epoch de 10 dígitos ou como um timestamp legível por humanos |
|
|
|
skadnetwork_received_time |
Hora em que a AppsFlyer recebeu o postback da ad network. Fornecido como um carimbo de data/hora UNIX epoch de 10 dígitos ou como um carimbo de data/hora legível |
|
|
| nome_do_evento |
Nome do evento
|
String: af_skadnetwork_revenue, abc123
|
Sim |
| revenue | Valor da receita usando o código de moeda especificado | Número: 5, 20, 0,4 | Sim |
| símbolos monetários | Código da moeda, sendo a moeda específica do aplicativo definida pelo anunciante | Sequência de caracteres: EUR, USD, ZAR | Sim |
| attribution_source |
A fonte dos dados de atribuição: SKAdNetwork: SKAdNetwork |
Sequência de caracteres: SKAdNetwork | |
| ativado | ID do Aplicativo (aplicativo do anunciante) | Sequência de caracteres: ID123456790 | |
| país | Geolocalização da instalação (país) determinada pela ad network | Sequência de caracteres: US, UK, ZA | |
| Nome da campanha preenchido usando ad-network-campaign-name enviado no postback da ad network | Sequência de caracteres: UA_US_23+ | ||
| id_da_campanha | ID da campanha da ad network preenchido usando ad-network-campaign-id enviado no postback da ad network. Observação: para o SKAN 4, esse valor é sempre nulo. | String: 3456745 | |
| redownload |
Valores possíveis: true, false Quando redownload = true, isso significa que o usuário fez o download do aplicativo da loja de aplicativos novamente |
Booleano: true, false | |
|
skadnetwork_ambiguous_event (descontinuado no SKAN 4+) |
Eventos recebidos durante as primeiras 72 horas após um anunciante alterar as configurações de SKAN no dashboard. Devido aos diversos timers usados pela SKAN, a AppsFlyer não consegue mapear o evento com exatidão.
|
Booleano: true, false | |
| skadnetwork_campaign_id | ID da campanha SKAN conforme fornecido pelo postback SKAN original | 56, 23 | |
| af_skadnetwork_nonce | Um identificador aleatório e único que permite aos parceiros identificar postbacks duplicados. | ||
Receita associada ao SKU na moeda fornecida no campo event_revenue_currency. |
Name/ID of the corresponding event in the ad network platform | Sim | |
| transaction_id |
ID da transação do postback SKAN Observação: o anunciante deve permitir explicitamente que compartilhemos o transaction_id com você. Ask the advertiser to do so in the Integration tab. |
||
| ad_network_adset_id | Adicionado ao postback do iOS pela ad network | string | |
| ad_network_adset_name | Adicionado ao postback do iOS pela ad network | string | |
| ad_network_ad_name | Adicionado ao postback do iOS pela ad network | string | |
| ad_network_ad_id | Adicionado ao postback do iOS pela ad network | string | |
| SKAN_min_event_counter | Ver nota (1) | Inteiro | Sim |
| SKAN_max_event_counter | Ver nota (1) | Inteiro | Sim |
| SKAN_min_time_post-install | Ver nota (2) | Inteiro | Sim |
| SKAN_tempo_máx_pós-instalação | Ver nota (2) | Inteiro | Sim |
| SKAN_receita_mín_do_evento | Ver nota (3) | Número real | Sim |
| SKAN_receita_máx_do_evento | Ver nota (3) | Número real | Sim |
| fidelity-type |
Differentiate between ad presentation options that affect attribution. Indicado pelos valores 0 e 1 da seguinte forma:
|
Inteiro | |
| skad_af_attribution_flag | Used to indicate if the user was attributed by AppsFlyer using the Single Source of Truth mechanism. | Boolean | |
| skad_postback_sequence_index |
|
Inteiro | |
| skad_coarse_conversion_value |
|
Sequência de caracteres | |
| skad_source_identifier |
|
Sequência de caracteres | |
| skad_source_domain |
|
Sequência de caracteres | |
| ad_network_creative |
|
Sequência de caracteres | |
| ad_network_channel |
|
Sequência de caracteres | |
|
Atenção:
| |||
Exemplos de postback da SKAN
Exemplo de um postback de instalação da SKAN enviado pela AppsFlyer
http://YourCompanyDomain.com/event?site_id=(publisher-id)&install_time=(timestamp)
&skan_ad_network_time=(timestamp)
&skan_af_received_time=(timestamp)
&attribution_source=skadnetwork
&app_id=(id123456789)&country=(ZA)&campaign=(campaign-name)
&campaign_id=(campaign-id)&SKAN_ambiguous_event=(boolean)
&redownload=(boolean)
&af_SKAN_nonce=(uuid)
Exemplo de um postback in-app da SKAN enviado pela AppsFlyer
http://YourCompanyDomain.com/event?site_id=(publisher-id)&install_time=(timestamp)
&skan_ad_network_time=(timestamp)
&skan_af_received_time=(timestamp)&revenue=(value)
¤cy=(code)&event_name=(event-name)&attribution_source=skadnetwork
&app_id=(id123456789)&country=(ZA)&campaign=(campaign-name)
&campaign_id=(campaign-id)&SKAN_ambiguous_event=(boolean)
&redownload=(boolean)
&af_SKAN_nonce=(uuid)
Teste a integração
Para validar a integração com a AppsFlyer, use um ou ambos os métodos a seguir.
- Postbacks reais da SKAN: com base no tráfego real da SKAN recebido pela network
- Postbacks simulados: com base nos aplicativos de teste da AppsFlyer
Para receber postbacks reais da SKAN de dispositivos iOS, a ad network conclui o seguinte:
- Registrar-se na Apple
- Sign ads with a SKAdNetwork signature.
- Publisher app: Add the network ID to the info.plist file and call the loadProduct function upon ad impression.
- Advertised app: Use the most recent AppsFlyer iOS SDK. Versões anteriores à V6.0.3 não são suportadas.
Para receber postbacks simulados:
- Contact us using the partner assistant widget and request integration with simulation apps.
- Specify IDs of the apps from the list in the following section.
Ambiente real
Usando este método, a ad network envia à AppsFlyer postbacks reais do SKAN de aplicativos ao vivo.
Integração de testes
| Responsabilidade | Action |
|---|---|
| Rede de anúncios | Notify AppsFlyer via your partner development manager (or use the partner assistant widget) as to your SKAN network ID, provided by Apple. |
| Ad network e AppsFlyer | Cheguem a um acordo sobre um cliente mútuo (que tenha integrado o SDK mais recente da AppsFlyer) a ser usado para a verificação da integração de postback. |
| Rede de anúncios | Envie postbacks SKAN do aplicativo para a AppsFlyer usando um dos métodos descritos neste artigo. |
| A AppsFlyer | Envie postbacks decodificados para a ad network de acordo com o mapeamento de valor de conversão definido pelo anunciante. |
Critérios de teste
| Responsabilidade | Action |
|---|---|
| Rede de anúncios | Notifique a AppsFlyer sobre a quantidade de postbacks SKAN enviados durante um período especificado para o cliente mútuo acordado. |
| A AppsFlyer | Verifique a contagem de postbacks recebidos em comparação com a contagem enviada pela ad network. |
| A AppsFlyer |
Compartilhe com a ad network a contagem de postbacks enviados para a ad network de um determinado aplicativo, discriminada por tipo:
Note: If you use the same endpoint for probabilistic postbacks, ensure that you filter using attribution_source=skadnetwork to distinguish SKAN Network postbacks from other postbacks. |
Postbacks simulados
- Usando este método, a ad network envia à AppsFlyer postbacks pré-preparados para aplicativos de teste da AppsFlyer, conforme detalhado na tabela abaixo. A AppsFlyer responde à ad network com postbacks decodificados.
- Cada aplicativo de teste tem um mapeamento de valor de conversão diferente, conforme detalhado na tabela.
| ID da aplicação | Modo de conversão | Instruções |
|---|---|---|
| id888707085 |
Receita, em unidades de $1 Resultados esperados: |
|
| id888707086 |
Conversão, incluindo os eventos in-app:
|
|
| id888707087 | Engagement, measured using af_SKAN_revenue event |
|
Etapas de integração
| Responsabilidade | Action |
|---|---|
| Rede de anúncios | Configure your SKAN network ID (provided by Apple) and SKAN postback template on the postback management platform. For queries and assistance, contact us using the partner assistant widget. |
| Rede de anúncios |
|
| A AppsFlyer | Responde com os postbacks decodificados para o endpoint designado pela ad network durante a integração |
Critérios de teste
| Responsabilidade | Action |
|---|---|
| A AppsFlyer | Processa o postback e envia postbacks para a ad network. |
| Rede de anúncios |
|
Esclarecimentos
Esclarecimentos relacionados a campos obrigatórios, enriquecimento, certificação e muito mais.
Perguntas frequentes
| Perguntas e respostas sobre postbacks |
|---|
|
Os campos de enriquecimento são obrigatórios? Por enquanto, processaremos o postback mesmo que ele não inclua um ou mais dos seguintes parâmetros de enriquecimento. Considere que essas informações são necessárias pelos seguintes motivos:
|
|
Podemos enviar apenas o ID da campanha ou o nome da campanha, mas não ambos? Consulte a resposta anterior. Considere preencher o ID e o nome com o mesmo valor. |
|
We are using Enrich and Forward. Can we add key-value pairs that are not in the AppsFlyer specification? Sim, é possível. Processaremos o postback e desconsideraremos as informações adicionais, desde que a assinatura de atribuição seja válida |
|
Os modelos de postback do SKAN são diferentes dos modelos de postback existentes? sim, O fluxo e a estrutura são diferentes. |
|
Receberemos um postback do SKAN e um postback de modelagem probabilística/determinística relacionados à mesma instalação, ou seja, um reporte duplicado da mesma instalação? sim, Em cada caso em que registrarmos uma instalação atribuída a você, independentemente do método, enviaremos um postback. Use attribution_source para diferenciar postbacks do SKAN. |
|
Are we required to process the postback from AppsFlyer? Sem. No. Consider, that best practice is to optimize campaigns according to user-quality reported via the postback. |
|
Devemos chamar os links de atribuição da AppsFlyer ou basta enviar o postback com a carga útil do SKAN e os dados enriquecidos? Basta nos enviar a carga útil do SKAN e os dados enriquecidos. |
|
O que é necessário para sermos certificados no dashboard da AppsFlyer como parceiro integrado ao SKAN?
|
|
Como o limite de 100 IDs de campanha do SKAN me afeta? O limite de 1 a 100 está relacionado à forma como você assina e numera suas campanhas na Apple. Isso significa que, a qualquer momento, você pode ter 100 campanhas únicas simultâneas. Permitimos que você enriqueça o postback com o nome e o ID reais da sua campanha. Isso significa que você mapeia o ID da campanha do SKAN para os IDs reais de campanha em uso no momento em que o postback é recebido. Isso significa que o limite de 100 IDs não restringe o número de campanhas que você mensura na AppsFlyer, desde que, é claro, você não tenha mais de 100 campanhas simultâneas para um determinado aplicativo. |
This article was translated using AI and may contain errors. For the most accurate information, please refer to the English version using the language selector.