Bulk-uploads webinterface (AdWords): verschil tussen versies

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen
Regel 81: Regel 81:
  
 
Dubbele aanhalingstekens (namen AdGroups, keywords), moet je escapen door er een drie aanhalingstekens van te maken.
 
Dubbele aanhalingstekens (namen AdGroups, keywords), moet je escapen door er een drie aanhalingstekens van te maken.
 +
 +
Voorbeeld hoe ik dat in juni 2020 heb gedaan:
 +
 +
<pre>
 +
CREATE DEFINER=`root`@`localhost` PROCEDURE `export_set_escape_codes`(in tblname tinytext )
 +
BEGIN
 +
#
 +
# Escape NULL & " (for Google Ads) - Last updated: June 2020
 +
######################################################################################################################################
 +
#
 +
# * Beautifully simple code :)
 +
# * Where-clause should include db-name. Otherwise columns from other databases will be included!
 +
# * Tinytext: Up to 255 characters - That's plenty
 +
#
 +
#
 +
######################################################################################################################################
 +
# Replace null with "" - Form DDL-string
 +
######################################################################################################################################
 +
#
 +
#
 +
set @string_01=concat
 +
(
 +
"Update ",tblname," set ",
 +
(
 +
select group_concat(column_name,"=ifnull(",column_name,",'')")
 +
        from information_schema.columns
 +
        where table_name=tblname and table_schema=database()
 +
    )
 +
    ,";"
 +
);
 +
 +
# The ddl code above, expanded
 +
##############################################################3
 +
#
 +
# Update adgroup
 +
# set
 +
#    campaign_name=ifnull(campaign_name,''),
 +
#    adgroup_name=ifnull(adgroup_name,''),
 +
#    adgroup_status=ifnull(adgroup_status,''),
 +
#    currency_code=ifnull(currency_code,''),
 +
#    max_cpc=ifnull(max_cpc,''),
 +
#    adgroup_type=ifnull(adgroup_type,''),
 +
#    sort_order=ifnull(sort_order,'');
 +
#
 +
 +
 +
######################################################################################################################################
 +
# Replace " with """ - Form DDL-string
 +
######################################################################################################################################
 +
#
 +
#
 +
set @r0=char(34);
 +
set @r1=concat(char(34), char(34), char(34));
 +
 +
set @string_02=concat
 +
(
 +
"Update ",tblname," set ",
 +
(
 +
select group_concat(column_name,"=replace(",column_name,", '", @r0,"', '", @r1, "')")
 +
        from information_schema.columns
 +
        where table_name=tblname and table_schema=database()
 +
    )
 +
    ,";"
 +
);
 +
 +
######################################################################################################################################
 +
# Check
 +
######################################################################################################################################
 +
#
 +
select @string_01;
 +
select @string_02;
 +
 +
 +
######################################################################################################################################
 +
# Execute
 +
######################################################################################################################################
 +
#
 +
prepare ps1 from @string_01;
 +
execute ps1;
 +
drop prepare ps1;
 +
 +
 +
prepare ps2 from @string_02;
 +
execute ps2;
 +
drop prepare ps2;
 +
 +
END
 +
</pre>
  
 
== Zie ook ==
 
== Zie ook ==
  
 
* [[Non-standard characters (Google Ads)]]
 
* [[Non-standard characters (Google Ads)]]

Versie van 4 jun 2020 12:09

Ooit in het tweede decennium van deze eeuw (of misschien wel eerder), was de AdWords Editor de aangewezen manier om wijzigingen in bulk aan te brengen. Tegen het eind van dat decennium, werd de AdWords Editor niet langer bijgehouden. Het kon bv. niet overweg met de aangepast opmaak van advertenties die vanaf ca. 2019 actief werden.

Gelukkig kun je tegenwoordig via de webinterface instellingen in bulk uploaden. Op de verschillende schermen vind je onder de knop Edit de mogelijkheden om sjablonen te down- en te uploaden.

Bestandsformaat

Bestandsformaat is een fluitje van een cent.

Vanuit LibreOffice Calc

  • De standaardinstellingen voldoen (komma als scheidingsteken; Tekstvelden omsloten met weet-ik-veel-wat; UTF8)
  • Mijn favoriete instellingen voldoen gelukkig ook (tab als scheidingsteken; Tekstvelden optioneel omsloten; UTF8).

Geldbedragen: Punt als decimaalscheidingsteken; Geen valuta-symbool. Waarschijnlijk het handigste om bij het invullen van het sjabloon, geldbedragen als tekst in te voeren en niet als getallen.

