@extends('layouts.app') @push('scripts') @endpush @section('content')
Campaign Type: Search Partners
Date Range: {{ $report->start_date }} / {{ $report->end_date }}
Google Ads ID: {{ $report->customer->getMaskingCustomerId() }}
Account Name: {{ $report->customer->name }}

Aggregate Stats

All Keywords accross all Search Campaigns

Total Spend: {{ $report->currency_code }}@money($report->campaigns->getTotalSpend(), 0)
Total #Conversions: {{ number_format($report->campaigns->getTotalConversions(), 0) }}
# Active Keywords: {{ $report->aggregateStats->keyword_count }}
# Active Keywords with spend of at least {{ $report->currency_code }}1 spend: {{ $report->aggregateStats->keywords_greater_1_spend }}
# Active Keywords with 1 or more conversions: {{ $report->aggregateStats->keywords_with_conversions }}
# Active Keywords with 0 conversions: {{ $report->aggregateStats->keywords_0_conversions }}
Average cost per conversion: {{ $report->currency_code }}@money($report->campaigns->getAverageCostPerConversion())
Average conversion rate: @percent($report->campaigns->getAverageConversionRate())
Average CTR: @percent($report->campaigns->getAverageCtr())

Keyword Findings

Findings on Inneffective Spend

{{ $report->currency_code }}@money($report->keywordsWithNoConversions->no_conversions, 0) (@number($report->keywordsWithNoConversions->percent_of_total_spend, 0)% of total spend) was spent on Keywords that resulted in NO conversions.

  • {{ $report->currency_code }}@money($report->topTenKeywordsWithNoConversions->cost, 0) of this was spent on 10 keywords that have a decent volume of clicks, but are not getting any conversions.
@if ($report->keywordsWithCostAndImpressions->cost !== null)

Another {{ $report->currency_code }}@money($report->keywordsWithCostAndImpressions->cost, 0) (@number($report->keywordsWithCostAndImpressions->percent_of_total_spend, 0)% of total spend) was spent on {{ $report->keywordsWithCostAndImpressions->keyword_count }} keywords that drove @number($report->keywordsWithCostAndImpressions->conversions, 0) conversions, but at a {{ $report->currency_code }}@money($report->keywordsWithCostAndImpressions->cost_per_conversion) cost per conversion, which is 86% higher than your {{ $report->currency_code }}@money($report->keywordsWithNoConversions->av_cost_per_conversion) average cost per conversion. That's {{ $report->currency_code }}@money(round($report->keywordsWithCostAndImpressions->cost, 2) - ($report->keywordsWithCostAndImpressions->conversions * round($report->keywordsWithNoConversions->av_cost_per_conversion, 0)), 0) in extra spend.

  • The # of clicks for these {{ $report->keywordsWithCostAndImpressions->keyword_count }} keywords ranges from @number($report->keywordsWithCostAndImpressions->min_clicks, 0) to @number($report->keywordsWithCostAndImpressions->max_clicks, 0), so these keyword don’t appear to be cost-effective or scalable.

Based on these findings alone, you could reallocate @percent($report->keywordsWithNoConversions->percent_of_total_spend + $report->keywordsWithCostAndImpressions->percent_of_total_spend, 0) of your ad spend to be more effective.

@endif

Findings on Broad Match vs Phrase Match Keywords

Keyword Match Type Insights
@foreach ($report->keywordsMatchTypeInsights->keywords as $keywordMatchTypeInsight)

{{ Str::title($keywordMatchTypeInsight->keyword_match_type) }} Match

  • Total Spend: {{ $report->currency_code }}@money($keywordMatchTypeInsight->cost, 0)
  • Total Conversions: @number($keywordMatchTypeInsight->conversions, 0)
  • Average Cost per Conversion: {{ $report->currency_code }}@money($keywordMatchTypeInsight->cost_per_conversion)
@endforeach
@if ($report->keywordsMatchTypeInsights->first->cost_per_conversion > 0 && $report->keywordsMatchTypeInsights->last->cost_per_conversion > 0)

