The Complete Guide to UTM Parameters & Google Analytics for Magento website
Master UTM parameters and Google Analytics for Magento. Track traffic sources, measure campaign performance, and practical tips to use it for better business decisions.
Cookies help us enhance your experience on our site by storing information about your preferences and interactions. You can customize your cookie settings by choosing which cookies to allow. Please note that disabling certain cookies might impact the functionality and features of our services, such as personalized content and suggestions. Cookie Policy
Cookie PolicyThese cookies are strictly necessary for the site to work and may not be disabled.
InformationThese cookies are strictly necessary for the site to work and may not be disabled.
| Cookie name | Description | Lifetime | Provider |
|---|---|---|---|
| _ce.clock_data | Store the difference in time from the server's time and the current browser. | 1 day | Crazy Egg |
| _ce.clock_event | Prevent repeated requests to the Clock API. | 1 day | Crazy Egg |
| _ce.irv | Store isReturning value during the session | Session | Crazy Egg |
| _ce.s | Track a recording visitor session unique ID, tracking host and start time | 1 year | Crazy Egg |
| _hjSessionUser_2909345 | Store a unique user identifier to track user sessions and interactions for analytics purposes. | 1 year | HotJar |
| _hjSession_2909345 | Store session data to identify and analyze individual user sessions. | 1 day | HotJar |
| apt.uid | Store a unique user identifier for tracking and personalization. | 1 year | Mageplaza |
| cebs | Store user preferences and settings. | Session | Mageplaza |
| cf_clearance | Store a token that indicates a user has passed a Cloudflare security challenge. | 1 year | Cloudflare |
| crisp-client | The crisp-client/session cookie is used to identify and maintain a user session within the Crisp platform. It allows the live chat system to recognize returning users, maintain chat history, and ensure continuity in customer service interactions. | Session | Crisp |
| _ga | Store a unique client identifier (Client ID) for tracking user interactions on the | 2 years | |
| _ga_7B0PZZW26Z | Store session state information for Google Analytics 4. | 2 years | |
| _ga_JTRV42NV3L | Store session state information for Google Analytics 4. | 2 years | |
| _ga_R3HWQ50MM4 | Store a unique client identifier (Client ID) for tracking user interactions on the website. | 2 years | |
| _gid | Store a unique client identifier (Client ID) for tracking user interactions on the website. | 1 day | |
| _gat_UA-76130628-1 | Throttle the request rate to Google Analytics servers. | 1 day |
Advertising cookies deliver ads relevant to your interests, limit ad frequency, and measure ad effectiveness.
InformationAdvertising cookies deliver ads relevant to your interests, limit ad frequency, and measure ad effectiveness.
| Cookie name | Description | Lifetime | Provider |
|---|---|---|---|
| _gcl_au | The cookie is used by Google to track and store conversions. | 1 day | |
| __Secure-3PAPISID | This cookie is used for targeting purposes to build a profile of the website visitor's interests in order to show relevant and personalized Google advertising. | 2 years | |
| HSID | This security cookie is used by Google to confirm visitor authenticity, prevent fraudulent use of login data and protect visitor data from unauthorized access. | 2 years | |
| __Secure-1PSID | This cookie is used for targeting purposes to build a profile of the website visitor's interests in order to show relevant and personalized Google advertising. | 2 years | |
| SID | This security cookie is used by Google to confirm visitor authenticity, prevent fraudulent use of login data and protect visitor data from unauthorized access. | 2 years | |
| APISID | This cookie is used by Google to display personalized advertisements on Google sites, based on recent searches and previous interactions. | 2 years | |
| __Secure-1PAPISID | This cookie is used for targeting purposes to build a profile of the website visitor's interests in order to show relevant and personalized Google advertising. | 2 years | |
| __Secure-3PSID | This cookie is used for targeting purposes to build a profile of the website visitor's interests in order to show relevant and personalized Google advertising. | 2 years | |
| SSID | This cookie is used by Google to display personalized advertisements on Google sites, based on recent searches and previous interactions. | 2 years | |
| SAPISID | This cookie is used by Google to display personalized advertisements on Google sites, based on recent searches and previous interactions. | 2 years | |
| __Secure-3PSIDTS | This cookie collects information about visitor's interactions with Google services and ads. It is used to measure advertising effectiveness and deliver personalised content based on interests. The cookie contains a unique identifier. | 2 years | |
| __Secure-1PSIDTS | This cookie collects information about visitor's interactions with Google services and ads. It is used to measure advertising effectiveness and deliver personalised content based on interests. The cookie contains a unique identifier. | 2 years | |
| SIDCC | This security cookie is used by Google to confirm visitor authenticity, prevent fraudulent use of login data, and protect visitor data from unauthorized access. | 3 months | |
| __Secure-1PSIDCC | This cookie is used for targeting purposes to build a profile of the website visitor's interests in order to show relevant and personalized Google advertising. | 1 year | |
| __Secure-3PSIDCC | This cookie is used for targeting purposes to build a profile of the website visitor's interests in order to show relevant and personalized Google advertising. | 1 year | |
| 1P_JAR | This cookie is a Google Analytics Cookie created by Google DoubleClick and used to show personalized advertisements (ads) based on previous visits to the website. | 1 month | |
| NID | Show Google ads in Google services for signed-out users. | 6 months |
Analytics cookies collect information and report website usage statistics without personally identifying individual visitors to Google.
InformationAnalytics cookies collect information and report website usage statistics without personally identifying individual visitors to Google.
| Cookie name | Description | Lifetime | Provider |
|---|---|---|---|
| _dc_gtm | Manage and deploy marketing tags through Google Tag Manager. | 1 year | |
| 1P_JAR | Gather website statistics and track conversion rates for Google AdWords campaigns. | 1 month | |
| AEC | 1 month | ||
| ar_debug | Debugging purposes related to augmented reality (AR) functionalities. | 1 month | Doubleclick |
| IDE | The IDE cookie is used by Google DoubleClick to register and report the user's actions after viewing or clicking on one of the advertiser's ads with the purpose of measuring the effectiveness of an ad and to present targeted ads to the user. | 1 year | Doubleclick |
| ad_storage | Enables storage, such as cookies (web) or device identifiers (apps), related to advertising. | 1 year | |
| ad_user_data | Sets consent for sending user data to Google for online advertising purposes. | 1 year | |
| ad_personalization | Sets consent for personalized advertising. | 1 year | |
| analytics_storage | Enables storage, such as cookies (web) or device identifiers (apps), related to analytics, for example, visit duration. | 1 year |
Running a Magento 2 store often means sending invoices to customers, and attaching a PDF copy directly to these emails is a common requirement. Doing this manually for every order can be time-consuming and inefficient. In this guide, we’ll show you how to attach a PDF invoice to email programmatically in Magento 2, so you can automate the process and save time. Let’s dive into the step-by-step instructions!
To attach PDF invoices programmatically in Magento 2, the first step is to create a custom module. In this guide, we’ll name it Mageplaza_PdfAttachment.
app/code/Mageplaza/PdfAttachment<?php
use Magento\Framework\Component\ComponentRegistrar;
ComponentRegistrar::register(
ComponentRegistrar::MODULE,
'Mageplaza_PdfAttachment',
_DIR_
);
app/code/Mageplaza/PdfAttachment/etc/module.xml<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Mageplaza_PdfAttachment" setup_version="4.5.3">
</module>
</config>
Next, you need to register a plugin that will extend Magento’s default invoice email functionality. This plugin tells Magento to execute custom logic when sending invoice emails, allowing you to attach the PDF automatically.
Register this plugin: app/code/Mageplaza/PdfAttachment/etc/di.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<type name="Magento\Sales\Model\Order\Email\Sender\InvoiceSender">
<plugin name="mageplaza_pdfattachment_invoice_sender" type="Mageplaza\PdfAttachment\Plugin\InvoiceSenderPlugin" />
</type>
</config>
Finally, you create the plugin class that generates the PDF and attaches it to the email.
Create this plugin: app/code/Mageplaza/PdfAttachment/Plugin/InvoiceSenderPlugin.php
<?php
namespace Mageplaza\PdfAttachment\Plugin;
use Magento\Framework\Mail\Template\TransportBuilder;
use Magento\Framework\App\Filesystem\DirectoryList;
use Magento\Sales\Model\Order\Pdf\Invoice as InvoicePdf;
use Magento\Framework\Filesystem;
use Magento\Sales\Model\Order\Email\Sender\InvoiceSender;
use Magento\Sales\Model\Order\Invoice;
class InvoiceSenderPlugin
{
protected $pdfGenerator;
protected $fileSystem;
protected $directoryList;
protected $transportBuilder;
public function __construct(
InvoicePdf $pdfGenerator,
Filesystem $fileSystem,
DirectoryList $directoryList,
TransportBuilder $transportBuilder
) {
$this->pdfGenerator = $pdfGenerator;
$this->fileSystem = $fileSystem;
$this->directoryList = $directoryList;
$this->transportBuilder = $transportBuilder;
}
public function aroundSend(InvoiceSender $subject, callable $proceed, Invoice $invoice, $forceSyncMode = false)
{
$pdf = $this->pdfGenerator->getPdf([$invoice]);
$file = $this->directoryList->getPath(DirectoryList::TMP) . '/invoice_' . $invoice->getIncrementId() . '.pdf';
$pdf->render();
file_put_contents($file, $pdf->render());
$result = $proceed($invoice, $forceSyncMode);
$transport = $this->transportBuilder->getTransport();
$message = $transport->getMessage();
$attachment = $message->createAttachment(
file_get_contents($file),
'application/pdf',
\Zend_Mime::DISPOSITION_ATTACHMENT,
\Zend_Mime::ENCODING_BASE64,
'invoice_' . $invoice->getIncrementId() . '.pdf'
);
$attachment->filename = 'invoice_' . $invoice->getIncrementId() . '.pdf';
$transport->sendMessage();
@unlink($file);
return $result;
}
}
If you’re not an expert developer, the programmatic method may not be an ideal choice. Instead, using an extension would be easier. All the features are displayed as fields in the backend clearly for store owners to use.
Among the choices, we would like to introduce PDF Invoice for Magento 2. It can automatically send PDF Invoices to your customers via emails with essential information, including order details, payment methods, etc.
Highlight features:
Learn more on how to use the extension here.
Sending a PDF file with detailed order information to invoice emails would be solid proof of e-commerce dedication to customers. If you’re confident with coding skills, the programmatic method would be a good option. In case you’re not, that’s okay. Using the Magento extension can solve the problem since it’s much easier to use. For even more comprehensive customer communication, you can attach PDF invoice files directly to order confirmation emails, helping customers keep better track of their purchases.
Read more: 10+ Best Magento 2 PDF Invoice Extensions
Jacker is the Chief Technology Officer (CTO) at Mageplaza, bringing over 10 years of experience in Magento, Shopify, and other eCommerce platforms. With deep technical expertise, he has led numerous successful projects, optimizing and scaling online stores for global brands. Beyond his work in eCommerce development, he is passionate about running and swimming.
Related Post
The Complete Guide to UTM Parameters & Google Analytics for Magento website
Master UTM parameters and Google Analytics for Magento. Track traffic sources, measure campaign performance, and practical tips to use it for better business decisions.
How to implement Cookie Consent for GTM & Google Analytics in Magento Under GDPR?
Implement cookie consent for GTM & GA4 in Magento under GDPR. Step-by-step guide using Google Consent Mode v2 to avoid fines and maintain analytics.
Speed vs. Sales: Comparing Hyvä Checkout and Mageplaza One Step Checkout
Learn how Hyvä Checkout and Mageplaza One Step Checkout impact order completion rates and revenue growth.
Hyvä Theme is Now Open Source: What This Means for Magento Community - Mageplaza
Hyvä is now Open Source and free. Discover what changed, what remains commercial, how it impacts the Magento ecosystem, and how to maximize its full potential.
The Complete Guide to UTM Parameters & Google Analytics for Magento website
Master UTM parameters and Google Analytics for Magento. Track traffic sources, measure campaign performance, and practical tips to use it for better business decisions.
How to implement Cookie Consent for GTM & Google Analytics in Magento Under GDPR?
Implement cookie consent for GTM & GA4 in Magento under GDPR. Step-by-step guide using Google Consent Mode v2 to avoid fines and maintain analytics.
Speed vs. Sales: Comparing Hyvä Checkout and Mageplaza One Step Checkout
Learn how Hyvä Checkout and Mageplaza One Step Checkout impact order completion rates and revenue growth.
Hyvä Theme is Now Open Source: What This Means for Magento Community - Mageplaza
Hyvä is now Open Source and free. Discover what changed, what remains commercial, how it impacts the Magento ecosystem, and how to maximize its full potential.