{"id":17511,"date":"2026-07-15T11:47:34","date_gmt":"2026-07-15T10:47:34","guid":{"rendered":"https:\/\/help.expertsender.com\/?post_type=ecdp&#038;p=17511"},"modified":"2026-07-15T14:00:27","modified_gmt":"2026-07-15T13:00:27","slug":"konfiguracja-aplikacji-mobilnej","status":"publish","type":"ecdp","link":"https:\/\/help.expertsender.com\/pl\/ecdp\/konfiguracja-aplikacji-mobilnej\/","title":{"rendered":"Konfiguracja aplikacji mobilnej"},"content":{"rendered":"\n<p>ECDP umo\u017cliwia wysy\u0142anie powiadomie\u0144 push do u\u017cytkownik\u00f3w Twojej aplikacji mobilnej, z wykorzystaniem us\u0142ugi Firebase Cloud Messaging (FCM). Nie musisz instalowa\u0107 \u017cadnego SDK \u2013 Twoja aplikacja komunikuje si\u0119 z ECDP bezpo\u015brednio przez API, wykorzystuj\u0105c ten sam projekt Firebase, kt\u00f3rego ju\u017c u\u017cywasz do wysy\u0142ania powiadomie\u0144 z w\u0142asnego backendu.<\/p>\n\n\n\n<p>Ten artyku\u0142 opisuje, jak po\u0142\u0105czy\u0107 aplikacj\u0119 z ECDP: konfiguracj\u0119 Firebase, dodanie aplikacji w ECDP, rejestracj\u0119 urz\u0105dze\u0144 klient\u00f3w oraz odnajdywanie danych o urz\u0105dzeniach w profilach klient\u00f3w. Informacje o tworzeniu i wysy\u0142aniu samych powiadomie\u0144 znajdziesz w artykule <strong><a href=\"https:\/\/help.expertsender.com\/pl\/ecdp\/powiadomienia-mobile-push\/\">Powiadomienia mobile push<\/a><\/strong>. <\/p>\n\n\n\n<div style=\"height:var(--wp--preset--spacing--20)\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"wymagania\">Wymagania<\/h2>\n\n\n\n<p>Upewnij si\u0119, \u017ce masz przygotowane:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Projekt Google Cloud z w\u0142\u0105czonym Firebase i Cloud Messaging dla Twojej aplikacji na Androida i\/lub iOS.<\/li>\n\n\n\n<li>Konto (service account) Firebase z uprawnieniem do wysy\u0142ki wiadomo\u015bci oraz jego plik JSON.<\/li>\n\n\n\n<li>Dost\u0119p do kodu swojej aplikacji, \u017ceby Tw\u00f3j deweloper m\u00f3g\u0142 doda\u0107 wywo\u0142ania API potrzebne do rejestrowania urz\u0105dze\u0144 w ECDP oraz raportowania wy\u015bwietle\u0144 i klikni\u0119\u0107 powiadomie\u0144.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:var(--wp--preset--spacing--20)\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"skonfiguruj-firebase-dla-swojej-aplikacji\">Skonfiguruj Firebase dla swojej aplikacji<\/h2>\n\n\n\n<p>Zanim dodasz aplikacj\u0119 mobiln\u0105 w ECDP, utw\u00f3rz w Google Cloud konto us\u0142ugi, z kt\u00f3rego ECDP b\u0119dzie korzysta\u0107 do wysy\u0142ki wiadomo\u015bci przez projekt Firebase.<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>W Google Cloud wybierz projekt u\u017cywany przez Twoj\u0105 aplikacj\u0119 mobiln\u0105.<\/li>\n\n\n\n<li>W\u0142\u0105cz <strong>Firebase Cloud Messaging API<\/strong>.<\/li>\n\n\n\n<li>Utw\u00f3rz konto us\u0142ugi z uprawnieniem do wysy\u0142ki wiadomo\u015bci \u2013 u\u017cyj roli <strong>Firebase Cloud Messaging API Admin<\/strong> albo roli niestandardowej z uprawnieniem\u00a0 <strong>cloudmessaging.messages.create<\/strong>.<\/li>\n\n\n\n<li>Wygeneruj klucz JSON dla tego konta us\u0142ugi i pobierz plik. Prze\u015blesz go w ECDP w kolejnym kroku.<\/li>\n<\/ol>\n\n\n\n<div style=\"height:var(--wp--preset--spacing--20)\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"dodaj-aplikacje-mobilna-w-ecdp\">Dodaj aplikacj\u0119 mobiln\u0105 w ECDP<\/h2>\n\n\n\n<p>Gdy masz ju\u017c gotowe konto us\u0142ugi Firebase, utw\u00f3rz odpowiadaj\u0105c\u0105 mu aplikacj\u0119 mobiln\u0105 w ECDP.<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Przejd\u017a do\u00a0<strong>Ustawienia<\/strong>\u00a0>\u00a0<strong>Aplikacje mobilne<\/strong>.<\/li>\n\n\n\n<li>Kliknij\u00a0<strong>Skonfiguruj aplikacj\u0119 mobiln\u0105<\/strong>.<\/li>\n\n\n\n<li>Wprowad\u017a nazw\u0119 aplikacji (wymagane, maksymalnie 100 znak\u00f3w) oraz opcjonalnie opis.<\/li>\n\n\n\n<li>Prze\u015blij wygenerowany plik JSON Firebase:\n<ul class=\"wp-block-list\">\n<li>Je\u015bli plik jest prawid\u0142owy, ECDP odczytuje z niego <strong>client_email<\/strong>,\u00a0<strong>private_key<\/strong>, oraz\u00a0<strong>project_id<\/strong> i automatycznie uzupe\u0142nia te pola (tylko do odczytu).<\/li>\n\n\n\n<li>Je\u015bli w pliku brakuje wymaganych danych, ECDP wy\u015bwietla b\u0142\u0105d i zaznacza brakuj\u0105ce pola.<\/li>\n\n\n\n<li>Je\u015bli usuniesz przes\u0142any plik, automatycznie uzupe\u0142nione pola zostaj\u0105 wyczyszczone.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Kliknij\u00a0<strong>Zapisz<\/strong>.<\/li>\n<\/ol>\n\n\n\n<div class=\"infobox infobox-blue\">\n  <div class=\"infobox-inner\">\n    <div class=\"infobox-icon\">\n      <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.26884 2.99217C9.45176 2.50219 10.7196 2.25 12 2.25C13.2804 2.25 14.5482 2.50219 15.7312 2.99217C16.9141 3.48216 17.9889 4.20034 18.8943 5.10571C19.7997 6.01108 20.5178 7.08591 21.0078 8.26884C21.4978 9.45176 21.75 10.7196 21.75 12C21.75 13.2804 21.4978 14.5482 21.0078 15.7312C20.5178 16.9141 19.7997 17.9889 18.8943 18.8943C17.9889 19.7997 16.9141 20.5178 15.7312 21.0078C14.5482 21.4978 13.2804 21.75 12 21.75C10.7196 21.75 9.45176 21.4978 8.26884 21.0078C7.08591 20.5178 6.01108 19.7997 5.10571 18.8943C4.20034 17.9889 3.48216 16.9141 2.99217 15.7312C2.50219 14.5482 2.25 13.2804 2.25 12C2.25 10.7196 2.50219 9.45176 2.99217 8.26884C3.48216 7.08591 4.20034 6.01108 5.10571 5.10571C6.01108 4.20034 7.08591 3.48216 8.26884 2.99217ZM12 3.75C10.9166 3.75 9.8438 3.96339 8.84286 4.37799C7.84193 4.79259 6.93245 5.40029 6.16637 6.16637C5.40029 6.93245 4.7926 7.84193 4.37799 8.84286C3.96339 9.8438 3.75 10.9166 3.75 12C3.75 13.0834 3.96339 14.1562 4.37799 15.1571C4.7926 16.1581 5.40029 17.0675 6.16637 17.8336C6.93245 18.5997 7.84193 19.2074 8.84286 19.622C9.8438 20.0366 10.9166 20.25 12 20.25C13.0834 20.25 14.1562 20.0366 15.1571 19.622C16.1581 19.2074 17.0675 18.5997 17.8336 17.8336C18.5997 17.0675 19.2074 16.1581 19.622 15.1571C20.0366 14.1562 20.25 13.0834 20.25 12C20.25 10.9166 20.0366 9.8438 19.622 8.84286C19.2074 7.84193 18.5997 6.93245 17.8336 6.16637C17.0675 5.40029 16.1581 4.79259 15.1571 4.37799C14.1562 3.96339 13.0834 3.75 12 3.75ZM10.25 15.5002C10.25 15.086 10.5858 14.7502 11 14.7502H11.4088V12H11.0088C10.5946 12 10.2588 11.6642 10.2588 11.25C10.2588 10.8358 10.5946 10.5 11.0088 10.5H12.1588C12.573 10.5 12.9088 10.8358 12.9088 11.25V14.7502H13.31C13.7242 14.7502 14.06 15.086 14.06 15.5002C14.06 15.9144 13.7242 16.2502 13.31 16.2502H11C10.5858 16.2502 10.25 15.9144 10.25 15.5002ZM11.8501 7.23972C12.3748 7.23972 12.8501 7.66627 12.8501 8.23972C12.8501 8.24199 12.8501 8.24426 12.8501 8.24652C12.8481 8.53863 12.7161 8.78189 12.5542 8.9438C12.391 9.10697 12.1452 9.23972 11.8501 9.23972C11.2766 9.23972 10.8501 8.76443 10.8501 8.23972C10.8501 7.68551 11.2959 7.23972 11.8501 7.23972Z\" fill=\"currentColor\"\/><\/svg>    <\/div>\n    <div class=\"infobox-content\">\n                    <div class=\"infobox-text\">\n          <p>Na tym etapie plik Firebase jest opcjonalny. Mo\u017cesz zapisa\u0107 aplikacj\u0119 bez niego \u2013 zostanie utworzona ze statusem <strong>Aktywna<\/strong> \u2013 i przes\u0142a\u0107 go p\u00f3\u017aniej, gdy b\u0119dziesz go mie\u0107. Dop\u00f3ki jednak nie ma prawid\u0142owej konfiguracji Firebase, ECDP nie mo\u017ce dostarcza\u0107 powiadomie\u0144 push dla tej aplikacji.<\/p>\n        <\/div>\n          <\/div>\n  <\/div>\n<\/div>\n\n\n\n<p>Po zapisaniu ECDP nadaje aplikacji unikalne ID, widoczny na li\u015bcie aplikacji w&nbsp;<strong>Ustawienia<\/strong>&nbsp;&gt;&nbsp;<strong>Aplikacje mobilne<\/strong>. Tw\u00f3j deweloper potrzebuje tego ID razem z adresem API i kluczem API Twojego konta, \u017ceby po\u0142\u0105czy\u0107 aplikacj\u0119 przez API. Oba znajdziesz w&nbsp;<strong>Ustawienia<\/strong>&nbsp;&gt;&nbsp;<strong>API<\/strong>.<\/p>\n\n\n\n<div style=\"height:var(--wp--preset--spacing--20)\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"co-dzieje-sie-automatycznie-po-dodaniu-aplikacji-mobilnej\">Co dzieje si\u0119 automatycznie po dodaniu aplikacji mobilnej<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ECDP tworzy dedykowan\u0105 zgod\u0119 na kana\u0142 mobile push dla tej aplikacji, tak samo jak w przypadku web push.<\/li>\n\n\n\n<li>Ta zgoda jest aktywna od razu.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:var(--wp--preset--spacing--20)\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"polacz-swoja-aplikacje-z-ecdp\">Po\u0142\u0105cz swoj\u0105 aplikacj\u0119 z ECDP<\/h2>\n\n\n\n<p>Gdy aplikacja mobilna jest ju\u017c utworzona w ECDP, Tw\u00f3j deweloper \u0142\u0105czy kod Twojej aplikacji, \u017ceby mog\u0142a rejestrowa\u0107 urz\u0105dzenia i raportowa\u0107 aktywno\u015b\u0107 powiadomie\u0144. <strong>Na Androidzie<\/strong> nadal wymaga to dodania do aplikacji standardowego pliku&nbsp;<strong>google-services.json<\/strong>, tak jak w ka\u017cdej integracji z Firebase.<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Twoja aplikacja pobiera token FCM z Firebase, jak zwykle.<\/li>\n\n\n\n<li>Twoja aplikacja wysy\u0142a dane urz\u0105dzenia i token do ECDP:\u00a0<strong>POST \/customermobiledevices<\/strong>.\n<ul class=\"wp-block-list\">\n<li><strong>Wymagane:<\/strong>\n<ul class=\"wp-block-list\">\n<li><span style=\"font-size: 1rem;\">ID aplikacji mobilnej,<\/span><\/li>\n\n\n\n<li><span style=\"font-size: 1rem;\">ID urz\u0105dzenia \u2013 stabilny identyfikator, kt\u00f3ry nie zmienia si\u0119 przy aktualizacjach aplikacji, np. installation ID,<\/span><\/li>\n\n\n\n<li>token FCM.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Opcjonalne dane urz\u0105dzenia: <\/strong>system operacyjny, wersja systemu, marka urz\u0105dzenia, model urz\u0105dzenia, wersja aplikacji, j\u0119zyk.<\/li>\n\n\n\n<li><strong>Opcjonalne identyfikatory klienta:<\/strong> e-mail, telefon lub CRM ID. Zalecane jest przekazywanie jednego, g\u0142\u00f3wnego identyfikatora, na przyk\u0142ad adresu e-mail.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u017beby usun\u0105\u0107 rejestracj\u0119 urz\u0105dzenia \u2013 na przyk\u0142ad po tym, jak klient cofnie zgod\u0119 na powiadomienia \u2013 wy\u015blij\u00a0<strong>DELETE \/customermobiledevices<\/strong> z tymi samymi identyfikatorami.<\/li>\n<\/ol>\n\n\n\n<div class=\"infobox infobox-blue\">\n  <div class=\"infobox-inner\">\n    <div class=\"infobox-icon\">\n      <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.26884 2.99217C9.45176 2.50219 10.7196 2.25 12 2.25C13.2804 2.25 14.5482 2.50219 15.7312 2.99217C16.9141 3.48216 17.9889 4.20034 18.8943 5.10571C19.7997 6.01108 20.5178 7.08591 21.0078 8.26884C21.4978 9.45176 21.75 10.7196 21.75 12C21.75 13.2804 21.4978 14.5482 21.0078 15.7312C20.5178 16.9141 19.7997 17.9889 18.8943 18.8943C17.9889 19.7997 16.9141 20.5178 15.7312 21.0078C14.5482 21.4978 13.2804 21.75 12 21.75C10.7196 21.75 9.45176 21.4978 8.26884 21.0078C7.08591 20.5178 6.01108 19.7997 5.10571 18.8943C4.20034 17.9889 3.48216 16.9141 2.99217 15.7312C2.50219 14.5482 2.25 13.2804 2.25 12C2.25 10.7196 2.50219 9.45176 2.99217 8.26884C3.48216 7.08591 4.20034 6.01108 5.10571 5.10571C6.01108 4.20034 7.08591 3.48216 8.26884 2.99217ZM12 3.75C10.9166 3.75 9.8438 3.96339 8.84286 4.37799C7.84193 4.79259 6.93245 5.40029 6.16637 6.16637C5.40029 6.93245 4.7926 7.84193 4.37799 8.84286C3.96339 9.8438 3.75 10.9166 3.75 12C3.75 13.0834 3.96339 14.1562 4.37799 15.1571C4.7926 16.1581 5.40029 17.0675 6.16637 17.8336C6.93245 18.5997 7.84193 19.2074 8.84286 19.622C9.8438 20.0366 10.9166 20.25 12 20.25C13.0834 20.25 14.1562 20.0366 15.1571 19.622C16.1581 19.2074 17.0675 18.5997 17.8336 17.8336C18.5997 17.0675 19.2074 16.1581 19.622 15.1571C20.0366 14.1562 20.25 13.0834 20.25 12C20.25 10.9166 20.0366 9.8438 19.622 8.84286C19.2074 7.84193 18.5997 6.93245 17.8336 6.16637C17.0675 5.40029 16.1581 4.79259 15.1571 4.37799C14.1562 3.96339 13.0834 3.75 12 3.75ZM10.25 15.5002C10.25 15.086 10.5858 14.7502 11 14.7502H11.4088V12H11.0088C10.5946 12 10.2588 11.6642 10.2588 11.25C10.2588 10.8358 10.5946 10.5 11.0088 10.5H12.1588C12.573 10.5 12.9088 10.8358 12.9088 11.25V14.7502H13.31C13.7242 14.7502 14.06 15.086 14.06 15.5002C14.06 15.9144 13.7242 16.2502 13.31 16.2502H11C10.5858 16.2502 10.25 15.9144 10.25 15.5002ZM11.8501 7.23972C12.3748 7.23972 12.8501 7.66627 12.8501 8.23972C12.8501 8.24199 12.8501 8.24426 12.8501 8.24652C12.8481 8.53863 12.7161 8.78189 12.5542 8.9438C12.391 9.10697 12.1452 9.23972 11.8501 9.23972C11.2766 9.23972 10.8501 8.76443 10.8501 8.23972C10.8501 7.68551 11.2959 7.23972 11.8501 7.23972Z\" fill=\"currentColor\"\/><\/svg>    <\/div>\n    <div class=\"infobox-content\">\n                    <div class=\"infobox-text\">\n          <p>Ponowna rejestracja tego samego urz\u0105dzenia, na przyk\u0142ad po od\u015bwie\u017ceniu tokena, tylko aktualizuje istniej\u0105cy rekord; nie tworzy duplikatu. Je\u015bli nie zostanie przes\u0142any \u017caden identyfikator klienta, ECDP przypisuje urz\u0105dzenie do klienta anonimowego do czasu jego identyfikacji.<\/p>\n        <\/div>\n          <\/div>\n  <\/div>\n<\/div>\n\n\n\n<p>Pe\u0142ne informacje o \u017c\u0105daniach i odpowiedziach API znajdziesz w dokumentacji <a href=\"https:\/\/api.ecdp.app\/swagger\/index.html\" target=\"_blank\" rel=\"noopener\">Swagger \u2013<\/a> <a href=\"https:\/\/api.ecdp.app\/swagger\/index.html\" target=\"_blank\" rel=\"noopener\">CustomerMobileDevices<\/a>.<\/p>\n\n\n\n<div style=\"height:var(--wp--preset--spacing--20)\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"identyfikacja-klientow-ma-wielu-urzadzeniach\">Jak ECDP identyfikuje klient\u00f3w na wielu urz\u0105dzeniach<\/h2>\n\n\n\n<p>Urz\u0105dzenie mo\u017ce by\u0107 aktywnie przypisane tylko do jednego klienta naraz. Gdy rejestracja urz\u0105dzenia zawiera identyfikator klienta, kt\u00f3ry nie zgadza si\u0119 z tym, co jest ju\u017c zapisane, ECDP ustala, co si\u0119 zmieni\u0142o:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Je\u015bli urz\u0105dzenie nale\u017cy obecnie do klienta anonimowego<\/strong>, a nowy identyfikator pasuje do istniej\u0105cego, rozpoznanego klienta, ECDP \u0142\u0105czy te dwa rekordy: urz\u0105dzenie (wraz z histori\u0105) zostaje przeniesione do rozpoznanego klienta, a klient anonimowy zostaje dezaktywowany.<\/li>\n\n\n\n<li><strong>Je\u015bli urz\u0105dzenie nale\u017cy do rozpoznanego klienta<\/strong>, ale w \u017c\u0105daniu pojawia si\u0119 inny identyfikator, ECDP traktuje to jako inn\u0105 osob\u0119 korzystaj\u0105c\u0105 z tego samego urz\u0105dzenia: przenosi urz\u0105dzenie do tego innego klienta (tworz\u0105c go, je\u015bli trzeba), podczas gdy pierwotny klient zachowuje swoj\u0105 histori\u0119.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:var(--wp--preset--spacing--20)\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"zgoda-na-mobile-push\">Zgoda na mobile push<\/h2>\n\n\n\n<p>Rejestrowanie i usuwanie urz\u0105dze\u0144 przez API obs\u0142uguje zgody automatycznie, bez \u017cadnych r\u0119cznych dzia\u0142a\u0144 z Twojej strony.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ka\u017cda aplikacja mobilna ma jedn\u0105 dedykowan\u0105 zgod\u0119, wsp\u00f3ln\u0105 dla wszystkich urz\u0105dze\u0144 tej aplikacji przypisanych do danego klienta.<\/li>\n\n\n\n<li>Zgoda jest udzielona, dop\u00f3ki klient ma przynajmniej jedno aktywne urz\u0105dzenie w tej aplikacji.<\/li>\n\n\n\n<li>Usuni\u0119cie urz\u0105dzenia przez API cofa zgod\u0119, je\u015bli by\u0142o to ostatnie aktywne urz\u0105dzenie klienta w tej aplikacji.<\/li>\n\n\n\n<li>ECDP dezaktywuje te\u017c urz\u0105dzenie i automatycznie cofa jego zgod\u0119, gdy Firebase zg\u0142osi, \u017ce token przesta\u0142 by\u0107 prawid\u0142owy:\n<ul class=\"wp-block-list\">\n<li><strong>token nieprawid\u0142owy<\/strong> (invalid) \u2013 widoczny w statystykach dostarczenia jako Zwr\u00f3cone (Bounced).<\/li>\n\n\n\n<li><strong>token niezarejestrowany<\/strong> (unregistered) \u2013 widoczny w statystykach dostarczenia jako Wypisani (Unsubscribed).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"dostarczanie-powiadomien-i-zaangazowanie\">\u015aled\u017a dostarczanie i zaanga\u017cowanie w powiadomienia<\/h2>\n\n\n\n<p>Ka\u017cde powiadomienie wys\u0142ane przez ECDP jest oznaczone identyfikatorem&nbsp;<strong>messageGuid,<\/strong> unikalnym identyfikatorem tego konkretnego powiadomienia, przekazywanym w payloadzie, kt\u00f3ry Twoja aplikacja otrzymuje z Firebase. Twoja aplikacja odczytuje t\u0119 warto\u015b\u0107 i odsy\u0142a j\u0105 do ECDP, \u017ceby ka\u017cde wy\u015bwietlenie lub klikni\u0119cie mo\u017cna by\u0142o powi\u0105za\u0107 z konkretnym powiadomieniem, kt\u00f3rego dotyczy.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Wysy\u0142ka<\/strong>  jest zapisywana automatycznie przez ECDP w momencie przekazania wiadomo\u015bci do Firebase. Twoja aplikacja nie musi nic robi\u0107 w tym przypadku. Spos\u00f3b reprezentacji zdarze\u0144 wysy\u0142ki opisano w <strong>dokumentacji API<\/strong>. <\/li>\n\n\n\n<li><strong>Wy\u015bwietlenie<\/strong> \u2013 Twoja aplikacja powinna zg\u0142osi\u0107 je, gdy system operacyjny faktycznie wy\u015bwietli powiadomienie u\u017cytkownikowi:\u00a0<strong>POST \/events\/mobile\/push\/views<\/strong>. Dok\u0142adny format \u017c\u0105dania znajdziesz w dokumentacji API. <\/li>\n\n\n\n<li><strong>Klikni\u0119cie <\/strong>\u2013 Twoja aplikacja powinna zg\u0142osi\u0107 je tylko wtedy, gdy klient stuknie w powiadomienie:\u00a0<strong>POST \/events\/mobile\/push\/clicks<\/strong>. Dok\u0142adny format \u017c\u0105dania znajdziesz w dokumentacji API.<\/li>\n<\/ul>\n\n\n\n<p>Oba endpointy wymagaj\u0105 <strong>ID aplikacji mobilnej<\/strong> oraz warto\u015bci&nbsp;<strong>messageGuid<\/strong>&nbsp;z payloadu powiadomienia. Nie musisz przesy\u0142a\u0107 urz\u0105dzenia ani klienta, poniewa\u017c ECDP ju\u017c wie, kto otrzyma\u0142 powiadomienie. Ka\u017cde zdarzenie zg\u0142aszaj tylko raz na powiadomienie.<\/p>\n\n\n\n<p>Wysy\u0142asz du\u017co zdarze\u0144? U\u017cyj\u00a0<strong>POST \/events\/mobile\/batch<\/strong>, \u017ceby zg\u0142osi\u0107 do 1000 zdarze\u0144 wy\u015bwietlenia\/klikni\u0119cia w jednym \u017c\u0105daniu, zamiast wywo\u0142ywa\u0107 pojedyncze endpointy jeden po drugim.<\/p>\n\n\n\n<div style=\"height:var(--wp--preset--spacing--20)\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"linki-bezposrednie\">Linki bezpo\u015brednie<\/h2>\n\n\n\n<p>Powiadomienie push mo\u017ce zawiera\u0107 link bezpo\u015bredni, kt\u00f3ry po klikni\u0119ciu otwiera konkretny ekran w Twojej aplikacji. Link bezpo\u015bredni ustawiasz podczas <strong><a href=\"https:\/\/help.expertsender.com\/pl\/ecdp\/powiadomienia-mobile-push\/#linki-w-powiadomieniach\">tworzenia tre\u015bci powiadomienia<\/a><\/strong>. <\/p>\n\n\n\n<p>ECDP przekazuje link bezpo\u015bredni jako zwyk\u0142e dane w payloadzie powiadomienia, w polu\u00a0<strong>deep_link<\/strong>. Nie waliduje formatu linku ani go nie otwiera, to w ca\u0142o\u015bci le\u017cy po stronie Twojej aplikacji.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Upewnij si\u0119, \u017ce Twoja aplikacja poprawnie interpretuje i otwiera linki bezpo\u015brednie, kt\u00f3rych planujesz u\u017cywa\u0107.<\/li>\n\n\n\n<li>Dodaj zabezpieczenie, np. otwarcie ekranu g\u0142\u00f3wnego, na wypadek, gdyby link bezpo\u015bredni nie zosta\u0142 rozpoznany.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:var(--wp--preset--spacing--20)\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"zobacz-urzadzenia-mobilne-klienta\">Zobacz urz\u0105dzenia mobilne klienta<\/h2>\n\n\n\n<p>Sekcja <strong>Urz\u0105dzenia mobilne<\/strong> w profilu <strong>Klient 360 <\/strong>zawiera list\u0119 wszystkich urz\u0105dze\u0144 przypisanych do klienta, na kt\u00f3rych zainstalowana jest Twoja aplikacja.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ka\u017cde urz\u0105dzenie jest wy\u015bwietlane jako karta z: ikon\u0105 platformy, identyfikatorem urz\u0105dzenia, statusem (Aktywne lub Nieaktywne), aplikacj\u0105, do kt\u00f3rej nale\u017cy, oraz mark\u0105 i modelem urz\u0105dzenia.<\/li>\n\n\n\n<li>Token na karcie jest skr\u00f3cony \u2013 najed\u017a na niego, \u017ceby zobaczy\u0107 pe\u0142n\u0105 warto\u015b\u0107, albo u\u017cyj przycisku kopiowania.<\/li>\n\n\n\n<li>Kliknij kart\u0119, \u017ceby rozwin\u0105\u0107 dodatkowe szczeg\u00f3\u0142y: system operacyjny, wersj\u0119 systemu, j\u0119zyk aplikacji i wersj\u0119 aplikacji.<\/li>\n\n\n\n<li>Karty s\u0105 posortowane od najnowszych, po dwie w rz\u0119dzie. Brakuj\u0105ce warto\u015bci s\u0105 oznaczone jako \u201e\u2013&#8221;.<\/li>\n\n\n\n<li>Je\u015bli klient nie ma zarejestrowanych urz\u0105dze\u0144, sekcja pokazuje stan pusty.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:var(--wp--preset--spacing--20)\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Znajdz-klientow-po-urzadzeniu-mobilnym\">Znajd\u017a klient\u00f3w po urz\u0105dzeniu mobilnym<\/h2>\n\n\n\n<p>Domy\u015blnie tabela <strong>Klienci<\/strong> nie pokazuje klient\u00f3w, kt\u00f3rzy maj\u0105 wy\u0142\u0105cznie urz\u0105dzenie mobilne, bez adresu e-mail, telefonu ani CRM ID. Gdy skonfigurowana jest przynajmniej jedna aplikacja mobilna, nad tabel\u0105 pojawia si\u0119 nowe pole wyboru: <strong>Uwzgl\u0119dnij klient\u00f3w posiadaj\u0105cych wy\u0142\u0105cznie urz\u0105dzenie mobilne<\/strong>. Domy\u015blnie opcja ta jest odznaczona, a Tw\u00f3j wyb\u00f3r jest zapami\u0119tywany, tak samo jak w przypadku pola wyboru dla klient\u00f3w posiadaj\u0105cych wy\u0142\u0105cznie web push.<\/p>\n\n\n\n<div style=\"height:var(--wp--preset--spacing--20)\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"zarzadzaj-aplikacja-mobilna\">Zarz\u0105dzaj aplikacj\u0105 mobiln\u0105<\/h2>\n\n\n\n<p>W&nbsp;<strong>Ustawienia<\/strong>&nbsp;&gt;&nbsp;<strong>Aplikacje mobilne<\/strong>&nbsp;wybierz&nbsp;<strong>Dezaktywuj<\/strong>&nbsp;przy aplikacji, \u017ceby przesta\u0107 jej u\u017cywa\u0107 do wysy\u0142ki powiadomie\u0144. Pojawi si\u0119 informacja, \u017ce po dezaktywacji nie b\u0119dzie mo\u017cna zbiera\u0107 zg\u00f3d, \u015bledzi\u0107 zachowania ani wysy\u0142a\u0107 powiadomie\u0144 do klient\u00f3w przez t\u0119 aplikacj\u0119.<\/p>\n\n\n\n<p>Zdezaktywowan\u0105 aplikacj\u0119 mo\u017cesz w dowolnym momencie ponownie w\u0142\u0105czy\u0107 z tej samej listy, u\u017cywaj\u0105c akcji&nbsp;<strong>Aktywuj<\/strong>. Usuwanie aplikacji mobilnej nie jest jeszcze mo\u017cliwe.<\/p>\n\n\n\n<div style=\"height:var(--wp--preset--spacing--20)\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"czesto-zadawane-pytania\">Cz\u0119sto zadawane pywania<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"dodawanie-aplikacji-mobilnej-bez-pliku-firebase\">Czy mog\u0119 doda\u0107 aplikacj\u0119 mobiln\u0105 bez pliku konfiguracyjnego Firebase?<\/h3>\n\n\n\n<p>Tak. Plik JSON Firebase jest opcjonalny podczas pierwszego tworzenia aplikacji mobilnej \u2013 mo\u017cesz zapisa\u0107 aplikacj\u0119 i doda\u0107 plik p\u00f3\u017aniej. Aplikacja w obu przypadkach zostaje zapisana ze statusem <strong>Aktywna<\/strong>, ale ECDP nie mo\u017ce wysy\u0142a\u0107 dla niej powiadomie\u0144 push, dop\u00f3ki nie ma prawid\u0142owej konfiguracji Firebase.<\/p>\n\n\n\n<div style=\"height:var(--wp--preset--spacing--20)\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"plik-firebase-zostal-usuniety\">Co si\u0119 stanie, je\u015bli usun\u0119 przes\u0142any plik Firebase?<\/h3>\n\n\n\n<p>Je\u015bli usuniesz plik podczas konfigurowania lub edycji aplikacji mobilnej, ECDP czy\u015bci pola <strong>client_email<\/strong>,&nbsp;<strong>private_key<\/strong>, oraz&nbsp;<strong>project_id<\/strong>. Mo\u017cesz nast\u0119pnie przes\u0142a\u0107 inny plik albo zapisa\u0107 aplikacj\u0119 bez konfiguracji Firebase i doda\u0107 j\u0105 p\u00f3\u017aniej.<\/p>\n\n\n\n<p>Informacje o tym, jak tworzy\u0107 i wysy\u0142a\u0107 powiadomienia mobile push po po\u0142\u0105czeniu aplikacji, znajdziesz w artykule <strong><a href=\"https:\/\/help.expertsender.com\/pl\/ecdp\/powiadomienia-mobile-push\/\">Powiadomienia mobile push<\/a><\/strong>.<\/p>\n","protected":false},"author":6,"featured_media":0,"parent":0,"menu_order":0,"template":"","ecdp-category":[105],"class_list":["post-17511","ecdp","type-ecdp","status-publish","hentry","ecdp-category-komunikacja-z-klientem"],"acf":[],"_links":{"self":[{"href":"https:\/\/help.expertsender.com\/pl\/wp-json\/wp\/v2\/ecdp\/17511","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/help.expertsender.com\/pl\/wp-json\/wp\/v2\/ecdp"}],"about":[{"href":"https:\/\/help.expertsender.com\/pl\/wp-json\/wp\/v2\/types\/ecdp"}],"author":[{"embeddable":true,"href":"https:\/\/help.expertsender.com\/pl\/wp-json\/wp\/v2\/users\/6"}],"version-history":[{"count":12,"href":"https:\/\/help.expertsender.com\/pl\/wp-json\/wp\/v2\/ecdp\/17511\/revisions"}],"predecessor-version":[{"id":17533,"href":"https:\/\/help.expertsender.com\/pl\/wp-json\/wp\/v2\/ecdp\/17511\/revisions\/17533"}],"wp:attachment":[{"href":"https:\/\/help.expertsender.com\/pl\/wp-json\/wp\/v2\/media?parent=17511"}],"wp:term":[{"taxonomy":"ecdp-category","embeddable":true,"href":"https:\/\/help.expertsender.com\/pl\/wp-json\/wp\/v2\/ecdp-category?post=17511"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}