Your {{ Str::title($report->keywordsMatchTypeInsights->first->keyword_match_type) }} Match keywords are getting you conversions for @percent($report->keywordsMatchTypeInsights->percent_per_conversion, 0) less cost per conversion than your {{ Str::title($report->keywordsMatchTypeInsights->last->keyword_match_type) }} Match keywords ({{ $report->currency_code }}@money($report->keywordsMatchTypeInsights->first->cost_per_conversion) vs. {{ $report->currency_code }}@money($report->keywordsMatchTypeInsights->last->cost_per_conversion))

@endif @if($report->keywordsMatchTypeInsights->first->cost_per_conversion > 0 && $report->keywordsMatchTypeInsights->last->cost_per_conversion > 0)

If you reallocated your {{ $report->currency_code }}@money($report->keywordsMatchTypeInsights->last->cost, 0) spend from {{ Str::title($report->keywordsMatchTypeInsights->last->keyword_match_type) }} Match keywords to {{ Str::title($report->keywordsMatchTypeInsights->first->keyword_match_type) }} Match keywords, you could get {{ $report->keywordsMatchTypeInsights->reallocated_conversions }} more conversions (assuming cost per conversion holds steady).

@else

If you reallocated your {{ $report->currency_code }}@money($report->campaigns->getTotalSpend() - $report->keywordsMatchTypeInsights->last->cost, 0) spend from to Broad Match keywords, you could get {{ $report->keywordsMatchTypeInsights->second_reallocated_conversions }} more conversions (assuming cost per conversion holds steady).

@endif
@if ($report->costOfConversions->top->cost_per_conversion > 0 && $report->costOfConversions->bottom->cost_per_conversion > 0)

Findings on Top 25% vs Bottom 25%: Cost of Conversions

  • Top 25% Keywords by Cost per Conversion: {{ $report->costOfConversions->top->keyword_count }} keywords accounted for @percent($report->costOfConversions->top_conversion_summary_percentage, 0) of all conversions ({{ number_format($report->costOfConversions->top->conversions, 0) }} out of {{ number_format($report->costOfConversions->summary->conversions, 0) }}). You spent {{ $report->currency_code }}@money($report->costOfConversions->top->cost, 0) on acquiring these {{ number_format($report->costOfConversions->top->conversions, 0) }} conversions.
    • {{ $report->currency_code }}@money($report->costOfConversions->top->cost_per_conversion) cost per conversion, @percent($report->costOfConversions->top->percent_cost_per_conversion, 0) less costly than your {{ $report->currency_code }}@money($report->costOfConversions->summary->cost_per_conversion) average cost per conversion
    • You spent {{ $report->currency_code }}@money($report->costOfConversions->top->cost, 0) (@percent($report->costOfConversions->top->percent_of_total_spend, 0) of your total spend) to acquire this @percent($report->costOfConversions->top->percent_of_conversions, 0) of your conversions.
  • Bottom 25% Keywords by Cost per Conversion: {{ $report->costOfConversions->limit }} keywords accounted for @percent($report->costOfConversions->bottom_conversion_summary_percentage, 0) of all conversions ({{ number_format($report->costOfConversions->bottom->conversions, 0) }} out of {{ number_format($report->costOfConversions->summary->conversions, 0) }}). You spent {{ $report->currency_code }}@money($report->costOfConversions->bottom->cost, 0) on acquiring these {{ number_format($report->costOfConversions->bottom->conversions, 0) }} conversions.
    • {{ $report->currency_code }}@money($report->costOfConversions->bottom->cost_per_conversion) cost per conversion, @percent($report->costOfConversions->bottom->percent_cost_per_conversion, 0) more costly than your {{ $report->currency_code }}@money($report->costOfConversions->summary->cost_per_conversion) average cost per conversion
    • You spent {{ $report->currency_code }}@money($report->costOfConversions->bottom->cost, 0) (@percent($report->costOfConversions->bottom->percent_of_total_spend, 0) of your total spend) to acquire this @percent($report->costOfConversions->bottom->percent_of_conversions, 0) of your conversions.

Reallocate your budget to the better performing keywords to get many more conversions for your same budget.

@endif

Conversion Rate Optimization Impact

  • Your current overall conversion rate is @percent($report->campaigns->getAverageConversionRate()).

