Invitation Expired

2019-08-20 Thread Van Vu
Hi team,
I've got a MCC and whitelisting work  Email sent to merchant but they 
forgot to accept until it expired
Currently I have to re-send the invites manually. Is there anyway to do 
this via API ?

[image: invites.jpg]
Cheers,
Van

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog:
https://googleadsdeveloper.blogspot.com/
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

You received this message because you are subscribed to the Google
Groups "AdWords API and Google Ads API Forum" group.
To post to this group, send email to adwords-api@googlegroups.com
To unsubscribe from this group, send email to
adwords-api+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/adwords-api?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"AdWords API and Google Ads API Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to adwords-api+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/adwords-api/5c20b35e-5853-4d0d-bdec-9b389e652242%40googlegroups.com.


Re: Campaign and Product performance report

2019-05-22 Thread Van Vu
Thank you, lemme give it a go

On Tuesday, 21 May 2019 16:25:07 UTC+10, adsapiforumadvisor wrote:
>
> Hi Van,
>
> Yes, the GAQL you have prepared should already return output that is 
> similar to the (custom) tables in your screenshots. However, if you will be 
> comparing the Google Ads API reports to the Google Ads UI reports, the 
> campaign resource should map directly to the campaigns tab.
>
> As for the shopping report, the segments you choose may depend on which 
> shopping (pre-defined reports) view you access in the Google Ads UI.
>
> Thanks and regards,
> Peter
> Google Ads API Team
>
> ref:_00D1U1174p._5001UAqCUL:ref

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog:
https://googleadsdeveloper.blogspot.com/
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

You received this message because you are subscribed to the Google
Groups "AdWords API and Google Ads API Forum" group.
To post to this group, send email to adwords-api@googlegroups.com
To unsubscribe from this group, send email to
adwords-api+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/adwords-api?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"AdWords API and Google Ads API Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to adwords-api+unsubscr...@googlegroups.com.
Visit this group at https://groups.google.com/group/adwords-api.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/adwords-api/6f5d4862-65f3-46df-985a-55bfef28a7db%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Campaign and Product performance report

2019-05-20 Thread Van Vu
Hi there,
I'm really new to Google Ads report, I was tasked to produce the tables 
below but have no idea if the query is correct or not. 
Please advise whether my query could map 1-1 to the table fields, 
especially the FROM resource

*1- Campaign report*
[image: campaign.jpg]

The query: 
SELECT campaign.id, 

campaign.name,

campaign.campaign_budget 

metrics.impressions, 

metrics.clicks, 

metrics.conversions, 

metrics.all_conversions_value, 

metrics.cost_per_conversion, 

metrics.cost_micros

FROM *campaign* 
WHERE segments.date DURING LAST_30_DAYS

*2- Product report*
[image: product.jpg]

The query: 
SELECT segments.product_merchant_id, campaign.id,

segments.product_title

metrics.impressions,

metrics.clicks, 

metrics.conversions, 

metrics.all_conversions_value, 

metrics.cost_per_conversion, 

metrics.cost_micros 

FROM *shopping_performance_view*


-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog:
https://googleadsdeveloper.blogspot.com/
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

You received this message because you are subscribed to the Google
Groups "AdWords API and Google Ads API Forum" group.
To post to this group, send email to adwords-api@googlegroups.com
To unsubscribe from this group, send email to
adwords-api+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/adwords-api?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"AdWords API and Google Ads API Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to adwords-api+unsubscr...@googlegroups.com.
Visit this group at https://groups.google.com/group/adwords-api.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/adwords-api/f0bfd16d-5490-4d5d-bf1b-6ce76df4cf98%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Operations on different kinds of entities in a single request

2019-05-04 Thread Van Vu
Hi Vitaly,
I joined the GoogleAds workshop recently and tried to do exactly what you 
want: *create a complete hierarchy of entities (budget-campaigns-ad 
groups-ads-keywords) for a newly created managed account*

My answer is Yes, you can create the complete Campaign hierarchy in one 
operation. Below is what I found:

