← Ridwan Yahya’s portfolio Demo — sample data, not client data
Sample logo

ROASCheck

Ad & Donation Report | Channel ID | Campaign Mapping

1 Upload & configure
2 Review mapping
3 Dashboard

Upload Meta ad data (multiple files / different accounts are fine)

Or drop files here
.xlsx / .csv / .txt

Upload website donation data (multiple files / different sites are fine)

Or drop files here
.xlsx / .csv / .txt

Column mapping

Review mapping: campaign → program

Change a dropdown and the donation count and amount update straight away
Campaign (ads file)→ Program (donations file)ConfidenceDonationsNominal
Spent (Rp)
Rp0
Total ad spend
Cost / donation
Rp0
Spend / successful ad donations
Successful (all)
Rp0
All channels
Successful (ads)
Rp0
Ad channel
Successful (non-ads)
Rp0
Organic + WhatsApp
Pending All
Rp0
All channels
Pending (ads)
Rp0
Ad channel
ROAS on successful ad donations
0x
Successful ad donations / spend
ROAS on all ad donations
0x
All ad donations / spend
Donation count
0
Avg: Rp0
Donations vs budget

🧠 Performance analysis

    Recommendations
    Donation forecast (next 7 days)

    Forecast & insight

      Daily recap (aggregated per day)
      Source: Donations & amount = successful ad-channel transactions by donation date. Budget = spend by date (Meta). ROAS = Nominal/Budget, CPA = Budget/Donations.
      DateDonationsNominalBudgetROASCPAStatus
      Daily charts
      Per Campaign (Matched Only)
      Source: Meta ROAS = conversion value (the pixel’s claim) / budget, from Meta. Real ROAS = real donations (utm_campaign match) / budget, from Donasiaja. No UTM = No Data.
      Campaigns across accounts: when one campaign name runs in more than one ad account (say conv food pkt across two accounts), the rows are merged — budget, conversions and donations are the total of all of them, while the Ad account column shows only one. Real donations cannot be split per account, because UTM carries no account information.
      CampaignAd accountAdds to CartConversion ValueBudgetROAS MetaReal donationsROAS RealStatus
      All programs (ads + non-ads)
      Source: Every donation per program (from the donation platform file), across all channels — not only ads.
      Programs with no ads behind them still appear (scroll down)
      ProgramDonationsNominalAvg Nominal
      All creatives / ads (scrollable)
      Source: Same as campaign, but per ad. Real ROAS needs both utm_campaign and utm_content to match.
      Every creative from every campaign — scroll for more
      CreativeCampaignAd accountBudgetConversion ValueROAS MetaReal donationsROAS RealEffectiveness
      By channel (fundraiser name)
      Rule: "digital channel" = Ads | "volunteer"/"volunteer head office" = WhatsApp | Blank = Organic | "head office" exact = Exclude
      ChannelDonationsNominalAvg donation

      Processing...