"In short, I'm usually good at tactics" - most of what you wrote up to that point kinda does contradict that: Your attacks are easily rebuffed, you cannot easily find attacking moves, and you fail to correctly predict your opponent's answers.
You have to understand that strategy and tactics go hand in hand. Good strategy uses tactical threats to force your opponent to make tradeoffs, and good tactics are almost always prepared by strategically placing the pieces in supportive positions.
My guess is that what you were trying to say is that you are good at solving tactical puzzles where someone else already placed the pieces for you and you just have to find the mate in two or three. Now the question is how to get there, right? For this, try to expand the scope of the puzzles, e.g. try to find mates in 4 or 5 or try tactical problems where the goal is not to mate, but just to win a piece or even just a pawn. And do a lot of these puzzles, the more the better. To improve at "attacking play" you MUST practice how these attacks actually play out. Chess skill is mostly about learning and applying patterns.
Maybe counterintuitively, deeping your tactical understanding will improve your strategical play as well! The better you start recognizing the patterns from your tactical knowledge, the further you will be able to think ahead - hopefully further than your opponent. It works in both ways: On the defense, you might spot sooner that your position is weak to certain tactical motives - before your opponent can actually line up his pieces to exploit this instead of when the attack starts and it's too late. On the offense, you might spot the weaknesses to certain motives in his position and base your strategy around that (pressuring weak points in a way to force him to make concessions elsewhere because he needs to redirect his defenders).
I personally used the IdeaTactics app during an almost 10 year long hiatus where I only did puzzles frequently while waiting for the bus etc., but did not play on-the-board at all. And I have to say that I am much better now that I started playing for real again, especially in the department of strategy! Of course, real games are good practice too, and you don't have to use this specific app (there are loads that do the same with the same quality). Good luck!
Comment to your analysis
Thanks for explaining your thoughts a little more! I have some thoughts about some of the moves, as well as your general strategy.
1-4: The opening is the Scotch, not the Italian Game (but who cares how it is called, this is just for clarification).
5+6: Good moves that delay his development.
6: While it generally is advisable to castle early, did you have in mind that the game tends to be a lot sharper when both players castled on opposite sides? Sometimes it is better to delay castling to see which side your opponent chooses. Since the queens are already off the board, your king is much safer from sudden mate attacks and can be allowed to remain in the middle for a few more moves. Castling here isn't bad, but it has implications. I would suggest 6.. Be7 first, development + coverage for g5).
7: Unfortunately, you don't give an explanation for Rd7. That move does nothing for your position at all except that it allows White a light pin on your knight in the next move. Where you scared about the possible fork on f7 and wanted to be sure? You didn't have to, because White had no way to attack f7 with another piece anytime soon (the queen was already gone and your bishop prevented his bishop to use the traditional Bc4. And Be2 can be met with Nf6 to control the h5 square while developing). To avoid the isolated doubled pawns, you probably have to play Re8, even though this loses the open d file for now (if Rd6, then Be3, threating Bc5).
9-11: Nothing to complain about.
12+13: The move b5 contradicts your plan from one move before: You force the white bishop to cover c2. Doubling his pawns on b3 might look nice, but it comes at the cost of opening your king's defense. Although, as mentioned, without queens you have a bit more freedom in that regard and your king is not threatened yet.
14+15: Good moves, put pressure onto your opponent.
16: Now your king is completely open. I see your idea, if White takes on c5, you can develop your bishop, free your rook on h8 and attack his knight. But of course he is smart enough to see it. Still, no harm so far.
17: Again, you completely step away from your plan from one move before. Remember, you wanted him to take on c5. Why destroy the bait now? Maybe you started feeling the lacking safety of your king, and indeed, he now has the option to pin your pawn with Rc1. You can however catch two flies with one hit: Kb7 not only moves your king out of the soon-to-be-open c file, but also covers the a6 pawn that will be undefended after the exchange on b4, which you can then still do next move with added safety.
18-20: The little combination looks fancy, but it is a terrible exchange in hindsight and the turning point of the game in my opinion. His knight was totally useless on e3 (virtually all of its forward moves are covered - even after it relocates to c2). Meanwhile, your bishop, even though still undeveloped at this point, isn't bad at all: It is a possible defender of d5, it can be used to attack his weak link on e3 some more (likely preventing him from castling) - while at the same time continue to put pressure on b4. Worse, the whole exchange frees White's own bishop to immediately pounce on d5. Your poor pawn structure was up to this point compensated by better piece activity, and you deliberately threw that compensation away. I'd still recommend Kb7 here. General rule of thumb: On the attack, you should not want to swap (unless you can force a mate/material winning combination by doing so) - after all, who is going to continue the attack when the attacking pieces are gone?
21: You felt like you had the momentum - big misconception. You just lost it without noticing, and have to start organising your defense now. You will lose either a6 or d5, but you won the pawn on b4 before, so that's okay. b4 does nothing for you, that bishop wanted to take on d5 anyways. Pressuring the opponent to do moves he intented anyways is not pressure at all.
22+23: Damn, if only your king had been on b7 already, then these moves would have been really cool and turned the game into a win once more.
24: Unfortunately, you have to move your king. I agree that your choice of Kb7 is better than Kd7 despite losing e6 as it doesn't open the king to checks from the rook on h1.
25-26: Reasonable, his bishop was much stronger than your knight.
Rest of the game: Let's face it, at this point you have lost anyways because of this reserve pawns on the kingside. Still, one last misplay before it could come to that, the promotion race. After 32 e7, you both have a similar situation: One rook blocking the enemy pawn, one protecting the own one from the side. You even had the additional advantage that your defending rook attacked his pawn at the same time. So how comes that..
..he hold off your promotion attempts with just one rook? Simple.. he never moved it away from the blocking position. To get past that block, you need at least one of your own rooks (to attack him from the side while covered by the pawn) and either the king or the other rook (to meanwhile defend the pawn).
..and got his promotion done using the other? With a little help from you. You did move your rook away from the blocking square. This greatly facilitates the described method: If he plays Rf7 and Rf8, with your rook still at e8, he only creates one threat (taking your rook with his) and you can simply take on e7 with the attacked rook, nullifying the threat. But after you moved the rook to b8, Rf8 actually creates two threats: Taking on b8 and promoting on e8. You can't cover both with the same rook, as now the attacked rook cannot take the pawn. The other rook is actually meaningless in this situation!
You could have resolved this particular problem earlier with 32 ..Rxe7, but you would have lost the resulting single rook endgame regardless. Maybe with slightly improved odds because your king would have been closer to the kingside compared to the continuation that happened in the game.
There were many good aspects in your play already, so don't give up hope! I also got a much better perspective on why you think you are lacking in the strategy department (correct observation). I think you still live too much in the here-and-now and do not consider longer lasting effects of your moves as much as you should. This goes hand in hand with how you evaluate the pieces (or don't). To you, you swapped two minor pieces (both 3 pawn units, so equal value) and got a pawn out of it (yay). What actually happened is that you swapped one vital of your own pieces for a useless piece of your opponent and a pawn, only to loose 2-3 pawns immediately afterwards as a consequence.
Thus my main advice is to push yourself to a different state of mind:
It is not important what a piece is, or where it is, what truly matters is where it can go. That knight on e3 was bad because it couldn't go anywhere useful soon. Your move 6 ..Be6 was good because now the white bishop on c1 couldn't easily go to a useful square (f7) anymore. This extends not only to the squares that a piece can directly reach, but also those where it can reasonably be without hindrance (e.g. the Be3-Bc5 manoevre to counter 8..Rd6).
If you look at squares rather than pieces, you can develop much better plans by going backwards: Think of the squares in your opponent's structure that you would like to control. Then backtrack and make a plan of how to get your pieces there. Your calculation skills seem to be quite decent, so you can make use of that. If you spot a structure that is vulnerable to some kind of tactic, think of how you can get your pieces into positions where you could actually execute said tactic. Or how your opponent can get stuff into position towards your own weaknesses, even before he starts doing it.
Also, don't be impatient if your opponent finds the right answers to deflect your threats. That does happen. If both opponents play perfectly for the entire game, it will end in a draw. Don't try to force things when they are not there. And remember that chess is a game of tradeoffs: If your opponent replaced a piece to cover a square that you threatened to attack, that piece now does not cover other squares anymore. Maybe you can now attack there?
All of this comes from experience. If you lose again and again because you moved your pawns away from your king, your brain will get the message at some point (as long as you correctly assess your mistakes). So if you want to get better, play, play, play. And look at your games afterwards to see where you went wrong! The best way to do this is in a club with better players that can guide you (you can't put all your games on StackExchange :P).