--- title: "Gerencie as Preferências do Usuário" slug: "manage-user-preferences" updated: 2026-06-12T10:30:54Z published: 2026-06-12T10:30:54Z canonical: "docs.xtremepush.com/manage-user-preferences" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.xtremepush.com/llms.txt > Use this file to discover all available pages before exploring further. # Gerencie as Preferências do Usuário Gerencie as preferências do usuário usando canais diferentes no Xtremepush > [!WARNING] > Aviso > > As preferências são baseadas em perfil > > Preferências estão associadas no nível do perfil. Quaisquer alterações feitas nas preferências do usuário são refletidas no perfil e em todos os dispositivos associados. Da mesma forma, atualizações de preferência feitas em um dispositivo específico são automaticamente sincronizadas com o perfil. ## Gerencie Preferências usando Campanhas de E-mail e SMS É possível adicionar um link ao centro de preferências para permitir que os usuários se inscrevam e cancelem as diferentes preferências dele. Para isso, navegue até **Configurações > Canais > Configurações de E-mail** e **Canais > Configurações de SMS** e ative a **opção Permitir que o usuário gerencie preferências de assinatura** . Depois de fazer isso e depois de criar as diferentes preferências, o centro de preferências de e-mail e SMS do Xtremepush listará todas elas, permitindo que os usuários optem por participar ou não delas. ![Email preference center showing different preferences to which users can subscribe to.](https://cdn.document360.io/b056e88b-f6c1-4bd2-b5b8-08e9336a17c9/Images/Documentation/53f8ba8-Screenshot_2024-05-08_at_09.47.05(1).png?sv=2026-02-06&spr=https&st=2026-11-04T09%3A29%3A04Z&se=2026-11-04T10%3A29%3A04Z&sr=c&sp=r&sig=nN9KunPtiJh3U8r3xdg14IosfSQL89tgREYAAww%2Bw%2B4%3D) Centro de preferências de e-mail mostrando diferentes preferências às quais os usuários podem se inscrever. Em campanhas de e-mail, os usuários podem acessar o centro de preferências de e-mail se você incluir o seguinte código como um hiperlink para o texto: ```Updateemailpreferences {{system.url.profile}} ``` Em campanhas por SMS, você precisará incluir o [link de cancelamento](/documentation/docs/pt-br/campaign-sms#include-an-unsubscribe-link) na sua mensagem SMS. Esse link permitirá que os usuários modifiquem suas preferências para categorias específicas. ## Atualize Preferências usando Importação de Arquivos e API Agora é possível atualizar preferências por meio da importação de arquivos e via API. ## Importação de arquivos Para atualizar preferências via importação de arquivo, você precisará incluir uma coluna por preferência e canal no seu CSV e definir o valor de cada perfil como verdadeiro ou falso (`1` ou `0`). Ao importar Perfis de um CSV, você pode então mapear essas colunas no arquivo para as preferências existentes no projeto. Os campos podem ser vistos na parte inferior da coluna **Map to** input via: **Automações de > de Dados > Importar** (em **Preferências**). ![Mapping of a preference (Financial News) for the email channel.](https://cdn.document360.io/b056e88b-f6c1-4bd2-b5b8-08e9336a17c9/Images/Documentation/a112da7-Screenshot_2024-05-07_at_13.56.08.png?sv=2026-02-06&spr=https&st=2026-11-04T09%3A29%3A04Z&se=2026-11-04T10%3A29%3A04Z&sr=c&sp=r&sig=nN9KunPtiJh3U8r3xdg14IosfSQL89tgREYAAww%2Bw%2B4%3D) Mapeamento de uma preferência (Financial News) pelo canal de e-mail. ## API O método de [API externa de importação de perfil de usuário](/ref:user-profile-import) pode ser usado para definir e atualizar preferências, fornecendo o **Nome** das preferências específicas que precisam ser atualizadas. - As preferências de consentimento são especificadas como um objeto JSON dentro do array de linhas. - Cada canal de comunicação (por exemplo, SMS, e-mail, custom_channel) é uma chave com preferências aninhadas. - Os nomes exatos das preferências devem ser obtidos do projeto para o qual essas importações/atualizações devem ser enviadas. - Use inteiros para valores de consentimento (por exemplo, `0` para opt-out, `1` para opt-in). ```json curl --request POST \  --url https://external-api.xtremepush.com/api/external/import/profile \  --header 'content-type: application/json' \  --data '{    "apptoken": "YOUR_APPTOKEN",    "columns": [        "user_id",        "consent_preferences"    ],    "rows": [        "myuserid",        {            "email": {                "sport_news": 1,                "casino_news": 1            },            "sms": {                "sport_news": 0,                "casino_news": 1            }        }    ] } ``` ## Gerencie Preferências usando canais Push (Android, iOS e web) Você pode implementar sua própria interface de preferências no seu app ou site e usar nossos métodos SDK para atualizar a assinatura do perfil do usuário quando eles selecionarem as diferentes categorias. > [!TIP] > Dica > > Assinatura do dispositivo > > Para que os dispositivos recebam qualquer campanha push, a assinatura padrão do push deve estar habilitada (o que é o caso padrão). Confira nosso [guia dedicado](/documentation/docs/pt-br/push-subscription) para mais detalhes. **Android (Java)** ```java JSONObject prefs = new JSONObject(); prefs.put("news", 1); prefs.put("marketing", 0); mPushConnector.updatePushSubscriptionPreferences(this, prefs, this); ``` **iOS (Swift)** ```swift let preferences = [  "news": true,  "marketing": false ] XPush.updatePushSubcriptionPreferences(with: preferences) { (json: [String: Any], error: Error?) in  // handle response } ``` **iOS (Objective-C)** ```objectivec [XPush updatePushSubscriptionPreferences: @{              @"news": @YES,              @"marketing": @NO } withCompletionHandler: ...]; ``` **Web (JavaScript)** ```javascript xtremepush('user', 'update', {    'push_subscription_preferences': {      'news': 1,      'marketing': 0    }  },  function(data) {    console.log('success: ' + JSON.stringify(data))  },  function(data) {    console.log('error: ' + JSON.stringify(data))  } ); ``` ## Gerencie Preferências usando Campanhas On-Site Também é possível assinar usuários a preferências específicas de campanhas locais, ao clicarem em um botão específico. Por exemplo, você poderia criar uma campanha para incentivar os usuários a se inscreverem na newsletter dos seus filmes. ![1026](https://cdn.document360.io/b056e88b-f6c1-4bd2-b5b8-08e9336a17c9/Images/Documentation/e5becb4-Screenshot_2022-10-14_at_10.52.56(1).png?sv=2026-02-06&spr=https&st=2026-11-04T09%3A29%3A04Z&se=2026-11-04T10%3A29%3A04Z&sr=c&sp=r&sig=nN9KunPtiJh3U8r3xdg14IosfSQL89tgREYAAww%2Bw%2B4%3D) Campanha no local para que os usuários se inscrevam em um boletim informativo por e-mail de 'filmes'. Para isso, navegue até **Campanhas > Criar uma campanha > mensagem de estágio único > no app/local > selecione uma campanha no estilo pop-up**. Preencha os detalhes necessários nas **abas Configuração**, **Evento**, **Segmento** e **Programação** . Na aba **Conteúdo** , inclua dois botões. No seu botão de assinatura, defina o campo **Assinar** para a categoria que você criou anteriormente na página **do Gestor de Consentimento** . ![776](https://cdn.document360.io/b056e88b-f6c1-4bd2-b5b8-08e9336a17c9/Images/Documentation/1cb929f-Screenshot_2022-10-14_at_10.53.50(1).png?sv=2026-02-06&spr=https&st=2026-11-04T09%3A29%3A04Z&se=2026-11-04T10%3A29%3A04Z&sr=c&sp=r&sig=nN9KunPtiJh3U8r3xdg14IosfSQL89tgREYAAww%2Bw%2B4%3D) Como configurar a campanha na plataforma Xtremepush. Quando os usuários clicam nesse botão, eles automaticamente se inscreverão nessa categoria e canal. ## Gerencie Preferências usando campanhas dentro do aplicativo De forma semelhante à descrita acima, os usuários podem optar por categorias push de campanhas dentro do app. Isso requer o uso da funcionalidade [de deeplink](/documentation/docs/pt-br/mobile-deeplinks) . Para criar a campanha no app, navegue até **Campanhas > Estágio único > Crie uma campanha > mensagem no aplicativo/local** > selecione um tipo de campanha em tela cheia ou modal. Inclua dois botões e, no botão desejado, a partir **da Ação** , selecione a opção **Ir para o deeplink** . Você pode registrar um handler para isso no Android e iOS para permitir que você tome ações do lado do cliente com base em deeplinks. Os payloads do deeplink devem ter informações suficientes para permitir que seu app decida sobre preferências de configuração. O formato de deeplink pode ser `subpref://update?news=1` ou `subpref://update?news=1&marketing=1`. Veja o exemplo abaixo: ![1544](https://cdn.document360.io/b056e88b-f6c1-4bd2-b5b8-08e9336a17c9/Images/Documentation/8cc4106-Screenshot_2022-10-14_at_12.40.53(1).png?sv=2026-02-06&spr=https&st=2026-11-04T09%3A29%3A04Z&se=2026-11-04T10%3A29%3A04Z&sr=c&sp=r&sig=nN9KunPtiJh3U8r3xdg14IosfSQL89tgREYAAww%2Bw%2B4%3D) Para revisar como configurar os handlers no Android e iOS, revise as seguintes seções dos nossos guias dedicados ao Deeplink: - [Android](/documentation/docs/pt-br/mobile-deeplinks#android) - [iOS](/documentation/docs/pt-br/mobile-deeplinks#ios) Além disso, aqui está um exemplo baseado na análise do deeplink com o formato mostrado anteriormente; Essa seria uma forma flexível de definir as preferências de assinatura a partir das mensagens dentro do app. **Android (Java)** ```java @Override    public void deeplinkReceived(String link, WeakReference uiReference) {        try {            //Turn string param into URI and break into relevant components            Uri uri = Uri.parse(link);            String host = uri.getHost();            String protocol = uri.getScheme();            Set preferences = uri.getQueryParameterNames();            //Verify the protocol and host            if (protocol.equalsIgnoreCase("pushsubpref") && host.equalsIgnoreCase("update")) {                //create JSON objects.                    //jo is the param we will be passing to the updateUser function                    //myPushPreferences is some nested JSON in jo that represents the push params to update                JSONObject jo = new JSONObject();                JSONObject myPushPreferences = new JSONObject();                //loop through URI params then add each key-value pair to our 'myPushPreferences' JSON                for (String key : preferences) {                    myPushPreferences.put(key, uri.getQueryParameter(key));                }                jo.put("push_subscription_preferences", myPushPreferences);                // if necessary also set the subscription to 1                jo.put("push_subscription", 1);                //call updateUser function.                //Params are a Context instance, the JSON object we described above, an XPCallbackHandler instance                mPushConnector.updateUser(this, jo, new XPCallbackHandler() {                    @Override                    public void onSuccess(JSONObject response) {                        Log.d("TAG", "Here in on success. response : "+response.toString());                    }                    @Override                    public void onFailure(JSONObject response) {                        Log.d("TAG", "Here in on failure. response : "+response.toString());                    }                });            }        } catch (Exception e){        }    } ``` **iOS (Swift)** ```swift XPush.registerDeeplinkHandler { x in  guard x.hasPrefix("pushsubpref"), let query = URLComponents(string: x)?.queryItems else { return }              var params: [String: String] = [:]  for q in query {    params[q.name] = q.value  }              XPush.updateUser(with: params) { jsonResponse, error in    <#code#>  } } ``` **iOS (Objective-C)** ```objectivec [XPush registerDeeplinkHandler:^(NSString *x) {      if !([x hasPrefix:@"pushsubpref"]) {    return;  }    NSMutableDictionary* params = @[].mutableCopy;  for (NSURLQueryItem* q in [NSURLComponents componentsWithString:x].queryItems) {    params[q.name] = q.value;  }          id prefs = @{ @"push_subscription_preferences": params,                @"push_subscription": @(1)              };          [XPush updateUserWith:prefs completionHandler:^(NSDictionary * _Nullable jsonResponse,                                                  NSError * _Nullable error) {    <#code#>  }];         }]; ``` ---