Vanuit MySQL

Bv.:

"select
	*
from
	campaign
order by
	sort_order
into outfile
	'",
	@file_name,"'
character set
	utf8
fields terminated by
	'\t'
escaped by
	''    
lines terminated by
	'\n';"

Sjabloon downloaden

Ga in Google Ads naar de entiteit waarvan je wilt weten hoe het sjabloon eruit ziet (bv. AdGroup), en download die entiteit. Dat werkt ook als de entiteit leeg is.

Voorbeeld: AdGroup (sep. 2019 - In mei 2020 leek dit nog steeds actueel te zijn):

Ad group report
All time
Ad group status,Ad group,Status,Currency code,Default max. CPC,Ad group type,Clicks,Impr.,CTR,Currency code,Avg. CPC,Cost
Total: Account,,,,,,0,0, --,EUR, --,0.00

Kenmerken:

  • UTF-8
  • Komma-gescheiden
  • Punt als decimaalcheidingsteken

Hoe het werkt

AdGroups: Alle velden om een AdGroup te specificeren. Kolomnamen overgenomen uit gedownloade sjabloon
Alles op één regel: Dit geeft een foutmelding, omdat AdWords niet weet welke entiteit je wilt aanpassen
Compleet voorbeeld: Dit werkt super: Verschillende entiteiten op verschillende regels; Lege kolommen geen probleem; Kolommen met 'interne' gegevens ook geen probleem; Al verwerkte gegevens opnieuw uploaden ook geen probleem

Herhaaldelijk hetzelfde bestand uploaden?

Het is geen probleem om herhaaldelijk hetzelfde document te uploaden.

In juni 2020 uploadde ik een document met 1.600 AdGroups. De eerste 200 werden geweigerd met een foutmelding An error has occured, try again later. Toen ik tien minuten later het document opnieuw uploadde, waren alle 1.600 Adgroups aanwezig.

Dit is nog een fractie interessanter: An error has occured. Please try again later en ook nog niets geüpload!

Escape dubbele aanhalingstekens (juni 2020)

Uploads Google Ads: Dubbele aanhalingstekens escapen door ze te omhullen in dubbele aanhalingstekens

Dubbele aanhalingstekens (namen AdGroups, keywords), moet je escapen door er een drie aanhalingstekens van te maken.

Voorbeeld hoe ik dat in juni 2020 heb gedaan:

CREATE DEFINER=`root`@`localhost` PROCEDURE `export_set_escape_codes`(in tblname tinytext )
BEGIN
#
# Escape NULL & " (for Google Ads) - Last updated: June 2020
######################################################################################################################################
#
# * Beautifully simple code :)
# * Where-clause should include db-name. Otherwise columns from other databases will be included!
# * Tinytext: Up to 255 characters - That's plenty
#
#
######################################################################################################################################
# Replace null with "" - Form DDL-string
######################################################################################################################################
#
#
set @string_01=concat
(
	"Update ",tblname," set ",
	(
		select group_concat(column_name,"=ifnull(",column_name,",'')")
        from information_schema.columns 
        where table_name=tblname and table_schema=database()
    )
    ,";"
 );

# The ddl code above, expanded
##############################################################3
#
# Update adgroup 
# set 
#    campaign_name=ifnull(campaign_name,''),
#    adgroup_name=ifnull(adgroup_name,''),
#    adgroup_status=ifnull(adgroup_status,''),
#    currency_code=ifnull(currency_code,''),
#    max_cpc=ifnull(max_cpc,''),
#    adgroup_type=ifnull(adgroup_type,''),
#    sort_order=ifnull(sort_order,'');
#


######################################################################################################################################
# Replace " with """ - Form DDL-string
######################################################################################################################################
#
#
set @r0=char(34);
set @r1=concat(char(34), char(34), char(34));

set @string_02=concat
(
	"Update ",tblname," set ",
	(
		select group_concat(column_name,"=replace(",column_name,", '", @r0,"', '", @r1, "')")
        from information_schema.columns 
        where table_name=tblname and table_schema=database()
    )
    ,";"
 );
 
######################################################################################################################################
# Check
######################################################################################################################################
#
select @string_01;
select @string_02;


######################################################################################################################################
# Execute
######################################################################################################################################
#
prepare ps1 from @string_01;
execute ps1;
drop prepare ps1;


prepare ps2 from @string_02;
execute ps2;
drop prepare ps2;

END

Zie ook