How to implement Google Analytics into Gatsby SiteGatsby

How to implement Google Analytics into Gatsby SiteGatsby
We have recently developed a site into the gatsby. We want to add Google Analytics to the website.
So, this is the way we implemented Google Analytics in the Gatsby site.
Use Gatsby Google GTag Plugin
Gatsby has a plugin gatsby-plugin-google-gtag that be used to easily add Google Global Site Tag to your Gatsby site.
Install the package by running the following command:
npm i gatsby-plugin-google-gtag --save
Configuration
Once the installation is complete, you can now add this plugin to your gatsby-config.js:
Configure trackingIds and other options. Add this into the plugins array. Like,
module.exports = {
// ...
plugins: [
{
resolve: `gatsby-plugin-google-gtag`,
options: {
// You can add multiple tracking ids and a pageview event will be fired for all of them.
trackingIds: [
"GA-TRACKING_ID", // Google Analytics / GA
"AW-CONVERSION_ID", // Google Ads / Adwords / AW
"DC-FLOODIGHT_ID", // Marketing Platform advertising products (Display & Video 360, Search Ads 360, and Campaign Manager)
],
// This object gets passed directly to the gtag config command
// This config will be shared across all trackingIds
gtagConfig: {
optimize_id: "OPT_CONTAINER_ID",
anonymize_ip: true,
cookie_expires: 0,
},
// This object is used for configuration specific to this plugin
pluginConfig: {
// Puts tracking script in the head instead of the body
head: false,
// Setting this parameter is also optional
respectDNT: true,
// Avoids sending pageview hits from custom paths
exclude: ["/preview/**", "/do-not-track/me/too/"],
},
},
},
],
}
This plugin automatically sends a “pageview” event to all products given as “trackingIds” on every Gatsby's route change.
If you want to call a custom event you have access to window.gtag where you can call an event for all products.
Check out this code.
typeof window !== "undefined" && window.gtag("event", "click", { ...data })
NOTE: This plugin only works in production mode! To test your Global Site Tag is installed and
You need to run the following command for firing events correctly.
gatsby build && gatsby serve
If you need to exclude any path from the tracking system, you can add one or more to this optional array.
How to implement Mailchimp into Gatsby SiteGatsby

How to implement Mailchimp into Gatsby SiteGatsby
We are recently developed a site into the gatsby. basically contact us feature is common in all website. and we are implementing Mailchimp because it's a very popular platform in email market. So, I will show you how to setup a Mailchimp in the Gatsby site. ## Using gatsby-source-mailchimp Use your Mailchimp API key to download your campaigns into Gatsby’s GraphQL data layer! Install the package by running the following command: `npm i gatsby-source-mailchimp --save` ### How to configure Once the installation is complete, you can now add this plugin to your gatsby-config.js, like so: Configure mailchimp Key and add this {resolve: `gatsby-source-mailchimp`} into the plugins array. code looks like
``` module.exports = { // ... plugins: [ { resolve: 'gatsby-source-mailchimp', options: { // Avoid including your key directly in your file. // Instead, opt for adding them to .env files for extra // security ;) key: 'asd712jdas90122jdas90122jkadsd1-usXX', rootURL: 'https://usXX.api.mailchimp.com/3.0', }, }, ], // ... } ```
Above is the minimal configuration required to have it work. By default, This plugin was made out of a specific necessity, so it doesn't cover all of Mailchimp’s data sources, focusing only on campaigns. this plugin are provide few options. you can refer here. ## Using `.env` variables to hide your key If you don’t want to attach your API key to the repo, you can easily store it in .env files by doing the following:
``` // In your .env file MAILCHIMP_KEY = 'asd712jdas90122jdas90122jkadsd1-usXX'; ``` ``` // In your gatsby-config.js file require('dotenv').config({ path: `.env.${process.env.NODE_ENV}`, }); module.exports = { // ... plugins: [ { resolve: 'gatsby-source-mailchimp', options: { key: process.env.MAILCHIMP_KEY, rootURL: 'https://usXX.api.mailchimp.com/3.0', // ... }, }, ], // ... }; ```
How create a sitemap for your Gatsby siteGatsby