Lifting your conversion rate to @percent($report->conversionRateOptimization->lifting_conversion_rate_percentage) (up @number($report->conversionRateOptimization->lifting_conversion_rate_up), or 20%) would mean @number($report->conversionRateOptimization->additional_conversions, 0) additional conversions (@percent($report->conversionRateOptimization->additional_conversions_percentage) additional conversions) on your current budget, if you made no other changes suggested above

Campaign Findings

    @if ($report->campaignFinding->campaignA)
  • The campaign "{{ $report->campaignFinding->campaignA->campaign_name }}" generated @number($report->campaignFinding->campaignA->conversions, 0) conversions at a {{ $report->currency_code }}@money($report->campaignFinding->campaignA->cost_per_conversion) average cost per conversion
  • @endif @if ($report->campaignFinding->campaignB)
  • The campaign "{{ $report->campaignFinding->campaignB->campaign_name }}" generated @number($report->campaignFinding->campaignB->conversions, 0) conversions at a {{ $report->currency_code }}@money($report->campaignFinding->campaignB->cost_per_conversion) average cost per conversion
  • @endif @if ($report->campaignFinding->campaignA && $report->campaignFinding->campaignB)
  • If you reallocate the {{ $report->currency_code }}@money($report->campaignFinding->campaignA->cost) spent from "{{ $report->campaignFinding->campaignA->campaign_name }}" to "{{ $report->campaignFinding->campaignB->campaign_name }}", you would get @number(abs($report->campaignFinding->campaignA->conversions - $report->campaignFinding->campaignB->conversions), 0) more leads from that same budget (@number($report->campaignFinding->campaignA->conversions, 0) vs @number($report->campaignFinding->campaignB->conversions, 0)) assuming the numbers scaled consistently
  • @endif @if ($report->campaignFinding->campaignB && $report->campaignFinding->campaignA)
  • The campaign "{{ $report->campaignFinding->campaignB->campaign_name }}" generated conversions @percent($report->campaignFinding->campaignABConversions) cheaper than the campaign "{{ $report->campaignFinding->campaignA->campaign_name }}"
  • @endif @if ($report->campaignFinding->campaignC)
  • The campaign "{{ $report->campaignFinding->campaignC->campaign_name }}" generated 1 conversion at a {{ $report->currency_code }}@money($report->campaignFinding->campaignC->cost_per_conversion) cost per conversion. This is inefficient, consider turning off.
  • @endif @if ($report->campaignFinding->campaignD && $report->campaignFinding->campaignB)
  • From a cost per conversion standpoint, your best performing campaigns are campaign "{{ $report->campaignFinding->campaignD->campaign_name }}" and campaign "{{ $report->campaignFinding->campaignB->campaign_name }}"
  • @endif @if ($report->campaignFinding->campaignE)
  • The CTR on the campaign "{{ $report->campaignFinding->campaignE->campaign_name }}" is less than half of your average CTR. Consider updating the ad copy.
  • @endif

Health Check Findings

  • Dynamic Ad Headlines & Copy:
  • Target CPA
    @if (Arr::get($biddingStrategy, 'TARGET_CPA', 0) > Arr::get($biddingStrategy, 'MAXIMIZE_CONVERSIONS', 0)) @else @endif You have {{ Arr::get($biddingStrategy, 'TARGET_CPA', 0) }} campaigns that Target CPA and {{ Arr::get($biddingStrategy, 'MAXIMIZE_CONVERSIONS', 0) }} campaigns that maximize conversions. Additionally the other campaign strategy types you have @php $filtered = Arr::where($biddingStrategy, function ($value, $key) { return !in_array($key, ['TARGET_CPA', 'MAXIMIZE_CONVERSIONS']); }); $mapped = Arr::map($filtered, function ($value, $key) { return Str::of($key)->replace('_', ' ')->title() . ' (' . $value . ')'; }); $text = implode(' AND ', $mapped); @endphp @if (count($mapped) == 1) is @else are @endif {{ $text }}
  • Google Analytics GA4 Integration:
  • Negative Keywords:
    @if (($negativeKeywordTotal = $report->negativeKeywords()->count()) > 0) @else @endif You have {{ number_format($negativeKeywordTotal, 0) }} negative keywords.
  • Conversion Tracking:
  • Location Targeting:
  • Audience Targeting:
@endsection