Delete single product from Facebook Product Catalog - facebook

I'm working on adding Dynamic Product Ads to our app. I've created a Product Catalog through the Facebook Business Manager and successfully uploaded a CSV file of our entire product catalog. I'm also in the process of setting up a daily refresh of the products.
My question is - how do I make an immediate DELETE request for a specific product? If a user deletes a product I don't want to wait a whole day for the product feed to be refreshed and risk the user seeing an ad for a deleted product. The docs make it seem like that isn't supported... but I can't believe that's the case.
Relevant from the Facebook docs:
Update Invidividual Product
Product Item Reference (I think this is deprecated - DELETE request to /{product_item_id} did not succeed).

How about using the rules in Product Sets to exclude that product/s and then working with the Product Sets with the ads.

I got the product OFF facebook by editing the data source CSV, and under the availability column, I added discontinued. That removed it from Facebook after being imported from shopify.

Sorry for being late to the party.
I'm actually coping with this right now, and the only thing I can find in the API stating about individual products is actually when it comes to the Catalog Batch
To send item updates, use the /{catalog_id}/batch endpoint.
To create, update, or delete items in your catalog, make an HTTP POST
call to:
https://graph.facebook.com/<API_VERSION>/<CATALOG_ID>/batch?requests=

Related

How can I get Cart Details Options in Paypal Sync?

I'm calling this API: https://api.paypal.com/v1/reporting/transactions?start_date=2019-10-01T00:00:00-0700&end_date=2019-10-30T23:59:59-0700&fields=all, and it is returning all transactions but I want to retrieve cart details options although in the fields I have set it to all.
I have read https://developer.paypal.com/docs/integration/direct/sync/#list-transactions.
What I want is the following (but via API):
As a general rule, using PayPal APIs for reporting is a bad idea, for various reasons -- including slowness. But even if they were good for this use case, I know of no way to get the shopping cart data you mention in a list via an API. The only possible solution might be to first get the list without shopping cart data and then query each transaction individually (one API cal per transaction) to get its shopping cart details, but this is incredibly inefficient.
So basically, you should:
Record and save all shopping cart details at transaction time, in your own database, using IPN/webhooks as a listener if necessary
Manually use the activity download of your screenshot to download a CSV, if it's ever necessary to backfill information from the past.
Not use reporting APIs.

Facebook marketing API - how to Copy Ads / creatives

On facebook's documentation, in "What's New" they have a link titled "Copy and Reuse Ads with Ads Copy API." which leads to this.
Here, they have 3 links, all of them are currently broken.
My question is, how can I copy (and change) an ad, and more specifically, the ad's creative, which is immutable (therefore the need to copy instead of update)?
Update
At the time, we did get some information from our contact at Facebook. However, it meant this wasn't a good approach for us.
Also, there is now new documentation on copying ads, yet still it does not help us specifically, since it does not allow updating ad-creatives.
We've since abandoned this effort, and in fact, solve the problem by having Marketing personnel export the ads, update the field we needed by a script in an Excel file, then uploading back to Facebook.
The Ad Copy feature https://developers.facebook.com/docs/marketing-api/buying-api/ad-units#ad-copies includes 3 kinds of copies, on campaign, ad set, or ad level. There is not an ad creative copy function.
And there probably should not. Ad creatives are immutable, as you know. So why you want to copy another immutable one, instead of using the existing one?
I assume your questions is about how to get the specs of an existing ad creative, modify the specs somehow, and use the new spec to create a new ad creative.
Then, how to get the specs of an existing ad creative: use "effective_object_story_id", which will always give you an id no matter the ad creative was created using an existing post (thus an id was provided) or from scratch (thus an object_story_spec was provided). Once you get that id, in the format of _, you can just query that id directly, using /v2.9/. Then you can get all the specs. Modify it, and create a new ad creative using those specs.
Yes, this is more work than just copy an ad creative. But I believe you are not actually asking for a copy.
Good luck.

CRM 2011, REST, OData and Security Roles