1- Order of the operation that you put into List is 
important: CampaignBudgetOperation --> CampaignOperation --> 
AdGroupOperation --> AdGroupAdOperation --> AdGroupCriterionOperation
2- Use different temporary Ids for new resource:
CampaignBudget resourcename = customers/12345/campaignBudgets/ *-1* 
Campaign resourcename = customers/12345/campaigns/ *-2*
AgGroup resourcename = customers/12345/adGroups/ *-3*

Below is the pseudo code in .NET but you'll get the idea:

var googleAdsService = 
client.GetService(Google.Ads.GoogleAds.Services.V1.GoogleAdsService);

googleAdsService.Mutate(googleAdsId, new List

{
new MutateOperation
{
CampaignBudgetOperation = new 
CampaignBudgetOperation
{
Create = new CampaignBudget {  ResourceName 
= "customers/12345/campaignBudgets/*-1"*, ... }
},
new MutateOperation
{
CampaignOperation = new CampaignOperation
{
Create = new Campaign { ResourceName = 
"customers/12345/campaigns/ *-2", *CampaignBudget = 
"customers/12345/campaignBudgets/*-1"* }
}
},
new MutateOperation
{
AdGroupOperation = new 
Google.Ads.GoogleAds.V1.Services.AdGroupOperation
{
Create = new AdGroup { ResourceName = 
"customers/12345/adGroups/ *-3**", *Campaign =  "customers/12345/campaigns/ 
*-2" *}
}
},
new MutateOperation
{
AdGroupAdOperation = new 
Google.Ads.GoogleAds.V1.Services.AdGroupAdOperation
{
Create = new AdGroupAd { ResourceName = 
[not required], AdGroup =  "customers/12345/adGroups/ *-3**" *}
}
},
new MutateOperation
{
AdGroupCriterionOperation = new 
Google.Ads.GoogleAds.V1.Services.AdGroupCriterionOperation
{
Create = new AdGroupCriterion { 
ResourceName = [not required], AdGroup =  "customers/12345/adGroups/ *-3*
*" *}
}
}
});


Hope this helps

On Wednesday, 27 March 2019 04:48:46 UTC+11, Vitaly Dukhota wrote:
>
> Hi,
>
> I know it's possible to mutate multiple entities of the same kind in a 
> single request, and the operations will be done atomically (all or none). 
> For example, it's possible to create multiple campaign operations and 
> submit them all in a single atomic request, but the problem is that they 
> all have to be of the same kind (only campaign operations for the example). 
> I also know that it's possible to create a batch operation with can mutate 
> entities of different kinds (for example, both campaigns and ad groups) in 
> a (kind of) single request. The problem with batch operations is that they 
> are not atomic - some operations might fail whilst others will be completed.
>
> My question is: is it possible to create entities of different kinds in a 
> single atomic operation? For example, I want to create a complete hierarchy 
> of entities (budget-campaigns-ad groups-ads-keywords) for a newly created 
> managed account. Is it possible to create the hierarchy atomically?
>
> Thanks in advance.
>

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog:
https://googleadsdeveloper.blogspot.com/
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

You received this message because you are subscribed to the Google
Groups "AdWords API and Google Ads API Forum" group.
To post to this group, send email to adwords-api@googlegroups.com
To unsubscribe from this group, send email to
adwords-api+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/adwords-api?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"AdWords API and Google Ads API Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to adwords-api+unsubscr...@googlegroups.com.
Visit this group at https://groups.google.com/group/adwords-api.
To view this discussion on the web visit 
https://groups.google.co

Smart Shopping Campaign and ConversionAction

2019-04-14 Thread Van Vu
Hi,
I'm creating multiple Smart Shopping Campaign for a client, upon creating 
them do I need to create a Conversion tracking for each campaign ?
If yes, do I need to call all conversions action for each purchase ?


  gtag('event', 'conversion', {'send_to': 'AW-Conversion1',
'value': 1.0,
'currency': 'USD'
  });




  gtag('event', 'conversion', {'send_to': 'AW-Conversion2',
'value': 1.0,
'currency': 'USD'
  });



Please help

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog:
https://googleadsdeveloper.blogspot.com/
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

You received this message because you are subscribed to the Google
Groups "AdWords API and Google Ads API Forum" group.
To post to this group, send email to adwords-api@googlegroups.com
To unsubscribe from this group, send email to
adwords-api+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/adwords-api?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"AdWords API and Google Ads API Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to adwords-api+unsubscr...@googlegroups.com.
Visit this group at https://groups.google.com/group/adwords-api.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/adwords-api/efef6650-b4fa-419b-879b-f8a4cfabb993%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Invite email google adwords

2019-04-01 Thread Van Vu
Hi there,
I'm running into exact same situation. Please advise what should I do if I 
need to automatically send invites

Cheers,
Van

On Monday, 6 August 2018 21:50:24 UTC+10, Michael Cloonan (AdWords API 
Team) wrote:
>
> Hello,
>
> I'm going to check to see if the policy on this has changed recently, but 
> until I find out otherwise it's probably safe to assume that we are still 
> not accepting new accounts onto this whitelist.
>
> I will update here if I find out differently.
>
> Regards,
> Mike, AdWords API Team
>
> On Monday, August 6, 2018 at 6:00:42 AM UTC-4, Алексей Ягла wrote:
>>
>> Hello.
>>
>> I have the same problem.
>> You still can not accept new accounts in the whitelist?
>> What should I do if I need to automatically send invites?
>>
>> Regards, Alexey
>>
>>
>> пятница, 8 июня 2018 г., 20:26:35 UTC+5 пользователь Michael Cloonan 
>> (AdWords API Team) написал:
>>>
>>> Hello,
>>>
>>> We are not currently accepting new accounts onto this whitelist. I 
>>> apologize for the inconvenience.
>>>
>>> Regards,
>>> Mike, AdWords API Team
>>>
>>> On Friday, June 8, 2018 at 10:40:33 AM UTC-4, Michael Cloonan (AdWords 
>>> API Team) wrote:

 Hello,

 I am going to look into the possibility of adding new accounts to this 
 whitelist. The last I heard we are not widely accepting new accounts into 
 the whitelist, but I'll let you know what I hear back.

 Regards,
 Mike, AdWords API Team

 On Thursday, June 7, 2018 at 11:24:08 PM UTC-4, Trường Nguyễn Xuân 
 wrote:
>
> Hi  Dhanya's,
>
> Thanks for you support. This is my CID: 1806016198, this is production 
> accounts but I can not use API  inviteeEmail and inviteeRole 
> 
>  , please 
> add the CID in to  Whitelisting. Thank you very much.
>
> Best Regards,
>
> *Truong Nguyen,*
> Developer Team of Haravan
> E: truong.n...@haravan.com | M: 0989030791 | Skype: 
> truongng...@gmail.com
>
> On Fri, Jun 8, 2018 at 12:51 AM, 'Milind Sankeshware (AdWords API 
> Team)' via AdWords API and Google Ads API Forum <
> adwor...@googlegroups.com> wrote:
>
>> Hi Trường,
>>
>> I am Dhanya's colleague and will be following up on this thread as 
>> she is unavailable today. Whitelisting for such features are usually 
>> available only for production accounts. If there is a production account 
>> that you would like to be whitelisted, please share the CID with me.
>>
>> Thanks,
>> Milind, AdWords API Team.
>>
>> -- 
>> -- 
>> =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
>> Also find us on our blog:
>> https://googleadsdeveloper.blogspot.com/
>> =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
>>  
>> You received this message because you are subscribed to the Google
>> Groups "AdWords API and Google Ads API Forum" group.
>> To post to this group, send email to adwor...@googlegroups.com
>> To unsubscribe from this group, send email to
>> adwords-api...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/adwords-api?hl=en
>> --- 
>> You received this message because you are subscribed to a topic in 
>> the Google Groups "AdWords API and Google Ads API Forum" group.
>> To unsubscribe from this topic, visit 
>> https://groups.google.com/d/topic/adwords-api/QqqOyJhqTEg/unsubscribe
>> .
>> To unsubscribe from this group and all its topics, send an email to 
>> adwords-api...@googlegroups.com.
>> Visit this group at https://groups.google.com/group/adwords-api.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/adwords-api/ce1bd61b-57b2-4bb5-9501-6ae3b05fc626%40googlegroups.com
>>  
>> 
>> .
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog:
https://googleadsdeveloper.blogspot.com/
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

You received this message because you are subscribed to the Google
Groups "AdWords API and Google Ads API Forum" group.
To post to this group, send email to adwords-api@googlegroups.com
To unsubscribe from this group, send email to
adwords-api+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/adwords-api?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"AdWords API and Google Ads API Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to adwords-api+unsubscr...@googlegroups.com.
Visit this group 

Re: [PHP] Google Ads - How to link an existing Google Adwords (or Ads) Account to my Google Ads MCC ?

2019-03-25 Thread Van Vu
Hello Sai Teja,
I use the code snippet below but there's nothing in response.Results

var googleAdsService = 
client.GetService(Google.Ads.GoogleAds.Services.V0.GoogleAdsService);

SearchGoogleAdsRequest request = new SearchGoogleAdsRequest()
{
PageSize = _pageSize,
Query = @"SELECT customer_client_link.resource_name FROM 
customer_client_link",
CustomerId = ""
};

foreach (SearchGoogleAdsResponse response in 
searchPagedResponse.AsRawResponses())
{
   Console.WriteLine(response.FieldMask.Paths);
   foreach (GoogleAdsRow googleAdsRow in response.Results)
   {
  * /// Nothing here*
   }
}

But when I switch to *Adwords API*, it does have something

// Get the CustomerService.
var customerService = 
(Google.Api.Ads.AdWords.v201809.CustomerService)user.GetService(AdWordsService.v201809.CustomerService);

// Create a selector that filters by service type.
Selector selector = new Selector()
{
fields = new string[] { ServiceLink.Fields.ServiceType },
predicates = new Predicate[] {
Predicate.Equals(ServiceLink.Fields.ServiceType, 
ServiceType.MERCHANT_CENTER.ToString())
}
};

// Get the service links.
var serviceLinks = customerService.getServiceLinks(selector);

// Display the results.
if (serviceLinks != null)
{
*/// Yes, there's something here*
}

Looks like I'll stick with Adwords API for now

What do you think?


On Saturday, 23 March 2019 06:03:14 UTC+11, googleadsapi-forumadvisor wrote:
>
> Hello Bodom0911,
>
> You could use the resource name as mentioned  resource_name*: 
> "customers/{customer_id}/customerClientLinks/{client_customer_id}~{manager_link_id}"*.
>  
> You could also get the resource name of the customerClientLinks by using 
> this query: *"SELECT customer_client_link.resource_name FROM 
> customer_client_link"*. Please let me know if you have any further 
> questions.
>
> @Kuba,
>
> Does the client have multiple AdWords account and want to choose which 
> account to connect to your manager account? If that is the case, you can 
> change the clientCustomerId, So that the API requests will be made with the 
> chosen account from the client. Same applies even while extending and 
> accepting the invitation. If you question is different please elaborate and 
> share any respective docs you are referring to? You could use reply 
> privately to the author option while sharing the information requested.
>
> Regards,
> Sai Teja, Google Ads API Team
>
>
>
> =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
> Also find us on our blog and discussion group:
> http://googleadsdeveloper.blogspot.com/search/label/adwords_api
> https://developers.google.com/adwords/api/community/
> =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
>
> Was your question answered? Please rate your experience with us by taking 
> a short survey.
> If not -- reply to this email and tell us what else we can do to help.
>
> Take Survey 
> 
>
> Also find us on our blog and discussion group:
> http://googleadsdeveloper.blogspot.com/search/label/adwords_api
> https://developers.google.com/adwords/api/community/
>

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog:
https://googleadsdeveloper.blogspot.com/
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

You received this message because you are subscribed to the Google
Groups "AdWords API and Google Ads API Forum" group.
To post to this group, send email to adwords-api@googlegroups.com
To unsubscribe from this group, send email to
adwords-api+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/adwords-api?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"AdWords API and Google Ads API Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to adwords-api+unsubscr...@googlegroups.com.
Visit this group at https://groups.google.com/group/adwords-api.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/adwords-api/4837b534-2759-40e1-aea1-75a9cf58aab5%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [PHP] Google Ads - How to link an existing Google Adwords (or Ads) Account to my Google Ads MCC ?

2019-03-22 Thread Van Vu
Hi there,
Thank you very much for the code snippet and the explanation above. I've 
been pulling my hair out in the last few days ...

So after the client accepts the Ads invitation, all done and dusted, my 
next step is linking the Merchant account with this client Ads account
I can update the Merchant to include the AdsId and see it go through --> OK

Question: how can I accept the invitation 
 
from Merchant by using Ads API (again, not Adwords), 
I already tried GetCustomerManagerLink but have no idea what to put in 
ResourceName

Please help


On Thursday, 21 March 2019 06:37:42 UTC+11, googleadsapi-forumadvisor wrote:
>
> Hello Jakub,
>
> For the AdWords API 
> 
>  the 
> client libraries are available here 
>  and for 
> the Google Ads API 
>  the 
> client libraries available here 
> . Using 
> AdWords API you can try the ManagedCustomerService 
> 
>  and 
> can refer the Linking accounts section of this guide 
> 
>  for 
> more information about the ManagedCustomerService.
>
> If you are using the Google Ads API, you should use 
> CustomerClientLinkService.MutateCustomerClientLink 
> 
>  service. 
> Below is the code sample to extend the invitation to the client account in 
> Java. Since the examples are not available in out client libraries I can 
> provide sample in Java only at this point of time. You can try the similar 
> steps in PHP to extend the invitation. Likewise you have to update the 
> ManagerLinkStatus to ACTIVE from the client account to accept the 
> invitation.
>
> Code Snippet Below in Java to extend the invitation to the client account 
> from the manager account:
>
> private void runExample(
> GoogleAdsClient googleAdsClient, long customerId) {
> try (CustomerClientLinkServiceClient customerClientLinkServiceClient = 
> googleAdsClient.getCustomerClientLinkServiceClient()) 
> {
>   //Creating resource name for customer
>   String customerResourceName = 
> ResourceNames.customer(123456789L);//the client account to which you are 
> expanding the invitation. 
>
>   //Creating customerClientLink object
>   CustomerClientLink customerClientLink = 
> CustomerClientLink.newBuilder()
>  .setClientCustomer(StringValue.of(customerResourceName))
>  .setStatus(ManagerLinkStatus.PENDING)
>  .build();
>
>  //creating operation for the mutate request
>  CustomerClientLinkOperation operation = 
> CustomerClientLinkOperation.newBuilder()
>  .setCreate(customerClientLink)
>  .build();
>
>  // Send the operation in a mutate request.
> MutateCustomerClientLinkResponse response =
> customerClientLinkServiceClient.mutateCustomerClientLink("18xx17", 
> operation);// Your manager account Id should be placed in the mutate call.
> // Print the resource name of each updated object. 
> System.out.println(response.getResult());
> }
> }
>
> Please elaborate if you have any further questions.
>
> Regards,
> Sai Teja, Google Ads API Team
>
>
> =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
> Also find us on our blog and discussion group:
> http://googleadsdeveloper.blogspot.com/search/label/adwords_api
> https://developers.google.com/adwords/api/community/
> =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
>
> Was your question answered? Please rate your experience with us by taking 
> a short survey.
> If not -- reply to this email and tell us what else we can do to help.
>
> Take Survey 
> 
>
> Also find us on our blog and discussion group:
> http://googleadsdeveloper.blogspot.com/search/label/adwords_api
> https://developers.google.com/adwords/api/community/
> On 03/20/19 07:13:19 jak...@fasttony.es  wrote:
>
> Hi Everyone !
>
> I am facing the same problem with Ads Api.
>
> I have created new account X under My manager account Y.
> I would like to link random new user with ads account Z to my newly 
> created account X.
>
> But that way I should be able to manage account X as manager and also user 
> will see this account X under his manager account Z.
>
> is it possible?
>
> Do somebody know the code in PHP for that operation?
> Also what library should I use the AdWords Api or Ads Api ?
>
> -- 
> -- 
> =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~