remarketing-strategy について
ファネル段階やオーディエンスに応じたリマーケティング戦略を設計するマーケティングスキルです。再エンゲージメントを扱うエージェント向けに、頻度制限や段階的なメッセージ配信を支援します。
主な機能
- 01ファネル段階別のオーディエンス分類
- 02チャネル横断のリマーケティング設計
- 03段階的なメッセージ配信
- 04頻度とリスト期間の管理
- 05対象外オーディエンスの除外
活用シーン
- 01カート放棄ユーザーの再訪促進
- 02ファネル段階ごとの広告計画
- 03頻度制限による広告疲れの軽減
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ itallstartedwithaidea/ agent-skills --skill remarketing-strategyインストール後、Claude Code で/remarketing-strategyを入力して読み込まれたか確認します。
詳細
リマーケティング戦略
googleadsagent.ai™ による Agent Skills™ の一部です
説明
リマーケティング戦略スキルは、コンバージョンファネルのあらゆる段階でユーザーに再アプローチする、クロスチャネルのリマーケティングアーキテクチャを設計・実装します。リマーケティングは、すでに関心を示したユーザーをターゲットにするため、デジタル広告において常に最も ROI の高い戦術です。このスキルは、「過去の訪問者に広告を表示する」という基本的なアプローチを、段階的なメッセージ配信、フリークエンシー管理、デバイス間のオーケストレーションを備えた、ファネルを考慮した高度なリマーケティングシステムへと進化させます。
このスキルは、ファネル内の位置とエンゲージメントの深さに基づいてオーディエンスを分類します。具体的には、ファネル上部の訪問者(単一ページのセッション)、ファネル中部のエンゲージメントユーザー(複数ページのセッション、コンテンツ閲覧者)、ファネル下部の見込み顧客(カート放棄者、フォーム入力開始者、価格ページ閲覧者)、コンバージョン後の顧客(アップセルと維持を目的とする)です。それぞれのセグメントには、認知の強化から緊急性を促すコンバージョンへの後押しまで、ブランドとの関係性に応じたメッセージが配信されます。
クロスチャネルでの実施には、ディスプレイリマーケティング、YouTube リマーケティング、RLSA(検索広告向けリマーケティングリスト)、商品別のクリエイティブを使ったダイナミックリマーケティング、デバイスをまたぐカスタマージャーニーのマッピングが含まれます。このスキルは、広告疲れを防ぐフリークエンシーキャップ、リーチと関連性のバランスを取るメンバーシップ期間の最適化、ユーザーを段階的にコンバージョンへ導く連続メッセージ配信を実施します。また、重複したメッセージ配信や無駄なインプレッションを防ぐため、除外オーディエンスのレイヤー管理も行います。
使用する場面
- ユーザーが「リマーケティング」や「リターゲティング」戦略について質問した場合
- ユーザーが「リマーケティングリスト」や「オーディエンスのセグメント化」に言及した場合
- ユーザーが過去の訪問者やカート放棄者に「再アプローチ」したい場合
- ユーザーが「フリークエンシーキャップ」や「広告疲れ」について質問した場合
- ユーザーが「RLSA」や「検索向けリマーケティング」に言及した場合
- ユーザーが「ダイナミックリマーケティング」や「商品リマーケティング」について質問した場合
- ユーザーが「カスタマージャーニー」や「連続メッセージ配信」を構築したい場合
- ユーザーが「デバイス間」ターゲティングや「クロスチャネル」リマーケティングに言及した場合
- ユーザーが「メンバーシップ期間」や「オーディエンスウィンドウ」の最適化について質問した場合
アーキテクチャ
flowchart TD
A[User Interaction Data] --> B[Funnel Stage Classifier]
B --> C[Top of Funnel\nSingle Page, < 30s]
B --> D[Mid Funnel\n2-3 Pages, Content Engaged]
B --> E[Bottom Funnel\nCart/Form/Pricing Viewed]
B --> F[Post-Conversion\nPurchasers, Leads]
C --> G[Awareness Remarketing]
G --> G1[Brand Story Ads]
G --> G2[Educational Content]
G --> G3[Social Proof]
D --> H[Consideration Remarketing]
H --> H1[Product/Service Benefits]
H --> H2[Case Studies & Reviews]
H --> H3[Comparison Content]
E --> I[Conversion Remarketing]
I --> I1[Urgency Messaging]
I --> I2[Incentive Offers]
I --> I3[Dynamic Product Ads]
I --> I4[Cart Recovery Emails]
F --> J[Retention Remarketing]
J --> J1[Cross-Sell / Upsell]
J --> J2[Loyalty Offers]
J --> J3[Reactivation Campaigns]
G1 --> K[Channel Orchestrator]
G2 --> K
G3 --> K
H1 --> K
H2 --> K
H3 --> K
I1 --> K
I2 --> K
I3 --> K
J1 --> K
J2 --> K
J3 --> K
K --> L[Display Network]
K --> M[YouTube]
K --> N[Search RLSA]
K --> O[Discovery / Demand Gen]
L --> P[Frequency Capping Engine]
M --> P
N --> P
O --> P
P --> Q[Cross-Device Graph]
Q --> R[Unified User Journey]
実装
ファネルに基づくオーディエンスのセグメント化とリマーケティングアーキテクチャ:
const FUNNEL_SEGMENTS = {
TOP: {
name: 'Awareness Visitors',
rules: { pagesViewed: 1, sessionDuration: '<30s', converted: false },
membershipDuration: 30,
messagingStrategy: 'brand_awareness',
channels: ['display', 'youtube'],
frequencyCap: { impressionsPerDay: 3, impressionsPerWeek: 10 }
},
MID: {
name: 'Engaged Visitors',
rules: { pagesViewed: '>=2', sessionDuration: '>=30s', converted: false },
membershipDuration: 30,
messagingStrategy: 'consideration',
channels: ['display', 'youtube', 'search_rlsa'],
frequencyCap: { impressionsPerDay: 5, impressionsPerWeek: 15 }
},
BOTTOM: {
name: 'High Intent Prospects',
rules: { viewedHighIntentPage: true, converted: false },
membershipDuration: 14,
messagingStrategy: 'conversion',
channels: ['display', 'youtube', 'search_rlsa', 'demand_gen'],
frequencyCap: { impressionsPerDay: 7, impressionsPerWeek: 25 }
},
POST_CONVERSION: {
name: 'Customers',
rules: { converted: true },
membershipDuration: 180,
messagingStrategy: 'retention',
channels: ['display', 'youtube', 'search_rlsa'],
frequencyCap: { impressionsPerDay: 2, impressionsPerWeek: 7 }
}
};
async function buildRemarketingStrategy(customerId, config) {
const { businessType, conversionActions, hasDynamicFeed } = config;
const existingLists = await getRemarketingLists(customerId);
const conversionData = await getFunnelConversionData(customerId);
const strategy = {
segments: buildFunnelSegments(conversionData, businessType),
sequentialMessaging: designSequentialChains(conversionData),
dynamicRemarketing: hasDynamicFeed ? configureDynamic(customerId) : null,
rlsaStrategy: configureRLSA(conversionData),
frequencyCapping: optimizeFrequencyCaps(conversionData),
exclusions: buildExclusionMatrix(),
crossDeviceStrategy: configureCrossDevice(customerId)
};
return strategy;
}
function buildFunnelSegments(conversionData, businessType) {
const segments = [];
for (const [stage, config] of Object.entries(FUNNEL_SEGMENTS)) {
const windows = stage === 'BOTTOM'
? [1, 3, 7, 14]
: stage === 'MID'
? [7, 14, 30]
: [14, 30, 60, 90];
for (const window of windows) {
segments.push({
name: `${config.name} - ${window}d`,
funnelStage: stage,
membershipDuration: window,
rules: config.rules,
estimatedSize: estimateAudienceSize(conversionData, config.rules, window),
bidAdjustment: calculateBidAdjustment(stage, window),
messagingTheme: config.messagingStrategy
});
}
}
return segments;
}
function calculateBidAdjustment(stage, windowDays) {
const baseAdjustments = { TOP: 0, MID: 20, BOTTOM: 50, POST_CONVERSION: 15 };
const recencyBoost = Math.max(0, 30 - windowDays);
return `+${baseAdjustments[stage] + recencyBoost}%`;
}
連続メッセージ配信とダイナミックリマーケティング:
function designSequentialChains(conversionData) {
return {
newVisitorChain: [
{ day: 1, message: 'brand_introduction', creative: 'brand_video_15s', channel: 'youtube' },
{ day: 3, message: 'value_proposition', creative: 'benefit_display_ads', channel: 'display' },
{ day: 7, message: 'social_proof', creative: 'testimonial_ads', channel: 'display' },
{ day: 14, message: 'soft_cta', creative: 'content_offer', channel: 'demand_gen' }
],
cartAbandonerChain: [
{ hour: 1, message: 'cart_reminder', creative: 'dynamic_product_ads', channel: 'display' },
{ day: 1, message: 'urgency', creative: 'limited_stock_messaging', channel: 'display' },
{ day: 3, message: 'incentive', creative: 'discount_offer', channel: 'display' },
{ day: 7, message: 'alternative_products', creative: 'related_products', channel: 'display' }
],
customerRetentionChain: [
{ day: 30, message: 'thank_you', creative: 'loyalty_offer', channel: 'display' },
{ day: 60, message: 'cross_sell', creative: 'complementary_products', channel: 'display' },
{ day: 90, message: 'reactivation', creative: 'win_back_offer', channel: 'demand_gen' }
]
};
}
function configureDynamic(customerId) {
return {
feedRequirements: {
requiredAttributes: ['id', 'title', 'image_link', 'price', 'final_url'],
recommendedAttributes: ['sale_price', 'brand', 'custom_label'],
feedSource: 'merchant_center_or_custom'
},
templateStrategy: {
singleProduct: { layout: 'product_image_price_cta', bestFor: 'product_page_viewers' },
multiProduct: { layout: 'carousel_recently_viewed', bestFor: 'category_browsers' },
offerOverlay: { layout: 'product_with_promo_badge', bestFor: 'cart_abandoners_with_offer' }
},
responsiveDisplayAds: {
headlines: ['Come Back for {product_name}', 'Still Interested?', 'Don\'t Miss Out'],
descriptions: ['Complete your purchase today.', 'Limited stock available.'],
promotionText: 'Free shipping on orders over $50'
}
};
}
function configureRLSA(conversionData) {
return {
bidOnlyMode: {
audiences: ['all_visitors_30d', 'engaged_visitors_30d'],
bidAdjustments: {
all_visitors: '+15%',
engaged_visitors: '+30%',
cart_abandoners: '+50%'
},
useCase: 'Increase bids for past visitors on existing keywords'
},
targetAndBidMode: {
audiences: ['cart_abandoners_14d', 'past_purchasers_180d'],
additionalKeywords: ['broad_match_generic_terms'],
useCase: 'Show ads on broader queries only to high-intent past visitors'
}
};
}
function buildExclusionMatrix() {
return {
rules: [
{ campaign: 'prospecting', exclude: ['all_visitors_30d'] },
{ campaign: 'consideration_remarketing', exclude: ['converters_30d', 'top_of_funnel_only'] },
{ campaign: 'conversion_remarketing', exclude: ['converters_30d'] },
{ campaign: 'retention_remarketing', exclude: ['non_converters'] }
],
rationale: 'Prevent audience overlap to ensure each user receives funnel-appropriate messaging'
};
}
Buddy™ Agent との統合
リマーケティング戦略は、Buddy™ Agent におけるリテンションと再エンゲージメントのオーケストレーションレイヤーです。このプラットフォームは、オーディエンスリストの作成、メンバーシップ期間の管理、連続メッセージ配信の展開、フリークエンシーキャップの最適化という、リマーケティングのライフサイクル全体を自動化します。
Buddy™ はファネルの段階ごとにリマーケティングのパフォーマンスを監視し、戦略を自動調整します。セグメントのコンバージョン率が低下している(広告疲れの兆候)ことを検知すると、フリークエンシーキャップを引き下げ、クリエイティブを更新します。セグメントのパフォーマンスが好調な場合は、予算の増額とオーディエンスの拡大を提案します。
このスキルは、リスト作成を担うオーディエンスタゲティングスキル、リマーケティング用クリエイティブを担う広告コピー生成スキル、コンバージョン後のオーディエンスを正確に定義するためのコンバージョントラッキングスキルと緊密に連携します。Buddy™ は、ユーザーがリマーケティングファネルをどのように進み、どこでコンバージョンまたは離脱するかを示す、統合されたカスタマージャーニーのビューを提供します。
ベストプラクティス
- リマーケティングリストをファネルの段階ごとに分類し、すべての訪問者に同じメッセージを配信しないでください
- ファネル下部のオーディエンスには、緊急性を保つため、メンバーシップ期間を短く(7-14 日)設定してください
- 広告疲れを防ぐため、フリークエンシーキャップを設定してください(ほとんどのセグメントで 1 日あたり 3-5 回のインプレッション)
- ユーザーをコンバージョンへ段階的に導く、シーケンシャルなメッセージ配信を構築してください
- 無駄なインプレッションを防ぐため、獲得目的のリマーケティングから最近コンバージョンしたユーザーを除外してください
- e コマースではダイナミックリマーケティングを使い、ユーザーが閲覧した特定の商品を表示してください
- 購買意向の高いリマーケティングリストには、RLSA の入札単価を +30-50% 調整してください
- ファネルの各段階に専用の予算を割り当て、段階ごとに個別のリマーケティングキャンペーンを作成してください
- 広告疲れを軽減するため、4-6 週間ごとにリマーケティングのクリエイティブを更新してください
- デバイス間でメッセージの一貫性を保つため、クロスデバイスリマーケティング(ログインユーザー)を活用してください
プラットフォームの互換性
| プラットフォーム | 対応 |
|---|---|
| Claude Code | ✅ |
| Cursor | ✅ |
| Codex | ✅ |
| Gemini | ✅ |
関連スキル
- オーディエンスターゲティング - オーディエンスリストの作成とセグメント化により、リマーケティングリストの作成を強化します
- 広告コピーの生成 - シーケンシャルなリマーケティングメッセージには、ファネルの段階ごとに調整した広告クリエイティブが必要です
- コンバージョントラッキング - 正確なコンバージョンイベントによって、コンバージョン後のオーディエンスの範囲が決まります
- エンティティメモリー管理 - セッションをまたいでリマーケティングファネルのパフォーマンスとオーディエンスの行動を追跡します
キーワード
リマーケティング戦略、リターゲティング、RLSA、ダイナミックリマーケティング、オーディエンスのセグメント化、フリークエンシーキャップ、シーケンシャルなメッセージ配信、カスタマージャーニー、クロスデバイスリマーケティング、リマーケティングリスト、カート放棄、ファネルリマーケティング、ディスプレイリマーケティング、YouTube リマーケティング、リマーケティングのベストプラクティス
© 2026 googleadsagent.ai™ | Agent Skills™ | MIT License