Is there any special security privileges that i need to give my users so that they can run some custom code? I have a javascript library that is triggered on a button click that then gets all of the selected items in a subgrid. When I get all of the check-boxed items I then feed that into an update operation and upload the string if items (in the form of GUIDs) into a Single Line Textbox field on my entity. Once that field is updated they will trigger a dialog which consumes the textbox field and does some more work on it.
The problem is that nothing happens. I solved one issue once I figured out that the user needs Organizational write access to the entity, but now I see another exception "...is missing prvReadWorkflow privilege" does that mean these users need Read Access on Organizational workflows?
Am I missing anything else?
I don't have an explaination for why you require read access to workflows for this update operation, but this microsoft CRM forum post appears to be about the same issue you are having.
Tanguy suggests you add read access to processes for the affected user.

How can we send a follow up email for Wishlist?

How can we send a email to the user reminding them that some products are available in their wishlist?
I have seen this functionality on many sites and I wish someone would have Implemented it by now.
There should be a way to Do this program way.
Also There is no way available in magento to see wishlist report,like which item is most available in wishlist or top 5 wishlist products.Is there a way to Implement Both the things
Thanks in advance
Unfortunately there is no out of the box solution for both of your issues.
There does exist a $14.99 module that will give you more insight on wishlisted items and the relative customers: http://www.magentocommerce.com/magento-connect/admin-global-customer-wishlist-viewer.html
As for sending emails to those customers, this type of functionality exists in Magento Enterprise Edition. You have the ability to automatically send emails to customers with wishlisted items - unless you are willing to shell out $15,000 for the enterprise version, you are a bit out of luck here.
You can either utilize a email blast service like MailChimp which integrates directly into magento to send focused email blasts OR do some custom development work.
You can do this with MageMail. (Full disclosure: I'm the founder of MageMail).
In case you're looking to build this custom, you basically just want to pull in the wishlist_item table and join on the customer table to get the customer associated with the wishlist item.
One gotcha to keep in mind is that all of the wishlist items are included in the same wishlist, regardless of when they were added (they're not like quotes in that regard). So if you're building this custom, you'll want to make sure to build it in such a way that it will follow-up based on the date the wishlist item was added and not the date of the wishlist record itself.
I think that Enterprise has support for multiple wishlists but I haven't seen it in use much in the wild.
I think you can do exactly what you need the following way:
1. Segment your customers according to their wishlist records with Market Segmentation Suite extension. You can put users with particular wishlist item into a group or form a customer group of all users with non-empty wishlists. You can then export those segmented lists for future use.
2. Follow up your customers according to segmented lists you made with emails tailored to specific customer groups with Follow Up Email.
As for wishlist reports you can track which products have been added to customers’ wishlists, when the product has been added, how many days this item is in the wishlist with Advanced reports unit named Users Wishlists by aheadWorks.
So, these are 3 different extensions, but they definitely cope with the task you describe.

Using GA Data Export API to Get All UA's

I am using the GA Data Export API to interact with Google Analytics and I'm making a lot of progress, I am using this URL Endpoint initially to pull all the profiles under an account:
https://www.google.com/analytics/feeds/accounts/default
This URL retrieves each GA ID (profile) and each UA. One thing I've realized is one account can contain multiple UAs and when this happens, this request pulls all profiles. We have a client who has about 115 profiles under like 10 different UAs, and the request takes about 30 seconds for the initial request (and then I believe it must be cached, because it speeds up considerably after this, but then the next day the same thing occurs).
Is there a way to get a list of UA's without pulling the profiles? This way I can query the UA specifically for the profiles instead of pulling each one.
Any advice on this would be really helpful!
Thanks
UPDATE: Here's some documentation on the specific call I am using right now:
http://code.google.com/apis/analytics/docs/gdata/gdataReferenceAccountFeed.html
UPDATE 1: I have found some interesting information in the docs
Once your application has verified
that the user has Analytics access,
its next step is to find out which
Analytics accounts the user has access
to. Remember, users can have access to
many different accounts, and within
them, many different profiles. For
this reason, your application cannot
access any report information without
first requesting the list of accounts
available to the user. The resulting
accounts feed returns that list, but
most importantly, the list also
contains the account profiles that the
user can view.
So this means that you have to use the default accounts call to get these back? Surely, somebody has had this issue before?
So apparently, you can query the account if you know the UA-ID, however there is no way to get back a list of only UA IDs.
One way you can do it is have the user enter their own UA ID instead of having them choose one; not as user-friendly as it could be but better than making the user wait 30 seconds!