{"id":211,"date":"2022-03-26T13:48:51","date_gmt":"2022-03-26T08:18:51","guid":{"rendered":"https:\/\/www.codezma.com\/?p=211"},"modified":"2022-03-26T13:48:52","modified_gmt":"2022-03-26T08:18:52","slug":"google-dynamic-links","status":"publish","type":"post","link":"https:\/\/www.codezma.com\/blogs\/php\/google-dynamic-links\/","title":{"rendered":"Google Dynamic Links"},"content":{"rendered":"\n<p>Hello guys, After a long time we are back with another useful blog. As you guys see in the banner image and title, in this blog we are going to learn about Dynamic Links. How dynamic links work, advantage of dynamic links, implementation of dynamic links and finally how we can easily implement the dynamic links for facebook and other ads. So let\u2019s get started\u2026.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"introduction\">1. Introduction&nbsp;<\/h2>\n\n\n\n<p>Dynamic links is a very hot topic nowadays. Dynamic links provide support to open mobile applications directly from a web link. Yes, you can open your mobile application directly through a simple link. Very cool isn\u2019t it ? Google Firebase introduced this kind of mainstream in early 2012 and gave it the name \u201cDeep Links\u201d. This is the same mechanism introduced by Apple and they call it \u201cUniversal Links\u201d. Universal links will open the application installed in apple devices like iPhone, iPad.<\/p>\n\n\n\n<p>Now, how can I use a single link for android users and iOS users ? What if we have an android and iOS application and we need to redirect into the respective apps. This blog will help you to implement this\u2026so keep reading ?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"why-we-need\">2. <strong>Why we need dynamic links<\/strong><\/h2>\n\n\n\n<p>Dynamic links are very useful for marketing and advertising as best practices. You can use the same mechanism as a sharing feature. Let\u2019s take an example of a coupon app where customers can see the list of coupons and share coupons with their friends. So here one customer will share a coupon link over WhatsApp and his friend will click on the link and that link directly opens the coupon app with the exact same coupon. So no need to search for that particular coupon. This is how you can use the dynamic links.<\/p>\n\n\n\n<p>You can do email marketing and place the link which opens the application and directly redirect users to the specific coupon.<\/p>\n\n\n\n<p>Now you must be thinking what if I run a marketing campaign and some customer didn\u2019t have a mobile app installed on their devices. So here you can tweak your link in such a way that if a mobile application is installed then open the link otherwise open the App\/Play store and ask the customer to install. Once they install the application and click on the \u201cOpen\u201d button that button will redirect your customer to the same screen where he\/she can see the coupon.<\/p>\n\n\n\n<p>Now again you think like what if I open the link into a laptop not on mobile. Here again dynamic link helps us, first it will check whether the link is open into mobile device or laptop. If a customer opens the link into the laptop, you can redirect the customer to your webpage. Yes ? the perfect marketing solution. I hope now we are excited about how we can implement this so let\u2019s check how we can implement this cool feature\u2026.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"implementation\">3. Implementation<\/h2>\n\n\n\n<p>For implementation purposes I\u2019ll use Laravel (PHP) as my backend for generating the dynamic links using Firebase REST API. After that I\u2019ll add code for handling the android and iOS application when a customer clicks on the link.&nbsp;<\/p>\n\n\n\n<p>For generating the Dynamic Link you need a firebase console account. From the firebase console firstly you need&nbsp; to create a project. You need to add your application details like package name, SHA Keys and other related stuff. Once you create the project and add your application into the same project, you need a web API key and you can get that from the Authentication section and save that key into your environment (.env) file.<\/p>\n\n\n\n<p>Now you can go dynamic link section where you found that one default domain was create named <a href=\"http:\/\/codezma.page.link\">codezma.page.link<\/a>&nbsp; you can add your custom domain here but for you need to verify your domain with a keys provided by google and need to set A Records as per given instruction by firebase console. After that you can set base URL like <a href=\"http:\/\/share.codezma.com\">share.codezma.com<\/a> (which looks slightly professional as per my thought). Here you can add multiple like <a href=\"http:\/\/offers.codezma.com\">offers.codezma.com<\/a> or <a href=\"http:\/\/invite.codezma.com\">invite.codezma.com<\/a> based on your requirement.<\/p>\n\n\n\n<p>Till here you have your application ready with your custom domain now you need to add code to generate the dynamic link.&nbsp;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"php\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php \n$dynamicLinkData = [\n    'dynamicLinkInfo'   =>  [\n        'domainUriPrefix'   =>  \"https:\/\/share.codezma.com\",\n        'link'              =>  \"https:\/\/www.codezma.com\/share\/pizza\/pz-50\/buy-one-get-one-free\",\n        'androidInfo'       =>  [\n            'androidPackageName'    =>  \"com.codezma.app\",\n            'androidFallbackLink'   =>  \"https:\/\/www.codezma.com\/share\/pizza\/pz-50\/buy-one-get-one-free\",\n        ],\n        'iosInfo'                   =>  [\n            'iosBundleId'           =>  \"app.codezma.com\",\n            'iosAppStoreId'         =>  \"YOUR-APP-STORE-ID\",\n            'iosCustomScheme'       =>  \"codezma.firebase.schema\",\n            'iosFallbackLink'       =>  \"https:\/\/www.codezma.com\/share\/pizza\/pz-50\/buy-one-get-one-free\",\n        ],\n        'navigationInfo'    =>  [\n            'enableForcedRedirect' => \"TRUE\"\n        ],\n        'socialMetaTagInfo'   =>  [\n            'socialTitle'           =>  \"Get 50% Off\",\n            'socialDescription'     =>  \"Are you hungry? Get second pizza absolutely free by using this link\"\n            'socialImageLink'       =>  \"https:\/\/www.codezma.com\/wp-content\/uploads\/2022\/03\/Pizza-scaled.jpeg\"\n        ]\n    ],\n    'suffix'            =>  [\n        'option'    =>  \"SHORT\"\n    ]\n];\n\n$url = \"https:\/\/firebasedynamiclinks.googleapis.com\/v1\/shortLinks?key=&lt;YOUR-API-KEY-FROM-FIREBASE-CONSOLE>\";\n$headers[] = \"Content-Type:application\/json\";\n$response = fireCURL( $url, \"POST\", json_encode($dynamicLinkData), $headers );\nreturn $response;\n\n\/**\n * ------------------------------------\n * Expected Response\n * ------------------------------------\n * You will get a short link and a debug link in response.\n * Debug link will help you to debug the firebase redirection\n * Short link will the actual dynamic link\n *\/<\/pre>\n\n\n\n<p>By implementing the above code you will get your dynamic link ready. (If you performed the proper steps). As you see in the code you need to pass a link for where you want your user to get redirected, you need to pass android &amp; iOS package name and iOS application also. One more thing you need to set up the iOS is custom scheme. You need to add the custom scheme into your plist file in iOS and for android you need to add the scheme information into schema.<\/p>\n\n\n\n<p>Now here we have our domain ready, we have our dynamic link ready and we have our application ready. Now when we create the dynamic link it\u2019s necessary to add fallbackUrl for android and iOS because that will help if someone directly opens the link from the browser. Here firebase will identify the browser and OS details and based on that open the application or respective app\/play store. Fallback URL will work when Firebase is not able to open the application.<\/p>\n\n\n\n<p>We created the link now to handle that link into the iOS, android &amp; web. So let\u2019s start with a very simple web application. In the Laravel application I\u2019ll add a route where I can open the weblink. For example I\u2019ve created one dynamic link for pizza-offer then by requested URL would be \u201c<a href=\"https:\/\/offers.codezma.com\/pizza\/buy-one-get-one-free\">https:\/\/www.codezma.com\/pizza\/pz-50\/buy-one-get-one-free<\/a>\u201d and for this base URL by dynamic maybe like \u201c<a href=\"https:\/\/offers.codezma\/k319r\">https:\/\/offers.codezma\/k319r<\/a>\u201d.  So when any customer click on the link first firebase will open the application if user is one andoird\/iOS if application was not installed then customer will redirected to the app\/play store and install the app and from that app\/play store customer open clicks on open then it\u2019ll show a dedicated page in application will all details. Here you might think how will the application know which API it needs to call and fetch the record ?. <\/p>\n\n\n\n<p>No need to get confused, codezma will help you to sort these details as well. When a customer clicks on the link and our application will open you get the completed base (requested) URL from delegating methods which are mentioned in the code. So the base(requested) URL structure will be link domain \/ category \/ id \/ text. So the app team will easily get the ID from the requested URL, in our example pz-50 was the ID of offer. Now they pass the ID in API and get all the information easily ?.<\/p>\n\n\n\n<p>Now, If a customer opens the same link into a laptop or computer then it\u2019ll redirect to my based(requested) URL and be able to see a dedicated web page with all details.<\/p>\n\n\n\n<p>I hope you guys can understand the working and implementation of firebase dynamic link. You can also track the details in firebase analytic if you added the code for the same.<\/p>\n\n\n\n<p>Here is not the actual end \u274c if you want to share the dynamic link WhatsApp, Mail, Text then this flow will work but if you want to share the dynamic link on Facebook or Instagram through post or through marketing campaign then this will not work properly. So to make things happen you need to read the last step for implementing dynamic links with Facebook AD.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"dynamic-links-with-facebook-ad\">4. Dynamic links with Facebook AD<\/h2>\n\n\n\n<p>If you didn\u2019t add this kind of tick then Facebook will not open your application, it might open the app\/play store or open the fallback URL which is not a proper way because you can easily get your targeted audience from Facebook or Instagram. So let\u2019s update the code for social media ADs.<\/p>\n\n\n\n<p>Step#1 \u27a1\ufe0f You need to keep your base(requested) URL and fallback URL the same.<\/p>\n\n\n\n<p>Step#2 \u27a1\ufe0f You need to define the proper and universal schema for your application. For example I can add \u201ccodezma\u201d as my schema.<\/p>\n\n\n\n<p>Step#3 \u27a1\ufe0f Need to add a few lines of code in your base(requested) URL. For example I would like to open the app or respective store &amp; if a customer opens the link from the computer then I will redirect the customer to the homepage. (Here I\u2019ll use Laravel for the routing and redirection part).<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"php\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\n\nRoute::get('share\/pizza\/{id}\/{title}', function ($title, $id) {\n    $type = 'pizza';\n    $title = $title;\n    $id = $id;\n    return view('facebook-page', compact('type', 'title','id'));\n})->name('share.blog');\n\/**\n * facebook-page has below mentioned code (THE HTML CODE)\n * $title would be the page title\n * $id would be the unique ID of a particular post\n *\/<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"html\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;!DOCTYPE html>\n&lt;html>\n&lt;head>\n\t&lt;title>Home | Codezma&lt;\/title>\n\t&lt;script type=\"text\/javascript\">\n\t\tvar hidden, visibilityChange;\n\t\tif (typeof document.hidden !== \"undefined\") {\n\t\t  hidden = \"hidden\";\n\t\t  visibilityChange = \"visibilitychange\";\n\t\t} else if (typeof document.msHidden !== \"undefined\") {\n\t\t  hidden = \"msHidden\";\n\t\t  visibilityChange = \"msvisibilitychange\";\n\t\t} else if (typeof document.webkitHidden !== \"undefined\") {\n\t\t  hidden = \"webkitHidden\";\n\t\t  visibilityChange = \"webkitvisibilitychange\";\n\t\t}\n\n\t\tfunction handleVisibilityChange() {\n\t\t\tif( hidden !== undefined ) if (document[hidden]) window.close();\n\t\t}\n\n\t\tif (typeof document.addEventListener === \"undefined\" || hidden === undefined) {\n\t\t\tredirectToStore();\n\t\t} else {\n\t\t  \tdocument.addEventListener(visibilityChange, handleVisibilityChange, false);\n  \t\t\twindow.location.replace(\"codezma:\/\/{{ $type }}\/{{ $id }}\/{{ $title }}\");\n            \/**\n             * Final universal link will looks like\n             * ---------------------------------------------------------------\n             * $type = \"pizza\";\n             * $title = \"buy-one-get-one-free\";\n             * $id = \"pz-50\"\n             * ---------------------------------------------------------------\n             * codezma:\/\/share\/pizza\/pz-50\/buy-one-get-one-free\n             * application-schema:\/\/host\n             *\/\n\t\t\tsetTimeout(function () {\n\t\t\t\tredirectToStore();\n\t\t\t}, 500)\n\t\t}\n\n\t\tfunction redirectToStore() {\n\t\t\tif( (\/iphone|ipod\/i.test(navigator.userAgent.toLowerCase())) ) {\n\t\t\t\twindow.location.replace(\"&lt;YOUR-APP-STORE-LINK>\");\n\t\t\t} else if( (\/android\/i.test(navigator.userAgent.toLowerCase())) ) {\n\t\t\t\twindow.location.replace(\"&lt;YOUR-PLAY-STORE-LINK>\");\n\t\t\t} else {\n\t\t\t\thidden = undefined;\n\t\t\t\twindow.location.replace(\"https:\/\/www.codezma.com\");\n\t\t\t}\n\t\t}\n\n\t&lt;\/script>\n&lt;\/head>\n&lt;body>&lt;\/body>\n&lt;\/html>\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">&nbsp;\u26a0\ufe0f How this code will work ?<\/h4>\n\n\n\n<p>I hope you guys have implemented the \u201cmailto:\u201d or \u201ctel:\u201d in your website. This is the custom schema who will open the application respective mail or phone application. So like the same we have created our schema called \u201ccodezma:\/\/\u201c and this will open our app. Now we can set the same structure as we set for our base(requested) URL. Like \u201c<a href=\"codezma:\/\/share\/pizza\/pz-50\/buy-one-get-one-free\">codezma:\/\/share\/pizza\/pz-50\/buy-one-get-one-free<\/a>\u201d and app team will get find the &#8220;pz-50&#8221; from the URL. After that call the API and show all details regarding the offer. You just need to paste above code in your JS file, replace the URL details that\u2019s it. This will first open the and if the app was not installed then it will open the app\/play store. JS code was done so that it\u2019ll automatically close the Facebook browser.<\/p>\n\n\n\n<p><br>Step#4 \u27a1\ufe0f Handle the schema in a mobile application.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"swift\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ iOS Swift\nfunc application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {\n\nif let userActivityDictionary = launchOptions?[UIApplication.LaunchOptionsKey.userActivityDictionary] as? [UIApplication.LaunchOptionsKey: Any], let userActivity = userActivityDictionary.values.map({ $0 as? NSUserActivity }).compactMap({$0}).first, let webpageURL = userActivity.webpageURL {\n        self.prepareToHandleUniversalLink(url: webpageURL)\n        \n    }else if let url = launchOptions?[UIApplication.LaunchOptionsKey.url] as? URL {\n        \/\/Your redirection logic\n    }\n    \n    return true\n}\n\nfunc application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any]) -> Bool {\n        \/\/Your redirection logic\n    return true\n}\n\n\/\/MARK:- Dynamic linking\nextension AppDelegate {\n\nfunc application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {\n        \/\/Your redirection logic\n    \n    return true\n}\n}\n\n\/\/ MARK: Universal Link\nextension AppDelegate {\n\nfunc application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {\n            \n    if let url = userActivity.webpageURL {\n        \/\/Your redirection logic\n    }\n    return true\n}<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ Android\n\n\/\/ intent filter in AndroidManifest.xml\n&lt;intent-filter android:autoVerify=\"true\">\n    &lt;action android:name=\"android.intent.action.VIEW\"\/>\n    &lt;category android:name=\"android.intent.category.DEFAULT\"\/>\n    &lt;category android:name=\"android.intent.category.OPENABLE\"\/>\n    &lt;category android:name=\"android.intent.category.BROWSABLE\"\/>\n    &lt;data\n        android:host=\"codezma.page.link\"\n        android:scheme=\"https\"\/>\n    &lt;data\n        android:host=\"share\"\n        android:scheme=\"codezma\"\/>\n&lt;\/intent-filter>\n\n\/\/ After fetching the data from intent\nintent?.dataString?.split(\"\/\")\nreturns a List&lt;String>\ncodezma:\/\/share\/pizza\/pz-50\/buy-one-get-one-free\n\/**\n    * Here you get list of all keys in array.\n    * You will get data like below \n    * [\n    *   0 => share\n    *   1 => pizza\n    *   2 => pz-50  &lt;------- This is your ID of Offer\n    *   3 => buy-one-get-one-free\n    * ]\n*\/\n<\/pre>\n\n\n\n<p>Step#5 \u27a1\ufe0f That\u2019s it ?. If you like this blog in that case share this blog with your colleagues and friends.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Here we are going to learn about different types of database storage engines, the advantages of it. Every engine has its own specialty.<\/p>\n","protected":false},"author":2,"featured_media":212,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[14,13],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Google Dynamic Links (Firebase SDK Issue) | Codezma<\/title>\n<meta name=\"description\" content=\"Learn more about dynamic links. If you are facing issue with social media redirection here we found solution which helps you to run campaign smoothly ?\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.codezma.com\/blogs\/php\/google-dynamic-links\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Google Dynamic Links (Firebase SDK Issue) | Codezma\" \/>\n<meta property=\"og:description\" content=\"Learn more about dynamic links. If you are facing issue with social media redirection here we found solution which helps you to run campaign smoothly ?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codezma.com\/blogs\/php\/google-dynamic-links\/\" \/>\n<meta property=\"og:site_name\" content=\"Codezma\" \/>\n<meta property=\"article:published_time\" content=\"2022-03-26T08:18:51+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-03-26T08:18:52+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codezma.com\/blogs\/wp-content\/uploads\/2022\/03\/dynamic-links.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1472\" \/>\n\t<meta property=\"og:image:height\" content=\"530\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Rajnee Makwana\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@tech_codezma\" \/>\n<meta name=\"twitter:site\" content=\"@tech_codezma\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Rajnee Makwana\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.codezma.com\/blogs\/php\/google-dynamic-links\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.codezma.com\/blogs\/php\/google-dynamic-links\/\"},\"author\":{\"name\":\"Rajnee Makwana\",\"@id\":\"https:\/\/www.codezma.com\/blogs\/#\/schema\/person\/f0ab2c921dd8c3f8a95c6d3bb1d31eee\"},\"headline\":\"Google Dynamic Links\",\"datePublished\":\"2022-03-26T08:18:51+00:00\",\"dateModified\":\"2022-03-26T08:18:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.codezma.com\/blogs\/php\/google-dynamic-links\/\"},\"wordCount\":1596,\"publisher\":{\"@id\":\"https:\/\/www.codezma.com\/blogs\/#organization\"},\"keywords\":[\"API\",\"php\"],\"articleSection\":[\"PHP\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.codezma.com\/blogs\/php\/google-dynamic-links\/\",\"url\":\"https:\/\/www.codezma.com\/blogs\/php\/google-dynamic-links\/\",\"name\":\"Google Dynamic Links (Firebase SDK Issue) | Codezma\",\"isPartOf\":{\"@id\":\"https:\/\/www.codezma.com\/blogs\/#website\"},\"datePublished\":\"2022-03-26T08:18:51+00:00\",\"dateModified\":\"2022-03-26T08:18:52+00:00\",\"description\":\"Learn more about dynamic links. If you are facing issue with social media redirection here we found solution which helps you to run campaign smoothly ?\",\"breadcrumb\":{\"@id\":\"https:\/\/www.codezma.com\/blogs\/php\/google-dynamic-links\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.codezma.com\/blogs\/php\/google-dynamic-links\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.codezma.com\/blogs\/php\/google-dynamic-links\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.codezma.com\/blogs\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Google Dynamic Links\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.codezma.com\/blogs\/#website\",\"url\":\"https:\/\/www.codezma.com\/blogs\/\",\"name\":\"Codezma\",\"description\":\"Encode the code\",\"publisher\":{\"@id\":\"https:\/\/www.codezma.com\/blogs\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.codezma.com\/blogs\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.codezma.com\/blogs\/#organization\",\"name\":\"Codezma\",\"url\":\"https:\/\/www.codezma.com\/blogs\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codezma.com\/blogs\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.codezma.com\/blogs\/wp-content\/uploads\/2020\/08\/favicon.png\",\"contentUrl\":\"https:\/\/www.codezma.com\/blogs\/wp-content\/uploads\/2020\/08\/favicon.png\",\"width\":512,\"height\":512,\"caption\":\"Codezma\"},\"image\":{\"@id\":\"https:\/\/www.codezma.com\/blogs\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/twitter.com\/tech_codezma\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.codezma.com\/blogs\/#\/schema\/person\/f0ab2c921dd8c3f8a95c6d3bb1d31eee\",\"name\":\"Rajnee Makwana\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codezma.com\/blogs\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c24187f3486a406a1f26873a22cacf4b?s=96&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c24187f3486a406a1f26873a22cacf4b?s=96&r=g\",\"caption\":\"Rajnee Makwana\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Google Dynamic Links (Firebase SDK Issue) | Codezma","description":"Learn more about dynamic links. If you are facing issue with social media redirection here we found solution which helps you to run campaign smoothly ?","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.codezma.com\/blogs\/php\/google-dynamic-links\/","og_locale":"en_US","og_type":"article","og_title":"Google Dynamic Links (Firebase SDK Issue) | Codezma","og_description":"Learn more about dynamic links. If you are facing issue with social media redirection here we found solution which helps you to run campaign smoothly ?","og_url":"https:\/\/www.codezma.com\/blogs\/php\/google-dynamic-links\/","og_site_name":"Codezma","article_published_time":"2022-03-26T08:18:51+00:00","article_modified_time":"2022-03-26T08:18:52+00:00","og_image":[{"width":1472,"height":530,"url":"https:\/\/www.codezma.com\/blogs\/wp-content\/uploads\/2022\/03\/dynamic-links.png","type":"image\/png"}],"author":"Rajnee Makwana","twitter_card":"summary_large_image","twitter_creator":"@tech_codezma","twitter_site":"@tech_codezma","twitter_misc":{"Written by":"Rajnee Makwana","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codezma.com\/blogs\/php\/google-dynamic-links\/#article","isPartOf":{"@id":"https:\/\/www.codezma.com\/blogs\/php\/google-dynamic-links\/"},"author":{"name":"Rajnee Makwana","@id":"https:\/\/www.codezma.com\/blogs\/#\/schema\/person\/f0ab2c921dd8c3f8a95c6d3bb1d31eee"},"headline":"Google Dynamic Links","datePublished":"2022-03-26T08:18:51+00:00","dateModified":"2022-03-26T08:18:52+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codezma.com\/blogs\/php\/google-dynamic-links\/"},"wordCount":1596,"publisher":{"@id":"https:\/\/www.codezma.com\/blogs\/#organization"},"keywords":["API","php"],"articleSection":["PHP"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codezma.com\/blogs\/php\/google-dynamic-links\/","url":"https:\/\/www.codezma.com\/blogs\/php\/google-dynamic-links\/","name":"Google Dynamic Links (Firebase SDK Issue) | Codezma","isPartOf":{"@id":"https:\/\/www.codezma.com\/blogs\/#website"},"datePublished":"2022-03-26T08:18:51+00:00","dateModified":"2022-03-26T08:18:52+00:00","description":"Learn more about dynamic links. If you are facing issue with social media redirection here we found solution which helps you to run campaign smoothly ?","breadcrumb":{"@id":"https:\/\/www.codezma.com\/blogs\/php\/google-dynamic-links\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codezma.com\/blogs\/php\/google-dynamic-links\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.codezma.com\/blogs\/php\/google-dynamic-links\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codezma.com\/blogs\/"},{"@type":"ListItem","position":2,"name":"Google Dynamic Links"}]},{"@type":"WebSite","@id":"https:\/\/www.codezma.com\/blogs\/#website","url":"https:\/\/www.codezma.com\/blogs\/","name":"Codezma","description":"Encode the code","publisher":{"@id":"https:\/\/www.codezma.com\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codezma.com\/blogs\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codezma.com\/blogs\/#organization","name":"Codezma","url":"https:\/\/www.codezma.com\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codezma.com\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/www.codezma.com\/blogs\/wp-content\/uploads\/2020\/08\/favicon.png","contentUrl":"https:\/\/www.codezma.com\/blogs\/wp-content\/uploads\/2020\/08\/favicon.png","width":512,"height":512,"caption":"Codezma"},"image":{"@id":"https:\/\/www.codezma.com\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/twitter.com\/tech_codezma"]},{"@type":"Person","@id":"https:\/\/www.codezma.com\/blogs\/#\/schema\/person\/f0ab2c921dd8c3f8a95c6d3bb1d31eee","name":"Rajnee Makwana","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codezma.com\/blogs\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/c24187f3486a406a1f26873a22cacf4b?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c24187f3486a406a1f26873a22cacf4b?s=96&r=g","caption":"Rajnee Makwana"}}]}},"_links":{"self":[{"href":"https:\/\/www.codezma.com\/blogs\/wp-json\/wp\/v2\/posts\/211"}],"collection":[{"href":"https:\/\/www.codezma.com\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codezma.com\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codezma.com\/blogs\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codezma.com\/blogs\/wp-json\/wp\/v2\/comments?post=211"}],"version-history":[{"count":30,"href":"https:\/\/www.codezma.com\/blogs\/wp-json\/wp\/v2\/posts\/211\/revisions"}],"predecessor-version":[{"id":247,"href":"https:\/\/www.codezma.com\/blogs\/wp-json\/wp\/v2\/posts\/211\/revisions\/247"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codezma.com\/blogs\/wp-json\/wp\/v2\/media\/212"}],"wp:attachment":[{"href":"https:\/\/www.codezma.com\/blogs\/wp-json\/wp\/v2\/media?parent=211"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codezma.com\/blogs\/wp-json\/wp\/v2\/categories?post=211"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codezma.com\/blogs\/wp-json\/wp\/v2\/tags?post=211"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}