<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[AdAce Ads Blog]]></title><description><![CDATA[AdAce Ads Blog]]></description><link>https://adace.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Sun, 25 Oct 2026 13:13:51 GMT</lastBuildDate><atom:link href="https://adace.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Set up the TikTok Pixel and check that events fire]]></title><description><![CDATA[The TikTok Pixel is a snippet of code on your website that reports visits and actions back to TikTok. It lets you optimize for results on the site, build…]]></description><link>https://adace.hashnode.dev/set-up-the-tiktok-pixel-and-check-that-events-fire</link><guid isPermaLink="true">https://adace.hashnode.dev/set-up-the-tiktok-pixel-and-check-that-events-fire</guid><category><![CDATA[marketing]]></category><category><![CDATA[ads]]></category><dc:creator><![CDATA[info]]></dc:creator><pubDate>Sun, 25 Oct 2026 09:25:04 GMT</pubDate><enclosure url="https://ads.adace.website/assets/adace-social.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The TikTok Pixel is a snippet of code on your website that reports visits and actions back to TikTok. It lets you optimize for results on the site, build audiences from visitors and see which ads lead to actions. A pixel that is installed but sends the wrong event is worse than none, because the system will learn from the wrong signal.</p>
<h2>What it does</h2>
<p>Create the pixel in Ads Manager under the events or assets section and install it the way your site allows: by pasting the code in the head of the page, through a tag manager, or through a platform integration if your site builder offers one. Keep one pixel for one business, so data is not split.</p>
<p>Decide which events matter. A page view is not a result. For recruiting, the useful event is the submitted application or the click on a call or messenger button; for a shop it is add to cart and purchase. Fire the result event only on the real success step, such as a thank-you page or after successful form validation, not on every visit to the form.</p>
<p>Test before you pay. TikTok provides a way to see events arriving in Ads Manager and a browser helper that shows whether the pixel fired on a page. Walk through your own funnel on a phone, submit a test entry, and confirm the event appears once, with the right name, and not twice.</p>
<p>Remember consent and privacy. If you operate in regions with cookie rules, your consent banner should control when the pixel loads. Do not send names, phone numbers or emails in event parameters unless you use the platform's documented, hashed matching and have a legal basis.</p>
<h2>Why it helps</h2>
<ul>
<li>Correct events let the platform optimize for applications or purchases instead of page loads.</li>
<li>A tested pixel prevents a campaign from spending for days with no recorded results.</li>
<li>Site visitors can later become a custom audience for retargeting or an exclusion list.</li>
</ul>
<h2>How to set it up</h2>
<ol>
<li>Create the pixel in your TikTok ad account and copy the pixel ID.</li>
<li>Install it through your site, tag manager or integration, on every page, and again confirm only one copy is present.</li>
<li>Define the result event and place it only on the success step of your funnel.</li>
<li>Use TikTok's event testing tools and a phone to submit a test conversion and check name, count and time.</li>
<li>Add a consent condition if your audience requires it, and confirm the pixel respects it.</li>
<li>Check the events again after any site change, new form or checkout update.</li>
</ol>
<h2>Good to know</h2>
<ul>
<li>Browser-side tracking can be reduced by ad blockers, browser rules and consent choices. That is why many advertisers add server-side Events API next.</li>
<li>Do not optimize for an event that fires too rarely to learn from; step back to an earlier event until volume grows.</li>
<li>The AdAce Ads lead-site adapter can load TikTok Pixel after measurement consent and send PageView and Lead. Existing sites need the adapter installed or updated separately; connecting an ad account alone does not install a pixel.</li>
</ul>
<h2>Sources and further reading</h2>
<ul>
<li><a href="https://ads.tiktok.com/help/article/tiktok-pixel">TikTok Business Help Center: TikTok Pixel</a></li>
</ul>
<hr />
<p><em>Originally published at <a href="https://ads.adace.website/en/blog/tiktok-ads/tiktok-pixel-setup">AdAce Ads blog</a>.</em></p>
]]></content:encoded></item><item><title><![CDATA[Snapchat creative specs: make vertical video and images that upload cleanly]]></title><description><![CDATA[Snapchat ads fill the whole phone screen, so a file in the wrong shape is either rejected at upload or shown with problems. Most first-week delays come…]]></description><link>https://adace.hashnode.dev/snapchat-creative-specs-make-vertical-video-and-images-that-upload-cleanly</link><guid isPermaLink="true">https://adace.hashnode.dev/snapchat-creative-specs-make-vertical-video-and-images-that-upload-cleanly</guid><category><![CDATA[marketing]]></category><category><![CDATA[ads]]></category><dc:creator><![CDATA[info]]></dc:creator><pubDate>Sun, 25 Oct 2026 09:25:03 GMT</pubDate><enclosure url="https://ads.adace.website/assets/adace-social.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Snapchat ads fill the whole phone screen, so a file in the wrong shape is either rejected at upload or shown with problems. Most first-week delays come from creative that was made for another platform and only cropped. Use this checklist before you export, not after an upload fails.</p>
<h2>The numbers a Snapchat file has to meet</h2>
<p>For the standard full-screen ad (the Top Snap), Snapchat documents a vertical frame of 1080 by 1920 pixels, an aspect ratio of 9:16. Video files are MP4 or MOV, with a documented length from 3 seconds up to 30 minutes. A file up to 32 MB can be uploaded in one go; larger files, up to 1 GB, are sent in parts.</p>
<p>Images for the same placement are PNG or JPG at 1080 by 1920 and up to 5 MB. Snapchat turns a still image into a short video of about five seconds, so a still works best as one clear message, not as a poster with small text.</p>
<p>Text limits matter more than designers expect. The headline is limited to 34 characters and the brand name to 32. Those are short enough that a headline written for Google or Facebook will usually need rewriting. Put the main promise in the first seconds of the video and in the on-screen text, not only in the headline.</p>
<p>Design for the phone: keep faces, logos and key words away from the top and bottom edges where Snapchat shows its own interface elements, add captions because many people watch without sound, and cut the first second to show the subject, not a logo animation. Check that the video still reads when it plays on a small screen at arm's length.</p>
<h2>What a clean upload gives you</h2>
<ul>
<li>Files upload on the first try, so launch is not delayed by format fixes.</li>
<li>Short, readable text works inside the real character limits.</li>
<li>One vertical master can be reused across several ads in a test.</li>
</ul>
<h2>Prepare a file in five steps</h2>
<ol>
<li>Export a master at 1080 by 1920, 9:16, as MP4 or MOV for video or PNG/JPG for stills, and check the file size against the limits.</li>
<li>Write the headline within 34 characters and the brand name within 32; count spaces.</li>
<li>Add burned-in captions and keep important elements inside a central safe area.</li>
<li>Watch the file on a real phone with sound off before uploading.</li>
<li>Upload the media to the ad account and wait until it shows as ready before attaching it to an ad.</li>
</ol>
<h2>Good to know</h2>
<ul>
<li>Limits are taken from Snap's documentation for the standard full-screen ad; other formats (collections, story ads, lenses) have their own specs, so check the current page for the format you pick.</li>
<li>AdAce Ads can create a paused Snapchat ad from a public https media link and checks the file before upload (a 9:16 image of at least 1080x1920 or an MP4/MOV video), then waits until the media is ready. This is part of the early-access integration.</li>
</ul>
<h2>Sources and further reading</h2>
<ul>
<li><a href="https://developers.snap.com/api/marketing-api/Ads-API/media">Snap Marketing API: media specifications</a></li>
<li><a href="https://developers.snap.com/api/marketing-api/Ads-API/creatives">Snap Marketing API: creatives</a></li>
</ul>
<hr />
<p><em>Originally published at <a href="https://ads.adace.website/en/blog/snapchat-ads/snapchat-vertical-creative-specs">AdAce Ads blog</a>.</em></p>
]]></content:encoded></item><item><title><![CDATA[Choose a Reddit campaign objective: traffic, conversions or awareness]]></title><description><![CDATA[The objective tells Reddit what to optimize for, and it cannot be changed after the campaign is created. A wrong choice is therefore a rebuild, not an…]]></description><link>https://adace.hashnode.dev/choose-a-reddit-campaign-objective-traffic-conversions-or-awareness</link><guid isPermaLink="true">https://adace.hashnode.dev/choose-a-reddit-campaign-objective-traffic-conversions-or-awareness</guid><category><![CDATA[marketing]]></category><category><![CDATA[ads]]></category><dc:creator><![CDATA[info]]></dc:creator><pubDate>Sat, 24 Oct 2026 17:22:08 GMT</pubDate><enclosure url="https://ads.adace.website/assets/adace-social.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The objective tells Reddit what to optimize for, and it cannot be changed after the campaign is created. A wrong choice is therefore a rebuild, not an edit. The right choice depends less on what sounds ambitious than on what your tracking can actually report.</p>
<h2>What each objective optimizes</h2>
<p>Reddit’s main objectives map to familiar goals: awareness (impressions, billed per thousand impressions), traffic (clicks to your site, billed per click), video views, conversions (valuable actions on your site), app installs, catalog sales and lead generation, the last in beta. Reddit has introduced updated objective names, such as brand awareness and sales, and states that older values keep working. Names in your Ads Manager may differ slightly from the ones used here.</p>
<p>Traffic is the simplest place to begin. It needs no conversion history, it works with a well-built landing page, and it gives you early signals about which communities and messages attract clicks. Its weakness is that clicks are not outcomes: a cheap click from an audience that never converts is not a win. Pair it with a pixel event so you can see what the visitors did.</p>
<p>Conversions asks Reddit to find people likely to complete a specific event, such as a lead or a purchase. It requires the Reddit Pixel or the Conversions API with that event; when neither is set up, clicks is the only eligible goal. It is the better fit once your tracking is reliable and the event occurs often enough to learn from. Optimizing for a rare event with a small budget starves the system of signal.</p>
<p>Awareness and video views suit launches and brand work, where the goal is reach and attention rather than an immediate action. Video views campaigns can serve only video ads. For a small business that must justify every dollar, awareness is rarely the first test; consider it when you have a message that earns attention and a way to measure its later effect.</p>
<h2>Why the choice matters</h2>
<ul>
<li>A goal that matches your evidence: you pick an objective your tracking can verify.</li>
<li>Fewer rebuilds: the irreversible choice is made once, deliberately.</li>
<li>A progression you can defend: traffic to learn, conversions to scale what has proven itself.</li>
</ul>
<h2>Choose in six steps</h2>
<ol>
<li>Write the business result in one sentence and decide which pixel or server event stands for it.</li>
<li>Check that the event fires, using the pixel health view in Ads Manager, before choosing a conversion goal.</li>
<li>If the event is new or rare, start with traffic and collect events for a couple of weeks.</li>
<li>Create the campaign paused with the chosen objective and name it for the objective and the audience.</li>
<li>When the optimization event occurs regularly, add a conversions campaign beside the traffic one, rather than editing the first.</li>
<li>Compare cost per meaningful result across both and keep the one that earns its budget.</li>
</ol>
<h2>Cautions</h2>
<ul>
<li>Do not choose conversions only because it sounds more advanced. Without reliable events it can spend without learning.</li>
<li>Some bidding options, such as target cost, are available only to selected advertisers and depend on recent event volume.</li>
<li>AdAce Ads creates Reddit campaigns on pause with a traffic (clicks) or conversions objective and an explicit special ad category; other objectives are made in Reddit Ads Manager.</li>
</ul>
<h2>Sources and further reading</h2>
<ul>
<li><a href="https://ads-api.reddit.com/docs/v3/guides/programs/campaign/campaign-objective-matrix">Reddit Ads API: campaign objective matrix</a></li>
<li><a href="https://ads-api.reddit.com/docs/v3/guides/programs/campaign/campaign-objective-migration">Reddit Ads API: campaign objective migration</a></li>
<li><a href="https://ads-api.reddit.com/docs/v3/guides/programs/campaign/campaign-setup">Reddit Ads API: set up a Standard campaign</a></li>
</ul>
<hr />
<p><em>Originally published at <a href="https://ads.adace.website/en/blog/reddit-ads/reddit-campaign-objectives">AdAce Ads blog</a>.</em></p>
]]></content:encoded></item><item><title><![CDATA[Choose a LinkedIn Ads objective: visits, leads or conversions]]></title><description><![CDATA[The objective is the most important choice in a LinkedIn campaign because it decides what LinkedIn optimizes for and which bid types you can use. Choosing…]]></description><link>https://adace.hashnode.dev/choose-a-linkedin-ads-objective-visits-leads-or-conversions</link><guid isPermaLink="true">https://adace.hashnode.dev/choose-a-linkedin-ads-objective-visits-leads-or-conversions</guid><category><![CDATA[marketing]]></category><category><![CDATA[ads]]></category><dc:creator><![CDATA[info]]></dc:creator><pubDate>Sat, 24 Oct 2026 13:17:38 GMT</pubDate><enclosure url="https://ads.adace.website/assets/adace-social.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The objective is the most important choice in a LinkedIn campaign because it decides what LinkedIn optimizes for and which bid types you can use. Choosing “Website visits” and then judging the campaign by leads is the most common reason a LinkedIn test looks like a failure when the setup, not the channel, was at fault.</p>
<h2>What it does</h2>
<p>LinkedIn groups objectives by funnel stage: awareness (brand awareness), consideration (website visits, engagement, video views) and conversion (lead generation, website conversions). The objective determines the optimization goal, such as impressions, clicks, leads or conversions, and the pricing basis, which is CPM for awareness and often CPC or CPM for clicks.</p>
<p>Website visits optimize for people likely to click. This is the right choice when you have no conversion tracking yet or when the page is a content page. It will deliver clicks, but a click on LinkedIn is not a promise of a lead, so judge it with on-site behavior and with the leads that follow, not with CTR alone.</p>
<p>Lead generation uses a LinkedIn form that opens in the feed and is prefilled from the member’s profile. It usually produces more form fills with less friction, and the quality question moves to how you handle and qualify those leads afterward. Website conversions optimize for a conversion rule fed by the Insight Tag or the Conversions API and need a working rule before the campaign is created.</p>
<p>Brand awareness and engagement are for cases where reach or social proof is the goal. For a small budget they are rarely the first choice, because you cannot see a business result from them without a long period. If you use them, keep them in a separate group so their cost per click or per impression never blends with lead campaigns.</p>
<h2>Why it helps</h2>
<ul>
<li>The campaign optimizes for the thing you will judge it by, so the reports do not contradict the setup.</li>
<li>You know in advance which bid types and measurements the objective allows.</li>
<li>Mixed goals stay in separate groups, so a cheap impression never hides an expensive lead.</li>
</ul>
<h2>How to set it up</h2>
<ol>
<li>Write the one result that decides success: a visit to a page, a form fill, a counted conversion.</li>
<li>If you have no conversion tracking yet, start with Website visits and set up measurement in parallel.</li>
<li>If you have a working conversion rule, use Website conversions so LinkedIn can learn from real outcomes.</li>
<li>If a short on-platform form fits your offer, use Lead generation and prepare the process for the leads it brings.</li>
<li>Keep awareness or engagement campaigns in a separate group with their own review rules.</li>
</ol>
<h2>Good to know</h2>
<ul>
<li>AdAce Ads creates LinkedIn campaigns with four objectives: website visits, website conversions, engagement and brand awareness. A website-conversions campaign is not created without a linked conversion rule. Lead Gen Forms are created in Campaign Manager.</li>
<li>Optimization for conversions needs enough events to learn from; with very few, consider a visit objective plus a higher-intent landing page.</li>
<li>The objective can’t be judged by CTR alone: compare campaigns only by the same result.</li>
</ul>
<h2>Sources and further reading</h2>
<ul>
<li><a href="https://business.linkedin.com/advertise/ads">LinkedIn Ads: overview</a></li>
<li><a href="https://business.linkedin.com/advertise/ads/conversion-tracking">Conversion tracking on LinkedIn</a></li>
</ul>
<hr />
<p><em>Originally published at <a href="https://ads.adace.website/en/blog/linkedin-ads/linkedin-campaign-objectives">AdAce Ads blog</a>.</em></p>
]]></content:encoded></item><item><title><![CDATA[Write policies per client: observe, propose or auto]]></title><description><![CDATA[Different clients need different levels of automation. The write policy sets it per client — from read-only to automatic application of safe changes…]]></description><link>https://adace.hashnode.dev/write-policies-per-client-observe-propose-or-auto</link><guid isPermaLink="true">https://adace.hashnode.dev/write-policies-per-client-observe-propose-or-auto</guid><category><![CDATA[Security]]></category><category><![CDATA[automation]]></category><category><![CDATA[ads]]></category><dc:creator><![CDATA[info]]></dc:creator><pubDate>Sat, 24 Oct 2026 13:17:38 GMT</pubDate><enclosure url="https://ads.adace.website/assets/adace-social.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Different clients need different levels of automation. The write policy sets it per client — from read-only to automatic application of safe changes.</p>
<h2>What it does</h2>
<p>Observe: the service reads and analyzes, but no proposals can be created for the client. Propose (default): every change waits for a human approval, except the safe autopilot — changes that only reduce spend (pausing a campaign, ad group or ad, lowering a daily budget, adding negative keywords) are applied right away within limits, with a notification and an undo on Operations. The “Manual only” level turns the safe autopilot off. Auto: reversible changes within limits — budgets, statuses at every level, negative keywords and the final URL suffix — are applied without a manual approval; everything else still waits.</p>
<p>The policy also holds the client's limits and the “writes paused” switch. Turning on auto requires the second factor (approving ordinary changes does not), and changes like targeting, bidding strategy or keywords always need a person.</p>
<h2>Why it helps</h2>
<ul>
<li>Match automation to the client's trust and risk.</li>
<li>Safe automation: only reversible changes within limits are automatic.</li>
<li>Pause all writes for one client without affecting others.</li>
</ul>
<h2>How to set it up</h2>
<ol>
<li>Open Clients (or the client's settings) → “Write policy”.</li>
<li>Choose observe, manual only, propose or auto.</li>
<li>Set limits and the daily budget cap.</li>
<li>Confirm with the second factor when enabling auto.</li>
</ol>
<h2>Good to know</h2>
<ul>
<li>Automatic reactions to anomalies use the same policy.</li>
<li>The workspace emergency stop overrides every client policy.</li>
</ul>
<hr />
<p><em>Originally published at <a href="https://ads.adace.website/en/blog/change-control/write-policies">AdAce Ads blog</a>.</em></p>
]]></content:encoded></item><item><title><![CDATA[Ad budget pacing: monthly spend against the client's target]]></title><description><![CDATA[Clients usually agree on a monthly budget, not daily ones. Budget pacing compares the month's spend with that target and tells you when you drift. You set…]]></description><link>https://adace.hashnode.dev/ad-budget-pacing-monthly-spend-against-the-clients-target</link><guid isPermaLink="true">https://adace.hashnode.dev/ad-budget-pacing-monthly-spend-against-the-clients-target</guid><category><![CDATA[automation]]></category><category><![CDATA[AI]]></category><category><![CDATA[marketing]]></category><dc:creator><![CDATA[info]]></dc:creator><pubDate>Sat, 24 Oct 2026 09:22:09 GMT</pubDate><enclosure url="https://ads.adace.website/assets/adace-social.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Clients usually agree on a monthly budget, not daily ones. Budget pacing compares the month's spend with that target and tells you when you drift.</p>
<h2>What it does</h2>
<p>You set the client's monthly target and tolerance. The pace check sums spend on final days of the month and compares it with the expected spend by this date. Deviations beyond the tolerance produce a notification.</p>
<p>If the client's accounts use different currencies, the check says so honestly instead of adding them up. Agents can also use over-pace and under-pace signals in their rules.</p>
<h2>Why it helps</h2>
<ul>
<li>No end-of-month surprises.</li>
<li>Early warning leaves time to correct budgets.</li>
<li>Works across all of a client's accounts.</li>
</ul>
<h2>How to set it up</h2>
<ol>
<li>Open Automations for the client.</li>
<li>Set the monthly budget target and tolerance.</li>
<li>Enable the pace check at a convenient time.</li>
</ol>
<h2>Good to know</h2>
<ul>
<li>Only final days are used, so fresh preliminary data does not distort pacing.</li>
<li>Pacing notifies; budget changes still go through proposals.</li>
</ul>
<hr />
<p><em>Originally published at <a href="https://ads.adace.website/en/blog/automation/budget-pacing">AdAce Ads blog</a>.</em></p>
]]></content:encoded></item><item><title><![CDATA[Truck driver hiring campaign template for Google and Meta ads]]></title><description><![CDATA[For agencies and in-house recruiters who launch driver hiring campaigns again and again and are tired of rebuilding the same lists. Here is what a good…]]></description><link>https://adace.hashnode.dev/truck-driver-hiring-campaign-template-for-google-and-meta-ads</link><guid isPermaLink="true">https://adace.hashnode.dev/truck-driver-hiring-campaign-template-for-google-and-meta-ads</guid><category><![CDATA[hiring]]></category><category><![CDATA[marketing]]></category><category><![CDATA[ads]]></category><dc:creator><![CDATA[info]]></dc:creator><pubDate>Sat, 24 Oct 2026 09:22:08 GMT</pubDate><enclosure url="https://ads.adace.website/assets/adace-social.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>For agencies and in-house recruiters who launch driver hiring campaigns again and again and are tired of rebuilding the same lists. Here is what a good recruiting template should contain, what the AdAce Ads template “Truck driver hiring (USA)” includes, and how to turn it into live campaigns without publishing unchecked claims.</p>
<h2>What it does</h2>
<p>A template saves time only if it captures decisions you would otherwise repeat for every client: which searches mean someone wants a driving job, which searches mean the opposite, which messages fit within platform limits, and which rules apply to job ads. Without it, each new campaign starts from a blank sheet, negatives get forgotten, and ad texts drift into claims nobody checked. A good recruiting template is therefore not a finished campaign but a vetted starting point: keyword and negative lists to edit, text variants to choose from, and short reminders about structure, targeting restrictions and the landing page.</p>
<p>The niche template “Truck driver hiring (USA)” in AdAce Ads lives under “Campaigns” → “Templates”. It contains a starting set of job-intent keywords and a list of negative keywords, Google search ad headlines and descriptions, and Meta ad texts. The texts come in English, Russian, Ukrainian and Spanish and are written within each platform's character limits, so they fit an ad without trimming. Alongside the lists are tips on campaign structure, on the targeting rules that apply to employment ads, and on what the landing page should show. Everything in it is meant to be read, edited and then used — not pushed live as is.</p>
<p>Using the template follows the normal safety flow. Keywords and negatives are sent to a chosen Google campaign as a proposal; nothing is written until a person approves it with the Approve button, and the proposal can first be checked in Google's validate-only mode. When you create a new ad, the “Texts from template” buttons fill the form with the English, Russian, Ukrainian or Spanish variant, and the AI text assistant can suggest more versions in the same language, dropping any variant that runs over the limit. Before anything goes live, compare each text with the real offer: route type, home time, equipment, requirements and pay must match what the client actually provides.</p>
<p>Treat every template text as a draft to verify with the client. A line about home time or equipment that is true for one carrier may be false for another, and job ads with wrong facts waste both the budget and the candidate's time. Adapt the keyword list too: remove job types the client does not hire for, and check real search volume in “Analytics” → “Demand” before you invest in Russian or Ukrainian keywords. After launch, measure each version by interviews and hires rather than clicks, and keep the texts that bring candidates who get hired. You can start free: the Free plan includes one ad platform and one ad account, with no card and no time limit. Paid plans start at $29 a month. Ad budget is paid to Google and Meta directly.</p>
<h2>Why it helps</h2>
<ul>
<li>Ready texts in four languages within Google and Meta limits.</li>
<li>Keywords and negatives arrive as a proposal, never as a silent change.</li>
<li>Tips on structure, targeting rules and landing pages in one place.</li>
<li>The AI text assistant adds variants in the same language with niche rules.</li>
</ul>
<h2>How to set it up</h2>
<ol>
<li>Open “Campaigns” → “Templates” and choose “Truck driver hiring (USA)”.</li>
<li>Read the tips, then edit the keyword and negative lists for the job types and states the client hires for.</li>
<li>Send the lists to a Google campaign as a proposal, check it in Google if you wish, and approve with the Approve button.</li>
<li>In the new-ad form press “Texts from template” and choose EN, RU, UK or ES.</li>
<li>Replace or remove any line the client cannot confirm, and ask the AI text assistant for more variants if needed.</li>
<li>Mark interviews and hires on leads so you can see which texts bring candidates who are hired.</li>
</ol>
<h2>Good to know</h2>
<ul>
<li>Template texts are drafts: pay, home time, equipment and requirements must be confirmed by the client before publishing.</li>
<li>Applying the template changes only keywords and negatives in the chosen campaign; locations, languages and the Meta special ad category remain your decision.</li>
<li>In an October 2026 check, Cyrillic searches for truck driver jobs in the US were in the tens per month; estimate your own demand before building whole campaigns around them.</li>
</ul>
<hr />
<p><em>Originally published at <a href="https://ads.adace.website/en/blog/recruiting/driver-hiring-campaign-template">AdAce Ads blog</a>.</em></p>
]]></content:encoded></item><item><title><![CDATA[Deactivate a team member instantly]]></title><description><![CDATA[When someone leaves the team, access must end immediately — everywhere. Deactivation does it in one transaction. Deactivation removes the membership and…]]></description><link>https://adace.hashnode.dev/deactivate-a-team-member-instantly</link><guid isPermaLink="true">https://adace.hashnode.dev/deactivate-a-team-member-instantly</guid><category><![CDATA[agency]]></category><category><![CDATA[marketing]]></category><category><![CDATA[ads]]></category><dc:creator><![CDATA[info]]></dc:creator><pubDate>Fri, 23 Oct 2026 17:18:06 GMT</pubDate><enclosure url="https://ads.adace.website/assets/adace-social.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>When someone leaves the team, access must end immediately — everywhere. Deactivation does it in one transaction.</p>
<h2>What it does</h2>
<p>Deactivation removes the membership and client assignments, closes all of the person's sessions, revokes their API keys and OAuth tokens for this workspace, and expires their unfinished proposals so they can never execute.</p>
<p>History stays: the audit log keeps referring to the person, so past actions remain accountable. The response shows how many sessions, keys and proposals were closed.</p>
<h2>Why it helps</h2>
<ul>
<li>No lingering access after someone leaves.</li>
<li>AI clients connected by that person stop working immediately.</li>
<li>Complete history preserved for audits.</li>
</ul>
<h2>How to set it up</h2>
<ol>
<li>Open Team and find the person.</li>
<li>Choose deactivate and confirm with the second factor.</li>
<li>Review the summary of closed sessions and revoked keys.</li>
</ol>
<h2>Good to know</h2>
<ul>
<li>The last owner cannot be deactivated.</li>
<li>The person keeps access to other workspaces where they are still a member.</li>
</ul>
<hr />
<p><em>Originally published at <a href="https://ads.adace.website/en/blog/agency/member-deactivation">AdAce Ads blog</a>.</em></p>
]]></content:encoded></item><item><title><![CDATA[Google Ads offline conversions by gclid for interviews and hires]]></title><description><![CDATA[For advertisers whose real result happens after the click: an interview, a quote or a hire. This guide explains offline conversion import by gclid, how to…]]></description><link>https://adace.hashnode.dev/google-ads-offline-conversions-by-gclid-for-interviews-and-hires</link><guid isPermaLink="true">https://adace.hashnode.dev/google-ads-offline-conversions-by-gclid-for-interviews-and-hires</guid><category><![CDATA[marketing]]></category><category><![CDATA[#leadgeneration]]></category><category><![CDATA[analytics]]></category><dc:creator><![CDATA[info]]></dc:creator><pubDate>Fri, 23 Oct 2026 13:19:17 GMT</pubDate><enclosure url="https://ads.adace.website/assets/adace-social.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>For advertisers whose real result happens after the click: an interview, a quote or a hire. This guide explains offline conversion import by gclid, how to split primary and secondary conversion actions, and how AdAce Ads uploads them for you.</p>
<h2>What it does</h2>
<p>Smart bidding in Google Ads optimizes for the conversions you declare. When the only conversion is a form submit or a tap on a call or messenger button, Google learns to buy those taps as cheaply as possible, whether or not the people behind them are any good. Offline conversion import closes the loop. When a lead reaches a stage that matters to the business, you tell Google which ad click produced it. Over time bidding shifts toward the searches, audiences and placements that bring qualified people, not just responsive ones.</p>
<p>The mechanics are simple. With auto-tagging on, Google adds a gclid to the landing page address, and your site stores it with the lead. Later you upload the gclid, the conversion action, the conversion time with its time zone and an optional value, and Google matches the upload to the original click. A few rules apply: the conversion time must be after the click, the click must fall within the conversion action's click-through window (90 days at most), and imported conversions can take several hours to appear in reports. Check Google's help for the current limits before you rely on them.</p>
<p>Primary and secondary actions decide what bidding sees. Primary actions, when included in a campaign's goals, are used for bidding and appear in the “Conversions” column. Secondary actions appear only in “All conversions” and are there for observation. Google's lead categories describe the funnel: Qualified lead for someone who passed your screening and Converted lead for a closed deal or a hire. A common setup makes the interview primary, because it is close to real value and still frequent enough to learn from, and keeps the hire secondary, because hires are rare and slow.</p>
<p>Decide what to do with the original contact conversion. While interviews are few, many advertisers keep the button or form conversion primary as well, so smart bidding has enough signal. Once interviews arrive steadily, moving the raw contact conversion to secondary focuses bidding on qualified leads. Treat it as a deliberate change: switching primary actions changes what campaigns optimize for and can put the bid strategy back into learning. Do it once, note the date and compare cost per interview before and after instead of reacting day by day.</p>
<p>AdAce Ads automates the upload. When a lead captured by the tracking script is marked “interview” or “hired”, in Telegram or in the service, it is uploaded to Google Ads as an offline click conversion by its gclid. The service creates two conversion actions in the account: “AdAce · Interview”, primary, category Qualified lead, and “AdAce · Hire”, secondary, category Converted lead. If Google answers that the conversion action is too new to accept uploads, the service retries later. The workspace emergency switch pauses sending at any time.</p>
<h2>Why it helps</h2>
<ul>
<li>Bidding learns from interviews instead of button taps.</li>
<li>Primary and secondary actions come with the right lead categories.</li>
<li>No spreadsheets or manual uploads: a status tap triggers the upload.</li>
<li>Rejections for a just-created conversion action are retried automatically.</li>
</ul>
<h2>How to set it up</h2>
<ol>
<li>Turn on auto-tagging in the client's Google Ads account and keep it on.</li>
<li>Install the lead tracking script from “Analytics” → “Leads” on the client's site.</li>
<li>Mark leads “interview” or “hired” in the Telegram topic or in the service as soon as it happens.</li>
<li>In Google Ads, open Goals, then Conversions, and check that “AdAce · Interview” and “AdAce · Hire” are there as primary and secondary.</li>
<li>Check which goals each campaign bids on and whether the Qualified lead category is included.</li>
<li>Compare cost per interview by campaign in AdAce Ads before changing bids or budgets.</li>
</ol>
<h2>Good to know</h2>
<ul>
<li>Uploads are matched by gclid, so a lead that arrived without one, such as organic traffic or an untagged link, has nothing to match in Google Ads.</li>
<li>Imported conversions are not instant; Google's reports can lag by several hours.</li>
<li>Changing which actions are primary changes what smart bidding optimizes for, so plan it rather than switching back and forth.</li>
<li>Bid, budget and status changes in AdAce Ads still go through proposals approved with the Approve button.</li>
</ul>
<hr />
<p><em>Originally published at <a href="https://ads.adace.website/en/blog/lead-quality/google-ads-offline-conversions-interviews">AdAce Ads blog</a>.</em></p>
]]></content:encoded></item><item><title><![CDATA[Mark GA4 key events and link GA4 with Google Ads in one click]]></title><description><![CDATA[Often everything is almost right: the site sends generate_lead, but it is not marked as a key event, or GA4 is not linked to Google Ads. The audit fixes…]]></description><link>https://adace.hashnode.dev/mark-ga4-key-events-and-link-ga4-with-google-ads-in-one-click</link><guid isPermaLink="true">https://adace.hashnode.dev/mark-ga4-key-events-and-link-ga4-with-google-ads-in-one-click</guid><category><![CDATA[analytics]]></category><category><![CDATA[tracking]]></category><category><![CDATA[webdev]]></category><dc:creator><![CDATA[info]]></dc:creator><pubDate>Fri, 23 Oct 2026 13:19:16 GMT</pubDate><enclosure url="https://ads.adace.website/assets/adace-social.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Often everything is almost right: the site sends generate_lead, but it is not marked as a key event, or GA4 is not linked to Google Ads. The audit fixes these with one button each.</p>
<h2>What it does</h2>
<p>Next to checks the platform can fix, the audit shows buttons: mark an event as key, link GA4 with Google Ads, enable auto-tagging, or create a GA4 property. The service suggests which event to mark based on what the site really sends.</p>
<p>Each action uses the client's GA4 connection with edit permission, reads the result back and records it in the audit log. Enabling auto-tagging writes to the ad account, so it follows the same write rules as campaign changes.</p>
<h2>Why it helps</h2>
<ul>
<li>Turn audit findings into fixes without leaving the page.</li>
<li>Key events count immediately — no waiting for GA4's next day.</li>
<li>Every fix is logged.</li>
</ul>
<h2>How to set it up</h2>
<ol>
<li>Run the tracking audit for the client's site.</li>
<li>Next to a failed check, press the fix button (for example, “Mark … as key”).</li>
<li>Re-run the audit to confirm the check is green.</li>
</ol>
<h2>Good to know</h2>
<ul>
<li>Requires GA4 edit access granted from the GA4 block.</li>
<li>Auto-tagging is enabled only on accounts allowed for writes and respects the workspace emergency stop.</li>
</ul>
<hr />
<p><em>Originally published at <a href="https://ads.adace.website/en/blog/tracking/ga4-key-events">AdAce Ads blog</a>.</em></p>
]]></content:encoded></item><item><title><![CDATA[AI period summaries for an ad account]]></title><description><![CDATA[A good summary saves an hour before every client call. The AI analyst writes one for an ad account and a period, grounded in the same tools as the chat. A…]]></description><link>https://adace.hashnode.dev/ai-period-summaries-for-an-ad-account</link><guid isPermaLink="true">https://adace.hashnode.dev/ai-period-summaries-for-an-ad-account</guid><category><![CDATA[AI]]></category><category><![CDATA[analytics]]></category><category><![CDATA[marketing]]></category><dc:creator><![CDATA[info]]></dc:creator><pubDate>Fri, 23 Oct 2026 09:15:14 GMT</pubDate><enclosure url="https://ads.adace.website/assets/adace-social.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A good summary saves an hour before every client call. The AI analyst writes one for an ad account and a period, grounded in the same tools as the chat.</p>
<h2>What it does</h2>
<p>A summary is requested for an ad account and a mandatory period. The analyst reads performance, comparison with the previous period, anomalies and wasted spend signals, then writes a concise overview with the most important changes and recommendations.</p>
<p>The summary is saved as a conversation of the client, so you can ask follow-up questions and see the sources. It is available in the chat and through the API for integrations.</p>
<h2>Why it helps</h2>
<ul>
<li>Ready-to-use talking points for client meetings.</li>
<li>Consistent structure for every account and period.</li>
<li>Follow-up questions in the same conversation.</li>
</ul>
<h2>How to set it up</h2>
<ol>
<li>Open the AI analyst and choose the client.</li>
<li>Ask: “Summarize account X for last month: what changed and what needs attention”.</li>
<li>Review the sources and ask follow-up questions.</li>
</ol>
<h2>Good to know</h2>
<ul>
<li>Summaries use honest data rules: preliminary days and missing data are named.</li>
<li>Each summary counts toward AI usage limits.</li>
</ul>
<hr />
<p><em>Originally published at <a href="https://ads.adace.website/en/blog/ai-analyst/ai-summaries">AdAce Ads blog</a>.</em></p>
]]></content:encoded></item><item><title><![CDATA[Cursor, VS Code, Codex, Gemini CLI and more]]></title><description><![CDATA[Developers and analysts often live in editors and terminals. AdAce Ads has ready configurations for the popular AI clients, with OAuth or an API key. The…]]></description><link>https://adace.hashnode.dev/cursor-vs-code-codex-gemini-cli-and-more</link><guid isPermaLink="true">https://adace.hashnode.dev/cursor-vs-code-codex-gemini-cli-and-more</guid><category><![CDATA[AI]]></category><category><![CDATA[mcp]]></category><category><![CDATA[chatgpt]]></category><dc:creator><![CDATA[info]]></dc:creator><pubDate>Fri, 23 Oct 2026 09:15:14 GMT</pubDate><enclosure url="https://ads.adace.website/assets/adace-social.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Developers and analysts often live in editors and terminals. AdAce Ads has ready configurations for the popular AI clients, with OAuth or an API key.</p>
<h2>What it does</h2>
<p>The “Connect AI” page contains guides for Claude (web, app, Cowork), ChatGPT, Claude Code, Codex CLI, Cursor, VS Code (GitHub Copilot), Windsurf / Devin Desktop, Gemini CLI, Grok, Manus, OpenClaw and any other MCP client. Each guide shows the server address, the sign-in method and a configuration snippet to copy.</p>
<p>Editor clients like Cursor, VS Code and Windsurf usually connect with an API key in an Authorization header; terminal and web clients often support OAuth sign-in.</p>
<h2>Why it helps</h2>
<ul>
<li>Use AdAce Ads wherever you already work.</li>
<li>Copy-paste configuration with the correct address.</li>
<li>Cards in clients that support MCP Apps, such as VS Code.</li>
</ul>
<h2>How to set it up</h2>
<ol>
<li>Open “Connect AI” and choose your client.</li>
<li>Create an API key if the guide requires it.</li>
<li>Paste the configuration snippet into the client's MCP settings.</li>
<li>Ask the client to call get_started and check the activity on “Connect AI”.</li>
</ol>
<h2>Good to know</h2>
<ul>
<li>An API key's scope never exceeds the permissions of the person who created it.</li>
<li>Clients without MCP Apps show plain text answers.</li>
</ul>
<hr />
<p><em>Originally published at <a href="https://ads.adace.website/en/blog/ai-clients/connect-other-ai-clients">AdAce Ads blog</a>.</em></p>
]]></content:encoded></item><item><title><![CDATA[Conversions broken down by action type]]></title><description><![CDATA[A campaign's conversions are usually a mix of actions. The breakdown by action type shows exactly which ones happened and how much value each brought. For…]]></description><link>https://adace.hashnode.dev/conversions-broken-down-by-action-type</link><guid isPermaLink="true">https://adace.hashnode.dev/conversions-broken-down-by-action-type</guid><category><![CDATA[analytics]]></category><category><![CDATA[marketing]]></category><category><![CDATA[data]]></category><dc:creator><![CDATA[info]]></dc:creator><pubDate>Thu, 22 Oct 2026 17:19:00 GMT</pubDate><enclosure url="https://ads.adace.website/assets/adace-social.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A campaign's conversions are usually a mix of actions. The breakdown by action type shows exactly which ones happened and how much value each brought.</p>
<h2>What it does</h2>
<p>For Google Ads, conversions are broken down by conversion action with their values. For Meta, actions are read with their types — lead, purchase, complete registration, contact, custom conversions and more.</p>
<p>The breakdown is stored daily with the rest of the analytics, so you can check it for any period and see when a new action type started or stopped firing.</p>
<h2>Why it helps</h2>
<ul>
<li>Spot a tracking problem when an expected action disappears.</li>
<li>Understand whether a campaign drives the actions you pay for.</li>
<li>Separate primary goals from secondary micro-conversions.</li>
</ul>
<h2>How to set it up</h2>
<ol>
<li>Open Analytics for the account and period.</li>
<li>Open the conversions breakdown for a campaign.</li>
<li>Compare action types and values; adjust the client's KPI event if needed.</li>
</ol>
<h2>Good to know</h2>
<ul>
<li>Only actions reported by the platform are shown; website events not linked to ads appear in GA4 reports.</li>
<li>Values are shown in the account currency.</li>
</ul>
<hr />
<p><em>Originally published at <a href="https://ads.adace.website/en/blog/analytics/conversions-by-action-type">AdAce Ads blog</a>.</em></p>
]]></content:encoded></item><item><title><![CDATA[Facebook ads targeting basics: countries, age, gender, languages, Advantage+]]></title><description><![CDATA[The core audience defines who can see an ad set. AdAce Ads lets you set it when creating an ad set and change it later with a precise before and after…]]></description><link>https://adace.hashnode.dev/facebook-ads-targeting-basics-countries-age-gender-languages-advantage</link><guid isPermaLink="true">https://adace.hashnode.dev/facebook-ads-targeting-basics-countries-age-gender-languages-advantage</guid><category><![CDATA[MetaAds]]></category><category><![CDATA[marketing]]></category><category><![CDATA[ads]]></category><dc:creator><![CDATA[info]]></dc:creator><pubDate>Thu, 22 Oct 2026 17:19:00 GMT</pubDate><enclosure url="https://ads.adace.website/assets/adace-social.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The core audience defines who can see an ad set. AdAce Ads lets you set it when creating an ad set and change it later with a precise before and after.</p>
<h2>What it does</h2>
<p>Countries are selected by ISO code; age ranges from 13 to 65 when editing (18–65 when creating); gender can be all, men or women; languages are found with Meta's locale search, and an empty list means all languages. Advantage+ audience is an explicit on/off choice, so Meta's automatic expansion is never a surprise.</p>
<p>When editing, the current targeting is read live from Meta and only changed fields go into the proposal.</p>
<h2>Why it helps</h2>
<ul>
<li>Clear, auditable audience settings for every ad set.</li>
<li>Explicit Advantage+ choice avoids unintended expansion.</li>
<li>Changes are reviewed and reversible.</li>
</ul>
<h2>How to set it up</h2>
<ol>
<li>For a new ad set: set the audience in the creation form.</li>
<li>For an existing one: Campaigns → “Propose a change” → “Ad set targeting”.</li>
<li>Change countries, age, gender, languages or Advantage+ audience.</li>
<li>Review the before/after and submit for approval.</li>
</ol>
<h2>Good to know</h2>
<ul>
<li>Geo with regions, cities or radiuses is edited in Ads Manager; the service refuses rather than oversimplifying it.</li>
<li>Targeting changes restart learning, so they always need human approval.</li>
</ul>
<hr />
<p><em>Originally published at <a href="https://ads.adace.website/en/blog/meta-ads/meta-audience-targeting">AdAce Ads blog</a>.</em></p>
]]></content:encoded></item><item><title><![CDATA[Add Google ad groups and responsive search ads]]></title><description><![CDATA[Once a Search campaign exists, you add paused ad groups and responsive search ads, either by copying a proven ad or by writing new copy. An ad group is…]]></description><link>https://adace.hashnode.dev/add-google-ad-groups-and-responsive-search-ads</link><guid isPermaLink="true">https://adace.hashnode.dev/add-google-ad-groups-and-responsive-search-ads</guid><category><![CDATA[#GoogleAds]]></category><category><![CDATA[marketing]]></category><category><![CDATA[ads]]></category><dc:creator><![CDATA[info]]></dc:creator><pubDate>Thu, 22 Oct 2026 13:25:04 GMT</pubDate><enclosure url="https://ads.adace.website/assets/adace-social.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Once a Search campaign exists, you add paused ad groups and responsive search ads, either by copying a proven ad or by writing new copy.</p>
<h2>What it does</h2>
<p>An ad group is created paused with an optional CPC bid. A responsive search ad can copy the headlines (with pins), descriptions, paths and final URLs of an existing ad in the account, or use your own texts: 3–15 unique headlines up to 30 characters, 2–4 descriptions up to 90 characters and an https final URL.</p>
<p>Texts are validated before anything is sent to Google. If an ad group with the same name already exists, it is reused rather than duplicated, and every creation is read back.</p>
<h2>Why it helps</h2>
<ul>
<li>Launch new ad groups in minutes with proven copy.</li>
<li>Character limits are checked before the request, not after a rejection.</li>
<li>The AI analyst can draft copy for you to paste in.</li>
</ul>
<h2>How to set it up</h2>
<ol>
<li>Open Campaigns, pick a Search campaign and press “Ad groups &amp; ads”.</li>
<li>Create an ad group with a name and optional bid.</li>
<li>Add an ad: copy an existing one or choose “New creative” and enter texts.</li>
<li>Enable the ad group and ad through status proposals when ready.</li>
</ol>
<h2>Good to know</h2>
<ul>
<li>Ad groups are created for Search campaigns; other types use their own creation forms.</li>
<li>The UTM template of the client is applied to new creatives where the platform supports it.</li>
</ul>
<hr />
<p><em>Originally published at <a href="https://ads.adace.website/en/blog/google-ads/google-ad-groups-and-ads">AdAce Ads blog</a>.</em></p>
]]></content:encoded></item><item><title><![CDATA[Choosing a TikTok campaign objective for your business goal]]></title><description><![CDATA[The objective is the first and most expensive choice in TikTok Ads Manager, because it tells the system what to look for. An objective that counts clicks…]]></description><link>https://adace.hashnode.dev/choosing-a-tiktok-campaign-objective-for-your-business-goal</link><guid isPermaLink="true">https://adace.hashnode.dev/choosing-a-tiktok-campaign-objective-for-your-business-goal</guid><category><![CDATA[marketing]]></category><category><![CDATA[ads]]></category><dc:creator><![CDATA[info]]></dc:creator><pubDate>Thu, 22 Oct 2026 13:25:03 GMT</pubDate><enclosure url="https://ads.adace.website/assets/adace-social.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The objective is the first and most expensive choice in TikTok Ads Manager, because it tells the system what to look for. An objective that counts clicks will find people who click; one that counts leads will look for people who submit. This guide helps you pick from the business result backwards, instead of choosing whatever is cheapest per result.</p>
<h2>What it does</h2>
<p>Start with the result that pays you. A driver-hiring company wants qualified applications, a shop wants purchases, a local service wants calls or booked visits. Then find the objective whose optimization event is the closest measurable step to that result. The closer the event is to the real outcome, the better the system can learn what a good person looks like.</p>
<p>Awareness-type objectives such as reach and video views are cheap per result because the result is cheap: a view is easier to get than an application. They suit a launch or a brand message, but they will not tell you whether anyone applied. Traffic sends people to a page; it optimizes for the click, not for what happens after it.</p>
<p>Lead generation and website conversion objectives optimize for a deeper step. Lead generation can use an Instant Form inside TikTok, which removes a page load. Website conversions need a working TikTok Pixel (and ideally Events API) on the page so the platform sees the event you care about. Without that tracking the objective has nothing to learn from.</p>
<p>Do not compare cost per result across objectives. A thousand cheap video views and ten applications are different things. Compare by the same downstream measure, such as cost per qualified lead or per hire, which you count outside TikTok.</p>
<h2>Why it helps</h2>
<ul>
<li>Choosing from the business result keeps the account focused on outcomes that pay, not on the cheapest metric.</li>
<li>Matching the event to your tracking avoids the common situation where a conversion objective runs with no conversions recorded.</li>
<li>Comparing objectives by a shared downstream measure stops cheap clicks from looking like a win.</li>
</ul>
<h2>How to set it up</h2>
<ol>
<li>Name the final result and the nearest step you can reliably measure, for example a submitted application.</li>
<li>Check whether that step can be recorded: an Instant Form, or a Pixel event on a confirmation page.</li>
<li>Pick the objective that optimizes for that step. If tracking is not ready yet, use traffic briefly and fix tracking before scaling.</li>
<li>Set the optimization event in the ad group to the same step, not to an earlier, easier one.</li>
<li>Run the campaign long enough to collect a meaningful number of results before judging it.</li>
<li>Review by cost per qualified result outside TikTok, then adjust the objective if the platform's results do not match real outcomes.</li>
</ol>
<h2>Good to know</h2>
<ul>
<li>Objective names, grouping and availability differ by account and country, and TikTok changes them. Confirm in your own Ads Manager.</li>
<li>A lower cost per result does not mean a better campaign if the result is a weaker step.</li>
<li>AdAce Ads supports new paused campaigns for traffic, website leads and website conversions. Choose the objective and any required pixel event before creation; the objective cannot be changed afterwards.</li>
</ul>
<hr />
<p><em>Originally published at <a href="https://ads.adace.website/en/blog/tiktok-ads/tiktok-campaign-objective-choice">AdAce Ads blog</a>.</em></p>
]]></content:encoded></item><item><title><![CDATA[Choose a Snapchat campaign objective: Awareness, Traffic, Leads or Sales]]></title><description><![CDATA[The objective is the first real decision in a Snapchat campaign, and it shapes what the ad squad can optimize for. Choosing Sales without a working Snap…]]></description><link>https://adace.hashnode.dev/choose-a-snapchat-campaign-objective-awareness-traffic-leads-or-sales</link><guid isPermaLink="true">https://adace.hashnode.dev/choose-a-snapchat-campaign-objective-awareness-traffic-leads-or-sales</guid><category><![CDATA[marketing]]></category><category><![CDATA[ads]]></category><dc:creator><![CDATA[info]]></dc:creator><pubDate>Wed, 21 Oct 2026 17:17:26 GMT</pubDate><enclosure url="https://ads.adace.website/assets/adace-social.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The objective is the first real decision in a Snapchat campaign, and it shapes what the ad squad can optimize for. Choosing Sales without a working Snap Pixel, or Awareness when you want applications, is a setup mistake rather than a tuning problem. This guide maps each objective to a typical small-business goal.</p>
<h2>What each objective is for</h2>
<p>Snapchat's current objective types in the Marketing API are Awareness &amp; Engagement, Traffic, Leads, Sales and App Promotion. Older objectives such as brand awareness, video views, web conversion or lead generation still exist in the legacy field, which is why you may see both vocabularies in documentation and in older campaigns.</p>
<p>Awareness &amp; Engagement fits when you need people to see and remember a brand, a new location or an event, and you accept that results are measured in reach, video views or story opens rather than actions on your site. Traffic fits when a visit to a page is the goal; the ad squad can optimize for swipes or landing page views. Use it when you do not yet have conversion tracking you trust.</p>
<p>Leads fits when the outcome is a contact: a lead form submission inside Snapchat, or a website sign-up tracked by the pixel. Sales fits when the outcome is a purchase and the Snap Pixel or Conversions API reports it with a value. These objectives are only as good as the events behind them; with no events, the system has nothing to learn from.</p>
<p>A simple rule for a small advertiser: pick the deepest objective you can measure honestly. If you can reliably record a form submission, use Leads. If only page visits are measurable, start with Traffic and add events before you change the objective. Switching objective later means a new campaign, so decide before you build.</p>
<h2>Why the objective decides the rest</h2>
<ul>
<li>The objective, the optimization goal and the report all talk about the same outcome.</li>
<li>You avoid paying for traffic when you wanted leads, or the reverse.</li>
<li>Missing tracking shows up as a decision before launch, not as a puzzle after a week of spend.</li>
</ul>
<h2>Pick the objective in five checks</h2>
<ol>
<li>State the outcome in one sentence and a number you can count (for example: a completed driver application).</li>
<li>Check whether that outcome is already recorded by the Snap Pixel, the Conversions API or a lead form. If not, plan that first.</li>
<li>Pick the objective for the deepest outcome you can measure, then check which optimization goals the ad squad offers for it.</li>
<li>For jobs, housing or credit ads, declare the regulated category on the campaign before you create anything else.</li>
<li>Write the objective and its success metric in the campaign name or notes, so the next person reads results against the right goal.</li>
</ol>
<h2>Good to know</h2>
<ul>
<li>Do not compare cost per result between campaigns with different objectives; a swipe and a purchase are not the same result.</li>
<li>When AdAce Ads creates a Snapchat campaign (paused), it accepts Traffic, Leads, Sales or Awareness &amp; Engagement and requires you to state explicitly whether restricted delivery signals apply. Early access; no live account has been connected yet.</li>
</ul>
<h2>Sources and further reading</h2>
<ul>
<li><a href="https://developers.snap.com/api/marketing-api/Ads-API/campaigns">Snap Marketing API: campaigns</a></li>
<li><a href="https://developers.snap.com/api/marketing-api/Ads-API/ad-squads">Snap Marketing API: ad squads</a></li>
</ul>
<hr />
<p><em>Originally published at <a href="https://ads.adace.website/en/blog/snapchat-ads/snapchat-campaign-objectives">AdAce Ads blog</a>.</em></p>
]]></content:encoded></item><item><title><![CDATA[How to structure a Reddit campaign: campaign, ad group and ad]]></title><description><![CDATA[A clean structure is the cheapest optimization you will ever make. In Reddit Ads the campaign decides the objective, the ad group decides who sees the ad…]]></description><link>https://adace.hashnode.dev/how-to-structure-a-reddit-campaign-campaign-ad-group-and-ad</link><guid isPermaLink="true">https://adace.hashnode.dev/how-to-structure-a-reddit-campaign-campaign-ad-group-and-ad</guid><category><![CDATA[marketing]]></category><category><![CDATA[ads]]></category><dc:creator><![CDATA[info]]></dc:creator><pubDate>Wed, 21 Oct 2026 13:20:19 GMT</pubDate><enclosure url="https://ads.adace.website/assets/adace-social.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A clean structure is the cheapest optimization you will ever make. In Reddit Ads the campaign decides the objective, the ad group decides who sees the ad and how much you pay, and the ad is the post people actually read. Mixing those jobs makes results impossible to interpret.</p>
<h2>Three levels, three jobs</h2>
<p>The campaign holds the objective, the schedule and, in budget-optimized campaigns, the budget and bid strategy. The objective and the campaign type are set when you create it and cannot be changed later, so decide them first. Create the campaign paused, so that nothing spends until the ads are reviewed and you are ready.</p>
<p>The ad group is where targeting lives: communities, interests, keywords, locations, devices, languages, gender and age, custom audiences and a delivery schedule. In a campaign with ad group budgets, each ad group also carries its own daily budget, bid strategy and bid. This is the level to split by audience. One ad group per distinct audience, for example one for a cluster of closely related communities and one for a keyword list, lets reports show which audience works.</p>
<p>The ad holds the creative: a post with a headline, an image or video (or a carousel or text post) and a destination link. Several ads in one ad group let delivery compare messages. Keep them to a real difference, such as an offer versus a question, so the comparison tells you something.</p>
<p>Reddit offers Standard campaigns, where you choose targeting, budgets and bidding yourself, and Max campaigns, an automated type that builds ads from the headlines and media you supply. Standard gives control and clearer reading by community; Max trades control for automation. A small business that wants to learn which communities respond usually starts with Standard.</p>
<h2>What a clean structure buys</h2>
<ul>
<li>A report you can read: each ad group answers one question about audience, each ad one about message.</li>
<li>Safer launches: a paused campaign with reviewed ads spends nothing until you decide.</li>
<li>Easier hand-offs: a name pattern and a structure another person can understand in a minute.</li>
</ul>
<h2>Plan the structure before you publish</h2>
<ol>
<li>Write the objective and the one result you will judge it by. Choose Standard unless you are deliberately handing control to automation.</li>
<li>Decide how budget will be controlled: one budget at campaign level, or a daily budget on each ad group. Make this choice before publishing, because the budget mode cannot be changed afterwards.</li>
<li>Create one ad group per audience hypothesis and name it for that hypothesis, such as communities-trucking or keywords-cdl.</li>
<li>Put two or three ads in each ad group that differ in one thing: the hook, the offer or the image.</li>
<li>Preview, publish and wait for the review. Record the structure in a short note so later changes can be compared with it.</li>
<li>After the first full week, remove or pause what is clearly not working and only then add new ad groups.</li>
</ol>
<h2>Rules to remember</h2>
<ul>
<li>Budget optimization at the campaign level is not offered for every objective, and its rules differ between Standard and Max campaigns. Check the account before planning around it.</li>
<li>Fewer, bigger ad groups learn faster on a small budget. Do not split a modest budget into many tiny groups.</li>
<li>In AdAce Ads you can read the structure of Reddit campaigns and, in early access, create a paused campaign with one ad group and one ad. Each later change is proposed and waits for your approval with a two-factor code.</li>
</ul>
<h2>Sources and further reading</h2>
<ul>
<li><a href="https://ads-api.reddit.com/docs/v3/guides/programs/campaign/campaign-setup">Reddit Ads API: set up a Standard campaign</a></li>
<li><a href="https://ads-api.reddit.com/docs/v3/guides/programs/campaign/campaign-objective-matrix">Reddit Ads API: campaign objective matrix</a></li>
<li><a href="https://ads-api.reddit.com/docs/v3/guides/programs/campaign/max-campaign-setup">Reddit Ads API: set up a Max campaign</a></li>
</ul>
<hr />
<p><em>Originally published at <a href="https://ads.adace.website/en/blog/reddit-ads/reddit-campaign-structure">AdAce Ads blog</a>.</em></p>
]]></content:encoded></item><item><title><![CDATA[LinkedIn Ads structure: campaign groups, campaigns and ads]]></title><description><![CDATA[A LinkedIn account has three working levels, and most confusion comes from putting settings on the wrong one. Budget, bid, objective and audience belong to…]]></description><link>https://adace.hashnode.dev/linkedin-ads-structure-campaign-groups-campaigns-and-ads</link><guid isPermaLink="true">https://adace.hashnode.dev/linkedin-ads-structure-campaign-groups-campaigns-and-ads</guid><category><![CDATA[marketing]]></category><category><![CDATA[ads]]></category><dc:creator><![CDATA[info]]></dc:creator><pubDate>Wed, 21 Oct 2026 13:20:18 GMT</pubDate><enclosure url="https://ads.adace.website/assets/adace-social.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A LinkedIn account has three working levels, and most confusion comes from putting settings on the wrong one. Budget, bid, objective and audience belong to the campaign; the ad itself is a creative; and a campaign group is a folder that holds related campaigns and an optional shared budget and schedule. Get this right and every report answers a question.</p>
<h2>What it does</h2>
<p>The hierarchy is ad account, campaign group, campaign, ad (creative). The campaign is the level where you choose the objective, the audience, the bid and the budget. That differs from Meta, where audience and budget live on the ad set, and from Google, where they live across campaign and ad group. In LinkedIn the campaign plays the role of both campaign and ad set. Newer versions of the interface may label the levels differently, so check the names in your account.</p>
<p>Use the group for one business goal, such as “Q4 demo requests” or “Dispatcher hiring”. It lets you read spend and results for that goal together and pause everything about it at once. Do not use groups to separate audiences; separate audiences are separate campaigns.</p>
<p>Use the campaign for one audience and one objective. If two audiences should get different messages or have different economics, give each its own campaign so budget and results are never mixed. A campaign that targets “everyone who is a manager” plus “everyone in logistics” is two campaigns pretending to be one.</p>
<p>Use ads for variants of the message, not of the audience. Two to four ads per campaign is enough to learn something on a small budget. Name them so a report line is understandable without opening the ad: audience, offer, format and a version number.</p>
<h2>Why it helps</h2>
<ul>
<li>Each report line maps to a decision: which goal, which audience, which message.</li>
<li>Budgets and bids sit where LinkedIn actually applies them, so you do not edit a setting that has no effect.</li>
<li>Naming makes handover, reporting and later analysis possible without opening each ad.</li>
</ul>
<h2>How to set it up</h2>
<ol>
<li>Create a campaign group per business goal and give it a name that a client would recognize.</li>
<li>Inside it, create one campaign per audience and objective; keep the audience definition in the campaign name.</li>
<li>Add two to four ads to each campaign, changing one element between them.</li>
<li>Name consistently, for example Group | Audience | Format | Offer | Version.</li>
<li>Read the structure tree in AdAce Ads to see groups, campaigns and ads with their targeting and delivery state in one place.</li>
</ol>
<h2>Good to know</h2>
<ul>
<li>In AdAce Ads the LinkedIn campaign is shown as both the campaign and its single “ad group”, because targeting, bid and objective live there.</li>
<li>Changing a campaign format after creation is not possible in LinkedIn; plan formats before building.</li>
<li>Too many small campaigns split a small budget until none of them learns anything.</li>
</ul>
<h2>Sources and further reading</h2>
<ul>
<li><a href="https://learn.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/create-and-manage-campaigns">Create and manage LinkedIn campaigns (API reference)</a></li>
<li><a href="https://learn.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/create-and-manage-campaign-groups">Create and manage campaign groups (API reference)</a></li>
</ul>
<hr />
<p><em>Originally published at <a href="https://ads.adace.website/en/blog/linkedin-ads/linkedin-campaign-structure">AdAce Ads blog</a>.</em></p>
]]></content:encoded></item><item><title><![CDATA[Approvals with password and second factor]]></title><description><![CDATA[Approval is the moment a human takes responsibility for a change. AdAce Ads makes it deliberate: password, one-time code and a binding to exactly what you…]]></description><link>https://adace.hashnode.dev/approvals-with-password-and-second-factor</link><guid isPermaLink="true">https://adace.hashnode.dev/approvals-with-password-and-second-factor</guid><category><![CDATA[Security]]></category><category><![CDATA[automation]]></category><category><![CDATA[ads]]></category><dc:creator><![CDATA[info]]></dc:creator><pubDate>Wed, 21 Oct 2026 09:23:32 GMT</pubDate><enclosure url="https://ads.adace.website/assets/adace-social.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Approval is the moment a human takes responsibility for a change. AdAce Ads makes it deliberate: password, one-time code and a binding to exactly what you saw.</p>
<h2>What it does</h2>
<p>The Approvals page lists pending proposals with before/after, reason, origin and limit checks. An owner or admin opens a proposal, reviews it and presses “Approve”, confirming with the account password and, when two-factor authentication is on, a code from the authenticator app.</p>
<p>The approval is tied to the proposal's digest: if the content changed, it cannot be approved as is. Rejections take a reason, and both decisions are written to the audit log. AI clients cannot approve changes.</p>
<h2>Why it helps</h2>
<ul>
<li>Stolen sessions alone cannot push changes to ad accounts.</li>
<li>No “approved something else” surprises — the digest guarantees it.</li>
<li>A clear record of who approved what and when.</li>
</ul>
<h2>How to set it up</h2>
<ol>
<li>Open Approvals.</li>
<li>Open a pending proposal and review before/after and checks.</li>
<li>Press “Approve” and enter your password and one-time code, or “Reject” with a reason.</li>
<li>Watch execution on Operations.</li>
</ol>
<h2>Good to know</h2>
<ul>
<li>Proposals expire after 60 minutes; create a new one if needed.</li>
<li>Clients on the auto policy may apply some reversible changes without a manual approval — see write policies.</li>
</ul>
<hr />
<p><em>Originally published at <a href="https://ads.adace.website/en/blog/change-control/approvals-with-2fa">AdAce Ads blog</a>.</em></p>
]]></content:encoded></item></channel></rss>