confirm_and_apply gate as every Google change. New Reddit campaigns, ad groups and ads are created PAUSED.
Reddit is a separate connection: its own OAuth grant, its own ad account selection. Use it next to Google or on its own: a workspace with only Reddit Ads connected works too.
Connect
- AdLoop Cloud
- Self-hosted
Settings → Reddit → Connect Reddit account. Reddit’s own consent dialog asks for
adsread and adsedit (read and edit advertising data); AdLoop never sees your password. Then pick the ad account your AI may reach. Agencies pick a Reddit ad account per client under Settings → Clients.Disconnecting revokes the grant at Reddit and deletes the stored token. Google and your API keys are untouched. You can also withdraw access at any time at reddit.com/prefs/apps.What is different from Google Ads
Money is returned in the account’s currency; Reddit’s microcurrency is already divided. Report data lags up to six hours.
Weekly schedules
Ads Manager’s “time of day” grid is the ad group’sschedule: a list of blocks such as {"days": "MON-FRI", "start_hour": 13, "end_hour": 23} (day names, hours 0 to 23, end_hour inclusive) or the native {"start_day": "FRI", "start_hour": 22, "end_day": "SAT", "end_hour": 3} for overnight windows. get_reddit_ad_groups returns it with a readable schedule_summary (Mon–Fri 13:00–23:59, or any time); update_reddit_ad_group and draft_reddit_ad_group accept it, and [] clears it. Two things worth knowing: Reddit applies the hours in each viewer’s local time, so a European account keeps delivering to US viewers until the next morning, and zero impressions outside the schedule, a whole weekend included, is by design. The tools say so in insights[] before you go looking for a fault.
Tools
Reads:list_reddit_accounts, list_reddit_funding_instruments, get_reddit_campaigns, get_reddit_ad_groups, get_reddit_ads, get_reddit_performance (with compact mode and insights[]), run_reddit_report (raw fields and breakdowns), get_reddit_pixels, get_reddit_audiences (custom and saved audiences, and which ad groups use them), search_reddit_targeting (including Reddit’s related-community suggestions), get_reddit_account_history (who changed what), estimate_reddit_ad_group (audience, delivery and bid estimates before you build).
Writes (all previewed): pause_reddit_entity, enable_reddit_entity, remove_reddit_entity (archive, irreversible, double confirmation), update_reddit_campaign, update_reddit_ad_group, update_reddit_ad (landing URL, name, comments), draft_reddit_campaign, draft_reddit_ad_group, draft_reddit_ad. Keywords and geolocations in an ad-group draft are validated with Reddit before the preview. Ad groups can also target devices (desktop or mobile, by operating system and version), mobile carriers and view modes; search_reddit_targeting looks up valid devices and carriers.
Creative
get_reddit_ads with include_copy=true returns each ad’s post: type (TEXT, IMAGE, VIDEO, CAROUSEL), headline, body, destination URL, call to action and media, one request per distinct post, so a creative review does not need a browser. draft_reddit_ad either creates a post and the ad, or with post_id promotes a post that already exists, keeping its upvotes and comments. New posts can be text, image, video (an MP4 or MOV link plus a thumbnail) or a carousel of 2 to 6 image cards, each with its own caption and link. Reddit downloads the media from the URLs you give, so they have to be direct links to the files; the draft checks each one and refuses a web page or a file over Reddit’s size limit. On AdLoop Cloud, an image without a public URL can be uploaded first (Uploading images) and used as upload:<id>. Two Reddit rules the tools enforce before the dry run: a live post’s headline and body cannot be edited (draft a new post for new copy), and a TEXT (“free form”) ad carries no click_url at all, because it opens the post itself and the link has to be in the body. Placements are the locations list on the ad group: FEED and/or COMMENTS_PAGE.
The full list with parameters is in the tool reference; the toolset slug is reddit.
Building a campaign
The order is campaign → ad group → ad, each created paused and each through its own preview:- Pixel first. Every ad group needs a
conversion_pixel_id(a Reddit rule since July 2026).get_reddit_pixelslists them and shows when each event last fired; a CONVERSIONS campaign on a pixel that never fired the optimization event cannot learn. list_reddit_funding_instrumentsfor a servable billing instrument and the profile that will author the post.search_reddit_targetingfor community, interest, geolocation and language ids (community_suggestionsfinds related subreddits). Untargeted ad groups are refused. 3a.estimate_reddit_ad_groupwith the same targeting and budget: audience size, expected delivery, and Reddit’s suggested bid range.draft_reddit_campaign→draft_reddit_ad_group(budget, bid, pixel, targeting) →draft_reddit_ad(headline, verified click URL, call to action). IMAGE, VIDEO and CAROUSEL ads click through to the landing page; a TEXT ad clicks through to the post itself, so the link has to be in the body (the tool insists on it). Posts cannot be edited afterwards.- Enable the ad, then the ad group, then the campaign. Enabling an ad sends it to Reddit’s policy review; expect
PENDING_APPROVALfor up to a day, then checkget_reddit_adsfor arejection_reason.
Retargeting audiences
draft_reddit_custom_audience builds an audience from data Reddit already has, so nothing personal is uploaded:
- Website visitors (
PIXEL_RETARGETING): people the pixel saw on your site in the last 1 to 90 days, for the events you pick (every page visit, or warmer signals such as add to cart, sign up or a custom event). - Engaged people (
ENGAGEMENT_RETARGETING): people who saw, clicked, upvoted, commented on or watched the ads of campaigns you name, in the last 1 to 180 days.
get_reddit_audiences shows each audience’s status, estimated size and the ad groups that use it. To use one, set custom_audience_ids on an ad group (it narrows the ad group to that audience) or excluded_custom_audience_ids (it keeps those people out, for example buyers in a prospecting ad group).
Customer lists (emails or phone numbers) are not supported: they would upload personal data, which needs its own consent and legal review.