How create a sitemap for your Gatsby siteGatsby
So, I will show you how to set a sitemap on the Gatsby site.
Install the package by running the following command: npm install gatsby-plugin-sitemap
Configure siteUrl and add this {resolve: `gatsby-plugin-sitemap`} into the plugins array. code looks like
module.exports = { siteMetadata: { title: `InfyOm Technologies`, description: `InfyOm Technologies`, keyword: `InfyOm Technologies`, author: `@gatsbyjs`, siteUrl: `http://infyom.com` }, flags: { PRESERVE_WEBPACK_CACHE: true, }, plugins: [ {resolve: `gatsby-plugin-sitemap`}, ],}
Above is the minimal configuration required to have it work. By default, the generated sitemap will include all of your site’s pages.
- output (string) The file path and name. Defaults to /sitemap.xml.
- exclude (array of strings) An array of paths to exclude from the sitemap.
module.exports = { siteMetadata: { title: `InfyOm Technologies`, description: `InfyOm Technologies`, keyword: `InfyOm Technologies`, author: `@gatsbyjs`, siteUrl: `http://infyom.com` }, flags: { PRESERVE_WEBPACK_CACHE: true, }, plugins: [ { resolve: `gatsby-plugin-sitemap`, options: { output: `/some-other-sitemap.xml`, exclude: [`/category/*`, `/path/to/page`], } }, ], }
now we are done and open sitemap using your domain. for ex. https://xxx.com/sitemap.xml
How to delete record using Ajax in LaravelLaravel

How to delete record using Ajax in LaravelLaravel

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.min.css"> <script src="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.min.js"></script>
<script> let categoryUrl = '{{route('categories.index')}}'; </script>
$(document).on('click', '.delete-btn', function (event) { const id = $(event.currentTarget).data('id'); swal({ title: 'Delete !', text: 'Are you sure you want to delete this Category" ?', type: 'warning', showCancelButton: true, closeOnConfirm: false, showLoaderOnConfirm: true, confirmButtonColor: '#5cb85c', cancelButtonColor: '#d33', cancelButtonText: 'No', confirmButtonText: 'Yes', }, function () { $.ajax({ url: categoryUrl + '/' + id, type: 'DELETE', DataType: 'json', data:{"_token": "{{ csrf_token() }}"}, success: function(response){ swal({ title: 'Deleted!', text: 'Category has been deleted.', type: 'success', timer: 2000, }); $('#categoryTbl').DataTable().ajax.reload(null, false); }, error: function(error){ swal({ title: 'Error!', text: error.responseJSON.message, type: 'error', timer: 5000, }) } }); }); });
public function destroy($id) { $category = $this->categoryRepository->find($id); if (empty($category)) { Flash::error('Category not found'); return $this->sendError('Category not found.'); } $this->categoryRepository->delete($id); return $this->sendSuccess('Category deleted successfully.'); }
How to use OneSignal in LaravelLaravel

How to use OneSignal in LaravelLaravel
composer require ladumor/one-signal
php artisan vendor:publish --provider="Ladumor\OneSignal\OneSignalServiceProvider"
Ladumor\OneSignal\OneSignalServiceProvider::class,
'OneSignal' => \Ladumor\OneSignal\OneSignal::class,
ONE_SIGNAL_APP_ID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX ONE_SIGNAL_AUTHORIZE=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X ONE_SIGNAL_AUTH_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

use Ladumor\OneSignal\OneSignal; $fields['include_player_ids'] = ['xxxxxxxx-xxxx-xxx-xxxx-yyyyy'] $message = 'hey!! This is a test push.!' OneSignal::sendPush($fields, $message);