If you use Google Tag Manager (GTM), see below for a step-by-step guide for placing the Podscribe JavaScript web tag.
Before you begin, grab your web tag using these steps!
Setup Steps for the View Tag
Step 1. Add a new tag in GTM:
Step 2. Choose ‘Custom HTML’ as the tag type:
Step 3. Paste the tag in the box:
Step 4. Set the trigger to be All Page Views:
Step 5. Submit and publish the tag:
Once set up, you’ll need to publish the new tags on your website by clicking Submit, then Publish.
The screen will tell you that the latest version is live when done correctly:
To check if it’s firing correctly, visit the Network tab on your website. In the screenshot below, you can see that the view tag is firing on Podscribe’s home page:
Step 5. Tracking purchases:
The setup for the purchase tag is similar to the above. We recommend setting the purchase tag to fire on the post-checkout page rather than on any button. Buttons are difficult to configure and track but URLs are reliable and constant.
The purchase
action includes macros that send information like the order value and number. You’ll need to replace these macros (highlighted below) with your site’s variables from GTM.
If you’re unsure of your site’s macros, you can check other pixels on your site to identify them. These are likely data layer variables.
Here’s one example of macros with correct variables, for example:
You can check the Tag Setup tab on Podscribe to see what data is sent back from those variables:
Step 6. Ensure that the tags fire correctly.
Ensuring that your setup is correct from the start is pivotal for reliable attribution. Reliable attribution depends on the accuracy of events sent to Podscribe. This is critical to check before campaigns start!
Here’s how to confirm all is correct with the integration.
Questions?
What pages can I use certain event tags on?
You can use the “signup”, “lead”, or “purchase” events on any page you’d like. For example, if you wanted to measure how many exposed listeners visited a Sign-up page, you could fire the “signup” event on page view. Then, once they completed the form, you could fire the Lead event, passing us the hashed email. We recommend placing the “visit” tag on all pages.
Can I use custom event names? I want to create and track other events besides installs, views, signups, leads, and purchases.
Yes! If the primary 5 events are not adequate, we can track custom, additional events. We can also support re-naming the standard event names on our dashboard to names you’re more familiar with, such as “Account Creation”. To do so, you would simply change the name of the action in your javascript tag from “purchase” or “view” to the custom event name you’d like:
Instead of loading the script bundle, can we call a 1x1 image pixel, or pass events server-side, or in batch?
Yes - please see this guide for more.
How do I know which advertiser to pick? There are many that pop up with the name of the advertiser.
Podscribe regularly removes duplicate advertisers, but here are some steps that you can take to ensure you're selecting the right advertiser.
- Look up the different advertisers with the same name on Podscribe.
- Check all of the advertisers one by one. If the logo and website are correct, then that advertiser is likely the correct one.
Select the name displayed on the advertiser page as the advertiser’s name when creating your campaign:
If you can’t find the advertiser you’re looking for, feel free to reach out to adops@podscribe.com.
What is the Content Security Policy (CSP) for the Podscribe web tag?
Content-Security-Policy:
default-src
self
script-src
d34r8q7sht0t9k.cloudfront.net
connect-src
verifi.podscribe.com
pixel.tapad.com
ipv4.podscribe.com
How to integrate using a Shopify Custom Pixel, instead of the Shopify app, for Shopify stores?
See here for general info on Shopify Custom Pixels, and below for the Podscribe code.
Be sure to replace YOUR_USER_ID
and YOUR_ADVERTISER_ID
with your IDs.
(function (w, d) {
var id = 'podscribe-capture',
n = 'script';
var e = d.createElement(n);
e.type = 'text/javascript';
e.id = id;
e.async = true;
e.src = 'https://d34r8q7sht0t9k.cloudfront.net/tag.js';
var s = d.getElementsByTagName(n)[0];
s.parentNode.insertBefore(e, s);
e.onload = onLoad;
})(window, document);
function onLoad() {
podscribe('init', { user_id:
YOUR_USER_ID
, advertiser:
YOUR_ADVERTISER_ID
});
analytics.subscribe("page_viewed", (event) => {
console.log('view', new Date());
console.log('podscribe', window.podscribe());
window.podscribe('view', { source: "shopify-custom" });
});
analytics.subscribe("product_viewed", (event) => {
podscribe('ViewContent', { source: "shopify-custom" });
});
analytics.subscribe("search_submitted", (event) => {
podscribe('Search', { source: "shopify-custom" });
});
analytics.subscribe("product_added_to_cart", (event) => {
podscribe('AddToCart', {
currency: event.data?.cartLine?.merchandise?.productVariant?.price?.currencyCode,
value: event.data?.cartLine?.merchandise?.productVariant?.price.amount,
source: "shopify-custom"
});
});
analytics.subscribe("payment_info_submitted", (event) => {
podscribe('AddPaymentInfo', { source: "shopify-custom" });
});
}
analytics.subscribe("payment_info_submitted", (event) => {
w.podscribe('AddPaymentInfo', {source: "shopify-custom"});
});
analytics.subscribe("checkout_started", (event) => {
w.podscribe('InitiateCheckout', {source: "shopify-custom"});
});
analytics.subscribe("checkout_completed", (event) => {
try {
const allDiscountCodes = event.data?.checkout?.discountApplications?.map(
(discount) => {
if (discount.type === "DISCOUNT_CODE") {
return discount.title;
}
}
);
discountCode = allDiscountCodes ? allDiscountCodes.filter(Boolean).join(", ") : undefined;
} catch (e) {
console.log(e);
}
w.podscribe('purchase', {
value: event.data?.checkout.totalPrice?.amount,
currency: event.data?.checkout.totalPrice?.currencyCode,
order_number: event.data?.checkout?.order?.id,
hashed_email: event.data?.checkout.email,
num_items_purchased: event.data?.checkout.lineItems?.length,
source: "shopify-custom",
discount_code: discountCode
});
});
I have a new client! What's the fastest way to get javascript pixels to send them?
It is to generate them from the Tag Setup tab:
How important is it to include a hashed email in the pixel? If we do not, what would we lose out on?
Sending us hashed emails lets us find 10-20% more attributed conversions, so it is certainly helpful to have! Here’s further detail on the part that hashed emails play in attribution. If you send us raw emails, we hash them as they come in and only store the hashed ones.
From where can I get the javascript pixels to send a brand?
From the Tag Setup tab - here’s how to generate them.
What mobile device partners (MMPs) does Podscribe work with?
Podscribe works with all major MMPs including: Adjust, Appsflyer, Kochava, Singular, and Segment.